summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorPikalaxALT <pikalaxalt@gmail.com>2020-05-12 12:57:37 -0400
committerPikalaxALT <pikalaxalt@gmail.com>2020-05-12 12:57:37 -0400
commit430a22f6d1c4cd00f8fbbf7f9066a26f26be996b (patch)
tree8797147a547a732dfb39150212531fa44b526268
parent41566d87bf34a9c0413471258aead733d7a08911 (diff)
Disassemble module 55
-rw-r--r--arm9/arm9.lcf335
-rw-r--r--arm9/global.inc8
-rw-r--r--arm9/modules/55/asm/module_55.s5594
3 files changed, 5823 insertions, 114 deletions
diff --git a/arm9/arm9.lcf b/arm9/arm9.lcf
index 05ecc8da..a5513580 100644
--- a/arm9/arm9.lcf
+++ b/arm9/arm9.lcf
@@ -408,6 +408,7 @@ SECTIONS {
.MODULE.00 :
{
+ SDK_OVERLAY.MODULE_00.ID = 0;
ALIGNALL(4); . = ALIGN(32);
SDK_OVERLAY.MODULE_00.START = .;
module_00_dummy.o (.text)
@@ -438,6 +439,7 @@ SECTIONS {
.MODULE.01 :
{
+ SDK_OVERLAY.MODULE_01.ID = 1;
ALIGNALL(4); . = ALIGN(32);
SDK_OVERLAY.MODULE_01.START = .;
module_01.o (.text)
@@ -468,6 +470,7 @@ SECTIONS {
.MODULE.02 :
{
+ SDK_OVERLAY.MODULE_02.ID = 2;
ALIGNALL(4); . = ALIGN(32);
SDK_OVERLAY.MODULE_02.START = .;
module_02_dummy.o (.text)
@@ -497,6 +500,7 @@ SECTIONS {
.MODULE.03 :
{
+ SDK_OVERLAY.MODULE_03.ID = 3;
ALIGNALL(4); . = ALIGN(32);
SDK_OVERLAY.MODULE_03.START = .;
module_03_dummy.o (.text)
@@ -527,6 +531,7 @@ SECTIONS {
.MODULE.04 :
{
+ SDK_OVERLAY.MODULE_04.ID = 4;
ALIGNALL(4); . = ALIGN(32);
SDK_OVERLAY.MODULE_04.START = .;
thumb_04.o (.text)
@@ -566,6 +571,7 @@ SECTIONS {
.MODULE.05 :
{
+ SDK_OVERLAY.MODULE_05.ID = 5;
ALIGNALL(4); . = ALIGN(32);
SDK_OVERLAY.MODULE_05.START = .;
module_05.o (.text)
@@ -595,6 +601,7 @@ SECTIONS {
.MODULE.06 :
{
+ SDK_OVERLAY.MODULE_06.ID = 6;
ALIGNALL(4); . = ALIGN(32);
SDK_OVERLAY.MODULE_06.START = .;
module_06.o (.text)
@@ -625,6 +632,7 @@ SECTIONS {
.MODULE.07 :
{
+ SDK_OVERLAY.MODULE_07.ID = 7;
ALIGNALL(4); . = ALIGN(32);
SDK_OVERLAY.MODULE_07.START = .;
module_07.o (.text)
@@ -656,6 +664,7 @@ SECTIONS {
.MODULE.08 :
{
+ SDK_OVERLAY.MODULE_08.ID = 8;
ALIGNALL(4); . = ALIGN(32);
SDK_OVERLAY.MODULE_08.START = .;
module_08.o (.text)
@@ -687,6 +696,7 @@ SECTIONS {
.MODULE.09 :
{
+ SDK_OVERLAY.MODULE_09.ID = 9;
ALIGNALL(4); . = ALIGN(32);
SDK_OVERLAY.MODULE_09.START = .;
module_09.o (.text)
@@ -718,6 +728,7 @@ SECTIONS {
.MODULE.10 :
{
+ SDK_OVERLAY.MODULE_10.ID = 10;
ALIGNALL(4); . = ALIGN(32);
SDK_OVERLAY.MODULE_10.START = .;
module_10_dummy.o (.text)
@@ -749,6 +760,7 @@ SECTIONS {
.MODULE.11 :
{
+ SDK_OVERLAY.MODULE_11.ID = 11;
ALIGNALL(4); . = ALIGN(32);
SDK_OVERLAY.MODULE_11.START = .;
module_11.o (.text)
@@ -780,6 +792,7 @@ SECTIONS {
.MODULE.12 :
{
+ SDK_OVERLAY.MODULE_12.ID = 12;
ALIGNALL(4); . = ALIGN(32);
SDK_OVERLAY.MODULE_12.START = .;
module_12.o (.text)
@@ -811,6 +824,7 @@ SECTIONS {
.MODULE.13 :
{
+ SDK_OVERLAY.MODULE_13.ID = 13;
ALIGNALL(4); . = ALIGN(32);
SDK_OVERLAY.MODULE_13.START = .;
module_13_init.o (.text)
@@ -869,6 +883,7 @@ SECTIONS {
.MODULE.14 :
{
+ SDK_OVERLAY.MODULE_14.ID = 14;
ALIGNALL(4); . = ALIGN(32);
SDK_OVERLAY.MODULE_14.START = .;
module_14.o (.text)
@@ -900,6 +915,7 @@ SECTIONS {
.MODULE.15 :
{
+ SDK_OVERLAY.MODULE_15.ID = 15;
ALIGNALL(4); . = ALIGN(32);
SDK_OVERLAY.MODULE_15.START = .;
module_15.o (.text)
@@ -931,6 +947,7 @@ SECTIONS {
.MODULE.16 :
{
+ SDK_OVERLAY.MODULE_16.ID = 16;
ALIGNALL(4); . = ALIGN(32);
SDK_OVERLAY.MODULE_16.START = .;
module_16.o (.text)
@@ -962,6 +979,7 @@ SECTIONS {
.MODULE.17 :
{
+ SDK_OVERLAY.MODULE_17.ID = 17;
ALIGNALL(4); . = ALIGN(32);
SDK_OVERLAY.MODULE_17.START = .;
module_17.o (.text)
@@ -993,6 +1011,7 @@ SECTIONS {
.MODULE.18 :
{
+ SDK_OVERLAY.MODULE_18.ID = 18;
ALIGNALL(4); . = ALIGN(32);
SDK_OVERLAY.MODULE_18.START = .;
module_18.o (.text)
@@ -1024,6 +1043,7 @@ SECTIONS {
.MODULE.19 :
{
+ SDK_OVERLAY.MODULE_19.ID = 19;
ALIGNALL(4); . = ALIGN(32);
SDK_OVERLAY.MODULE_19.START = .;
module_19.o (.text)
@@ -1055,6 +1075,7 @@ SECTIONS {
.MODULE.20 :
{
+ SDK_OVERLAY.MODULE_20.ID = 20;
ALIGNALL(4); . = ALIGN(32);
SDK_OVERLAY.MODULE_20.START = .;
module_20.o (.text)
@@ -1086,6 +1107,7 @@ SECTIONS {
.MODULE.21 :
{
+ SDK_OVERLAY.MODULE_21.ID = 21;
ALIGNALL(4); . = ALIGN(32);
SDK_OVERLAY.MODULE_21.START = .;
module_21.o (.text)
@@ -1117,6 +1139,7 @@ SECTIONS {
.MODULE.22 :
{
+ SDK_OVERLAY.MODULE_22.ID = 22;
ALIGNALL(4); . = ALIGN(32);
SDK_OVERLAY.MODULE_22.START = .;
module_22.o (.text)
@@ -1148,6 +1171,7 @@ SECTIONS {
.MODULE.23 :
{
+ SDK_OVERLAY.MODULE_23.ID = 23;
ALIGNALL(4); . = ALIGN(32);
SDK_OVERLAY.MODULE_23.START = .;
module_23.o (.text)
@@ -1179,6 +1203,7 @@ SECTIONS {
.MODULE.24 :
{
+ SDK_OVERLAY.MODULE_24.ID = 24;
ALIGNALL(4); . = ALIGN(32);
SDK_OVERLAY.MODULE_24.START = .;
module_24.o (.text)
@@ -1210,6 +1235,7 @@ SECTIONS {
.MODULE.25 :
{
+ SDK_OVERLAY.MODULE_25.ID = 25;
ALIGNALL(4); . = ALIGN(32);
SDK_OVERLAY.MODULE_25.START = .;
module_25.o (.text)
@@ -1241,6 +1267,7 @@ SECTIONS {
.MODULE.26 :
{
+ SDK_OVERLAY.MODULE_26.ID = 26;
ALIGNALL(4); . = ALIGN(32);
SDK_OVERLAY.MODULE_26.START = .;
module_26.o (.text)
@@ -1272,6 +1299,7 @@ SECTIONS {
.MODULE.27 :
{
+ SDK_OVERLAY.MODULE_27.ID = 27;
ALIGNALL(4); . = ALIGN(32);
SDK_OVERLAY.MODULE_27.START = .;
module_27.o (.text)
@@ -1303,6 +1331,7 @@ SECTIONS {
.MODULE.28 :
{
+ SDK_OVERLAY.MODULE_28.ID = 28;
ALIGNALL(4); . = ALIGN(32);
SDK_OVERLAY.MODULE_28.START = .;
module_28.o (.text)
@@ -1334,6 +1363,7 @@ SECTIONS {
.MODULE.29 :
{
+ SDK_OVERLAY.MODULE_29.ID = 29;
ALIGNALL(4); . = ALIGN(32);
SDK_OVERLAY.MODULE_29.START = .;
module_29.o (.text)
@@ -1365,6 +1395,7 @@ SECTIONS {
.MODULE.30 :
{
+ SDK_OVERLAY.MODULE_30.ID = 30;
ALIGNALL(4); . = ALIGN(32);
SDK_OVERLAY.MODULE_30.START = .;
module_30.o (.text)
@@ -1396,6 +1427,7 @@ SECTIONS {
.MODULE.31 :
{
+ SDK_OVERLAY.MODULE_31.ID = 31;
ALIGNALL(4); . = ALIGN(32);
SDK_OVERLAY.MODULE_31.START = .;
module_31.o (.text)
@@ -1427,6 +1459,7 @@ SECTIONS {
.MODULE.32 :
{
+ SDK_OVERLAY.MODULE_32.ID = 32;
ALIGNALL(4); . = ALIGN(32);
SDK_OVERLAY.MODULE_32.START = .;
module_32.o (.text)
@@ -1458,6 +1491,7 @@ SECTIONS {
.MODULE.33 :
{
+ SDK_OVERLAY.MODULE_33.ID = 33;
ALIGNALL(4); . = ALIGN(32);
SDK_OVERLAY.MODULE_33.START = .;
module_33.o (.text)
@@ -1489,6 +1523,7 @@ SECTIONS {
.MODULE.34 :
{
+ SDK_OVERLAY.MODULE_34.ID = 34;
ALIGNALL(4); . = ALIGN(32);
SDK_OVERLAY.MODULE_34.START = .;
module_34.o (.text)
@@ -1520,6 +1555,7 @@ SECTIONS {
.MODULE.35 :
{
+ SDK_OVERLAY.MODULE_35.ID = 35;
ALIGNALL(4); . = ALIGN(32);
SDK_OVERLAY.MODULE_35.START = .;
module_35.o (.text)
@@ -1551,6 +1587,7 @@ SECTIONS {
.MODULE.36 :
{
+ SDK_OVERLAY.MODULE_36.ID = 36;
ALIGNALL(4); . = ALIGN(32);
SDK_OVERLAY.MODULE_36.START = .;
module_36.o (.text)
@@ -1582,6 +1619,7 @@ SECTIONS {
.MODULE.37 :
{
+ SDK_OVERLAY.MODULE_37.ID = 37;
ALIGNALL(4); . = ALIGN(32);
SDK_OVERLAY.MODULE_37.START = .;
module_37.o (.text)
@@ -1613,6 +1651,7 @@ SECTIONS {
.MODULE.38 :
{
+ SDK_OVERLAY.MODULE_38.ID = 38;
ALIGNALL(4); . = ALIGN(32);
SDK_OVERLAY.MODULE_38.START = .;
module_38.o (.text)
@@ -1644,6 +1683,7 @@ SECTIONS {
.MODULE.39 :
{
+ SDK_OVERLAY.MODULE_39.ID = 39;
ALIGNALL(4); . = ALIGN(32);
SDK_OVERLAY.MODULE_39.START = .;
module_39.o (.text)
@@ -1675,6 +1715,7 @@ SECTIONS {
.MODULE.40 :
{
+ SDK_OVERLAY.MODULE_40.ID = 40;
ALIGNALL(4); . = ALIGN(32);
SDK_OVERLAY.MODULE_40.START = .;
module_40.o (.text)
@@ -1706,6 +1747,7 @@ SECTIONS {
.MODULE.41 :
{
+ SDK_OVERLAY.MODULE_41.ID = 41;
ALIGNALL(4); . = ALIGN(32);
SDK_OVERLAY.MODULE_41.START = .;
module_41.o (.text)
@@ -1737,6 +1779,7 @@ SECTIONS {
.MODULE.42 :
{
+ SDK_OVERLAY.MODULE_42.ID = 42;
ALIGNALL(4); . = ALIGN(32);
SDK_OVERLAY.MODULE_42.START = .;
module_42.o (.text)
@@ -1768,6 +1811,7 @@ SECTIONS {
.MODULE.43 :
{
+ SDK_OVERLAY.MODULE_43.ID = 43;
ALIGNALL(4); . = ALIGN(32);
SDK_OVERLAY.MODULE_43.START = .;
module_43.o (.text)
@@ -1799,6 +1843,7 @@ SECTIONS {
.MODULE.44 :
{
+ SDK_OVERLAY.MODULE_44.ID = 44;
ALIGNALL(4); . = ALIGN(32);
SDK_OVERLAY.MODULE_44.START = .;
module_44.o (.text)
@@ -1830,6 +1875,7 @@ SECTIONS {
.MODULE.45 :
{
+ SDK_OVERLAY.MODULE_45.ID = 45;
ALIGNALL(4); . = ALIGN(32);
SDK_OVERLAY.MODULE_45.START = .;
module_45.o (.text)
@@ -1861,6 +1907,7 @@ SECTIONS {
.MODULE.46 :
{
+ SDK_OVERLAY.MODULE_46.ID = 46;
ALIGNALL(4); . = ALIGN(32);
SDK_OVERLAY.MODULE_46.START = .;
module_46.o (.text)
@@ -1892,6 +1939,7 @@ SECTIONS {
.MODULE.47 :
{
+ SDK_OVERLAY.MODULE_47.ID = 47;
ALIGNALL(4); . = ALIGN(32);
SDK_OVERLAY.MODULE_47.START = .;
module_47.o (.text)
@@ -1923,6 +1971,7 @@ SECTIONS {
.MODULE.48 :
{
+ SDK_OVERLAY.MODULE_48.ID = 48;
ALIGNALL(4); . = ALIGN(32);
SDK_OVERLAY.MODULE_48.START = .;
module_48.o (.text)
@@ -1954,6 +2003,7 @@ SECTIONS {
.MODULE.49 :
{
+ SDK_OVERLAY.MODULE_49.ID = 49;
ALIGNALL(4); . = ALIGN(32);
SDK_OVERLAY.MODULE_49.START = .;
module_49.o (.text)
@@ -1985,6 +2035,7 @@ SECTIONS {
.MODULE.50 :
{
+ SDK_OVERLAY.MODULE_50.ID = 50;
ALIGNALL(4); . = ALIGN(32);
SDK_OVERLAY.MODULE_50.START = .;
module_50.o (.text)
@@ -2016,6 +2067,7 @@ SECTIONS {
.MODULE.51 :
{
+ SDK_OVERLAY.MODULE_51.ID = 51;
ALIGNALL(4); . = ALIGN(32);
SDK_OVERLAY.MODULE_51.START = .;
module_51.o (.text)
@@ -2047,6 +2099,7 @@ SECTIONS {
.MODULE.52 :
{
+ SDK_OVERLAY.MODULE_52.ID = 52;
ALIGNALL(4); . = ALIGN(32);
SDK_OVERLAY.MODULE_52.START = .;
module_52.o (.text)
@@ -2078,6 +2131,7 @@ SECTIONS {
.MODULE.53 :
{
+ SDK_OVERLAY.MODULE_53.ID = 53;
ALIGNALL(4); . = ALIGN(32);
SDK_OVERLAY.MODULE_53.START = .;
module_53.o (.text)
@@ -2109,6 +2163,7 @@ SECTIONS {
.MODULE.54 :
{
+ SDK_OVERLAY.MODULE_54.ID = 54;
ALIGNALL(4); . = ALIGN(32);
SDK_OVERLAY.MODULE_54.START = .;
module_54.o (.text)
@@ -2138,10 +2193,22 @@ SECTIONS {
SDK_OVERLAY.MODULE_54.BSS_SIZE = SDK_OVERLAY.MODULE_54.BSS_END - SDK_OVERLAY.MODULE_54.BSS_START;
} >> MODULE_54
- .MODULE.55: {
+ .MODULE.55 :
+ {
+ SDK_OVERLAY.MODULE_55.ID = 55;
ALIGNALL(4); . = ALIGN(32);
SDK_OVERLAY.MODULE_55.START = .;
- FILE_29E800.o (.text) /* 0x29A800 */
+ module_55.o (.text)
+ module_55.o (.rodata)
+ module_55.o (.init)
+ SDK_OVERLAY.MODULE_55.SINIT_START = .;
+ module_55.o (.ctor)
+ module_55.o (.sinit)
+ WRITEW 0;
+ SDK_OVERLAY.MODULE_55.SINIT_END = .;
+ . = ALIGN(32);
+ module_55.o (.sdata)
+ module_55.o (.data)
. = ALIGN(32);
SDK_OVERLAY.MODULE_55.END = .;
SDK_OVERLAY.MODULE_55.SIZE = SDK_OVERLAY.MODULE_55.END - SDK_OVERLAY.MODULE_55.START;
@@ -2151,13 +2218,15 @@ SECTIONS {
{
ALIGNALL(4); . = ALIGN(32);
SDK_OVERLAY.MODULE_55.BSS_START = .;
- FILE_29E800.o (.bss)
+ module_55.o (.sbss)
+ module_55.o (.bss)
. = ALIGN(32);
SDK_OVERLAY.MODULE_55.BSS_END = .;
SDK_OVERLAY.MODULE_55.BSS_SIZE = SDK_OVERLAY.MODULE_55.BSS_END - SDK_OVERLAY.MODULE_55.BSS_START;
} >> MODULE_55
.MODULE.56: {
+ SDK_OVERLAY.MODULE_56.ID = 56;
ALIGNALL(4); . = ALIGN(32);
SDK_OVERLAY.MODULE_56.START = .;
FILE_2A1A00.o (.text) /* 0x29DA00 */
@@ -2177,6 +2246,7 @@ SECTIONS {
} >> MODULE_56
.MODULE.57: {
+ SDK_OVERLAY.MODULE_57.ID = 57;
ALIGNALL(4); . = ALIGN(32);
SDK_OVERLAY.MODULE_57.START = .;
FILE_2A6200.o (.text) /* 0x2A2200 */
@@ -2196,6 +2266,7 @@ SECTIONS {
} >> MODULE_57
.MODULE.58: {
+ SDK_OVERLAY.MODULE_58.ID = 58;
ALIGNALL(4); . = ALIGN(32);
SDK_OVERLAY.MODULE_58.START = .;
FILE_2A8800.o (.text) /* 0x2A4800 */
@@ -2215,6 +2286,7 @@ SECTIONS {
} >> MODULE_58
.MODULE.59: {
+ SDK_OVERLAY.MODULE_59.ID = 59;
ALIGNALL(4); . = ALIGN(32);
SDK_OVERLAY.MODULE_59.START = .;
FILE_2A9E00.o (.text) /* 0x2A5E00 */
@@ -2234,6 +2306,7 @@ SECTIONS {
} >> MODULE_59
.MODULE.60: {
+ SDK_OVERLAY.MODULE_60.ID = 60;
ALIGNALL(4); . = ALIGN(32);
SDK_OVERLAY.MODULE_60.START = .;
FILE_2ACC00.o (.text) /* 0x2A8C00 */
@@ -2253,6 +2326,7 @@ SECTIONS {
} >> MODULE_60
.MODULE.61: {
+ SDK_OVERLAY.MODULE_61.ID = 61;
ALIGNALL(4); . = ALIGN(32);
SDK_OVERLAY.MODULE_61.START = .;
FILE_2ADA00.o (.text) /* 0x2A9A00 */
@@ -2272,6 +2346,7 @@ SECTIONS {
} >> MODULE_61
.MODULE.62: {
+ SDK_OVERLAY.MODULE_62.ID = 62;
ALIGNALL(4); . = ALIGN(32);
SDK_OVERLAY.MODULE_62.START = .;
FILE_2AEC00.o (.text) /* 0x2AAC00 */
@@ -2291,6 +2366,7 @@ SECTIONS {
} >> MODULE_62
.MODULE.63: {
+ SDK_OVERLAY.MODULE_63.ID = 63;
ALIGNALL(4); . = ALIGN(32);
SDK_OVERLAY.MODULE_63.START = .;
FILE_2B2A00.o (.text) /* 0x2AEA00 */
@@ -2310,6 +2386,7 @@ SECTIONS {
} >> MODULE_63
.MODULE.64: {
+ SDK_OVERLAY.MODULE_64.ID = 64;
ALIGNALL(4); . = ALIGN(32);
SDK_OVERLAY.MODULE_64.START = .;
FILE_2B7600.o (.text) /* 0x2B3600 */
@@ -2329,6 +2406,7 @@ SECTIONS {
} >> MODULE_64
.MODULE.65: {
+ SDK_OVERLAY.MODULE_65.ID = 65;
ALIGNALL(4); . = ALIGN(32);
SDK_OVERLAY.MODULE_65.START = .;
FILE_2B9400.o (.text) /* 0x2B5400 */
@@ -2348,6 +2426,7 @@ SECTIONS {
} >> MODULE_65
.MODULE.66: {
+ SDK_OVERLAY.MODULE_66.ID = 66;
ALIGNALL(4); . = ALIGN(32);
SDK_OVERLAY.MODULE_66.START = .;
FILE_2BC400.o (.text) /* 0x2B8400 */
@@ -2367,6 +2446,7 @@ SECTIONS {
} >> MODULE_66
.MODULE.67: {
+ SDK_OVERLAY.MODULE_67.ID = 67;
ALIGNALL(4); . = ALIGN(32);
SDK_OVERLAY.MODULE_67.START = .;
FILE_2BEC00.o (.text) /* 0x2BAC00 */
@@ -2386,6 +2466,7 @@ SECTIONS {
} >> MODULE_67
.MODULE.68: {
+ SDK_OVERLAY.MODULE_68.ID = 68;
ALIGNALL(4); . = ALIGN(32);
SDK_OVERLAY.MODULE_68.START = .;
FILE_2C1200.o (.text) /* 0x2BD200 */
@@ -2405,6 +2486,7 @@ SECTIONS {
} >> MODULE_68
.MODULE.69: {
+ SDK_OVERLAY.MODULE_69.ID = 69;
ALIGNALL(4); . = ALIGN(32);
SDK_OVERLAY.MODULE_69.START = .;
FILE_2C2800.o (.text) /* 0x2BE800 */
@@ -2424,6 +2506,7 @@ SECTIONS {
} >> MODULE_69
.MODULE.70: {
+ SDK_OVERLAY.MODULE_70.ID = 70;
ALIGNALL(4); . = ALIGN(32);
SDK_OVERLAY.MODULE_70.START = .;
FILE_2C4C00.o (.text) /* 0x2C0C00 */
@@ -2443,6 +2526,7 @@ SECTIONS {
} >> MODULE_70
.MODULE.71: {
+ SDK_OVERLAY.MODULE_71.ID = 71;
ALIGNALL(4); . = ALIGN(32);
SDK_OVERLAY.MODULE_71.START = .;
FILE_2C5C00.o (.text) /* 0x2C1C00 */
@@ -2462,6 +2546,7 @@ SECTIONS {
} >> MODULE_71
.MODULE.72: {
+ SDK_OVERLAY.MODULE_72.ID = 72;
ALIGNALL(4); . = ALIGN(32);
SDK_OVERLAY.MODULE_72.START = .;
FILE_2C9C00.o (.text) /* 0x2C5C00 */
@@ -2481,6 +2566,7 @@ SECTIONS {
} >> MODULE_72
.MODULE.73: {
+ SDK_OVERLAY.MODULE_73.ID = 73;
ALIGNALL(4); . = ALIGN(32);
SDK_OVERLAY.MODULE_73.START = .;
FILE_2C9E00.o (.text) /* 0x2C5E00 */
@@ -2500,6 +2586,7 @@ SECTIONS {
} >> MODULE_73
.MODULE.74: {
+ SDK_OVERLAY.MODULE_74.ID = 74;
ALIGNALL(4); . = ALIGN(32);
SDK_OVERLAY.MODULE_74.START = .;
FILE_2CEA00.o (.text) /* 0x2CAA00 */
@@ -2519,6 +2606,7 @@ SECTIONS {
} >> MODULE_74
.MODULE.75: {
+ SDK_OVERLAY.MODULE_75.ID = 75;
ALIGNALL(4); . = ALIGN(32);
SDK_OVERLAY.MODULE_75.START = .;
FILE_2CFE00.o (.text) /* 0x2CBE00 */
@@ -2538,6 +2626,7 @@ SECTIONS {
} >> MODULE_75
.MODULE.76: {
+ SDK_OVERLAY.MODULE_76.ID = 76;
ALIGNALL(4); . = ALIGN(32);
SDK_OVERLAY.MODULE_76.START = .;
FILE_2D5C00.o (.text) /* 0x2D1C00 */
@@ -2557,6 +2646,7 @@ SECTIONS {
} >> MODULE_76
.MODULE.77: {
+ SDK_OVERLAY.MODULE_77.ID = 77;
ALIGNALL(4); . = ALIGN(32);
SDK_OVERLAY.MODULE_77.START = .;
FILE_2D7C00.o (.text) /* 0x2D3C00 */
@@ -2576,6 +2666,7 @@ SECTIONS {
} >> MODULE_77
.MODULE.78: {
+ SDK_OVERLAY.MODULE_78.ID = 78;
ALIGNALL(4); . = ALIGN(32);
SDK_OVERLAY.MODULE_78.START = .;
FILE_2D9800.o (.text) /* 0x2D5800 */
@@ -2595,6 +2686,7 @@ SECTIONS {
} >> MODULE_78
.MODULE.79: {
+ SDK_OVERLAY.MODULE_79.ID = 79;
ALIGNALL(4); . = ALIGN(32);
SDK_OVERLAY.MODULE_79.START = .;
FILE_2D9E00.o (.text) /* 0x2D5E00 */
@@ -2614,6 +2706,7 @@ SECTIONS {
} >> MODULE_79
.MODULE.80: {
+ SDK_OVERLAY.MODULE_80.ID = 80;
ALIGNALL(4); . = ALIGN(32);
SDK_OVERLAY.MODULE_80.START = .;
FILE_2DF200.o (.text) /* 0x2DB200 */
@@ -2633,6 +2726,7 @@ SECTIONS {
} >> MODULE_80
.MODULE.81: {
+ SDK_OVERLAY.MODULE_81.ID = 81;
ALIGNALL(4); . = ALIGN(32);
SDK_OVERLAY.MODULE_81.START = .;
FILE_2E9A00.o (.text) /* 0x2E5A00 */
@@ -2652,6 +2746,7 @@ SECTIONS {
} >> MODULE_81
.MODULE.82: {
+ SDK_OVERLAY.MODULE_82.ID = 82;
ALIGNALL(4); . = ALIGN(32);
SDK_OVERLAY.MODULE_82.START = .;
FILE_2EF000.o (.text) /* 0x2EB000 */
@@ -2671,6 +2766,7 @@ SECTIONS {
} >> MODULE_82
.MODULE.83: {
+ SDK_OVERLAY.MODULE_83.ID = 83;
ALIGNALL(4); . = ALIGN(32);
SDK_OVERLAY.MODULE_83.START = .;
FILE_2F1600.o (.text) /* 0x2ED600 */
@@ -2690,6 +2786,7 @@ SECTIONS {
} >> MODULE_83
.MODULE.84: {
+ SDK_OVERLAY.MODULE_84.ID = 84;
ALIGNALL(4); . = ALIGN(32);
SDK_OVERLAY.MODULE_84.START = .;
FILE_2FFA00.o (.text) /* 0x2FBA00 */
@@ -2709,6 +2806,7 @@ SECTIONS {
} >> MODULE_84
.MODULE.85: {
+ SDK_OVERLAY.MODULE_85.ID = 85;
ALIGNALL(4); . = ALIGN(32);
SDK_OVERLAY.MODULE_85.START = .;
FILE_303400.o (.text) /* 0x2FF400 */
@@ -2728,6 +2826,7 @@ SECTIONS {
} >> MODULE_85
.MODULE.86: {
+ SDK_OVERLAY.MODULE_86.ID = 86;
ALIGNALL(4); . = ALIGN(32);
SDK_OVERLAY.MODULE_86.START = .;
FILE_30C600.o (.text) /* 0x308600 */
@@ -2869,502 +2968,510 @@ SECTIONS {
} > arm9_defs
.arm9_table : {
- WRITEW SDK_OVERLAY_MODULE_00_ID;
+ WRITEW SDK_OVERLAY.MODULE_00.ID;
WRITEW SDK_OVERLAY.MODULE_00.START;
WRITEW SDK_OVERLAY.MODULE_00.SIZE;
WRITEW SDK_OVERLAY.MODULE_00.BSS_SIZE;
WRITEW SDK_OVERLAY.MODULE_00.SINIT_START;
WRITEW SDK_OVERLAY.MODULE_00.SINIT_END;
- WRITEW SDK_OVERLAY_MODULE_00_ID;
+ WRITEW SDK_OVERLAY.MODULE_00.ID;
WRITEW 0;
- WRITEW SDK_OVERLAY_MODULE_01_ID;
+ WRITEW SDK_OVERLAY.MODULE_01.ID;
WRITEW SDK_OVERLAY.MODULE_01.START;
WRITEW SDK_OVERLAY.MODULE_01.SIZE;
WRITEW SDK_OVERLAY.MODULE_01.BSS_SIZE;
WRITEW SDK_OVERLAY.MODULE_01.SINIT_START;
WRITEW SDK_OVERLAY.MODULE_01.SINIT_END;
- WRITEW SDK_OVERLAY_MODULE_01_ID;
+ WRITEW SDK_OVERLAY.MODULE_01.ID;
WRITEW 0;
- WRITEW SDK_OVERLAY_MODULE_02_ID;
+ WRITEW SDK_OVERLAY.MODULE_02.ID;
WRITEW SDK_OVERLAY.MODULE_02.START;
WRITEW SDK_OVERLAY.MODULE_02.SIZE;
WRITEW SDK_OVERLAY.MODULE_02.BSS_SIZE;
WRITEW SDK_OVERLAY.MODULE_02.SINIT_START;
WRITEW SDK_OVERLAY.MODULE_02.SINIT_END;
- WRITEW SDK_OVERLAY_MODULE_02_ID;
+ WRITEW SDK_OVERLAY.MODULE_02.ID;
WRITEW 0;
- WRITEW SDK_OVERLAY_MODULE_03_ID;
+ WRITEW SDK_OVERLAY.MODULE_03.ID;
WRITEW SDK_OVERLAY.MODULE_03.START;
WRITEW SDK_OVERLAY.MODULE_03.SIZE;
WRITEW SDK_OVERLAY.MODULE_03.BSS_SIZE;
WRITEW SDK_OVERLAY.MODULE_03.SINIT_START;
WRITEW SDK_OVERLAY.MODULE_03.SINIT_END;
- WRITEW SDK_OVERLAY_MODULE_03_ID;
+ WRITEW SDK_OVERLAY.MODULE_03.ID;
WRITEW 0;
- WRITEW SDK_OVERLAY_MODULE_04_ID;
+ WRITEW SDK_OVERLAY.MODULE_04.ID;
WRITEW SDK_OVERLAY.MODULE_04.START;
WRITEW SDK_OVERLAY.MODULE_04.SIZE;
WRITEW SDK_OVERLAY.MODULE_04.BSS_SIZE;
WRITEW SDK_OVERLAY.MODULE_04.SINIT_START;
WRITEW SDK_OVERLAY.MODULE_04.SINIT_END;
- WRITEW SDK_OVERLAY_MODULE_04_ID;
+ WRITEW SDK_OVERLAY.MODULE_04.ID;
WRITEW 0;
- WRITEW SDK_OVERLAY_MODULE_05_ID;
+ WRITEW SDK_OVERLAY.MODULE_05.ID;
WRITEW SDK_OVERLAY.MODULE_05.START;
WRITEW SDK_OVERLAY.MODULE_05.SIZE;
WRITEW SDK_OVERLAY.MODULE_05.BSS_SIZE;
WRITEW SDK_OVERLAY.MODULE_05.SINIT_START;
WRITEW SDK_OVERLAY.MODULE_05.SINIT_END;
- WRITEW SDK_OVERLAY_MODULE_05_ID;
+ WRITEW SDK_OVERLAY.MODULE_05.ID;
WRITEW 0;
- WRITEW SDK_OVERLAY_MODULE_06_ID;
+ WRITEW SDK_OVERLAY.MODULE_06.ID;
WRITEW SDK_OVERLAY.MODULE_06.START;
WRITEW SDK_OVERLAY.MODULE_06.SIZE;
WRITEW SDK_OVERLAY.MODULE_06.BSS_SIZE;
WRITEW SDK_OVERLAY.MODULE_06.SINIT_START;
WRITEW SDK_OVERLAY.MODULE_06.SINIT_END;
- WRITEW SDK_OVERLAY_MODULE_06_ID;
+ WRITEW SDK_OVERLAY.MODULE_06.ID;
WRITEW 0;
- WRITEW SDK_OVERLAY_MODULE_07_ID;
+ WRITEW SDK_OVERLAY.MODULE_07.ID;
WRITEW SDK_OVERLAY.MODULE_07.START;
WRITEW SDK_OVERLAY.MODULE_07.SIZE;
WRITEW SDK_OVERLAY.MODULE_07.BSS_SIZE;
WRITEW SDK_OVERLAY.MODULE_07.SINIT_START;
WRITEW SDK_OVERLAY.MODULE_07.SINIT_END;
- WRITEW SDK_OVERLAY_MODULE_07_ID;
+ WRITEW SDK_OVERLAY.MODULE_07.ID;
WRITEW 0;
- WRITEW SDK_OVERLAY_MODULE_08_ID;
+ WRITEW SDK_OVERLAY.MODULE_08.ID;
WRITEW SDK_OVERLAY.MODULE_08.START;
WRITEW SDK_OVERLAY.MODULE_08.SIZE;
WRITEW SDK_OVERLAY.MODULE_08.BSS_SIZE;
WRITEW SDK_OVERLAY.MODULE_08.SINIT_START;
WRITEW SDK_OVERLAY.MODULE_08.SINIT_END;
- WRITEW SDK_OVERLAY_MODULE_08_ID;
+ WRITEW SDK_OVERLAY.MODULE_08.ID;
WRITEW 0;
- WRITEW SDK_OVERLAY_MODULE_09_ID;
+ WRITEW SDK_OVERLAY.MODULE_09.ID;
WRITEW SDK_OVERLAY.MODULE_09.START;
WRITEW SDK_OVERLAY.MODULE_09.SIZE;
WRITEW SDK_OVERLAY.MODULE_09.BSS_SIZE;
WRITEW SDK_OVERLAY.MODULE_09.SINIT_START;
WRITEW SDK_OVERLAY.MODULE_09.SINIT_END;
- WRITEW SDK_OVERLAY_MODULE_09_ID;
+ WRITEW SDK_OVERLAY.MODULE_09.ID;
WRITEW 0;
- WRITEW SDK_OVERLAY_MODULE_10_ID;
+ WRITEW SDK_OVERLAY.MODULE_10.ID;
WRITEW SDK_OVERLAY.MODULE_10.START;
WRITEW SDK_OVERLAY.MODULE_10.SIZE;
WRITEW SDK_OVERLAY.MODULE_10.BSS_SIZE;
WRITEW SDK_OVERLAY.MODULE_10.SINIT_START;
WRITEW SDK_OVERLAY.MODULE_10.SINIT_END;
- WRITEW SDK_OVERLAY_MODULE_10_ID;
+ WRITEW SDK_OVERLAY.MODULE_10.ID;
WRITEW 0;
- WRITEW SDK_OVERLAY_MODULE_11_ID;
+ WRITEW SDK_OVERLAY.MODULE_11.ID;
WRITEW SDK_OVERLAY.MODULE_11.START;
WRITEW SDK_OVERLAY.MODULE_11.SIZE;
WRITEW SDK_OVERLAY.MODULE_11.BSS_SIZE;
WRITEW SDK_OVERLAY.MODULE_11.SINIT_START;
WRITEW SDK_OVERLAY.MODULE_11.SINIT_END;
- WRITEW SDK_OVERLAY_MODULE_11_ID;
+ WRITEW SDK_OVERLAY.MODULE_11.ID;
WRITEW 0;
- WRITEW SDK_OVERLAY_MODULE_12_ID;
+ WRITEW SDK_OVERLAY.MODULE_12.ID;
WRITEW SDK_OVERLAY.MODULE_12.START;
WRITEW SDK_OVERLAY.MODULE_12.SIZE;
WRITEW SDK_OVERLAY.MODULE_12.BSS_SIZE;
WRITEW SDK_OVERLAY.MODULE_12.SINIT_START;
WRITEW SDK_OVERLAY.MODULE_12.SINIT_END;
- WRITEW SDK_OVERLAY_MODULE_12_ID;
+ WRITEW SDK_OVERLAY.MODULE_12.ID;
WRITEW 0;
- WRITEW SDK_OVERLAY_MODULE_13_ID;
+ WRITEW SDK_OVERLAY.MODULE_13.ID;
WRITEW SDK_OVERLAY.MODULE_13.START;
WRITEW SDK_OVERLAY.MODULE_13.SIZE;
WRITEW SDK_OVERLAY.MODULE_13.BSS_SIZE;
WRITEW SDK_OVERLAY.MODULE_13.SINIT_START;
WRITEW SDK_OVERLAY.MODULE_13.SINIT_END;
- WRITEW SDK_OVERLAY_MODULE_13_ID;
+ WRITEW SDK_OVERLAY.MODULE_13.ID;
WRITEW 0;
- WRITEW SDK_OVERLAY_MODULE_14_ID;
+ WRITEW SDK_OVERLAY.MODULE_14.ID;
WRITEW SDK_OVERLAY.MODULE_14.START;
WRITEW SDK_OVERLAY.MODULE_14.SIZE;
WRITEW SDK_OVERLAY.MODULE_14.BSS_SIZE;
WRITEW SDK_OVERLAY.MODULE_14.SINIT_START;
WRITEW SDK_OVERLAY.MODULE_14.SINIT_END;
- WRITEW SDK_OVERLAY_MODULE_14_ID;
+ WRITEW SDK_OVERLAY.MODULE_14.ID;
WRITEW 0;
- WRITEW SDK_OVERLAY_MODULE_15_ID;
+ WRITEW SDK_OVERLAY.MODULE_15.ID;
WRITEW SDK_OVERLAY.MODULE_15.START;
WRITEW SDK_OVERLAY.MODULE_15.SIZE;
WRITEW SDK_OVERLAY.MODULE_15.BSS_SIZE;
WRITEW SDK_OVERLAY.MODULE_15.SINIT_START;
WRITEW SDK_OVERLAY.MODULE_15.SINIT_END;
- WRITEW SDK_OVERLAY_MODULE_15_ID;
+ WRITEW SDK_OVERLAY.MODULE_15.ID;
WRITEW 0;
- WRITEW SDK_OVERLAY_MODULE_16_ID;
+ WRITEW SDK_OVERLAY.MODULE_16.ID;
WRITEW SDK_OVERLAY.MODULE_16.START;
WRITEW SDK_OVERLAY.MODULE_16.SIZE;
WRITEW SDK_OVERLAY.MODULE_16.BSS_SIZE;
WRITEW SDK_OVERLAY.MODULE_16.SINIT_START;
WRITEW SDK_OVERLAY.MODULE_16.SINIT_END;
- WRITEW SDK_OVERLAY_MODULE_16_ID;
+ WRITEW SDK_OVERLAY.MODULE_16.ID;
WRITEW 0;
- WRITEW SDK_OVERLAY_MODULE_17_ID;
+ WRITEW SDK_OVERLAY.MODULE_17.ID;
WRITEW SDK_OVERLAY.MODULE_17.START;
WRITEW SDK_OVERLAY.MODULE_17.SIZE;
WRITEW SDK_OVERLAY.MODULE_17.BSS_SIZE;
WRITEW SDK_OVERLAY.MODULE_17.SINIT_START;
WRITEW SDK_OVERLAY.MODULE_17.SINIT_END;
- WRITEW SDK_OVERLAY_MODULE_17_ID;
+ WRITEW SDK_OVERLAY.MODULE_17.ID;
WRITEW 0;
- WRITEW SDK_OVERLAY_MODULE_18_ID;
+ WRITEW SDK_OVERLAY.MODULE_18.ID;
WRITEW SDK_OVERLAY.MODULE_18.START;
WRITEW SDK_OVERLAY.MODULE_18.SIZE;
WRITEW SDK_OVERLAY.MODULE_18.BSS_SIZE;
WRITEW SDK_OVERLAY.MODULE_18.SINIT_START;
WRITEW SDK_OVERLAY.MODULE_18.SINIT_END;
- WRITEW SDK_OVERLAY_MODULE_18_ID;
+ WRITEW SDK_OVERLAY.MODULE_18.ID;
WRITEW 0;
- WRITEW SDK_OVERLAY_MODULE_19_ID;
+ WRITEW SDK_OVERLAY.MODULE_19.ID;
WRITEW SDK_OVERLAY.MODULE_19.START;
WRITEW SDK_OVERLAY.MODULE_19.SIZE;
WRITEW SDK_OVERLAY.MODULE_19.BSS_SIZE;
WRITEW SDK_OVERLAY.MODULE_19.SINIT_START;
WRITEW SDK_OVERLAY.MODULE_19.SINIT_END;
- WRITEW SDK_OVERLAY_MODULE_19_ID;
+ WRITEW SDK_OVERLAY.MODULE_19.ID;
WRITEW 0;
- WRITEW SDK_OVERLAY_MODULE_20_ID;
+ WRITEW SDK_OVERLAY.MODULE_20.ID;
WRITEW SDK_OVERLAY.MODULE_20.START;
WRITEW SDK_OVERLAY.MODULE_20.SIZE;
WRITEW SDK_OVERLAY.MODULE_20.BSS_SIZE;
WRITEW SDK_OVERLAY.MODULE_20.SINIT_START;
WRITEW SDK_OVERLAY.MODULE_20.SINIT_END;
- WRITEW SDK_OVERLAY_MODULE_20_ID;
+ WRITEW SDK_OVERLAY.MODULE_20.ID;
WRITEW 0;
- WRITEW SDK_OVERLAY_MODULE_21_ID;
+ WRITEW SDK_OVERLAY.MODULE_21.ID;
WRITEW SDK_OVERLAY.MODULE_21.START;
WRITEW SDK_OVERLAY.MODULE_21.SIZE;
WRITEW SDK_OVERLAY.MODULE_21.BSS_SIZE;
WRITEW SDK_OVERLAY.MODULE_21.SINIT_START;
WRITEW SDK_OVERLAY.MODULE_21.SINIT_END;
- WRITEW SDK_OVERLAY_MODULE_21_ID;
+ WRITEW SDK_OVERLAY.MODULE_21.ID;
WRITEW 0;
- WRITEW SDK_OVERLAY_MODULE_22_ID;
+ WRITEW SDK_OVERLAY.MODULE_22.ID;
WRITEW SDK_OVERLAY.MODULE_22.START;
WRITEW SDK_OVERLAY.MODULE_22.SIZE;
WRITEW SDK_OVERLAY.MODULE_22.BSS_SIZE;
WRITEW SDK_OVERLAY.MODULE_22.SINIT_START;
WRITEW SDK_OVERLAY.MODULE_22.SINIT_END;
- WRITEW SDK_OVERLAY_MODULE_22_ID;
+ WRITEW SDK_OVERLAY.MODULE_22.ID;
WRITEW 0;
- WRITEW SDK_OVERLAY_MODULE_23_ID;
+ WRITEW SDK_OVERLAY.MODULE_23.ID;
WRITEW SDK_OVERLAY.MODULE_23.START;
WRITEW SDK_OVERLAY.MODULE_23.SIZE;
WRITEW SDK_OVERLAY.MODULE_23.BSS_SIZE;
WRITEW SDK_OVERLAY.MODULE_23.SINIT_START;
WRITEW SDK_OVERLAY.MODULE_23.SINIT_END;
- WRITEW SDK_OVERLAY_MODULE_23_ID;
+ WRITEW SDK_OVERLAY.MODULE_23.ID;
WRITEW 0;
- WRITEW SDK_OVERLAY_MODULE_24_ID;
+ WRITEW SDK_OVERLAY.MODULE_24.ID;
WRITEW SDK_OVERLAY.MODULE_24.START;
WRITEW SDK_OVERLAY.MODULE_24.SIZE;
WRITEW SDK_OVERLAY.MODULE_24.BSS_SIZE;
WRITEW SDK_OVERLAY.MODULE_24.SINIT_START;
WRITEW SDK_OVERLAY.MODULE_24.SINIT_END;
- WRITEW SDK_OVERLAY_MODULE_24_ID;
+ WRITEW SDK_OVERLAY.MODULE_24.ID;
WRITEW 0;
- WRITEW SDK_OVERLAY_MODULE_25_ID;
+ WRITEW SDK_OVERLAY.MODULE_25.ID;
WRITEW SDK_OVERLAY.MODULE_25.START;
WRITEW SDK_OVERLAY.MODULE_25.SIZE;
WRITEW SDK_OVERLAY.MODULE_25.BSS_SIZE;
WRITEW SDK_OVERLAY.MODULE_25.SINIT_START;
WRITEW SDK_OVERLAY.MODULE_25.SINIT_END;
- WRITEW SDK_OVERLAY_MODULE_25_ID;
+ WRITEW SDK_OVERLAY.MODULE_25.ID;
WRITEW 0;
- WRITEW SDK_OVERLAY_MODULE_26_ID;
+ WRITEW SDK_OVERLAY.MODULE_26.ID;
WRITEW SDK_OVERLAY.MODULE_26.START;
WRITEW SDK_OVERLAY.MODULE_26.SIZE;
WRITEW SDK_OVERLAY.MODULE_26.BSS_SIZE;
WRITEW SDK_OVERLAY.MODULE_26.SINIT_START;
WRITEW SDK_OVERLAY.MODULE_26.SINIT_END;
- WRITEW SDK_OVERLAY_MODULE_26_ID;
+ WRITEW SDK_OVERLAY.MODULE_26.ID;
WRITEW 0;
- WRITEW SDK_OVERLAY_MODULE_27_ID;
+ WRITEW SDK_OVERLAY.MODULE_27.ID;
WRITEW SDK_OVERLAY.MODULE_27.START;
WRITEW SDK_OVERLAY.MODULE_27.SIZE;
WRITEW SDK_OVERLAY.MODULE_27.BSS_SIZE;
WRITEW SDK_OVERLAY.MODULE_27.SINIT_START;
WRITEW SDK_OVERLAY.MODULE_27.SINIT_END;
- WRITEW SDK_OVERLAY_MODULE_27_ID;
+ WRITEW SDK_OVERLAY.MODULE_27.ID;
WRITEW 0;
- WRITEW SDK_OVERLAY_MODULE_28_ID;
+ WRITEW SDK_OVERLAY.MODULE_28.ID;
WRITEW SDK_OVERLAY.MODULE_28.START;
WRITEW SDK_OVERLAY.MODULE_28.SIZE;
WRITEW SDK_OVERLAY.MODULE_28.BSS_SIZE;
WRITEW SDK_OVERLAY.MODULE_28.SINIT_START;
WRITEW SDK_OVERLAY.MODULE_28.SINIT_END;
- WRITEW SDK_OVERLAY_MODULE_28_ID;
+ WRITEW SDK_OVERLAY.MODULE_28.ID;
WRITEW 0;
- WRITEW SDK_OVERLAY_MODULE_29_ID;
+ WRITEW SDK_OVERLAY.MODULE_29.ID;
WRITEW SDK_OVERLAY.MODULE_29.START;
WRITEW SDK_OVERLAY.MODULE_29.SIZE;
WRITEW SDK_OVERLAY.MODULE_29.BSS_SIZE;
WRITEW SDK_OVERLAY.MODULE_29.SINIT_START;
WRITEW SDK_OVERLAY.MODULE_29.SINIT_END;
- WRITEW SDK_OVERLAY_MODULE_29_ID;
+ WRITEW SDK_OVERLAY.MODULE_29.ID;
WRITEW 0;
- WRITEW SDK_OVERLAY_MODULE_30_ID;
+ WRITEW SDK_OVERLAY.MODULE_30.ID;
WRITEW SDK_OVERLAY.MODULE_30.START;
WRITEW SDK_OVERLAY.MODULE_30.SIZE;
WRITEW SDK_OVERLAY.MODULE_30.BSS_SIZE;
WRITEW SDK_OVERLAY.MODULE_30.SINIT_START;
WRITEW SDK_OVERLAY.MODULE_30.SINIT_END;
- WRITEW SDK_OVERLAY_MODULE_30_ID;
+ WRITEW SDK_OVERLAY.MODULE_30.ID;
WRITEW 0;
- WRITEW SDK_OVERLAY_MODULE_31_ID;
+ WRITEW SDK_OVERLAY.MODULE_31.ID;
WRITEW SDK_OVERLAY.MODULE_31.START;
WRITEW SDK_OVERLAY.MODULE_31.SIZE;
WRITEW SDK_OVERLAY.MODULE_31.BSS_SIZE;
WRITEW SDK_OVERLAY.MODULE_31.SINIT_START;
WRITEW SDK_OVERLAY.MODULE_31.SINIT_END;
- WRITEW SDK_OVERLAY_MODULE_31_ID;
+ WRITEW SDK_OVERLAY.MODULE_31.ID;
WRITEW 0;
- WRITEW SDK_OVERLAY_MODULE_32_ID;
+ WRITEW SDK_OVERLAY.MODULE_32.ID;
WRITEW SDK_OVERLAY.MODULE_32.START;
WRITEW SDK_OVERLAY.MODULE_32.SIZE;
WRITEW SDK_OVERLAY.MODULE_32.BSS_SIZE;
WRITEW SDK_OVERLAY.MODULE_32.SINIT_START;
WRITEW SDK_OVERLAY.MODULE_32.SINIT_END;
- WRITEW SDK_OVERLAY_MODULE_32_ID;
+ WRITEW SDK_OVERLAY.MODULE_32.ID;
WRITEW 0;
- WRITEW SDK_OVERLAY_MODULE_33_ID;
+ WRITEW SDK_OVERLAY.MODULE_33.ID;
WRITEW SDK_OVERLAY.MODULE_33.START;
WRITEW SDK_OVERLAY.MODULE_33.SIZE;
WRITEW SDK_OVERLAY.MODULE_33.BSS_SIZE;
WRITEW SDK_OVERLAY.MODULE_33.SINIT_START;
WRITEW SDK_OVERLAY.MODULE_33.SINIT_END;
- WRITEW SDK_OVERLAY_MODULE_33_ID;
+ WRITEW SDK_OVERLAY.MODULE_33.ID;
WRITEW 0;
- WRITEW SDK_OVERLAY_MODULE_34_ID;
+ WRITEW SDK_OVERLAY.MODULE_34.ID;
WRITEW SDK_OVERLAY.MODULE_34.START;
WRITEW SDK_OVERLAY.MODULE_34.SIZE;
WRITEW SDK_OVERLAY.MODULE_34.BSS_SIZE;
WRITEW SDK_OVERLAY.MODULE_34.SINIT_START;
WRITEW SDK_OVERLAY.MODULE_34.SINIT_END;
- WRITEW SDK_OVERLAY_MODULE_34_ID;
+ WRITEW SDK_OVERLAY.MODULE_34.ID;
WRITEW 0;
- WRITEW SDK_OVERLAY_MODULE_35_ID;
+ WRITEW SDK_OVERLAY.MODULE_35.ID;
WRITEW SDK_OVERLAY.MODULE_35.START;
WRITEW SDK_OVERLAY.MODULE_35.SIZE;
WRITEW SDK_OVERLAY.MODULE_35.BSS_SIZE;
WRITEW SDK_OVERLAY.MODULE_35.SINIT_START;
WRITEW SDK_OVERLAY.MODULE_35.SINIT_END;
- WRITEW SDK_OVERLAY_MODULE_35_ID;
+ WRITEW SDK_OVERLAY.MODULE_35.ID;
WRITEW 0;
- WRITEW SDK_OVERLAY_MODULE_36_ID;
+ WRITEW SDK_OVERLAY.MODULE_36.ID;
WRITEW SDK_OVERLAY.MODULE_36.START;
WRITEW SDK_OVERLAY.MODULE_36.SIZE;
WRITEW SDK_OVERLAY.MODULE_36.BSS_SIZE;
WRITEW SDK_OVERLAY.MODULE_36.SINIT_START;
WRITEW SDK_OVERLAY.MODULE_36.SINIT_END;
- WRITEW SDK_OVERLAY_MODULE_36_ID;
+ WRITEW SDK_OVERLAY.MODULE_36.ID;
WRITEW 0;
- WRITEW SDK_OVERLAY_MODULE_37_ID;
+ WRITEW SDK_OVERLAY.MODULE_37.ID;
WRITEW SDK_OVERLAY.MODULE_37.START;
WRITEW SDK_OVERLAY.MODULE_37.SIZE;
WRITEW SDK_OVERLAY.MODULE_37.BSS_SIZE;
WRITEW SDK_OVERLAY.MODULE_37.SINIT_START;
WRITEW SDK_OVERLAY.MODULE_37.SINIT_END;
- WRITEW SDK_OVERLAY_MODULE_37_ID;
+ WRITEW SDK_OVERLAY.MODULE_37.ID;
WRITEW 0;
- WRITEW SDK_OVERLAY_MODULE_38_ID;
+ WRITEW SDK_OVERLAY.MODULE_38.ID;
WRITEW SDK_OVERLAY.MODULE_38.START;
WRITEW SDK_OVERLAY.MODULE_38.SIZE;
WRITEW SDK_OVERLAY.MODULE_38.BSS_SIZE;
WRITEW SDK_OVERLAY.MODULE_38.SINIT_START;
WRITEW SDK_OVERLAY.MODULE_38.SINIT_END;
- WRITEW SDK_OVERLAY_MODULE_38_ID;
+ WRITEW SDK_OVERLAY.MODULE_38.ID;
WRITEW 0;
- WRITEW SDK_OVERLAY_MODULE_39_ID;
+ WRITEW SDK_OVERLAY.MODULE_39.ID;
WRITEW SDK_OVERLAY.MODULE_39.START;
WRITEW SDK_OVERLAY.MODULE_39.SIZE;
WRITEW SDK_OVERLAY.MODULE_39.BSS_SIZE;
WRITEW SDK_OVERLAY.MODULE_39.SINIT_START;
WRITEW SDK_OVERLAY.MODULE_39.SINIT_END;
- WRITEW SDK_OVERLAY_MODULE_39_ID;
+ WRITEW SDK_OVERLAY.MODULE_39.ID;
WRITEW 0;
- WRITEW SDK_OVERLAY_MODULE_40_ID;
+ WRITEW SDK_OVERLAY.MODULE_40.ID;
WRITEW SDK_OVERLAY.MODULE_40.START;
WRITEW SDK_OVERLAY.MODULE_40.SIZE;
WRITEW SDK_OVERLAY.MODULE_40.BSS_SIZE;
WRITEW SDK_OVERLAY.MODULE_40.SINIT_START;
WRITEW SDK_OVERLAY.MODULE_40.SINIT_END;
- WRITEW SDK_OVERLAY_MODULE_40_ID;
+ WRITEW SDK_OVERLAY.MODULE_40.ID;
WRITEW 0;
- WRITEW SDK_OVERLAY_MODULE_41_ID;
+ WRITEW SDK_OVERLAY.MODULE_41.ID;
WRITEW SDK_OVERLAY.MODULE_41.START;
WRITEW SDK_OVERLAY.MODULE_41.SIZE;
WRITEW SDK_OVERLAY.MODULE_41.BSS_SIZE;
WRITEW SDK_OVERLAY.MODULE_41.SINIT_START;
WRITEW SDK_OVERLAY.MODULE_41.SINIT_END;
- WRITEW SDK_OVERLAY_MODULE_41_ID;
+ WRITEW SDK_OVERLAY.MODULE_41.ID;
WRITEW 0;
- WRITEW SDK_OVERLAY_MODULE_42_ID;
+ WRITEW SDK_OVERLAY.MODULE_42.ID;
WRITEW SDK_OVERLAY.MODULE_42.START;
WRITEW SDK_OVERLAY.MODULE_42.SIZE;
WRITEW SDK_OVERLAY.MODULE_42.BSS_SIZE;
WRITEW SDK_OVERLAY.MODULE_42.SINIT_START;
WRITEW SDK_OVERLAY.MODULE_42.SINIT_END;
- WRITEW SDK_OVERLAY_MODULE_42_ID;
+ WRITEW SDK_OVERLAY.MODULE_42.ID;
WRITEW 0;
- WRITEW SDK_OVERLAY_MODULE_43_ID;
+ WRITEW SDK_OVERLAY.MODULE_43.ID;
WRITEW SDK_OVERLAY.MODULE_43.START;
WRITEW SDK_OVERLAY.MODULE_43.SIZE;
WRITEW SDK_OVERLAY.MODULE_43.BSS_SIZE;
WRITEW SDK_OVERLAY.MODULE_43.SINIT_START;
WRITEW SDK_OVERLAY.MODULE_43.SINIT_END;
- WRITEW SDK_OVERLAY_MODULE_43_ID;
+ WRITEW SDK_OVERLAY.MODULE_43.ID;
WRITEW 0;
- WRITEW SDK_OVERLAY_MODULE_44_ID;
+ WRITEW SDK_OVERLAY.MODULE_44.ID;
WRITEW SDK_OVERLAY.MODULE_44.START;
WRITEW SDK_OVERLAY.MODULE_44.SIZE;
WRITEW SDK_OVERLAY.MODULE_44.BSS_SIZE;
WRITEW SDK_OVERLAY.MODULE_44.SINIT_START;
WRITEW SDK_OVERLAY.MODULE_44.SINIT_END;
- WRITEW SDK_OVERLAY_MODULE_44_ID;
+ WRITEW SDK_OVERLAY.MODULE_44.ID;
WRITEW 0;
- WRITEW SDK_OVERLAY_MODULE_45_ID;
+ WRITEW SDK_OVERLAY.MODULE_45.ID;
WRITEW SDK_OVERLAY.MODULE_45.START;
WRITEW SDK_OVERLAY.MODULE_45.SIZE;
WRITEW SDK_OVERLAY.MODULE_45.BSS_SIZE;
WRITEW SDK_OVERLAY.MODULE_45.SINIT_START;
WRITEW SDK_OVERLAY.MODULE_45.SINIT_END;
- WRITEW SDK_OVERLAY_MODULE_45_ID;
+ WRITEW SDK_OVERLAY.MODULE_45.ID;
WRITEW 0;
- WRITEW SDK_OVERLAY_MODULE_46_ID;
+ WRITEW SDK_OVERLAY.MODULE_46.ID;
WRITEW SDK_OVERLAY.MODULE_46.START;
WRITEW SDK_OVERLAY.MODULE_46.SIZE;
WRITEW SDK_OVERLAY.MODULE_46.BSS_SIZE;
WRITEW SDK_OVERLAY.MODULE_46.SINIT_START;
WRITEW SDK_OVERLAY.MODULE_46.SINIT_END;
- WRITEW SDK_OVERLAY_MODULE_46_ID;
+ WRITEW SDK_OVERLAY.MODULE_46.ID;
WRITEW 0;
- WRITEW SDK_OVERLAY_MODULE_47_ID;
+ WRITEW SDK_OVERLAY.MODULE_47.ID;
WRITEW SDK_OVERLAY.MODULE_47.START;
WRITEW SDK_OVERLAY.MODULE_47.SIZE;
WRITEW SDK_OVERLAY.MODULE_47.BSS_SIZE;
WRITEW SDK_OVERLAY.MODULE_47.SINIT_START;
WRITEW SDK_OVERLAY.MODULE_47.SINIT_END;
- WRITEW SDK_OVERLAY_MODULE_47_ID;
+ WRITEW SDK_OVERLAY.MODULE_47.ID;
WRITEW 0;
- WRITEW SDK_OVERLAY_MODULE_48_ID;
+ WRITEW SDK_OVERLAY.MODULE_48.ID;
WRITEW SDK_OVERLAY.MODULE_48.START;
WRITEW SDK_OVERLAY.MODULE_48.SIZE;
WRITEW SDK_OVERLAY.MODULE_48.BSS_SIZE;
WRITEW SDK_OVERLAY.MODULE_48.SINIT_START;
WRITEW SDK_OVERLAY.MODULE_48.SINIT_END;
- WRITEW SDK_OVERLAY_MODULE_48_ID;
+ WRITEW SDK_OVERLAY.MODULE_48.ID;
WRITEW 0;
- WRITEW SDK_OVERLAY_MODULE_49_ID;
+ WRITEW SDK_OVERLAY.MODULE_49.ID;
WRITEW SDK_OVERLAY.MODULE_49.START;
WRITEW SDK_OVERLAY.MODULE_49.SIZE;
WRITEW SDK_OVERLAY.MODULE_49.BSS_SIZE;
WRITEW SDK_OVERLAY.MODULE_49.SINIT_START;
WRITEW SDK_OVERLAY.MODULE_49.SINIT_END;
- WRITEW SDK_OVERLAY_MODULE_49_ID;
+ WRITEW SDK_OVERLAY.MODULE_49.ID;
WRITEW 0;
- WRITEW SDK_OVERLAY_MODULE_50_ID;
+ WRITEW SDK_OVERLAY.MODULE_50.ID;
WRITEW SDK_OVERLAY.MODULE_50.START;
WRITEW SDK_OVERLAY.MODULE_50.SIZE;
WRITEW SDK_OVERLAY.MODULE_50.BSS_SIZE;
WRITEW SDK_OVERLAY.MODULE_50.SINIT_START;
WRITEW SDK_OVERLAY.MODULE_50.SINIT_END;
- WRITEW SDK_OVERLAY_MODULE_50_ID;
+ WRITEW SDK_OVERLAY.MODULE_50.ID;
WRITEW 0;
- WRITEW SDK_OVERLAY_MODULE_51_ID;
+ WRITEW SDK_OVERLAY.MODULE_51.ID;
WRITEW SDK_OVERLAY.MODULE_51.START;
WRITEW SDK_OVERLAY.MODULE_51.SIZE;
WRITEW SDK_OVERLAY.MODULE_51.BSS_SIZE;
WRITEW SDK_OVERLAY.MODULE_51.SINIT_START;
WRITEW SDK_OVERLAY.MODULE_51.SINIT_END;
- WRITEW SDK_OVERLAY_MODULE_51_ID;
+ WRITEW SDK_OVERLAY.MODULE_51.ID;
WRITEW 0;
- WRITEW SDK_OVERLAY_MODULE_52_ID;
+ WRITEW SDK_OVERLAY.MODULE_52.ID;
WRITEW SDK_OVERLAY.MODULE_52.START;
WRITEW SDK_OVERLAY.MODULE_52.SIZE;
WRITEW SDK_OVERLAY.MODULE_52.BSS_SIZE;
WRITEW SDK_OVERLAY.MODULE_52.SINIT_START;
WRITEW SDK_OVERLAY.MODULE_52.SINIT_END;
- WRITEW SDK_OVERLAY_MODULE_52_ID;
+ WRITEW SDK_OVERLAY.MODULE_52.ID;
WRITEW 0;
- WRITEW SDK_OVERLAY_MODULE_53_ID;
+ WRITEW SDK_OVERLAY.MODULE_53.ID;
WRITEW SDK_OVERLAY.MODULE_53.START;
WRITEW SDK_OVERLAY.MODULE_53.SIZE;
WRITEW SDK_OVERLAY.MODULE_53.BSS_SIZE;
WRITEW SDK_OVERLAY.MODULE_53.SINIT_START;
WRITEW SDK_OVERLAY.MODULE_53.SINIT_END;
- WRITEW SDK_OVERLAY_MODULE_53_ID;
+ WRITEW SDK_OVERLAY.MODULE_53.ID;
WRITEW 0;
- WRITEW SDK_OVERLAY_MODULE_54_ID;
+ WRITEW SDK_OVERLAY.MODULE_54.ID;
WRITEW SDK_OVERLAY.MODULE_54.START;
WRITEW SDK_OVERLAY.MODULE_54.SIZE;
WRITEW SDK_OVERLAY.MODULE_54.BSS_SIZE;
WRITEW SDK_OVERLAY.MODULE_54.SINIT_START;
WRITEW SDK_OVERLAY.MODULE_54.SINIT_END;
- WRITEW SDK_OVERLAY_MODULE_54_ID;
+ WRITEW SDK_OVERLAY.MODULE_54.ID;
+ WRITEW 0;
+
+ WRITEW SDK_OVERLAY.MODULE_55.ID;
+ WRITEW SDK_OVERLAY.MODULE_55.START;
+ WRITEW SDK_OVERLAY.MODULE_55.SIZE;
+ WRITEW SDK_OVERLAY.MODULE_55.BSS_SIZE;
+ WRITEW SDK_OVERLAY.MODULE_55.SINIT_START;
+ WRITEW SDK_OVERLAY.MODULE_55.SINIT_END;
+ WRITEW SDK_OVERLAY.MODULE_55.ID;
WRITEW 0;
- OVERLAY_TABLE(MODULE_55, 55)
OVERLAY_TABLE(MODULE_56, 56)
OVERLAY_TABLE(MODULE_57, 57)
OVERLAY_TABLE(MODULE_58, 58)
diff --git a/arm9/global.inc b/arm9/global.inc
index 3cf634cf..c6a5f055 100644
--- a/arm9/global.inc
+++ b/arm9/global.inc
@@ -5597,6 +5597,14 @@
.extern FUN_0202888C
.extern FUN_020288AC
.extern FUN_020294F4
+.extern FUN_02021C38
+.extern FUN_0202822C
+.extern FUN_020282E8
+.extern FUN_020283C0
+.extern FUN_020283E8
+.extern FUN_02033918
+.extern FUN_02096D68
+.extern FUN_02096E24
.extern FUN_0202B390
.extern FUN_0202B3F8
.extern FUN_0202BCF4
diff --git a/arm9/modules/55/asm/module_55.s b/arm9/modules/55/asm/module_55.s
new file mode 100644
index 00000000..46173b3f
--- /dev/null
+++ b/arm9/modules/55/asm/module_55.s
@@ -0,0 +1,5594 @@
+ .include "asm/macros.inc"
+ .include "global.inc"
+ .section .text
+ .balign 4, 0
+
+ thumb_func_start MOD55_021D74E0
+MOD55_021D74E0: ; 0x021D74E0
+ push {r4, lr}
+ add r4, r0, #0
+ bl MOD55_021D7BF0
+ add r0, r4, #0
+ bl MOD55_021D7C20
+ add r0, r4, #0
+ bl MOD55_021D7DA0
+ mov r0, #0x34
+ bl FUN_02053708
+ mov r1, #0xeb
+ lsl r1, r1, #2
+ str r0, [r4, r1]
+ pop {r4, pc}
+ .align 2, 0
+ thumb_func_end MOD55_021D74E0
+
+ thumb_func_start MOD55_021D7504
+MOD55_021D7504: ; 0x021D7504
+ push {r4, lr}
+ add r4, r0, #0
+ mov r0, #0
+ add r1, r0, #0
+ bl FUN_02015F10
+ bl FUN_02015F1C
+ bl FUN_0201E6D8
+ bl FUN_0201E740
+ mov r2, #1
+ lsl r2, r2, #0x1a
+ ldr r1, [r2]
+ ldr r0, _021D7560 ; =0xFFFFE0FF
+ and r1, r0
+ str r1, [r2]
+ ldr r2, _021D7564 ; =0x04001000
+ ldr r1, [r2]
+ and r0, r1
+ str r0, [r2]
+ mov r0, #4
+ mov r1, #8
+ bl FUN_0201669C
+ mov r0, #0x34
+ bl FUN_02016B94
+ str r0, [r4, #4]
+ bl MOD55_021D780C
+ ldr r0, [r4, #4]
+ bl MOD55_021D781C
+ add r0, r4, #0
+ bl MOD55_021D7AE0
+ ldr r0, _021D7568 ; =MOD55_021D77D0
+ add r1, r4, #0
+ bl FUN_02015F10
+ add r0, r4, #0
+ bl MOD55_021D74E0
+ pop {r4, pc}
+ .align 2, 0
+_021D7560: .word 0xFFFFE0FF
+_021D7564: .word 0x04001000
+_021D7568: .word MOD55_021D77D0
+ thumb_func_end MOD55_021D7504
+
+ thumb_func_start MOD55_021D756C
+MOD55_021D756C: ; 0x021D756C
+ push {r3, r4, r5, r6, lr}
+ sub sp, #0xc
+ add r5, r1, #0
+ ldr r1, [r5]
+ add r6, r0, #0
+ cmp r1, #0
+ beq _021D7580
+ cmp r1, #1
+ beq _021D75FC
+ b _021D760A
+_021D7580:
+ mov r0, #0
+ add r1, r0, #0
+ bl FUN_0200E3A0
+ mov r0, #1
+ mov r1, #0
+ bl FUN_0200E3A0
+ mov r0, #0
+ bl MOD55_021DA27C
+ mov r2, #1
+ mov r0, #3
+ mov r1, #0x34
+ lsl r2, r2, #0x12
+ bl FUN_0201681C
+ ldr r1, _021D7610 ; =0x0000041C
+ add r0, r6, #0
+ mov r2, #0x34
+ bl FUN_02006268
+ ldr r2, _021D7610 ; =0x0000041C
+ mov r1, #0
+ add r4, r0, #0
+ bl MI_CpuFill8
+ add r0, r6, #0
+ bl FUN_0200628C
+ str r0, [r4, #8]
+ add r0, r4, #0
+ bl MOD55_021D7994
+ mov r0, #6
+ str r0, [sp]
+ mov r0, #1
+ str r0, [sp, #4]
+ mov r0, #0x34
+ str r0, [sp, #8]
+ mov r0, #0
+ mov r1, #0x11
+ add r2, r1, #0
+ add r3, r0, #0
+ bl FUN_0200E1D0
+ add r0, r4, #0
+ bl MOD55_021D7504
+ add r0, r4, #0
+ bl MOD55_021D7EE4
+ add r0, r4, #0
+ bl MOD55_021D8044
+ mov r0, #1
+ bl MOD55_021DA27C
+ ldr r0, [r5]
+ add r0, r0, #1
+ str r0, [r5]
+ b _021D760A
+_021D75FC:
+ bl FUN_02006278
+ mov r0, #0
+ str r0, [r5]
+ add sp, #0xc
+ mov r0, #1
+ pop {r3, r4, r5, r6, pc}
+_021D760A:
+ mov r0, #0
+ add sp, #0xc
+ pop {r3, r4, r5, r6, pc}
+ .align 2, 0
+_021D7610: .word 0x0000041C
+ thumb_func_end MOD55_021D756C
+
+ thumb_func_start MOD55_021D7614
+MOD55_021D7614: ; 0x021D7614
+ push {r3, r4, r5, r6, lr}
+ sub sp, #0xc
+ add r5, r1, #0
+ ldr r1, [r5]
+ add r6, r0, #0
+ cmp r1, #0
+ beq _021D7628
+ cmp r1, #1
+ beq _021D76A4
+ b _021D76B2
+_021D7628:
+ mov r0, #0
+ add r1, r0, #0
+ bl FUN_0200E3A0
+ mov r0, #1
+ mov r1, #0
+ bl FUN_0200E3A0
+ mov r2, #1
+ mov r0, #3
+ mov r1, #0x34
+ lsl r2, r2, #0x12
+ bl FUN_0201681C
+ ldr r1, _021D76B8 ; =0x0000041C
+ add r0, r6, #0
+ mov r2, #0x34
+ bl FUN_02006268
+ ldr r2, _021D76B8 ; =0x0000041C
+ mov r1, #0
+ add r4, r0, #0
+ bl MI_CpuFill8
+ add r0, r6, #0
+ bl FUN_0200628C
+ str r0, [r4, #8]
+ add r0, r4, #0
+ bl MOD55_021D7994
+ mov r0, #0
+ bl MOD55_021DA27C
+ mov r0, #6
+ str r0, [sp]
+ mov r0, #1
+ str r0, [sp, #4]
+ mov r0, #0x34
+ str r0, [sp, #8]
+ mov r0, #0
+ mov r1, #0x11
+ add r2, r1, #0
+ add r3, r0, #0
+ bl FUN_0200E1D0
+ add r0, r4, #0
+ bl MOD55_021D7504
+ add r0, r4, #0
+ bl MOD55_021D7EE4
+ add r0, r4, #0
+ bl MOD55_021D8044
+ mov r0, #1
+ bl MOD55_021DA27C
+ ldr r0, [r5]
+ add r0, r0, #1
+ str r0, [r5]
+ b _021D76B2
+_021D76A4:
+ bl FUN_02006278
+ mov r0, #0
+ str r0, [r5]
+ add sp, #0xc
+ mov r0, #1
+ pop {r3, r4, r5, r6, pc}
+_021D76B2:
+ mov r0, #0
+ add sp, #0xc
+ pop {r3, r4, r5, r6, pc}
+ .align 2, 0
+_021D76B8: .word 0x0000041C
+ thumb_func_end MOD55_021D7614
+
+ thumb_func_start MOD55_021D76BC
+MOD55_021D76BC: ; 0x021D76BC
+ push {r3, r4, r5, lr}
+ add r5, r1, #0
+ bl FUN_02006278
+ ldr r1, [r5]
+ add r4, r0, #0
+ cmp r1, #0
+ beq _021D76D6
+ cmp r1, #1
+ beq _021D76E4
+ cmp r1, #2
+ beq _021D76FA
+ b _021D770C
+_021D76D6:
+ bl FUN_0200E308
+ cmp r0, #0
+ beq _021D770C
+ mov r0, #1
+ str r0, [r5]
+ b _021D770C
+_021D76E4:
+ mov r2, #0x3b
+ lsl r2, r2, #4
+ ldr r2, [r4, r2]
+ lsl r3, r2, #2
+ ldr r2, _021D771C ; =0x021DA4A0
+ ldr r2, [r2, r3]
+ cmp r2, #0
+ beq _021D770C
+ blx r2
+ str r0, [r5]
+ b _021D770C
+_021D76FA:
+ bl FUN_0200E308
+ cmp r0, #0
+ beq _021D770C
+ mov r0, #0
+ bl MOD55_021DA27C
+ mov r0, #1
+ pop {r3, r4, r5, pc}
+_021D770C:
+ add r4, #0xec
+ ldr r0, [r4]
+ cmp r0, #0
+ beq _021D7718
+ bl FUN_0201FDEC
+_021D7718:
+ mov r0, #0
+ pop {r3, r4, r5, pc}
+ .align 2, 0
+_021D771C: .word 0x021DA4A0
+ thumb_func_end MOD55_021D76BC
+
+ thumb_func_start MOD55_021D7720
+MOD55_021D7720: ; 0x021D7720
+ push {r3, r4, r5, r6, r7, lr}
+ add r6, r0, #0
+ mov r0, #0x8e
+ lsl r0, r0, #2
+ ldr r0, [r6, r0]
+ bl FUN_02009C0C
+ mov r0, #0x8a
+ lsl r0, r0, #2
+ ldr r0, [r6, r0]
+ bl FUN_02009C0C
+ mov r0, #0x8f
+ lsl r0, r0, #2
+ ldr r0, [r6, r0]
+ bl FUN_02009E04
+ mov r0, #0x8b
+ lsl r0, r0, #2
+ ldr r0, [r6, r0]
+ bl FUN_02009E04
+ mov r7, #0x86
+ mov r4, #0
+ add r5, r6, #0
+ lsl r7, r7, #2
+_021D7754:
+ ldr r0, [r5, r7]
+ bl FUN_02008E2C
+ add r4, r4, #1
+ add r5, r5, #4
+ cmp r4, #4
+ blt _021D7754
+ add r0, r6, #0
+ add r0, #0xec
+ ldr r0, [r0]
+ bl FUN_0201FD58
+ add r0, r6, #0
+ mov r1, #0
+ add r0, #0xec
+ str r1, [r0]
+ bl FUN_02009FA0
+ bl FUN_0201D12C
+ bl FUN_0201E08C
+ mov r0, #0xeb
+ lsl r0, r0, #2
+ ldr r0, [r6, r0]
+ bl FUN_02016A18
+ pop {r3, r4, r5, r6, r7, pc}
+ thumb_func_end MOD55_021D7720
+
+ thumb_func_start MOD55_021D778C
+MOD55_021D778C: ; 0x021D778C
+ push {r4, lr}
+ add r4, r0, #0
+ mov r0, #0
+ add r1, r0, #0
+ bl FUN_02015F10
+ add r0, r4, #0
+ bl MOD55_021D7720
+ add r0, r4, #0
+ bl MOD55_021D8140
+ ldr r0, [r4, #4]
+ bl MOD55_021D7AA4
+ pop {r4, pc}
+ thumb_func_end MOD55_021D778C
+
+ thumb_func_start MOD55_021D77AC
+MOD55_021D77AC: ; 0x021D77AC
+ push {r3, r4, r5, lr}
+ add r5, r0, #0
+ bl FUN_02006278
+ add r4, r0, #0
+ bl MOD55_021D778C
+ add r0, r4, #0
+ bl MOD55_021D7A38
+ add r0, r5, #0
+ bl FUN_0200627C
+ mov r0, #0x34
+ bl FUN_020168D0
+ mov r0, #1
+ pop {r3, r4, r5, pc}
+ thumb_func_end MOD55_021D77AC
+
+ thumb_func_start MOD55_021D77D0
+MOD55_021D77D0: ; 0x021D77D0
+ push {r4, lr}
+ add r4, r0, #0
+ add r0, #0xe0
+ ldr r0, [r0]
+ cmp r0, #0
+ beq _021D77E6
+ add r0, r4, #0
+ add r0, #0xdc
+ ldr r0, [r0]
+ bl FUN_020081C4
+_021D77E6:
+ ldr r0, [r4, #4]
+ bl FUN_0201AB60
+ bl FUN_0201C30C
+ bl FUN_02009F80
+ ldr r3, _021D7804 ; =0x027E0000
+ ldr r1, _021D7808 ; =0x00003FF8
+ mov r0, #1
+ ldr r2, [r3, r1]
+ orr r0, r2
+ str r0, [r3, r1]
+ pop {r4, pc}
+ nop
+_021D7804: .word 0x027E0000
+_021D7808: .word 0x00003FF8
+ thumb_func_end MOD55_021D77D0
+
+ thumb_func_start MOD55_021D780C
+MOD55_021D780C: ; 0x021D780C
+ ldr r3, _021D7814 ; =0x0201E66D
+ ldr r0, _021D7818 ; =0x021DA458
+ bx r3
+ nop
+_021D7814: .word 0x0201E66D
+_021D7818: .word 0x021DA458
+ thumb_func_end MOD55_021D780C
+
+ thumb_func_start MOD55_021D781C
+MOD55_021D781C: ; 0x021D781C
+ push {r4, r5, lr}
+ sub sp, #0x9c
+ ldr r5, _021D7974 ; =0x021DA2C8
+ add r3, sp, #0x8c
+ add r4, r0, #0
+ add r2, r3, #0
+ ldmia r5!, {r0, r1}
+ stmia r3!, {r0, r1}
+ ldmia r5!, {r0, r1}
+ stmia r3!, {r0, r1}
+ add r0, r2, #0
+ bl FUN_02016BBC
+ ldr r5, _021D7978 ; =0x021DA34C
+ add r3, sp, #0x70
+ ldmia r5!, {r0, r1}
+ add r2, r3, #0
+ stmia r3!, {r0, r1}
+ ldmia r5!, {r0, r1}
+ stmia r3!, {r0, r1}
+ ldmia r5!, {r0, r1}
+ stmia r3!, {r0, r1}
+ ldr r0, [r5]
+ mov r1, #0
+ str r0, [r3]
+ add r0, r4, #0
+ add r3, r1, #0
+ bl FUN_02016C18
+ mov r0, #0
+ mov r1, #0x20
+ add r2, r0, #0
+ mov r3, #0x34
+ bl FUN_02017F18
+ add r0, r4, #0
+ mov r1, #0
+ bl FUN_02018744
+ ldr r5, _021D797C ; =0x021DA368
+ add r3, sp, #0x54
+ ldmia r5!, {r0, r1}
+ add r2, r3, #0
+ stmia r3!, {r0, r1}
+ ldmia r5!, {r0, r1}
+ stmia r3!, {r0, r1}
+ ldmia r5!, {r0, r1}
+ stmia r3!, {r0, r1}
+ ldr r0, [r5]
+ mov r1, #1
+ str r0, [r3]
+ add r0, r4, #0
+ mov r3, #0
+ bl FUN_02016C18
+ mov r0, #1
+ mov r1, #0x20
+ mov r2, #0
+ mov r3, #0x34
+ bl FUN_02017F18
+ add r0, r4, #0
+ mov r1, #1
+ bl FUN_02018744
+ ldr r5, _021D7980 ; =0x021DA384
+ add r3, sp, #0x38
+ ldmia r5!, {r0, r1}
+ add r2, r3, #0
+ stmia r3!, {r0, r1}
+ ldmia r5!, {r0, r1}
+ stmia r3!, {r0, r1}
+ ldmia r5!, {r0, r1}
+ stmia r3!, {r0, r1}
+ ldr r0, [r5]
+ mov r1, #2
+ str r0, [r3]
+ add r0, r4, #0
+ mov r3, #0
+ bl FUN_02016C18
+ mov r0, #2
+ mov r1, #0x20
+ mov r2, #0
+ mov r3, #0x34
+ bl FUN_02017F18
+ add r0, r4, #0
+ mov r1, #2
+ bl FUN_02018744
+ ldr r5, _021D7984 ; =0x021DA3A0
+ add r3, sp, #0x1c
+ ldmia r5!, {r0, r1}
+ add r2, r3, #0
+ stmia r3!, {r0, r1}
+ ldmia r5!, {r0, r1}
+ stmia r3!, {r0, r1}
+ ldmia r5!, {r0, r1}
+ stmia r3!, {r0, r1}
+ ldr r0, [r5]
+ mov r1, #3
+ str r0, [r3]
+ add r0, r4, #0
+ mov r3, #0
+ bl FUN_02016C18
+ mov r0, #3
+ mov r1, #0x20
+ mov r2, #0
+ mov r3, #0x34
+ bl FUN_02017F18
+ add r0, r4, #0
+ mov r1, #3
+ bl FUN_02018744
+ ldr r5, _021D7988 ; =0x021DA3BC
+ add r3, sp, #0
+ ldmia r5!, {r0, r1}
+ add r2, r3, #0
+ stmia r3!, {r0, r1}
+ ldmia r5!, {r0, r1}
+ stmia r3!, {r0, r1}
+ ldmia r5!, {r0, r1}
+ stmia r3!, {r0, r1}
+ ldr r0, [r5]
+ mov r1, #4
+ str r0, [r3]
+ add r0, r4, #0
+ mov r3, #0
+ bl FUN_02016C18
+ add r0, r4, #0
+ mov r1, #4
+ bl FUN_02018744
+ mov r0, #0
+ mov r1, #0x20
+ add r2, r0, #0
+ mov r3, #0x34
+ bl FUN_02017F18
+ mov r0, #4
+ mov r1, #0x20
+ mov r2, #0
+ mov r3, #0x34
+ bl FUN_02017F18
+ mov r0, #0
+ mov r1, #3
+ bl FUN_020178BC
+ mov r0, #1
+ mov r1, #2
+ bl FUN_020178BC
+ mov r0, #3
+ mov r1, #1
+ bl FUN_020178BC
+ mov r0, #2
+ mov r1, #0
+ bl FUN_020178BC
+ ldr r0, _021D798C ; =0x04000050
+ mov r1, #0
+ strh r1, [r0]
+ ldr r0, _021D7990 ; =0x04001050
+ strh r1, [r0]
+ add sp, #0x9c
+ pop {r4, r5, pc}
+ .align 2, 0
+_021D7974: .word 0x021DA2C8
+_021D7978: .word 0x021DA34C
+_021D797C: .word 0x021DA368
+_021D7980: .word 0x021DA384
+_021D7984: .word 0x021DA3A0
+_021D7988: .word 0x021DA3BC
+_021D798C: .word 0x04000050
+_021D7990: .word 0x04001050
+ thumb_func_end MOD55_021D781C
+
+ thumb_func_start MOD55_021D7994
+MOD55_021D7994: ; 0x021D7994
+ push {r3, r4, r5, r6, r7, lr}
+ add r6, r0, #0
+ mov r0, #0x34
+ bl FUN_0200AA80
+ str r0, [r6, #0xc]
+ ldr r2, _021D7A34 ; =0x00000251
+ mov r0, #0
+ mov r1, #0x1a
+ mov r3, #0x34
+ bl FUN_0200A86C
+ str r0, [r6, #0x10]
+ mov r4, #0
+ add r5, r6, #0
+ mov r7, #0x10
+_021D79B4:
+ add r0, r7, #0
+ mov r1, #0x34
+ bl FUN_020219F4
+ str r0, [r5, #0x38]
+ add r4, r4, #1
+ add r5, r5, #4
+ cmp r4, #0x20
+ blt _021D79B4
+ mov r0, #0x10
+ mov r1, #0x34
+ bl FUN_020219F4
+ add r1, r6, #0
+ add r1, #0xd4
+ str r0, [r1]
+ mov r0, #0x1a
+ mov r1, #0x34
+ bl FUN_020219F4
+ add r1, r6, #0
+ add r1, #0xd8
+ str r0, [r1]
+ mov r0, #0xb4
+ mov r1, #0x34
+ bl FUN_020219F4
+ add r1, r6, #0
+ add r1, #0xbc
+ str r0, [r1]
+ mov r5, #0
+ add r4, r6, #0
+ mov r7, #0xb4
+_021D79F6:
+ add r0, r7, #0
+ mov r1, #0x34
+ bl FUN_020219F4
+ add r1, r4, #0
+ add r1, #0xc4
+ add r5, r5, #1
+ add r4, r4, #4
+ str r0, [r1]
+ cmp r5, #4
+ blt _021D79F6
+ mov r0, #0xb4
+ mov r1, #0x34
+ bl FUN_020219F4
+ add r1, r6, #0
+ add r1, #0xb8
+ str r0, [r1]
+ mov r0, #0x28
+ mov r1, #0x34
+ bl FUN_020219F4
+ add r1, r6, #0
+ add r1, #0xc0
+ str r0, [r1]
+ mov r0, #0x3b
+ mov r1, #0
+ lsl r0, r0, #4
+ str r1, [r6, r0]
+ pop {r3, r4, r5, r6, r7, pc}
+ nop
+_021D7A34: .word 0x00000251
+ thumb_func_end MOD55_021D7994
+
+ thumb_func_start MOD55_021D7A38
+MOD55_021D7A38: ; 0x021D7A38
+ push {r4, r5, r6, lr}
+ add r6, r0, #0
+ ldr r0, [r6, #0x10]
+ bl FUN_0200A8B8
+ ldr r0, [r6, #0xc]
+ bl FUN_0200AB18
+ mov r4, #0
+ add r5, r6, #0
+_021D7A4C:
+ ldr r0, [r5, #0x38]
+ bl FUN_02021A20
+ add r4, r4, #1
+ add r5, r5, #4
+ cmp r4, #0x20
+ blt _021D7A4C
+ add r0, r6, #0
+ add r0, #0xb8
+ ldr r0, [r0]
+ bl FUN_02021A20
+ add r0, r6, #0
+ add r0, #0xbc
+ ldr r0, [r0]
+ bl FUN_02021A20
+ add r0, r6, #0
+ add r0, #0xc0
+ ldr r0, [r0]
+ bl FUN_02021A20
+ mov r5, #0
+ add r4, r6, #0
+_021D7A7C:
+ add r0, r4, #0
+ add r0, #0xc4
+ ldr r0, [r0]
+ bl FUN_02021A20
+ add r5, r5, #1
+ add r4, r4, #4
+ cmp r5, #4
+ blt _021D7A7C
+ add r0, r6, #0
+ add r0, #0xd4
+ ldr r0, [r0]
+ bl FUN_02021A20
+ add r6, #0xd8
+ ldr r0, [r6]
+ bl FUN_02021A20
+ pop {r4, r5, r6, pc}
+ .align 2, 0
+ thumb_func_end MOD55_021D7A38
+
+ thumb_func_start MOD55_021D7AA4
+MOD55_021D7AA4: ; 0x021D7AA4
+ push {r4, lr}
+ add r4, r0, #0
+ mov r1, #5
+ bl FUN_020178A0
+ add r0, r4, #0
+ mov r1, #4
+ bl FUN_020178A0
+ add r0, r4, #0
+ mov r1, #3
+ bl FUN_020178A0
+ add r0, r4, #0
+ mov r1, #2
+ bl FUN_020178A0
+ add r0, r4, #0
+ mov r1, #1
+ bl FUN_020178A0
+ add r0, r4, #0
+ mov r1, #0
+ bl FUN_020178A0
+ add r0, r4, #0
+ bl FUN_02016A18
+ pop {r4, pc}
+ .align 2, 0
+ thumb_func_end MOD55_021D7AA4
+
+ thumb_func_start MOD55_021D7AE0
+MOD55_021D7AE0: ; 0x021D7AE0
+ push {r4, r5, lr}
+ sub sp, #0x14
+ add r5, r0, #0
+ ldr r4, [r5, #4]
+ mov r2, #0
+ str r2, [sp]
+ mov r0, #0x34
+ str r0, [sp, #4]
+ mov r0, #0x59
+ mov r1, #3
+ add r3, r2, #0
+ bl FUN_02006930
+ mov r3, #0
+ str r3, [sp]
+ mov r0, #0x34
+ str r0, [sp, #4]
+ mov r0, #0x59
+ mov r1, #3
+ mov r2, #4
+ bl FUN_02006930
+ mov r1, #0x1a
+ mov r0, #0
+ lsl r1, r1, #4
+ mov r2, #0x34
+ bl FUN_02002EEC
+ mov r1, #6
+ mov r0, #0
+ lsl r1, r1, #6
+ mov r2, #0x34
+ bl FUN_02002EEC
+ ldr r1, _021D7BE4 ; =0x000052D8
+ add r0, sp, #0x10
+ strh r1, [r0]
+ mov r1, #0x6f
+ add r0, sp, #0x10
+ lsl r1, r1, #2
+ mov r2, #2
+ bl GX_LoadBGPltt
+ mov r3, #0
+ str r3, [sp]
+ str r3, [sp, #4]
+ str r3, [sp, #8]
+ mov r0, #0x34
+ str r0, [sp, #0xc]
+ mov r0, #0x59
+ mov r1, #2
+ add r2, r4, #0
+ bl FUN_0200687C
+ mov r3, #0
+ str r3, [sp]
+ str r3, [sp, #4]
+ str r3, [sp, #8]
+ mov r0, #0x34
+ str r0, [sp, #0xc]
+ mov r0, #0x59
+ mov r1, #8
+ add r2, r4, #0
+ bl FUN_020068C8
+ mov r0, #0
+ str r0, [sp]
+ str r0, [sp, #4]
+ str r0, [sp, #8]
+ mov r0, #0x34
+ str r0, [sp, #0xc]
+ ldr r2, [r5, #4]
+ mov r0, #0x59
+ mov r1, #4
+ mov r3, #1
+ bl FUN_020068C8
+ mov r0, #0
+ str r0, [sp]
+ str r0, [sp, #4]
+ str r0, [sp, #8]
+ mov r0, #0x34
+ str r0, [sp, #0xc]
+ mov r0, #0x59
+ mov r1, #0xa
+ add r2, r4, #0
+ mov r3, #4
+ bl FUN_0200687C
+ mov r0, #0
+ str r0, [sp]
+ str r0, [sp, #4]
+ str r0, [sp, #8]
+ mov r0, #0x34
+ str r0, [sp, #0xc]
+ mov r0, #0x59
+ mov r1, #0xb
+ add r2, r4, #0
+ mov r3, #4
+ bl FUN_020068C8
+ ldr r0, [r5, #8]
+ bl LoadPlayerDataAddress
+ bl FUN_02025084
+ lsl r0, r0, #0x18
+ lsr r0, r0, #0x18
+ str r0, [sp]
+ mov r0, #0x34
+ str r0, [sp, #4]
+ ldr r2, _021D7BE8 ; =0x000001E2
+ add r0, r4, #0
+ mov r1, #2
+ mov r3, #0xa
+ bl FUN_0200CD68
+ mov r0, #0
+ str r0, [sp]
+ mov r0, #0x34
+ str r0, [sp, #4]
+ ldr r2, _021D7BEC ; =0x000001D9
+ add r0, r4, #0
+ mov r1, #2
+ mov r3, #0xb
+ bl FUN_0200CB00
+ add sp, #0x14
+ pop {r4, r5, pc}
+ nop
+_021D7BE4: .word 0x000052D8
+_021D7BE8: .word 0x000001E2
+_021D7BEC: .word 0x000001D9
+ thumb_func_end MOD55_021D7AE0
+
+ thumb_func_start MOD55_021D7BF0
+MOD55_021D7BF0: ; 0x021D7BF0
+ push {r4, lr}
+ sub sp, #0x10
+ ldr r4, _021D7C1C ; =0x021DA2E8
+ add r3, sp, #0
+ add r2, r3, #0
+ ldmia r4!, {r0, r1}
+ stmia r3!, {r0, r1}
+ ldmia r4!, {r0, r1}
+ stmia r3!, {r0, r1}
+ add r0, r2, #0
+ bl FUN_0201D040
+ mov r0, #0x14
+ mov r1, #0x34
+ bl FUN_0201E00C
+ bl FUN_0201D168
+ bl FUN_0201E0BC
+ add sp, #0x10
+ pop {r4, pc}
+ .align 2, 0
+_021D7C1C: .word 0x021DA2E8
+ thumb_func_end MOD55_021D7BF0
+
+ thumb_func_start MOD55_021D7C20
+MOD55_021D7C20: ; 0x021D7C20
+ push {r4, r5, r6, r7, lr}
+ sub sp, #0x14
+ add r5, r0, #0
+ bl FUN_020B0FC0
+ mov r0, #0
+ str r0, [sp]
+ mov r1, #0x7e
+ str r1, [sp, #4]
+ str r0, [sp, #8]
+ mov r3, #0x20
+ str r3, [sp, #0xc]
+ mov r2, #0x34
+ str r2, [sp, #0x10]
+ add r2, r0, #0
+ bl FUN_02009EAC
+ add r1, r5, #0
+ mov r0, #0x1e
+ add r1, #0xf0
+ mov r2, #0x34
+ bl FUN_02008C9C
+ add r1, r5, #0
+ add r1, #0xec
+ str r0, [r1]
+ add r0, r5, #0
+ mov r2, #1
+ add r0, #0xf0
+ mov r1, #0
+ lsl r2, r2, #0x14
+ bl FUN_02008D24
+ mov r7, #0x86
+ mov r6, #0
+ add r4, r5, #0
+ lsl r7, r7, #2
+_021D7C6A:
+ mov r0, #2
+ add r1, r6, #0
+ mov r2, #0x34
+ bl FUN_02008DEC
+ str r0, [r4, r7]
+ add r6, r6, #1
+ add r4, r4, #4
+ cmp r6, #4
+ blt _021D7C6A
+ mov r3, #1
+ str r3, [sp]
+ str r3, [sp, #4]
+ mov r0, #0x34
+ str r0, [sp, #8]
+ mov r0, #0x86
+ lsl r0, r0, #2
+ ldr r0, [r5, r0]
+ mov r1, #0x56
+ mov r2, #9
+ bl FUN_02008F34
+ mov r1, #0x8e
+ lsl r1, r1, #2
+ str r0, [r5, r1]
+ mov r3, #0
+ str r3, [sp]
+ mov r0, #1
+ str r0, [sp, #4]
+ mov r0, #0x34
+ sub r1, #0x20
+ str r0, [sp, #8]
+ ldr r0, [r5, r1]
+ mov r1, #0x59
+ mov r2, #9
+ bl FUN_02008F34
+ mov r1, #0x8a
+ lsl r1, r1, #2
+ str r0, [r5, r1]
+ mov r0, #1
+ str r0, [sp]
+ str r0, [sp, #4]
+ mov r0, #5
+ str r0, [sp, #8]
+ mov r0, #0x34
+ sub r1, #0xc
+ str r0, [sp, #0xc]
+ ldr r0, [r5, r1]
+ mov r1, #0x56
+ mov r2, #7
+ mov r3, #0
+ bl FUN_02008FEC
+ mov r1, #0x8f
+ lsl r1, r1, #2
+ str r0, [r5, r1]
+ mov r3, #0
+ str r3, [sp]
+ mov r0, #1
+ str r0, [sp, #4]
+ mov r0, #5
+ str r0, [sp, #8]
+ mov r0, #0x34
+ sub r1, #0x20
+ str r0, [sp, #0xc]
+ ldr r0, [r5, r1]
+ mov r1, #0x59
+ mov r2, #3
+ bl FUN_02008FEC
+ mov r1, #0x8b
+ lsl r1, r1, #2
+ str r0, [r5, r1]
+ mov r3, #1
+ str r3, [sp]
+ mov r0, #2
+ str r0, [sp, #4]
+ mov r0, #0x34
+ sub r1, #0xc
+ str r0, [sp, #8]
+ ldr r0, [r5, r1]
+ mov r1, #0x56
+ mov r2, #0xa
+ bl FUN_020090AC
+ mov r1, #9
+ lsl r1, r1, #6
+ str r0, [r5, r1]
+ mov r3, #0
+ str r3, [sp]
+ mov r0, #2
+ str r0, [sp, #4]
+ mov r0, #0x34
+ sub r1, #0x20
+ str r0, [sp, #8]
+ ldr r0, [r5, r1]
+ mov r1, #0x59
+ mov r2, #1
+ bl FUN_020090AC
+ mov r1, #0x23
+ lsl r1, r1, #4
+ str r0, [r5, r1]
+ mov r3, #1
+ str r3, [sp]
+ mov r0, #3
+ str r0, [sp, #4]
+ mov r0, #0x34
+ sub r1, #0xc
+ str r0, [sp, #8]
+ ldr r0, [r5, r1]
+ mov r1, #0x56
+ mov r2, #0xb
+ bl FUN_020090AC
+ mov r1, #0x91
+ lsl r1, r1, #2
+ str r0, [r5, r1]
+ mov r2, #0
+ str r2, [sp]
+ mov r0, #3
+ str r0, [sp, #4]
+ mov r0, #0x34
+ sub r1, #0x20
+ str r0, [sp, #8]
+ ldr r0, [r5, r1]
+ mov r1, #0x59
+ add r3, r2, #0
+ bl FUN_020090AC
+ mov r1, #0x8d
+ lsl r1, r1, #2
+ str r0, [r5, r1]
+ add r0, r1, #4
+ ldr r0, [r5, r0]
+ bl FUN_02009A50
+ mov r0, #0x8a
+ lsl r0, r0, #2
+ ldr r0, [r5, r0]
+ bl FUN_02009A50
+ mov r0, #0x8f
+ lsl r0, r0, #2
+ ldr r0, [r5, r0]
+ bl FUN_02009CF0
+ mov r0, #0x8b
+ lsl r0, r0, #2
+ ldr r0, [r5, r0]
+ bl FUN_02009CF0
+ add sp, #0x14
+ pop {r4, r5, r6, r7, pc}
+ thumb_func_end MOD55_021D7C20
+
+ thumb_func_start MOD55_021D7DA0
+MOD55_021D7DA0: ; 0x021D7DA0
+ push {r4, r5, r6, r7, lr}
+ sub sp, #0x5c
+ mov r1, #0
+ add r5, r0, #0
+ str r1, [sp]
+ sub r0, r1, #1
+ str r0, [sp, #4]
+ str r0, [sp, #8]
+ str r1, [sp, #0xc]
+ mov r2, #0x86
+ str r1, [sp, #0x10]
+ lsl r2, r2, #2
+ ldr r0, [r5, r2]
+ add r3, r1, #0
+ str r0, [sp, #0x14]
+ add r0, r2, #4
+ ldr r0, [r5, r0]
+ str r0, [sp, #0x18]
+ add r0, r2, #0
+ add r0, #8
+ ldr r0, [r5, r0]
+ str r0, [sp, #0x1c]
+ add r0, r2, #0
+ add r0, #0xc
+ ldr r0, [r5, r0]
+ add r2, #0x30
+ str r0, [sp, #0x20]
+ str r1, [sp, #0x24]
+ add r0, r5, r2
+ add r2, r1, #0
+ str r1, [sp, #0x28]
+ bl FUN_02008AA4
+ mov r1, #1
+ mov r3, #0x86
+ str r1, [sp]
+ sub r0, r1, #2
+ str r0, [sp, #4]
+ str r0, [sp, #8]
+ mov r0, #0
+ str r0, [sp, #0xc]
+ str r0, [sp, #0x10]
+ lsl r3, r3, #2
+ ldr r2, [r5, r3]
+ str r2, [sp, #0x14]
+ add r2, r3, #4
+ ldr r2, [r5, r2]
+ str r2, [sp, #0x18]
+ add r2, r3, #0
+ add r2, #8
+ ldr r2, [r5, r2]
+ str r2, [sp, #0x1c]
+ add r2, r3, #0
+ add r2, #0xc
+ ldr r2, [r5, r2]
+ add r3, #0x54
+ str r2, [sp, #0x20]
+ str r0, [sp, #0x24]
+ str r0, [sp, #0x28]
+ add r0, r5, r3
+ add r2, r1, #0
+ add r3, r1, #0
+ bl FUN_02008AA4
+ add r0, r5, #0
+ add r0, #0xec
+ ldr r0, [r0]
+ mov r4, #0
+ str r0, [sp, #0x2c]
+ mov r0, #0x9b
+ lsl r0, r0, #2
+ add r0, r5, r0
+ str r0, [sp, #0x30]
+ mov r0, #1
+ lsl r0, r0, #0xc
+ mov r7, #0x62
+ str r4, [sp, #0x3c]
+ str r0, [sp, #0x40]
+ str r0, [sp, #0x44]
+ str r0, [sp, #0x48]
+ add r0, sp, #0x2c
+ strh r4, [r0, #0x20]
+ mov r0, #1
+ str r0, [sp, #0x50]
+ str r0, [sp, #0x54]
+ mov r0, #0x34
+ str r0, [sp, #0x58]
+ mov r0, #0x92
+ lsl r0, r0, #2
+ lsl r7, r7, #0xc
+ add r6, r5, r0
+_021D7E56:
+ asr r0, r4, #1
+ lsr r0, r0, #0x1e
+ add r0, r4, r0
+ asr r1, r0, #2
+ mov r0, #0x78
+ mul r0, r1
+ add r0, #0x16
+ lsl r0, r0, #0xc
+ str r0, [sp, #0x34]
+ lsr r2, r4, #0x1f
+ lsl r1, r4, #0x1e
+ sub r1, r1, r2
+ mov r0, #0x1e
+ ror r1, r0
+ add r0, r2, r1
+ lsl r0, r0, #5
+ add r0, #0x2b
+ lsl r0, r0, #0xc
+ str r0, [sp, #0x38]
+ cmp r4, #8
+ bne _021D7E8C
+ mov r0, #6
+ lsl r0, r0, #0xc
+ str r0, [sp, #0x34]
+ str r7, [sp, #0x38]
+ str r6, [sp, #0x30]
+ b _021D7E9A
+_021D7E8C:
+ cmp r4, #9
+ bne _021D7E9A
+ mov r0, #0xf9
+ lsl r0, r0, #0xc
+ str r0, [sp, #0x34]
+ str r7, [sp, #0x38]
+ str r6, [sp, #0x30]
+_021D7E9A:
+ add r0, sp, #0x2c
+ bl FUN_0201FE94
+ mov r1, #0x29
+ lsl r1, r1, #4
+ str r0, [r5, r1]
+ add r0, r4, #0
+ sub r0, #8
+ cmp r0, #1
+ bhi _021D7EB8
+ add r0, r1, #0
+ ldr r0, [r5, r0]
+ mov r1, #1
+ bl FUN_020200BC
+_021D7EB8:
+ mov r0, #0x29
+ lsl r0, r0, #4
+ ldr r0, [r5, r0]
+ mov r1, #2
+ bl FUN_02020238
+ mov r0, #0x29
+ lsl r0, r0, #4
+ ldr r0, [r5, r0]
+ mov r1, #0
+ bl FUN_020200A0
+ add r4, r4, #1
+ add r5, r5, #4
+ cmp r4, #0xa
+ blt _021D7E56
+ mov r0, #0x10
+ mov r1, #1
+ bl FUN_0201E6E4
+ add sp, #0x5c
+ pop {r4, r5, r6, r7, pc}
+ thumb_func_end MOD55_021D7DA0
+
+ thumb_func_start MOD55_021D7EE4
+MOD55_021D7EE4: ; 0x021D7EE4
+ push {r4, r5, r6, r7, lr}
+ sub sp, #0x1c
+ add r5, r0, #0
+ mov r0, #0xe6
+ lsl r0, r0, #2
+ add r0, r5, r0
+ bl FUN_02019048
+ cmp r0, #0
+ beq _021D7F02
+ mov r0, #0xe6
+ lsl r0, r0, #2
+ add r0, r5, r0
+ bl FUN_02019178
+_021D7F02:
+ mov r0, #0
+ str r0, [sp]
+ mov r0, #0xd
+ str r0, [sp, #4]
+ mov r2, #3
+ str r2, [sp, #8]
+ str r0, [sp, #0xc]
+ ldr r0, _021D8038 ; =0x00000171
+ mov r1, #0xe6
+ str r0, [sp, #0x10]
+ lsl r1, r1, #2
+ ldr r0, [r5, #4]
+ add r1, r5, r1
+ mov r3, #1
+ bl FUN_02019064
+ mov r0, #0xe6
+ lsl r0, r0, #2
+ add r0, r5, r0
+ mov r1, #0
+ bl FUN_02019620
+ add r2, r5, #0
+ add r2, #0xc0
+ ldr r0, [r5, #0x10]
+ ldr r2, [r2]
+ mov r1, #0
+ bl FUN_0200A8E0
+ mov r0, #4
+ str r0, [sp]
+ mov r0, #0xff
+ str r0, [sp, #4]
+ ldr r0, _021D803C ; =0x000F0E00
+ add r2, r5, #0
+ str r0, [sp, #8]
+ mov r3, #0
+ mov r0, #0xe6
+ lsl r0, r0, #2
+ str r3, [sp, #0xc]
+ add r2, #0xc0
+ ldr r2, [r2]
+ add r0, r5, r0
+ mov r1, #1
+ bl FUN_0201BDE0
+ mov r0, #0xe6
+ lsl r0, r0, #2
+ add r0, r5, r0
+ bl FUN_02019220
+ mov r6, #0
+ mov r0, #0xd2
+ lsl r0, r0, #2
+ add r4, r5, r0
+ str r6, [sp, #0x18]
+ str r6, [sp, #0x14]
+ add r7, r5, #0
+_021D7F76:
+ add r0, r4, #0
+ bl FUN_02019048
+ cmp r0, #0
+ beq _021D7F86
+ add r0, r4, #0
+ bl FUN_02019178
+_021D7F86:
+ ldr r0, [sp, #0x14]
+ ldr r1, [sp, #0x18]
+ add r0, r0, #5
+ lsl r0, r0, #0x18
+ lsr r0, r0, #0x18
+ str r0, [sp]
+ mov r0, #0x15
+ str r0, [sp, #4]
+ mov r0, #2
+ str r0, [sp, #8]
+ mov r0, #0xd
+ str r0, [sp, #0xc]
+ ldr r0, _021D8038 ; =0x00000171
+ add r1, #0x3c
+ sub r0, r0, r1
+ lsl r0, r0, #0x10
+ lsr r0, r0, #0x10
+ str r0, [sp, #0x10]
+ ldr r0, [r5, #4]
+ add r1, r4, #0
+ mov r2, #3
+ mov r3, #7
+ bl FUN_02019064
+ add r0, r4, #0
+ mov r1, #0
+ bl FUN_02019620
+ cmp r6, #2
+ bne _021D7FF4
+ ldr r0, [r5, #8]
+ bl FUN_020238F4
+ add r2, r0, #0
+ ldr r0, [r5, #0xc]
+ mov r1, #0
+ bl FUN_0200ABC0
+ add r2, r5, #0
+ add r2, #0xb8
+ ldr r0, [r5, #0x10]
+ ldr r2, [r2]
+ add r1, r6, #1
+ bl FUN_0200A8E0
+ add r1, r7, #0
+ add r2, r5, #0
+ add r1, #0xc4
+ add r2, #0xb8
+ ldr r0, [r5, #0xc]
+ ldr r1, [r1]
+ ldr r2, [r2]
+ bl FUN_0200B7B8
+ b _021D8002
+_021D7FF4:
+ add r2, r7, #0
+ add r2, #0xc4
+ ldr r0, [r5, #0x10]
+ ldr r2, [r2]
+ add r1, r6, #1
+ bl FUN_0200A8E0
+_021D8002:
+ ldr r0, _021D8040 ; =0x00010200
+ add r1, r7, #0
+ str r0, [sp]
+ add r1, #0xc4
+ ldr r1, [r1]
+ add r0, r4, #0
+ mov r2, #0xff
+ mov r3, #0x90
+ bl MOD55_021D80F0
+ add r0, r4, #0
+ bl FUN_02019220
+ ldr r0, [sp, #0x18]
+ add r6, r6, #1
+ add r0, #0x3c
+ str r0, [sp, #0x18]
+ ldr r0, [sp, #0x14]
+ add r4, #0x10
+ add r0, r0, #5
+ add r7, r7, #4
+ str r0, [sp, #0x14]
+ cmp r6, #4
+ blt _021D7F76
+ add sp, #0x1c
+ pop {r4, r5, r6, r7, pc}
+ nop
+_021D8038: .word 0x00000171
+_021D803C: .word 0x000F0E00
+_021D8040: .word 0x00010200
+ thumb_func_end MOD55_021D7EE4
+
+ thumb_func_start MOD55_021D8044
+MOD55_021D8044: ; 0x021D8044
+ push {r4, r5, r6, r7, lr}
+ sub sp, #0x14
+ ldr r1, _021D80E8 ; =0x021DA298
+ str r0, [sp]
+ ldrb r2, [r1, #8]
+ add r0, sp, #0x10
+ strb r2, [r0]
+ ldrb r2, [r1, #9]
+ strb r2, [r0, #1]
+ ldrb r2, [r1, #0xa]
+ ldrb r1, [r1, #0xb]
+ strb r2, [r0, #2]
+ strb r1, [r0, #3]
+ ldr r0, [sp]
+ mov r1, #1
+ ldr r0, [r0, #4]
+ bl FUN_0201886C
+ mov ip, r0
+ mov r1, #0xf2
+ ldr r0, [sp]
+ lsl r1, r1, #2
+ ldrb r0, [r0, r1]
+ str r0, [sp, #0xc]
+ mov r0, #0
+ str r0, [sp, #8]
+_021D8078:
+ ldr r1, [sp, #0xc]
+ ldr r0, [sp, #8]
+ cmp r1, r0
+ bne _021D8086
+ mov r3, #1
+ lsl r3, r3, #0xc
+ b _021D8088
+_021D8086:
+ mov r3, #0
+_021D8088:
+ add r1, sp, #0x10
+ ldrb r7, [r1, #1]
+ ldrb r0, [r1, #3]
+ add r0, r7, r0
+ str r0, [sp, #4]
+ cmp r7, r0
+ bge _021D80C6
+ ldrb r2, [r1]
+ ldrb r1, [r1, #2]
+ lsl r0, r7, #5
+ ldr r4, _021D80EC ; =0x00000FFF
+ add r6, r2, r0
+_021D80A0:
+ mov r0, #0
+ cmp r1, #0
+ ble _021D80BC
+ lsl r5, r6, #1
+ mov r2, ip
+ add r2, r2, r5
+_021D80AC:
+ ldrh r5, [r2]
+ add r0, r0, #1
+ and r5, r4
+ add r5, r3, r5
+ strh r5, [r2]
+ add r2, r2, #2
+ cmp r0, r1
+ blt _021D80AC
+_021D80BC:
+ ldr r0, [sp, #4]
+ add r7, r7, #1
+ add r6, #0x20
+ cmp r7, r0
+ blt _021D80A0
+_021D80C6:
+ add r0, sp, #0x10
+ ldrb r1, [r0, #1]
+ add r1, r1, #5
+ strb r1, [r0, #1]
+ ldr r0, [sp, #8]
+ add r0, r0, #1
+ str r0, [sp, #8]
+ cmp r0, #4
+ blt _021D8078
+ ldr r0, [sp]
+ mov r1, #1
+ ldr r0, [r0, #4]
+ bl FUN_02017CD0
+ add sp, #0x14
+ pop {r4, r5, r6, r7, pc}
+ nop
+_021D80E8: .word 0x021DA298
+_021D80EC: .word 0x00000FFF
+ thumb_func_end MOD55_021D8044
+
+ thumb_func_start MOD55_021D80F0
+MOD55_021D80F0: ; 0x021D80F0
+ push {r3, r4, r5, r6, r7, lr}
+ sub sp, #0x10
+ add r5, r0, #0
+ mov r0, #0
+ add r4, r2, #0
+ add r7, r3, #0
+ add r2, r0, #0
+ add r6, r1, #0
+ bl FUN_02002E14
+ sub r1, r7, r0
+ lsr r0, r1, #0x1f
+ add r0, r1, r0
+ ldr r1, [sp, #0x28]
+ asr r3, r0, #1
+ cmp r1, #0
+ bne _021D8128
+ mov r0, #1
+ str r0, [sp]
+ str r4, [sp, #4]
+ mov r1, #0
+ add r0, r5, #0
+ add r2, r6, #0
+ str r1, [sp, #8]
+ bl FUN_0201BD84
+ add sp, #0x10
+ pop {r3, r4, r5, r6, r7, pc}
+_021D8128:
+ mov r0, #1
+ str r0, [sp]
+ str r4, [sp, #4]
+ str r1, [sp, #8]
+ mov r1, #0
+ add r0, r5, #0
+ add r2, r6, #0
+ str r1, [sp, #0xc]
+ bl FUN_0201BDE0
+ add sp, #0x10
+ pop {r3, r4, r5, r6, r7, pc}
+ thumb_func_end MOD55_021D80F0
+
+ thumb_func_start MOD55_021D8140
+MOD55_021D8140: ; 0x021D8140
+ push {r4, r5, r6, lr}
+ add r6, r0, #0
+ mov r0, #0xae
+ lsl r0, r0, #2
+ mov r4, #0
+ add r5, r6, r0
+_021D814C:
+ add r0, r5, #0
+ bl FUN_02019048
+ cmp r0, #0
+ beq _021D815C
+ add r0, r5, #0
+ bl FUN_02019178
+_021D815C:
+ add r4, r4, #1
+ add r5, #0x10
+ cmp r4, #8
+ blt _021D814C
+ mov r0, #0xd2
+ lsl r0, r0, #2
+ mov r5, #0
+ add r4, r6, r0
+_021D816C:
+ add r0, r4, #0
+ bl FUN_02019048
+ cmp r0, #0
+ beq _021D817C
+ add r0, r4, #0
+ bl FUN_02019178
+_021D817C:
+ add r5, r5, #1
+ add r4, #0x10
+ cmp r5, #4
+ blt _021D816C
+ mov r0, #0xce
+ lsl r0, r0, #2
+ add r0, r6, r0
+ bl FUN_02019048
+ cmp r0, #0
+ beq _021D819C
+ mov r0, #0xce
+ lsl r0, r0, #2
+ add r0, r6, r0
+ bl FUN_02019178
+_021D819C:
+ mov r0, #0xe6
+ lsl r0, r0, #2
+ add r0, r6, r0
+ bl FUN_02019048
+ cmp r0, #0
+ beq _021D81B4
+ mov r0, #0xe6
+ lsl r0, r0, #2
+ add r0, r6, r0
+ bl FUN_02019178
+_021D81B4:
+ mov r0, #0xe2
+ lsl r0, r0, #2
+ add r0, r6, r0
+ bl FUN_02019048
+ cmp r0, #0
+ beq _021D81CC
+ mov r0, #0xe2
+ lsl r0, r0, #2
+ add r0, r6, r0
+ bl FUN_02019178
+_021D81CC:
+ pop {r4, r5, r6, pc}
+ .align 2, 0
+ thumb_func_end MOD55_021D8140
+
+ thumb_func_start MOD55_021D81D0
+MOD55_021D81D0: ; 0x021D81D0
+ mov r2, #0x3b
+ mov r3, #1
+ lsl r2, r2, #4
+ str r3, [r0, r2]
+ add r0, r1, #0
+ bx lr
+ thumb_func_end MOD55_021D81D0
+
+ thumb_func_start MOD55_021D81DC
+MOD55_021D81DC: ; 0x021D81DC
+ push {r3, r4, r5, lr}
+ add r4, r0, #0
+ add r5, r1, #0
+ bl FUN_0200E308
+ cmp r0, #0
+ bne _021D81EE
+ add r0, r5, #0
+ pop {r3, r4, r5, pc}
+_021D81EE:
+ ldr r2, _021D82B8 ; =0x021C48B8
+ mov r1, #1
+ ldr r0, [r2, #0x48]
+ tst r1, r0
+ beq _021D824C
+ ldr r0, _021D82BC ; =0x000005DC
+ bl FUN_020054C8
+ mov r0, #0xf2
+ lsl r0, r0, #2
+ ldrb r1, [r4, r0]
+ cmp r1, #3
+ bhi _021D82B2
+ add r1, r1, r1
+ add r1, pc
+ ldrh r1, [r1, #6]
+ lsl r1, r1, #0x10
+ asr r1, r1, #0x10
+ add pc, r1
+_021D8214: ; jump table
+ .short _021D821C - _021D8214 - 2 ; case 0
+ .short _021D8234 - _021D8214 - 2 ; case 1
+ .short _021D823C - _021D8214 - 2 ; case 2
+ .short _021D8244 - _021D8214 - 2 ; case 3
+_021D821C:
+ mov r2, #0
+ strb r2, [r4, r0]
+ add r1, r0, #3
+ strb r2, [r4, r1]
+ add r1, r0, #1
+ strb r2, [r4, r1]
+ add r1, r0, #2
+ strb r2, [r4, r1]
+ mov r1, #2
+ sub r0, #0x18
+ str r1, [r4, r0]
+ b _021D82B2
+_021D8234:
+ mov r1, #7
+ sub r0, #0x18
+ str r1, [r4, r0]
+ b _021D82B2
+_021D823C:
+ mov r1, #0x12
+ sub r0, #0x18
+ str r1, [r4, r0]
+ b _021D82B2
+_021D8244:
+ mov r1, #0x11
+ sub r0, #0x18
+ str r1, [r4, r0]
+ b _021D82B2
+_021D824C:
+ mov r1, #2
+ tst r0, r1
+ beq _021D8262
+ ldr r0, _021D82BC ; =0x000005DC
+ bl FUN_020054C8
+ mov r0, #0x3b
+ mov r1, #0x11
+ lsl r0, r0, #4
+ str r1, [r4, r0]
+ b _021D82B2
+_021D8262:
+ ldr r1, [r2, #0x4c]
+ mov r0, #0x40
+ tst r0, r1
+ beq _021D828C
+ mov r0, #0xf2
+ lsl r0, r0, #2
+ ldrb r0, [r4, r0]
+ cmp r0, #0
+ beq _021D82B2
+ ldr r0, _021D82BC ; =0x000005DC
+ bl FUN_020054C8
+ mov r0, #0xf2
+ lsl r0, r0, #2
+ ldrb r1, [r4, r0]
+ sub r1, r1, #1
+ strb r1, [r4, r0]
+ add r0, r4, #0
+ bl MOD55_021D8044
+ b _021D82B2
+_021D828C:
+ mov r0, #0x80
+ tst r0, r1
+ beq _021D82B2
+ mov r0, #0xf2
+ lsl r0, r0, #2
+ ldrb r0, [r4, r0]
+ cmp r0, #3
+ bhs _021D82B2
+ ldr r0, _021D82BC ; =0x000005DC
+ bl FUN_020054C8
+ mov r0, #0xf2
+ lsl r0, r0, #2
+ ldrb r1, [r4, r0]
+ add r1, r1, #1
+ strb r1, [r4, r0]
+ add r0, r4, #0
+ bl MOD55_021D8044
+_021D82B2:
+ add r0, r5, #0
+ pop {r3, r4, r5, pc}
+ nop
+_021D82B8: .word 0x021C48B8
+_021D82BC: .word 0x000005DC
+ thumb_func_end MOD55_021D81DC
+
+ thumb_func_start MOD55_021D82C0
+MOD55_021D82C0: ; 0x021D82C0
+ push {r3, r4, r5, r6, r7, lr}
+ sub sp, #0x10
+ add r7, r0, #0
+ ldr r0, [r7, #8]
+ str r1, [sp, #0xc]
+ bl FUN_020286EC
+ mov r6, #0
+ add r4, r0, #0
+ add r5, r6, #0
+_021D82D4:
+ add r0, r4, #0
+ add r1, r5, #0
+ bl FUN_0202842C
+ cmp r0, #0
+ bne _021D82E2
+ mov r6, #1
+_021D82E2:
+ add r5, r5, #1
+ cmp r5, #0x20
+ blt _021D82D4
+ cmp r6, #0
+ beq _021D8308
+ mov r0, #6
+ str r0, [sp]
+ mov r0, #1
+ str r0, [sp, #4]
+ mov r0, #0x34
+ str r0, [sp, #8]
+ mov r0, #0
+ mov r1, #0x10
+ add r2, r1, #0
+ add r3, r0, #0
+ bl FUN_0200E1D0
+ mov r1, #8
+ b _021D8312
+_021D8308:
+ add r0, r7, #0
+ mov r1, #0x1d
+ bl MOD55_021DA0A4
+ mov r1, #0xf
+_021D8312:
+ mov r0, #0x3b
+ lsl r0, r0, #4
+ str r1, [r7, r0]
+ ldr r0, [sp, #0xc]
+ add sp, #0x10
+ pop {r3, r4, r5, r6, r7, pc}
+ .align 2, 0
+ thumb_func_end MOD55_021D82C0
+
+ thumb_func_start MOD55_021D8320
+MOD55_021D8320: ; 0x021D8320
+ push {r3, r4, r5, lr}
+ add r5, r0, #0
+ add r4, r1, #0
+ bl FUN_0200E308
+ cmp r0, #0
+ beq _021D8366
+ mov r0, #0
+ bl MOD55_021DA27C
+ add r0, r5, #0
+ bl MOD55_021D778C
+ ldr r0, [r5, #8]
+ bl LoadPlayerDataAddress
+ mov r1, #7
+ str r0, [sp]
+ mov r0, #0x34
+ mov r2, #0
+ add r3, r1, #0
+ bl FUN_02077A84
+ str r0, [r5]
+ ldr r0, _021D836C ; =0x020FA5FC
+ ldr r1, [r5]
+ mov r2, #0x34
+ bl FUN_02006234
+ mov r1, #0x3d
+ lsl r1, r1, #4
+ str r0, [r5, r1]
+ mov r0, #9
+ sub r1, #0x20
+ str r0, [r5, r1]
+_021D8366:
+ add r0, r4, #0
+ pop {r3, r4, r5, pc}
+ nop
+_021D836C: .word 0x020FA5FC
+ thumb_func_end MOD55_021D8320
+
+ thumb_func_start MOD55_021D8370
+MOD55_021D8370: ; 0x021D8370
+ push {r4, r5, lr}
+ sub sp, #0xc
+ add r5, r0, #0
+ mov r0, #0x3d
+ lsl r0, r0, #4
+ ldr r0, [r5, r0]
+ add r4, r1, #0
+ bl FUN_02006290
+ cmp r0, #0
+ beq _021D83FC
+ mov r0, #0x3d
+ lsl r0, r0, #4
+ ldr r0, [r5, r0]
+ bl FUN_02006260
+ ldr r1, [r5]
+ ldr r0, [r1, #0x14]
+ cmp r0, #0
+ bne _021D83A8
+ add r0, r5, #0
+ add r0, #0xd4
+ ldr r0, [r0]
+ ldr r1, [r1, #0x18]
+ bl FUN_02021A74
+ mov r1, #0xa
+ b _021D83F0
+_021D83A8:
+ mov r0, #0
+ add r1, r0, #0
+ bl FUN_0200E3A0
+ mov r0, #1
+ mov r1, #0
+ bl FUN_0200E3A0
+ mov r0, #0
+ bl MOD55_021DA27C
+ mov r0, #6
+ str r0, [sp]
+ mov r0, #1
+ str r0, [sp, #4]
+ mov r0, #0x34
+ str r0, [sp, #8]
+ mov r0, #0
+ mov r1, #0x11
+ add r2, r1, #0
+ add r3, r0, #0
+ bl FUN_0200E1D0
+ add r0, r5, #0
+ bl MOD55_021D7504
+ add r0, r5, #0
+ bl MOD55_021D7EE4
+ add r0, r5, #0
+ bl MOD55_021D8044
+ mov r0, #1
+ bl MOD55_021DA27C
+ mov r1, #6
+_021D83F0:
+ mov r0, #0x3b
+ lsl r0, r0, #4
+ str r1, [r5, r0]
+ ldr r0, [r5]
+ bl FUN_02077AC4
+_021D83FC:
+ add r0, r4, #0
+ add sp, #0xc
+ pop {r4, r5, pc}
+ .align 2, 0
+ thumb_func_end MOD55_021D8370
+
+ thumb_func_start MOD55_021D8404
+MOD55_021D8404: ; 0x021D8404
+ push {r3, r4, r5, lr}
+ add r5, r0, #0
+ ldr r0, [r5, #8]
+ add r4, r1, #0
+ bl LoadPlayerDataAddress
+ str r0, [sp]
+ mov r0, #0x34
+ mov r1, #4
+ mov r2, #0
+ mov r3, #0xc
+ bl FUN_02077A84
+ str r0, [r5]
+ ldr r0, _021D843C ; =0x020FA5FC
+ ldr r1, [r5]
+ mov r2, #0x34
+ bl FUN_02006234
+ mov r1, #0x3d
+ lsl r1, r1, #4
+ str r0, [r5, r1]
+ mov r0, #0xb
+ sub r1, #0x20
+ str r0, [r5, r1]
+ add r0, r4, #0
+ pop {r3, r4, r5, pc}
+ nop
+_021D843C: .word 0x020FA5FC
+ thumb_func_end MOD55_021D8404
+
+ thumb_func_start MOD55_021D8440
+MOD55_021D8440: ; 0x021D8440
+ push {r4, r5, lr}
+ sub sp, #0xc
+ add r5, r0, #0
+ mov r0, #0x3d
+ lsl r0, r0, #4
+ ldr r0, [r5, r0]
+ add r4, r1, #0
+ bl FUN_02006290
+ cmp r0, #0
+ beq _021D84C2
+ mov r0, #0x3d
+ lsl r0, r0, #4
+ ldr r0, [r5, r0]
+ bl FUN_02006260
+ add r0, r5, #0
+ ldr r1, [r5]
+ add r0, #0xd8
+ ldr r0, [r0]
+ ldr r1, [r1, #0x18]
+ bl FUN_02021A74
+ ldr r0, [r5]
+ bl FUN_02077AC4
+ mov r0, #0
+ add r1, r0, #0
+ bl FUN_0200E3A0
+ mov r0, #1
+ mov r1, #0
+ bl FUN_0200E3A0
+ mov r0, #0
+ bl MOD55_021DA27C
+ mov r0, #6
+ str r0, [sp]
+ mov r0, #1
+ str r0, [sp, #4]
+ mov r0, #0x34
+ str r0, [sp, #8]
+ mov r0, #0
+ mov r1, #0x11
+ add r2, r1, #0
+ add r3, r0, #0
+ bl FUN_0200E1D0
+ add r0, r5, #0
+ bl MOD55_021D7504
+ add r0, r5, #0
+ bl MOD55_021D7EE4
+ add r0, r5, #0
+ bl MOD55_021D8044
+ mov r0, #1
+ bl MOD55_021DA27C
+ mov r0, #0x3b
+ mov r1, #0xc
+ lsl r0, r0, #4
+ str r1, [r5, r0]
+_021D84C2:
+ add r0, r4, #0
+ add sp, #0xc
+ pop {r4, r5, pc}
+ thumb_func_end MOD55_021D8440
+
+ thumb_func_start MOD55_021D84C8
+MOD55_021D84C8: ; 0x021D84C8
+ push {r3, r4, r5, r6, r7, lr}
+ sub sp, #8
+ add r5, r0, #0
+ add r6, r1, #0
+ bl FUN_0200E308
+ cmp r0, #0
+ beq _021D853C
+ add r0, r5, #0
+ add r0, #0xd8
+ ldr r0, [r0]
+ add r1, sp, #4
+ bl FUN_02021C38
+ str r0, [sp]
+ ldr r0, [sp, #4]
+ add r7, r1, #0
+ cmp r0, #0
+ beq _021D8534
+ mov r0, #0x34
+ bl FUN_02023928
+ add r4, r0, #0
+ add r0, r5, #0
+ add r0, #0xd4
+ ldr r0, [r0]
+ bl FUN_02021F2C
+ add r1, r0, #0
+ add r0, r4, #0
+ bl FUN_0202395C
+ ldr r0, [r5, #0xc]
+ mov r1, #0
+ add r2, r4, #0
+ bl FUN_0200ABC0
+ ldr r1, [sp]
+ add r0, r5, #0
+ add r2, r7, #0
+ bl MOD55_021D93F8
+ add r0, r5, #0
+ mov r1, #0x19
+ bl MOD55_021DA0A4
+ add r0, r4, #0
+ bl FUN_02016A18
+ mov r0, #0x3b
+ mov r1, #0xd
+ lsl r0, r0, #4
+ str r1, [r5, r0]
+ b _021D853C
+_021D8534:
+ mov r0, #0x3b
+ mov r1, #0xf
+ lsl r0, r0, #4
+ str r1, [r5, r0]
+_021D853C:
+ add r0, r6, #0
+ add sp, #8
+ pop {r3, r4, r5, r6, r7, pc}
+ .align 2, 0
+ thumb_func_end MOD55_021D84C8
+
+ thumb_func_start MOD55_021D8544
+MOD55_021D8544: ; 0x021D8544
+ push {r3, r4, r5, lr}
+ add r5, r0, #0
+ add r0, #0xe4
+ ldr r0, [r0]
+ add r4, r1, #0
+ lsl r0, r0, #0x18
+ lsr r0, r0, #0x18
+ bl FUN_0201BD70
+ cmp r0, #0
+ bne _021D8578
+ mov r0, #0x34
+ str r0, [sp]
+ ldr r0, [r5, #4]
+ ldr r1, _021D857C ; =0x021DA2AC
+ ldr r2, _021D8580 ; =0x000001D9
+ mov r3, #0xb
+ bl FUN_02002198
+ add r1, r5, #0
+ add r1, #0xe8
+ str r0, [r1]
+ mov r0, #0x3b
+ mov r1, #0xe
+ lsl r0, r0, #4
+ str r1, [r5, r0]
+_021D8578:
+ add r0, r4, #0
+ pop {r3, r4, r5, pc}
+ .align 2, 0
+_021D857C: .word 0x021DA2AC
+_021D8580: .word 0x000001D9
+ thumb_func_end MOD55_021D8544
+
+ thumb_func_start MOD55_021D8584
+MOD55_021D8584: ; 0x021D8584
+ push {r4, r5, r6, r7, lr}
+ sub sp, #0xc
+ add r5, r0, #0
+ add r0, #0xe8
+ str r1, [sp]
+ ldr r0, [r0]
+ mov r1, #0x34
+ bl FUN_020021AC
+ mov r1, #0
+ mvn r1, r1
+ cmp r0, r1
+ bne _021D85A4
+ ldr r0, [sp]
+ add sp, #0xc
+ pop {r4, r5, r6, r7, pc}
+_021D85A4:
+ cmp r0, #0
+ bne _021D866C
+ ldr r0, [r5, #8]
+ bl FUN_020286EC
+ str r0, [sp, #4]
+ mov r4, #0
+_021D85B2:
+ ldr r0, [sp, #4]
+ add r1, r4, #0
+ bl FUN_0202842C
+ cmp r0, #0
+ bne _021D8666
+ add r0, r5, #0
+ add r0, #0xd8
+ ldr r0, [r0]
+ add r1, sp, #8
+ bl FUN_02021C38
+ add r7, r0, #0
+ ldr r0, [sp, #4]
+ add r6, r1, #0
+ bl FUN_02028228
+ bl FUN_02096D68
+ eor r1, r6
+ eor r0, r7
+ orr r0, r1
+ bne _021D85E4
+ mov r0, #0
+ str r0, [sp, #8]
+_021D85E4:
+ ldr r0, [sp, #8]
+ cmp r0, #0
+ beq _021D8650
+ ldr r0, [r5, #8]
+ add r1, r4, #0
+ add r2, r7, #0
+ add r3, r6, #0
+ bl MOD55_021DA224
+ cmp r0, #0
+ bne _021D8616
+ add r2, r5, #0
+ add r2, #0xd4
+ ldr r0, [sp, #4]
+ ldr r2, [r2]
+ add r1, r4, #0
+ bl FUN_020283C0
+ ldr r0, [sp, #4]
+ add r1, r4, #0
+ mov r2, #8
+ mov r3, #2
+ bl FUN_020282E8
+ b _021D866C
+_021D8616:
+ mov r1, #0
+ mvn r1, r1
+ cmp r0, r1
+ bne _021D8634
+ add r0, r5, #0
+ mov r1, #0x1a
+ bl MOD55_021DA0A4
+ mov r0, #0x3b
+ mov r1, #0xf
+ lsl r0, r0, #4
+ str r1, [r5, r0]
+ ldr r0, [sp]
+ add sp, #0xc
+ pop {r4, r5, r6, r7, pc}
+_021D8634:
+ sub r1, r1, #1
+ cmp r0, r1
+ bne _021D8666
+ add r0, r5, #0
+ mov r1, #0x1e
+ bl MOD55_021DA0A4
+ mov r0, #0x3b
+ mov r1, #0xf
+ lsl r0, r0, #4
+ str r1, [r5, r0]
+ ldr r0, [sp]
+ add sp, #0xc
+ pop {r4, r5, r6, r7, pc}
+_021D8650:
+ add r0, r5, #0
+ mov r1, #0x1a
+ bl MOD55_021DA0A4
+ mov r0, #0x3b
+ mov r1, #0xf
+ lsl r0, r0, #4
+ str r1, [r5, r0]
+ ldr r0, [sp]
+ add sp, #0xc
+ pop {r4, r5, r6, r7, pc}
+_021D8666:
+ add r4, r4, #1
+ cmp r4, #0x20
+ blt _021D85B2
+_021D866C:
+ add r0, r5, #0
+ bl MOD55_021DA214
+ mov r0, #0x3b
+ mov r1, #6
+ lsl r0, r0, #4
+ str r1, [r5, r0]
+ ldr r0, [sp]
+ add sp, #0xc
+ pop {r4, r5, r6, r7, pc}
+ thumb_func_end MOD55_021D8584
+
+ thumb_func_start MOD55_021D8680
+MOD55_021D8680: ; 0x021D8680
+ mov r2, #0x3b
+ mov r3, #0x10
+ lsl r2, r2, #4
+ str r3, [r0, r2]
+ add r0, r1, #0
+ bx lr
+ thumb_func_end MOD55_021D8680
+
+ thumb_func_start MOD55_021D868C
+MOD55_021D868C: ; 0x021D868C
+ push {r3, r4, r5, lr}
+ add r5, r0, #0
+ add r0, #0xe4
+ ldr r0, [r0]
+ add r4, r1, #0
+ lsl r0, r0, #0x18
+ lsr r0, r0, #0x18
+ bl FUN_0201BD70
+ cmp r0, #0
+ bne _021D86CA
+ ldr r0, _021D86D0 ; =0x021C48B8
+ ldr r1, [r0, #0x48]
+ mov r0, #1
+ tst r0, r1
+ beq _021D86CA
+ mov r0, #0xce
+ lsl r0, r0, #2
+ add r0, r5, r0
+ mov r1, #0
+ bl FUN_0200D0E0
+ mov r0, #0xce
+ lsl r0, r0, #2
+ add r0, r5, r0
+ bl FUN_02019570
+ mov r0, #0x3b
+ mov r1, #6
+ lsl r0, r0, #4
+ str r1, [r5, r0]
+_021D86CA:
+ add r0, r4, #0
+ pop {r3, r4, r5, pc}
+ nop
+_021D86D0: .word 0x021C48B8
+ thumb_func_end MOD55_021D868C
+
+ thumb_func_start MOD55_021D86D4
+MOD55_021D86D4: ; 0x021D86D4
+ push {r3, r4, r5, r6, r7, lr}
+ sub sp, #0x40
+ ldr r1, _021D88C4 ; =0x021DA298
+ str r0, [sp]
+ ldrb r2, [r1]
+ add r0, sp, #0x28
+ strb r2, [r0, #0x14]
+ ldrb r2, [r1, #1]
+ strb r2, [r0, #0x15]
+ ldrb r2, [r1, #2]
+ strb r2, [r0, #0x16]
+ ldrb r2, [r1, #3]
+ strb r2, [r0, #0x17]
+ ldrb r2, [r1, #4]
+ strb r2, [r0, #0x10]
+ ldrb r2, [r1, #5]
+ strb r2, [r0, #0x11]
+ ldrb r2, [r1, #6]
+ strb r2, [r0, #0x12]
+ ldrb r1, [r1, #7]
+ strb r1, [r0, #0x13]
+ ldr r0, [sp]
+ mov r1, #1
+ ldr r0, [r0, #4]
+ bl FUN_0201886C
+ str r0, [sp, #0x24]
+ mov r1, #0xf2
+ ldr r0, [sp]
+ lsl r1, r1, #2
+ ldrb r3, [r0, r1]
+ mov r0, #0x1d
+ lsr r2, r3, #0x1f
+ lsl r1, r3, #0x1d
+ sub r1, r1, r2
+ ror r1, r0
+ add r0, r2, r1
+ str r0, [sp, #0x20]
+ lsr r0, r3, #3
+ str r0, [sp, #0xc]
+ ldr r0, [sp]
+ ldr r0, [r0, #8]
+ bl FUN_020286EC
+ ldr r1, _021D88C4 ; =0x021DA298
+ str r0, [sp, #0x18]
+ ldrh r2, [r1, #0x1c]
+ add r0, sp, #0x28
+ strh r2, [r0, #8]
+ ldrh r2, [r1, #0x1e]
+ strh r2, [r0, #0xa]
+ ldrh r2, [r1, #0x20]
+ strh r2, [r0, #0xc]
+ ldrh r2, [r1, #0x22]
+ strh r2, [r0, #0xe]
+ ldrh r2, [r1, #0xc]
+ strh r2, [r0]
+ ldrh r2, [r1, #0xe]
+ strh r2, [r0, #2]
+ ldrh r2, [r1, #0x10]
+ strh r2, [r0, #4]
+ ldrh r1, [r1, #0x12]
+ strh r1, [r0, #6]
+ mov r0, #0
+ str r0, [sp, #0x1c]
+ ldr r0, [sp, #0xc]
+ lsl r1, r0, #3
+ ldr r0, [sp]
+ add r0, r0, r1
+ str r0, [sp, #0x14]
+_021D8760:
+ ldr r1, [sp, #0x14]
+ ldr r0, [sp, #0x18]
+ ldrb r1, [r1, #0x18]
+ mov r2, #8
+ sub r1, r1, #1
+ bl FUN_0202822C
+ ldr r1, [sp, #0x14]
+ ldrb r1, [r1, #0x18]
+ cmp r1, #0
+ beq _021D877E
+ cmp r0, #2
+ beq _021D877E
+ add r3, sp, #0x28
+ b _021D8780
+_021D877E:
+ add r3, sp, #0x30
+_021D8780:
+ add r1, sp, #0x28
+ ldrb r7, [r1, #0x11]
+ ldrb r0, [r1, #0x13]
+ add r0, r7, r0
+ str r0, [sp, #0x10]
+ cmp r7, r0
+ bge _021D87BE
+ ldrb r2, [r1, #0x10]
+ ldrb r4, [r1, #0x12]
+ lsl r0, r7, #5
+ add r2, r2, r0
+_021D8796:
+ add r0, r2, #0
+ mov r1, #0
+ cmp r4, #0
+ ble _021D87B4
+ ldr r5, [sp, #0x24]
+ lsl r6, r2, #1
+ add r6, r5, r6
+_021D87A4:
+ ldrh r5, [r3]
+ add r1, r1, #1
+ add r3, r3, #2
+ strh r5, [r6]
+ add r6, r6, #2
+ add r0, r0, #1
+ cmp r1, r4
+ blt _021D87A4
+_021D87B4:
+ ldr r0, [sp, #0x10]
+ add r7, r7, #1
+ add r2, #0x20
+ cmp r7, r0
+ blt _021D8796
+_021D87BE:
+ add r1, sp, #0x28
+ ldrb r0, [r1, #0x11]
+ add r0, r0, #4
+ strb r0, [r1, #0x11]
+ ldr r0, [sp, #0x1c]
+ cmp r0, #3
+ bne _021D87D4
+ mov r0, #5
+ strb r0, [r1, #0x11]
+ mov r0, #0x11
+ strb r0, [r1, #0x10]
+_021D87D4:
+ ldr r0, [sp, #0x14]
+ add r0, r0, #1
+ str r0, [sp, #0x14]
+ ldr r0, [sp, #0x1c]
+ add r0, r0, #1
+ str r0, [sp, #0x1c]
+ cmp r0, #8
+ blt _021D8760
+ mov r0, #0x3f
+ mov r4, #0x17
+ mov r3, #0
+ mov r7, #0x16
+ mov r2, #2
+ lsl r0, r0, #0xa
+_021D87F0:
+ ldr r5, [sp, #0xc]
+ add r1, r4, #0
+ add r1, #0x20
+ cmp r3, r5
+ bne _021D87FE
+ add r5, r2, #0
+ b _021D8800
+_021D87FE:
+ add r5, r7, #0
+_021D8800:
+ ldr r6, [sp, #0x24]
+ lsl r1, r1, #1
+ ldrh r6, [r6, r1]
+ add r3, r3, #1
+ add r4, r4, #2
+ and r6, r0
+ add r6, r5, r6
+ ldr r5, [sp, #0x24]
+ cmp r3, #4
+ strh r6, [r5, r1]
+ blt _021D87F0
+ ldr r1, _021D88C8 ; =0x000003CB
+ ldr r0, [sp]
+ ldrb r0, [r0, r1]
+ cmp r0, #0
+ beq _021D8824
+ mov r0, #8
+ str r0, [sp, #0x20]
+_021D8824:
+ mov r0, #0
+ str r0, [sp, #8]
+_021D8828:
+ ldr r1, [sp, #0x20]
+ ldr r0, [sp, #8]
+ cmp r1, r0
+ bne _021D8836
+ mov r4, #1
+ lsl r4, r4, #0xc
+ b _021D8838
+_021D8836:
+ mov r4, #0
+_021D8838:
+ add r0, sp, #0x28
+ ldrb r1, [r0, #0x15]
+ ldrb r2, [r0, #0x17]
+ str r1, [sp, #4]
+ add r1, r1, r2
+ ldr r2, [sp, #4]
+ mov ip, r1
+ cmp r2, r1
+ bge _021D8884
+ ldrb r2, [r0, #0x14]
+ ldr r1, [sp, #4]
+ ldrb r0, [r0, #0x16]
+ lsl r1, r1, #5
+ ldr r6, _021D88CC ; =0x00000FFF
+ add r7, r2, r1
+_021D8856:
+ add r2, r7, #0
+ mov r3, #0
+ cmp r0, #0
+ ble _021D8876
+ ldr r1, [sp, #0x24]
+ lsl r5, r7, #1
+ add r1, r1, r5
+_021D8864:
+ ldrh r5, [r1]
+ add r3, r3, #1
+ add r2, r2, #1
+ and r5, r6
+ add r5, r4, r5
+ strh r5, [r1]
+ add r1, r1, #2
+ cmp r3, r0
+ blt _021D8864
+_021D8876:
+ ldr r1, [sp, #4]
+ add r7, #0x20
+ add r2, r1, #1
+ mov r1, ip
+ str r2, [sp, #4]
+ cmp r2, r1
+ blt _021D8856
+_021D8884:
+ add r1, sp, #0x28
+ ldrb r0, [r1, #0x15]
+ add r0, r0, #4
+ strb r0, [r1, #0x15]
+ ldr r0, [sp, #8]
+ cmp r0, #3
+ bne _021D889A
+ mov r0, #4
+ strb r0, [r1, #0x15]
+ mov r0, #0x10
+ strb r0, [r1, #0x14]
+_021D889A:
+ ldr r0, [sp, #8]
+ cmp r0, #7
+ bne _021D88AA
+ mov r1, #0x14
+ add r0, sp, #0x28
+ strb r1, [r0, #0x15]
+ mov r1, #9
+ strb r1, [r0, #0x14]
+_021D88AA:
+ ldr r0, [sp, #8]
+ add r0, r0, #1
+ str r0, [sp, #8]
+ cmp r0, #9
+ blt _021D8828
+ ldr r0, [sp]
+ mov r1, #1
+ ldr r0, [r0, #4]
+ bl FUN_02017CD0
+ add sp, #0x40
+ pop {r3, r4, r5, r6, r7, pc}
+ nop
+_021D88C4: .word 0x021DA298
+_021D88C8: .word 0x000003CB
+_021D88CC: .word 0x00000FFF
+ thumb_func_end MOD55_021D86D4
+
+ thumb_func_start MOD55_021D88D0
+MOD55_021D88D0: ; 0x021D88D0
+ push {r3, r4, r5, r6, r7, lr}
+ sub sp, #0x10
+ str r0, [sp]
+ ldr r0, [r0, #8]
+ bl FUN_020286EC
+ mov r1, #0xf2
+ ldr r5, [sp]
+ add r7, r0, #0
+ lsl r1, r1, #2
+ add r0, r5, #0
+ ldrb r0, [r0, r1]
+ mov r4, #0
+ lsr r0, r0, #3
+ lsl r1, r0, #3
+ add r0, r5, #0
+ add r6, r0, r1
+_021D88F2:
+ mov r0, #0x29
+ lsl r0, r0, #4
+ ldr r0, [r5, r0]
+ mov r1, #0
+ bl FUN_020200A0
+ ldrb r0, [r6, #0x18]
+ cmp r0, #0
+ beq _021D8968
+ sub r0, r0, #1
+ str r0, [sp, #4]
+ ldr r1, [sp, #4]
+ add r0, r7, #0
+ mov r2, #7
+ bl FUN_0202822C
+ str r0, [sp, #8]
+ ldr r1, [sp, #4]
+ add r0, r7, #0
+ mov r2, #8
+ bl FUN_0202822C
+ cmp r0, #2
+ beq _021D8968
+ ldr r1, [sp, #8]
+ mov r2, #0
+ bl FUN_020536D0
+ str r0, [sp, #0xc]
+ mov r0, #0xeb
+ ldr r1, [sp]
+ lsl r0, r0, #2
+ ldr r1, [r1, r0]
+ ldr r0, [sp, #0xc]
+ mov r2, #0x20
+ lsl r0, r0, #5
+ add r0, r1, r0
+ add r1, r4, #7
+ lsl r1, r1, #5
+ bl GX_LoadOBJPltt
+ mov r0, #0x29
+ lsl r0, r0, #4
+ ldr r0, [r5, r0]
+ add r1, r4, #7
+ bl FUN_02020248
+ mov r0, #0x29
+ lsl r0, r0, #4
+ ldr r0, [r5, r0]
+ ldr r1, [sp, #0xc]
+ bl FUN_02020130
+ mov r0, #0x29
+ lsl r0, r0, #4
+ ldr r0, [r5, r0]
+ mov r1, #1
+ bl FUN_020200A0
+_021D8968:
+ add r4, r4, #1
+ add r5, r5, #4
+ add r6, r6, #1
+ cmp r4, #8
+ blt _021D88F2
+ add sp, #0x10
+ pop {r3, r4, r5, r6, r7, pc}
+ .align 2, 0
+ thumb_func_end MOD55_021D88D0
+
+ thumb_func_start MOD55_021D8978
+MOD55_021D8978: ; 0x021D8978
+ push {r4, r5, r6, r7, lr}
+ sub sp, #0x2c
+ str r0, [sp, #0x10]
+ ldr r0, [r0, #8]
+ bl FUN_020286EC
+ add r2, sp, #0x20
+ ldr r3, _021D8A24 ; =0x021DA2BC
+ str r0, [sp, #0x18]
+ ldmia r3!, {r0, r1}
+ str r2, [sp, #0x1c]
+ stmia r2!, {r0, r1}
+ ldr r0, [r3]
+ mov r1, #0xf2
+ str r0, [r2]
+ mov r0, #0
+ str r0, [sp, #0x14]
+ ldr r0, [sp, #0x10]
+ lsl r1, r1, #2
+ ldrb r0, [r0, r1]
+ lsr r0, r0, #3
+ lsl r1, r0, #3
+ ldr r0, [sp, #0x10]
+ add r4, r0, r1
+ mov r1, #0xae
+ lsl r1, r1, #2
+ add r5, r0, r1
+_021D89AE:
+ ldrb r0, [r4, #0x18]
+ mov r7, #0
+ cmp r0, #0
+ beq _021D8A00
+ sub r6, r0, #1
+ ldr r0, [sp, #0x18]
+ add r1, r6, #0
+ bl FUN_0202842C
+ cmp r0, #0
+ beq _021D8A00
+ ldr r0, [sp, #0x18]
+ add r1, r6, #0
+ mov r2, #8
+ bl FUN_0202822C
+ add r7, r0, #0
+ add r0, r5, #0
+ mov r1, #0
+ bl FUN_02019620
+ mov r0, #1
+ str r0, [sp]
+ mov r0, #0xff
+ str r0, [sp, #4]
+ ldr r0, [sp, #0x1c]
+ lsl r1, r7, #2
+ ldr r0, [r0, r1]
+ ldr r2, [sp, #0x10]
+ str r0, [sp, #8]
+ mov r0, #0
+ lsl r3, r6, #2
+ str r0, [sp, #0xc]
+ add r2, r2, r3
+ ldr r2, [r2, #0x38]
+ add r0, r5, #0
+ mov r1, #0
+ mov r3, #1
+ bl FUN_0201BDE0
+ mov r7, #1
+_021D8A00:
+ cmp r7, #0
+ bne _021D8A0C
+ add r0, r5, #0
+ bl FUN_0201958C
+ b _021D8A12
+_021D8A0C:
+ add r0, r5, #0
+ bl FUN_02019220
+_021D8A12:
+ ldr r0, [sp, #0x14]
+ add r4, r4, #1
+ add r0, r0, #1
+ add r5, #0x10
+ str r0, [sp, #0x14]
+ cmp r0, #8
+ blt _021D89AE
+ add sp, #0x2c
+ pop {r4, r5, r6, r7, pc}
+ .align 2, 0
+_021D8A24: .word 0x021DA2BC
+ thumb_func_end MOD55_021D8978
+
+ thumb_func_start MOD55_021D8A28
+MOD55_021D8A28: ; 0x021D8A28
+ push {r3, r4, r5, r6, r7, lr}
+ str r0, [sp]
+ ldr r0, [r0, #8]
+ bl FUN_020286EC
+ add r7, r0, #0
+ ldr r0, [sp]
+ mov r6, #0
+ add r0, #0x18
+ add r1, r6, #0
+ mov r2, #0x20
+ bl MI_CpuFill8
+ ldr r5, [sp]
+ add r4, r6, #0
+_021D8A46:
+ ldr r0, [r5, #0x38]
+ bl FUN_02021A4C
+ add r0, r7, #0
+ add r1, r4, #0
+ bl FUN_0202842C
+ cmp r0, #0
+ beq _021D8A72
+ add r0, r7, #0
+ add r1, r4, #0
+ bl FUN_020283A4
+ add r1, r0, #0
+ ldr r0, [r5, #0x38]
+ bl FUN_02021E28
+ ldr r0, [sp]
+ add r1, r4, #1
+ add r0, r0, r6
+ strb r1, [r0, #0x18]
+ add r6, r6, #1
+_021D8A72:
+ add r4, r4, #1
+ add r5, r5, #4
+ cmp r4, #0x20
+ blt _021D8A46
+ pop {r3, r4, r5, r6, r7, pc}
+ thumb_func_end MOD55_021D8A28
+
+ thumb_func_start MOD55_021D8A7C
+MOD55_021D8A7C: ; 0x021D8A7C
+ push {r4, r5, r6, r7, lr}
+ sub sp, #0x1c
+ add r5, r0, #0
+ ldr r0, [r5, #8]
+ str r1, [sp, #0x14]
+ bl FUN_020286EC
+ ldr r0, [r5, #4]
+ mov r1, #3
+ bl FUN_02018744
+ mov r3, #0
+ str r3, [sp]
+ str r3, [sp, #4]
+ str r3, [sp, #8]
+ mov r0, #0x34
+ str r0, [sp, #0xc]
+ ldr r2, [r5, #4]
+ mov r0, #0x59
+ mov r1, #2
+ bl FUN_0200687C
+ mov r3, #0
+ str r3, [sp]
+ str r3, [sp, #4]
+ str r3, [sp, #8]
+ mov r0, #0x34
+ str r0, [sp, #0xc]
+ ldr r2, [r5, #4]
+ mov r0, #0x59
+ mov r1, #8
+ bl FUN_020068C8
+ mov r0, #0
+ str r0, [sp]
+ str r0, [sp, #4]
+ str r0, [sp, #8]
+ mov r0, #0x34
+ str r0, [sp, #0xc]
+ ldr r2, [r5, #4]
+ mov r0, #0x59
+ mov r1, #5
+ mov r3, #1
+ bl FUN_020068C8
+ mov r0, #0xe6
+ lsl r0, r0, #2
+ add r0, r5, r0
+ bl FUN_02019048
+ cmp r0, #0
+ beq _021D8AEE
+ mov r0, #0xe6
+ lsl r0, r0, #2
+ add r0, r5, r0
+ bl FUN_02019178
+_021D8AEE:
+ mov r0, #0
+ str r0, [sp]
+ mov r0, #0xd
+ str r0, [sp, #4]
+ mov r2, #3
+ str r2, [sp, #8]
+ str r0, [sp, #0xc]
+ ldr r0, _021D8CAC ; =0x00000171
+ mov r1, #0xe6
+ str r0, [sp, #0x10]
+ lsl r1, r1, #2
+ ldr r0, [r5, #4]
+ add r1, r5, r1
+ mov r3, #1
+ bl FUN_02019064
+ mov r0, #0xe6
+ lsl r0, r0, #2
+ add r0, r5, r0
+ mov r1, #0
+ bl FUN_02019620
+ add r2, r5, #0
+ add r2, #0xc0
+ ldr r0, [r5, #0x10]
+ ldr r2, [r2]
+ mov r1, #5
+ bl FUN_0200A8E0
+ mov r0, #4
+ str r0, [sp]
+ mov r0, #0xff
+ str r0, [sp, #4]
+ ldr r0, _021D8CB0 ; =0x000F0E00
+ add r2, r5, #0
+ str r0, [sp, #8]
+ mov r3, #0
+ mov r0, #0xe6
+ lsl r0, r0, #2
+ str r3, [sp, #0xc]
+ add r2, #0xc0
+ ldr r2, [r2]
+ add r0, r5, r0
+ mov r1, #1
+ bl FUN_0201BDE0
+ mov r0, #0xe6
+ lsl r0, r0, #2
+ add r0, r5, r0
+ bl FUN_02019220
+ mov r0, #0xde
+ lsl r0, r0, #2
+ add r0, r5, r0
+ bl FUN_02019048
+ cmp r0, #0
+ beq _021D8B6C
+ mov r0, #0xde
+ lsl r0, r0, #2
+ add r0, r5, r0
+ bl FUN_02019178
+_021D8B6C:
+ mov r0, #0x15
+ str r0, [sp]
+ mov r0, #8
+ str r0, [sp, #4]
+ mov r0, #2
+ str r0, [sp, #8]
+ mov r0, #0xd
+ str r0, [sp, #0xc]
+ ldr r0, _021D8CB4 ; =0x00000135
+ mov r1, #0xde
+ str r0, [sp, #0x10]
+ lsl r1, r1, #2
+ ldr r0, [r5, #4]
+ add r1, r5, r1
+ mov r2, #3
+ mov r3, #0xf
+ bl FUN_02019064
+ mov r0, #0xde
+ lsl r0, r0, #2
+ add r0, r5, r0
+ mov r1, #0
+ bl FUN_02019620
+ add r2, r5, #0
+ add r2, #0xd0
+ ldr r0, [r5, #0x10]
+ ldr r2, [r2]
+ mov r1, #7
+ bl FUN_0200A8E0
+ mov r1, #0
+ add r2, r5, #0
+ str r1, [sp]
+ mov r0, #0xff
+ str r0, [sp, #4]
+ ldr r0, _021D8CB8 ; =0x00010200
+ add r2, #0xd0
+ str r0, [sp, #8]
+ str r1, [sp, #0xc]
+ mov r0, #0xde
+ lsl r0, r0, #2
+ ldr r2, [r2]
+ add r0, r5, r0
+ add r3, r1, #0
+ bl FUN_0201BDE0
+ mov r0, #0xde
+ lsl r0, r0, #2
+ add r0, r5, r0
+ bl FUN_02019220
+ add r0, r5, #0
+ bl MOD55_021D8A28
+ mov r0, #0xae
+ mov r6, #0
+ lsl r0, r0, #2
+ add r4, r5, r0
+ add r7, r6, #0
+_021D8BE4:
+ cmp r6, #4
+ bge _021D8BEE
+ mov r0, #5
+ str r0, [sp, #0x18]
+ b _021D8BF2
+_021D8BEE:
+ mov r0, #0x14
+ str r0, [sp, #0x18]
+_021D8BF2:
+ add r0, r4, #0
+ bl FUN_02019048
+ cmp r0, #0
+ beq _021D8C02
+ add r0, r4, #0
+ bl FUN_02019178
+_021D8C02:
+ lsr r2, r6, #0x1f
+ lsl r1, r6, #0x1e
+ sub r1, r1, r2
+ mov r0, #0x1e
+ ror r1, r0
+ add r0, r2, r1
+ lsl r0, r0, #2
+ add r0, r0, #5
+ lsl r0, r0, #0x18
+ lsr r0, r0, #0x18
+ str r0, [sp]
+ mov r0, #8
+ str r0, [sp, #4]
+ mov r0, #2
+ str r0, [sp, #8]
+ mov r0, #0xd
+ str r0, [sp, #0xc]
+ add r1, r7, #0
+ ldr r3, [sp, #0x18]
+ ldr r0, _021D8CB4 ; =0x00000135
+ add r1, #0x18
+ sub r0, r0, r1
+ lsl r0, r0, #0x10
+ lsr r0, r0, #0x10
+ str r0, [sp, #0x10]
+ lsl r3, r3, #0x18
+ ldr r0, [r5, #4]
+ add r1, r4, #0
+ mov r2, #3
+ lsr r3, r3, #0x18
+ bl FUN_02019064
+ add r0, r4, #0
+ mov r1, #0
+ bl FUN_02019620
+ add r0, r4, #0
+ bl FUN_02019220
+ add r6, r6, #1
+ add r4, #0x10
+ add r7, #0x18
+ cmp r6, #8
+ blt _021D8BE4
+ add r0, r5, #0
+ bl MOD55_021D86D4
+ add r0, r5, #0
+ bl MOD55_021D8978
+ add r0, r5, #0
+ bl MOD55_021D88D0
+ mov r0, #0x2b
+ lsl r0, r0, #4
+ ldr r0, [r5, r0]
+ mov r1, #0
+ bl FUN_02020130
+ mov r0, #0xad
+ lsl r0, r0, #2
+ ldr r0, [r5, r0]
+ mov r1, #1
+ bl FUN_02020130
+ mov r0, #0x2b
+ lsl r0, r0, #4
+ ldr r0, [r5, r0]
+ mov r1, #1
+ bl FUN_020200A0
+ mov r0, #0xad
+ lsl r0, r0, #2
+ ldr r0, [r5, r0]
+ mov r1, #1
+ bl FUN_020200A0
+ mov r0, #0x3b
+ mov r1, #3
+ lsl r0, r0, #4
+ str r1, [r5, r0]
+ ldr r0, [sp, #0x14]
+ add sp, #0x1c
+ pop {r4, r5, r6, r7, pc}
+ nop
+_021D8CAC: .word 0x00000171
+_021D8CB0: .word 0x000F0E00
+_021D8CB4: .word 0x00000135
+_021D8CB8: .word 0x00010200
+ thumb_func_end MOD55_021D8A7C
+
+ thumb_func_start MOD55_021D8CBC
+MOD55_021D8CBC: ; 0x021D8CBC
+ push {r3, r4, r5, lr}
+ mov r3, #0xf2
+ lsl r3, r3, #2
+ add r5, r0, #0
+ add r2, r3, #1
+ ldrb r0, [r5, r3]
+ ldrb r2, [r5, r2]
+ lsr r4, r0, #3
+ cmp r2, #4
+ bne _021D8CD8
+ mov r1, #1
+ add r0, r3, #3
+ strb r1, [r5, r0]
+ b _021D8CF4
+_021D8CD8:
+ add r2, r3, #3
+ ldrb r2, [r5, r2]
+ cmp r2, #1
+ bne _021D8CE8
+ mov r1, #0
+ add r0, r3, #3
+ strb r1, [r5, r0]
+ b _021D8CF4
+_021D8CE8:
+ add r0, r0, r1
+ strb r0, [r5, r3]
+ ldrb r1, [r5, r3]
+ mov r0, #0x1f
+ and r0, r1
+ strb r0, [r5, r3]
+_021D8CF4:
+ add r0, r5, #0
+ bl MOD55_021D86D4
+ mov r0, #0xf2
+ lsl r0, r0, #2
+ ldrb r0, [r5, r0]
+ lsr r0, r0, #3
+ cmp r4, r0
+ beq _021D8D12
+ add r0, r5, #0
+ bl MOD55_021D8978
+ add r0, r5, #0
+ bl MOD55_021D88D0
+_021D8D12:
+ pop {r3, r4, r5, pc}
+ thumb_func_end MOD55_021D8CBC
+
+ thumb_func_start MOD55_021D8D14
+MOD55_021D8D14: ; 0x021D8D14
+ push {r3, r4, r5, lr}
+ add r4, r1, #0
+ mov r1, #0xf3
+ add r5, r0, #0
+ lsl r1, r1, #2
+ ldrb r1, [r5, r1]
+ cmp r1, #0
+ beq _021D8D52
+ ldr r1, _021D8E5C ; =0x021C48B8
+ ldr r1, [r1, #0x48]
+ cmp r1, #0
+ beq _021D8D52
+ bl MOD55_021DA214
+ mov r0, #0x2b
+ lsl r0, r0, #4
+ ldr r0, [r5, r0]
+ mov r1, #1
+ bl FUN_020200A0
+ mov r0, #0xad
+ lsl r0, r0, #2
+ ldr r0, [r5, r0]
+ mov r1, #1
+ bl FUN_020200A0
+ mov r0, #0xf3
+ mov r1, #0
+ lsl r0, r0, #2
+ strb r1, [r5, r0]
+ b _021D8E36
+_021D8D52:
+ ldr r2, _021D8E5C ; =0x021C48B8
+ mov r0, #1
+ ldr r3, [r2, #0x48]
+ add r1, r3, #0
+ tst r1, r0
+ beq _021D8D88
+ ldr r0, _021D8E60 ; =0x000005DC
+ bl FUN_020054C8
+ ldr r1, _021D8E64 ; =0x000003CB
+ ldrb r0, [r5, r1]
+ cmp r0, #0
+ beq _021D8D74
+ mov r0, #6
+ sub r1, #0x1b
+ str r0, [r5, r1]
+ b _021D8E36
+_021D8D74:
+ sub r0, r1, #3
+ ldrb r0, [r5, r0]
+ add r0, r5, r0
+ ldrb r0, [r0, #0x18]
+ cmp r0, #0
+ beq _021D8E36
+ mov r0, #4
+ sub r1, #0x1b
+ str r0, [r5, r1]
+ b _021D8E36
+_021D8D88:
+ mov r1, #2
+ tst r1, r3
+ beq _021D8D9E
+ ldr r0, _021D8E60 ; =0x000005DC
+ bl FUN_020054C8
+ mov r0, #0x3b
+ mov r1, #6
+ lsl r0, r0, #4
+ str r1, [r5, r0]
+ b _021D8E36
+_021D8D9E:
+ ldr r1, [r2, #0x4c]
+ mov r2, #0x40
+ tst r2, r1
+ beq _021D8DC4
+ ldr r0, _021D8E68 ; =0x000003C9
+ ldrb r1, [r5, r0]
+ cmp r1, #0
+ beq _021D8E36
+ sub r1, r1, #1
+ strb r1, [r5, r0]
+ ldr r0, _021D8E60 ; =0x000005DC
+ bl FUN_020054C8
+ mov r1, #0
+ add r0, r5, #0
+ mvn r1, r1
+ bl MOD55_021D8CBC
+ b _021D8E36
+_021D8DC4:
+ mov r2, #0x80
+ tst r2, r1
+ beq _021D8DE6
+ ldr r0, _021D8E68 ; =0x000003C9
+ ldrb r1, [r5, r0]
+ cmp r1, #4
+ bhs _021D8E36
+ add r1, r1, #1
+ strb r1, [r5, r0]
+ ldr r0, _021D8E60 ; =0x000005DC
+ bl FUN_020054C8
+ add r0, r5, #0
+ mov r1, #1
+ bl MOD55_021D8CBC
+ b _021D8E36
+_021D8DE6:
+ mov r2, #0x20
+ tst r2, r1
+ beq _021D8E10
+ ldr r2, _021D8E64 ; =0x000003CB
+ ldrb r1, [r5, r2]
+ cmp r1, #0
+ bne _021D8E36
+ sub r1, r2, #1
+ ldrb r1, [r5, r1]
+ sub r1, r0, r1
+ sub r0, r2, #1
+ strb r1, [r5, r0]
+ ldr r0, _021D8E60 ; =0x000005DC
+ bl FUN_020054C8
+ mov r1, #3
+ add r0, r5, #0
+ mvn r1, r1
+ bl MOD55_021D8CBC
+ b _021D8E36
+_021D8E10:
+ mov r2, #0x10
+ tst r1, r2
+ beq _021D8E36
+ ldr r2, _021D8E64 ; =0x000003CB
+ ldrb r1, [r5, r2]
+ cmp r1, #0
+ bne _021D8E36
+ sub r1, r2, #1
+ ldrb r1, [r5, r1]
+ sub r1, r0, r1
+ sub r0, r2, #1
+ strb r1, [r5, r0]
+ ldr r0, _021D8E60 ; =0x000005DC
+ bl FUN_020054C8
+ add r0, r5, #0
+ mov r1, #4
+ bl MOD55_021D8CBC
+_021D8E36:
+ mov r0, #0x3b
+ lsl r0, r0, #4
+ ldr r0, [r5, r0]
+ cmp r0, #3
+ beq _021D8E58
+ mov r0, #0x2b
+ lsl r0, r0, #4
+ ldr r0, [r5, r0]
+ mov r1, #0
+ bl FUN_020200A0
+ mov r0, #0xad
+ lsl r0, r0, #2
+ ldr r0, [r5, r0]
+ mov r1, #0
+ bl FUN_020200A0
+_021D8E58:
+ add r0, r4, #0
+ pop {r3, r4, r5, pc}
+ .align 2, 0
+_021D8E5C: .word 0x021C48B8
+_021D8E60: .word 0x000005DC
+_021D8E64: .word 0x000003CB
+_021D8E68: .word 0x000003C9
+ thumb_func_end MOD55_021D8D14
+
+ thumb_func_start MOD55_021D8E6C
+MOD55_021D8E6C: ; 0x021D8E6C
+ push {r4, r5, r6, r7, lr}
+ sub sp, #0x3c
+ add r5, r0, #0
+ ldr r0, [r5, #8]
+ str r1, [sp, #0x14]
+ bl FUN_020286EC
+ mov r1, #0xf2
+ lsl r1, r1, #2
+ ldrb r1, [r5, r1]
+ mov r2, #8
+ str r0, [sp, #0x18]
+ add r1, r5, r1
+ ldrb r1, [r1, #0x18]
+ sub r1, r1, #1
+ bl FUN_0202822C
+ cmp r0, #2
+ add r2, sp, #0x1c
+ bne _021D8ECC
+ ldr r3, _021D8FCC ; =0x021DA418
+ mov r7, #4
+ ldmia r3!, {r0, r1}
+ stmia r2!, {r0, r1}
+ ldmia r3!, {r0, r1}
+ stmia r2!, {r0, r1}
+ ldmia r3!, {r0, r1}
+ stmia r2!, {r0, r1}
+ ldmia r3!, {r0, r1}
+ stmia r2!, {r0, r1}
+ add r0, r7, #0
+ mov r1, #0x34
+ bl FUN_02012838
+ ldr r4, _021D8FD0 ; =0x021DA3D8
+ str r0, [r5, #0x14]
+ mov r6, #0
+_021D8EB6:
+ ldr r0, [r5, #0x14]
+ ldr r1, [r5, #0x10]
+ ldr r2, [r4]
+ ldr r3, [r4, #4]
+ bl FUN_02012880
+ add r6, r6, #1
+ add r4, #8
+ cmp r6, #4
+ blt _021D8EB6
+ b _021D8F02
+_021D8ECC:
+ ldr r3, _021D8FD4 ; =0x021DA3F8
+ mov r7, #4
+ ldmia r3!, {r0, r1}
+ stmia r2!, {r0, r1}
+ ldmia r3!, {r0, r1}
+ stmia r2!, {r0, r1}
+ ldmia r3!, {r0, r1}
+ stmia r2!, {r0, r1}
+ ldmia r3!, {r0, r1}
+ stmia r2!, {r0, r1}
+ add r0, r7, #0
+ mov r1, #0x34
+ bl FUN_02012838
+ ldr r4, _021D8FD8 ; =0x021DA438
+ str r0, [r5, #0x14]
+ mov r6, #0
+_021D8EEE:
+ ldr r0, [r5, #0x14]
+ ldr r1, [r5, #0x10]
+ ldr r2, [r4]
+ ldr r3, [r4, #4]
+ bl FUN_02012880
+ add r6, r6, #1
+ add r4, #8
+ cmp r6, #4
+ blt _021D8EEE
+_021D8F02:
+ mov r0, #0xe2
+ lsl r0, r0, #2
+ add r0, r5, r0
+ bl FUN_02019048
+ cmp r0, #0
+ beq _021D8F1A
+ mov r0, #0xe2
+ lsl r0, r0, #2
+ add r0, r5, r0
+ bl FUN_02019178
+_021D8F1A:
+ mov r1, #9
+ str r1, [sp]
+ mov r1, #0xf
+ lsl r0, r7, #1
+ str r1, [sp, #4]
+ lsl r1, r0, #0x18
+ lsr r1, r1, #0x18
+ str r1, [sp, #8]
+ mov r1, #0xd
+ str r1, [sp, #0xc]
+ mov r1, #0x3b
+ sub r0, r1, r0
+ lsl r0, r0, #0x10
+ lsr r0, r0, #0x10
+ mov r1, #0xe2
+ str r0, [sp, #0x10]
+ lsl r1, r1, #2
+ ldr r0, [r5, #4]
+ add r1, r5, r1
+ mov r2, #2
+ mov r3, #0x10
+ bl FUN_02019064
+ mov r0, #0xe2
+ lsl r0, r0, #2
+ ldr r2, _021D8FDC ; =0x000001D9
+ add r0, r5, r0
+ mov r1, #1
+ mov r3, #0xb
+ bl FUN_0200CCA4
+ ldr r0, [r5, #0x14]
+ mov r1, #0
+ str r0, [sp, #0x1c]
+ mov r0, #0xe2
+ lsl r0, r0, #2
+ add r0, r5, r0
+ str r0, [sp, #0x28]
+ add r0, sp, #0x1c
+ add r2, r1, #0
+ mov r3, #0x34
+ bl FUN_020010A8
+ mov r1, #0xea
+ lsl r1, r1, #2
+ str r0, [r5, r1]
+ sub r1, #0x20
+ add r0, r5, r1
+ bl FUN_02019220
+ mov r0, #0x34
+ bl FUN_02023928
+ mov r1, #0xf2
+ lsl r1, r1, #2
+ ldrb r1, [r5, r1]
+ add r4, r0, #0
+ ldr r0, [sp, #0x18]
+ add r1, r5, r1
+ ldrb r1, [r1, #0x18]
+ sub r1, r1, #1
+ bl FUN_020283A4
+ add r1, r0, #0
+ add r0, r4, #0
+ bl FUN_0202395C
+ ldr r0, [r5, #0xc]
+ mov r1, #0
+ add r2, r4, #0
+ bl FUN_0200ABC0
+ add r0, r5, #0
+ mov r1, #0xc
+ bl MOD55_021DA0A4
+ add r0, r4, #0
+ bl FUN_02016A18
+ ldr r0, _021D8FE0 ; =0x00000418
+ mov r1, #0
+ strh r1, [r5, r0]
+ mov r1, #5
+ sub r0, #0x68
+ str r1, [r5, r0]
+ ldr r0, [sp, #0x14]
+ add sp, #0x3c
+ pop {r4, r5, r6, r7, pc}
+ nop
+_021D8FCC: .word 0x021DA418
+_021D8FD0: .word 0x021DA3D8
+_021D8FD4: .word 0x021DA3F8
+_021D8FD8: .word 0x021DA438
+_021D8FDC: .word 0x000001D9
+_021D8FE0: .word 0x00000418
+ thumb_func_end MOD55_021D8E6C
+
+ thumb_func_start MOD55_021D8FE4
+MOD55_021D8FE4: ; 0x021D8FE4
+ push {r4, r5, r6, r7, lr}
+ sub sp, #0xc
+ add r5, r0, #0
+ add r0, #0xe4
+ ldr r0, [r0]
+ add r6, r1, #0
+ lsl r0, r0, #0x18
+ lsr r0, r0, #0x18
+ bl FUN_0201BD70
+ cmp r0, #0
+ beq _021D9002
+ add sp, #0xc
+ add r0, r6, #0
+ pop {r4, r5, r6, r7, pc}
+_021D9002:
+ mov r0, #0xea
+ lsl r0, r0, #2
+ ldr r0, [r5, r0]
+ bl FUN_02001204
+ ldr r1, _021D90D0 ; =0x00000418
+ add r4, r0, #0
+ add r0, r1, #0
+ sub r0, #0x70
+ ldrh r7, [r5, r1]
+ ldr r0, [r5, r0]
+ add r1, r5, r1
+ bl FUN_0200143C
+ ldr r0, _021D90D0 ; =0x00000418
+ ldrh r0, [r5, r0]
+ cmp r7, r0
+ beq _021D902C
+ ldr r0, _021D90D4 ; =0x000005DC
+ bl FUN_020054C8
+_021D902C:
+ mov r0, #1
+ mvn r0, r0
+ cmp r4, r0
+ beq _021D9040
+ add r0, r0, #1
+ cmp r4, r0
+ bne _021D9068
+ add sp, #0xc
+ add r0, r6, #0
+ pop {r4, r5, r6, r7, pc}
+_021D9040:
+ ldr r0, _021D90D4 ; =0x000005DC
+ bl FUN_020054C8
+ mov r0, #0x2b
+ lsl r0, r0, #4
+ ldr r0, [r5, r0]
+ mov r1, #1
+ bl FUN_020200A0
+ mov r0, #0xad
+ lsl r0, r0, #2
+ ldr r0, [r5, r0]
+ mov r1, #1
+ bl FUN_020200A0
+ mov r0, #0x3b
+ mov r1, #3
+ lsl r0, r0, #4
+ str r1, [r5, r0]
+ b _021D9098
+_021D9068:
+ ldr r0, _021D90D4 ; =0x000005DC
+ bl FUN_020054C8
+ cmp r4, #0x14
+ bne _021D9092
+ ldr r0, [r5, #4]
+ mov r1, #3
+ bl FUN_02018744
+ mov r0, #6
+ str r0, [sp]
+ mov r0, #1
+ str r0, [sp, #4]
+ mov r0, #0x34
+ str r0, [sp, #8]
+ mov r0, #0
+ add r1, r0, #0
+ add r2, r0, #0
+ add r3, r0, #0
+ bl FUN_0200E1D0
+_021D9092:
+ mov r0, #0x3b
+ lsl r0, r0, #4
+ str r4, [r5, r0]
+_021D9098:
+ add r0, r5, #0
+ bl MOD55_021DA214
+ mov r0, #0xe2
+ lsl r0, r0, #2
+ add r0, r5, r0
+ mov r1, #0
+ bl FUN_0200CCF8
+ mov r0, #0xe2
+ lsl r0, r0, #2
+ add r0, r5, r0
+ bl FUN_02019178
+ mov r0, #0xea
+ lsl r0, r0, #2
+ mov r1, #0
+ ldr r0, [r5, r0]
+ add r2, r1, #0
+ bl FUN_02001300
+ ldr r0, [r5, #0x14]
+ bl FUN_02012870
+ add r0, r6, #0
+ add sp, #0xc
+ pop {r4, r5, r6, r7, pc}
+ nop
+_021D90D0: .word 0x00000418
+_021D90D4: .word 0x000005DC
+ thumb_func_end MOD55_021D8FE4
+
+ thumb_func_start MOD55_021D90D8
+MOD55_021D90D8: ; 0x021D90D8
+ push {r4, r5, r6, r7, lr}
+ sub sp, #0xc
+ add r5, r0, #0
+ mov r0, #0xf2
+ lsl r0, r0, #2
+ ldrb r0, [r5, r0]
+ add r7, r1, #0
+ add r0, r5, r0
+ ldrb r0, [r0, #0x18]
+ cmp r0, #0
+ beq _021D9170
+ ldr r0, [r5, #8]
+ bl FUN_020286EC
+ mov r1, #0xf2
+ lsl r1, r1, #2
+ ldrb r1, [r5, r1]
+ str r0, [sp, #8]
+ add r1, r5, r1
+ ldrb r1, [r1, #0x18]
+ sub r1, r1, #1
+ bl FUN_0202838C
+ bl FUN_02096E24
+ str r1, [sp, #4]
+ add r4, r0, #0
+ ldr r0, [sp, #4]
+ mov r1, #0
+ eor r1, r0
+ mov r2, #0
+ add r0, r4, #0
+ eor r0, r2
+ orr r0, r1
+ beq _021D9170
+ mov r0, #0x34
+ bl FUN_02023928
+ mov r1, #0xf2
+ lsl r1, r1, #2
+ ldrb r1, [r5, r1]
+ add r6, r0, #0
+ ldr r0, [sp, #8]
+ add r1, r5, r1
+ ldrb r1, [r1, #0x18]
+ sub r1, r1, #1
+ bl FUN_020283A4
+ add r1, r0, #0
+ add r0, r6, #0
+ bl FUN_0202395C
+ ldr r0, _021D9180 ; =0x000005DC
+ bl FUN_020054C8
+ ldr r2, [sp, #4]
+ add r0, r5, #0
+ add r1, r4, #0
+ bl MOD55_021D93F8
+ ldr r0, [r5, #0xc]
+ mov r1, #0
+ add r2, r6, #0
+ bl FUN_0200ABC0
+ add r0, r5, #0
+ mov r1, #0x1f
+ bl MOD55_021DA15C
+ mov r0, #0xf3
+ mov r1, #1
+ lsl r0, r0, #2
+ strb r1, [r5, r0]
+ add r0, r6, #0
+ bl FUN_02016A18
+_021D9170:
+ mov r0, #0x3b
+ mov r1, #3
+ lsl r0, r0, #4
+ str r1, [r5, r0]
+ add r0, r7, #0
+ add sp, #0xc
+ pop {r4, r5, r6, r7, pc}
+ nop
+_021D9180: .word 0x000005DC
+ thumb_func_end MOD55_021D90D8
+
+ thumb_func_start MOD55_021D9184
+MOD55_021D9184: ; 0x021D9184
+ push {r4, r5, r6, r7, lr}
+ sub sp, #0x14
+ add r5, r0, #0
+ ldr r0, [r5, #8]
+ add r7, r1, #0
+ bl FUN_020286EC
+ bl FUN_02028228
+ bl FUN_02096D68
+ add r6, r0, #0
+ add r4, r1, #0
+ ldr r0, [r5, #4]
+ mov r1, #3
+ bl FUN_02018744
+ mov r0, #0
+ str r0, [sp]
+ str r0, [sp, #4]
+ str r0, [sp, #8]
+ mov r0, #0x34
+ str r0, [sp, #0xc]
+ ldr r2, [r5, #4]
+ mov r0, #0x59
+ mov r1, #7
+ mov r3, #1
+ bl FUN_020068C8
+ mov r0, #0xe6
+ lsl r0, r0, #2
+ add r0, r5, r0
+ bl FUN_02019048
+ cmp r0, #0
+ beq _021D91D6
+ mov r0, #0xe6
+ lsl r0, r0, #2
+ add r0, r5, r0
+ bl FUN_02019178
+_021D91D6:
+ mov r0, #0
+ str r0, [sp]
+ mov r0, #0x14
+ str r0, [sp, #4]
+ mov r2, #3
+ mov r1, #0xe6
+ lsl r1, r1, #2
+ str r2, [sp, #8]
+ mov r0, #0xd
+ str r0, [sp, #0xc]
+ ldr r0, _021D93D0 ; =0x00000139
+ add r1, r5, r1
+ str r0, [sp, #0x10]
+ ldr r0, [r5, #4]
+ mov r3, #1
+ bl FUN_02019064
+ mov r0, #0xe6
+ lsl r0, r0, #2
+ add r0, r5, r0
+ mov r1, #0
+ bl FUN_02019620
+ ldr r0, [r5, #8]
+ bl FUN_020238F4
+ add r2, r0, #0
+ ldr r0, [r5, #0xc]
+ mov r1, #0
+ bl FUN_0200ABC0
+ add r2, r5, #0
+ add r2, #0xb8
+ ldr r0, [r5, #0x10]
+ ldr r2, [r2]
+ mov r1, #0x16
+ bl FUN_0200A8E0
+ add r1, r5, #0
+ add r2, r5, #0
+ add r1, #0xc0
+ add r2, #0xb8
+ ldr r0, [r5, #0xc]
+ ldr r1, [r1]
+ ldr r2, [r2]
+ bl FUN_0200B7B8
+ mov r0, #4
+ str r0, [sp]
+ mov r0, #0xff
+ str r0, [sp, #4]
+ ldr r0, _021D93D4 ; =0x000F0E00
+ add r2, r5, #0
+ str r0, [sp, #8]
+ mov r3, #0
+ mov r0, #0xe6
+ lsl r0, r0, #2
+ str r3, [sp, #0xc]
+ add r2, #0xc0
+ ldr r2, [r2]
+ add r0, r5, r0
+ mov r1, #1
+ bl FUN_0201BDE0
+ mov r0, #0xe6
+ lsl r0, r0, #2
+ add r0, r5, r0
+ bl FUN_02019220
+ mov r0, #0xce
+ lsl r0, r0, #2
+ add r0, r5, r0
+ bl FUN_02019048
+ cmp r0, #0
+ beq _021D9278
+ mov r0, #0xce
+ lsl r0, r0, #2
+ add r0, r5, r0
+ bl FUN_02019178
+_021D9278:
+ mov r1, #0xd
+ str r1, [sp]
+ mov r0, #0x15
+ str r0, [sp, #4]
+ mov r0, #8
+ str r0, [sp, #8]
+ str r1, [sp, #0xc]
+ mov r0, #0x64
+ mov r1, #0xce
+ str r0, [sp, #0x10]
+ lsl r1, r1, #2
+ ldr r0, [r5, #4]
+ add r1, r5, r1
+ mov r2, #3
+ mov r3, #6
+ bl FUN_02019064
+ mov r0, #0xce
+ lsl r0, r0, #2
+ add r0, r5, r0
+ mov r1, #0
+ bl FUN_02019620
+ mov r1, #0
+ mov r0, #0
+ eor r1, r4
+ eor r0, r6
+ orr r0, r1
+ ldr r0, [r5, #0x10]
+ bne _021D92C2
+ add r2, r5, #0
+ add r2, #0xbc
+ ldr r2, [r2]
+ mov r1, #0x18
+ bl FUN_0200A8E0
+ b _021D92CE
+_021D92C2:
+ add r2, r5, #0
+ add r2, #0xbc
+ ldr r2, [r2]
+ mov r1, #0x17
+ bl FUN_0200A8E0
+_021D92CE:
+ add r1, r5, #0
+ add r1, #0xbc
+ mov r0, #0
+ ldr r1, [r1]
+ add r2, r0, #0
+ bl FUN_02002F08
+ mov r1, #0xa8
+ sub r0, r1, r0
+ mov r1, #0
+ lsr r3, r0, #1
+ add r2, r5, #0
+ str r1, [sp]
+ mov r0, #0xff
+ str r0, [sp, #4]
+ ldr r0, _021D93D8 ; =0x00010200
+ add r2, #0xbc
+ str r0, [sp, #8]
+ str r1, [sp, #0xc]
+ mov r0, #0xce
+ lsl r0, r0, #2
+ ldr r2, [r2]
+ add r0, r5, r0
+ bl FUN_0201BDE0
+ mov r0, #0xce
+ lsl r0, r0, #2
+ add r0, r5, r0
+ bl FUN_02019220
+ mov r1, #0
+ mov r0, #0
+ eor r1, r4
+ eor r0, r6
+ orr r0, r1
+ beq _021D93C2
+ add r0, r5, #0
+ add r1, r6, #0
+ add r2, r4, #0
+ bl MOD55_021D93F8
+ mov r0, #0xe2
+ lsl r0, r0, #2
+ add r0, r5, r0
+ bl FUN_02019048
+ cmp r0, #0
+ beq _021D9338
+ mov r0, #0xe2
+ lsl r0, r0, #2
+ add r0, r5, r0
+ bl FUN_02019178
+_021D9338:
+ mov r0, #8
+ str r0, [sp]
+ mov r0, #0xe
+ str r0, [sp, #4]
+ mov r0, #2
+ str r0, [sp, #8]
+ mov r0, #0xd
+ str r0, [sp, #0xc]
+ mov r0, #0x32
+ mov r1, #0xe2
+ str r0, [sp, #0x10]
+ lsl r1, r1, #2
+ ldr r0, [r5, #4]
+ add r1, r5, r1
+ mov r2, #3
+ mov r3, #9
+ bl FUN_02019064
+ add r2, r5, #0
+ add r2, #0xb8
+ ldr r0, [r5, #0x10]
+ ldr r2, [r2]
+ mov r1, #0x1b
+ bl FUN_0200A8E0
+ add r1, r5, #0
+ add r2, r5, #0
+ add r1, #0xbc
+ add r2, #0xb8
+ ldr r0, [r5, #0xc]
+ ldr r1, [r1]
+ ldr r2, [r2]
+ bl FUN_0200B7B8
+ mov r0, #0xe2
+ lsl r0, r0, #2
+ add r0, r5, r0
+ mov r1, #0
+ bl FUN_02019620
+ add r1, r5, #0
+ add r1, #0xbc
+ mov r0, #0
+ ldr r1, [r1]
+ add r2, r0, #0
+ mov r3, #0x70
+ bl FUN_02002F40
+ mov r1, #0
+ add r3, r0, #0
+ add r2, r5, #0
+ str r1, [sp]
+ mov r0, #0xff
+ str r0, [sp, #4]
+ ldr r0, _021D93D8 ; =0x00010200
+ add r2, #0xbc
+ str r0, [sp, #8]
+ str r1, [sp, #0xc]
+ mov r0, #0xe2
+ lsl r0, r0, #2
+ ldr r2, [r2]
+ add r0, r5, r0
+ bl FUN_0201BDE0
+ mov r0, #0xe2
+ lsl r0, r0, #2
+ add r0, r5, r0
+ bl FUN_02019220
+_021D93C2:
+ mov r0, #0x3b
+ mov r1, #0x13
+ lsl r0, r0, #4
+ str r1, [r5, r0]
+ add r0, r7, #0
+ add sp, #0x14
+ pop {r4, r5, r6, r7, pc}
+ .align 2, 0
+_021D93D0: .word 0x00000139
+_021D93D4: .word 0x000F0E00
+_021D93D8: .word 0x00010200
+ thumb_func_end MOD55_021D9184
+
+ thumb_func_start MOD55_021D93DC
+MOD55_021D93DC: ; 0x021D93DC
+ ldr r2, _021D93F4 ; =0x021C48B8
+ ldr r3, [r2, #0x48]
+ mov r2, #3
+ tst r2, r3
+ beq _021D93EE
+ mov r2, #0x3b
+ mov r3, #6
+ lsl r2, r2, #4
+ str r3, [r0, r2]
+_021D93EE:
+ add r0, r1, #0
+ bx lr
+ nop
+_021D93F4: .word 0x021C48B8
+ thumb_func_end MOD55_021D93DC
+
+ thumb_func_start MOD55_021D93F8
+MOD55_021D93F8: ; 0x021D93F8
+ push {r4, r5, r6, lr}
+ sub sp, #8
+ add r6, r2, #0
+ add r4, r1, #0
+ add r5, r0, #0
+ ldr r2, _021D946C ; =0x05F5E100
+ add r0, r4, #0
+ add r1, r6, #0
+ mov r3, #0
+ bl _ll_udiv
+ add r2, r0, #0
+ mov r0, #2
+ str r0, [sp]
+ mov r1, #1
+ str r1, [sp, #4]
+ ldr r0, [r5, #0xc]
+ mov r3, #4
+ bl FUN_0200AD38
+ ldr r2, _021D9470 ; =0x00002710
+ add r0, r4, #0
+ add r1, r6, #0
+ mov r3, #0
+ bl _ll_udiv
+ ldr r2, _021D9470 ; =0x00002710
+ mov r3, #0
+ bl _ull_mod
+ mov r1, #2
+ add r2, r0, #0
+ str r1, [sp]
+ mov r0, #1
+ str r0, [sp, #4]
+ ldr r0, [r5, #0xc]
+ mov r3, #4
+ bl FUN_0200AD38
+ ldr r2, _021D9470 ; =0x00002710
+ add r0, r4, #0
+ add r1, r6, #0
+ mov r3, #0
+ bl _ull_mod
+ add r2, r0, #0
+ mov r0, #2
+ str r0, [sp]
+ mov r0, #1
+ str r0, [sp, #4]
+ ldr r0, [r5, #0xc]
+ mov r1, #3
+ mov r3, #4
+ bl FUN_0200AD38
+ add sp, #8
+ pop {r4, r5, r6, pc}
+ nop
+_021D946C: .word 0x05F5E100
+_021D9470: .word 0x00002710
+ thumb_func_end MOD55_021D93F8
+
+ thumb_func_start MOD55_021D9474
+MOD55_021D9474: ; 0x021D9474
+ push {r4, r5, lr}
+ sub sp, #0x64
+ add r4, r0, #0
+ mov r0, #1
+ mov r1, #0
+ add r2, r0, #0
+ bl GX_SetGraphicsMode
+ ldr r5, _021D9564 ; =0x021DA2D8
+ add r3, sp, #0x54
+ add r2, r3, #0
+ ldmia r5!, {r0, r1}
+ stmia r3!, {r0, r1}
+ ldmia r5!, {r0, r1}
+ stmia r3!, {r0, r1}
+ add r0, r2, #0
+ bl FUN_02016BBC
+ ldr r5, _021D9568 ; =0x021DA2F8
+ add r3, sp, #0x38
+ ldmia r5!, {r0, r1}
+ add r2, r3, #0
+ stmia r3!, {r0, r1}
+ ldmia r5!, {r0, r1}
+ stmia r3!, {r0, r1}
+ ldmia r5!, {r0, r1}
+ stmia r3!, {r0, r1}
+ ldr r0, [r5]
+ mov r1, #1
+ str r0, [r3]
+ add r0, r4, #0
+ mov r3, #0
+ bl FUN_02016C18
+ mov r0, #1
+ mov r1, #0x20
+ mov r2, #0
+ mov r3, #0x34
+ bl FUN_02017F18
+ add r0, r4, #0
+ mov r1, #1
+ bl FUN_02018744
+ ldr r5, _021D956C ; =0x021DA330
+ add r3, sp, #0x1c
+ ldmia r5!, {r0, r1}
+ add r2, r3, #0
+ stmia r3!, {r0, r1}
+ ldmia r5!, {r0, r1}
+ stmia r3!, {r0, r1}
+ ldmia r5!, {r0, r1}
+ stmia r3!, {r0, r1}
+ ldr r0, [r5]
+ mov r1, #2
+ str r0, [r3]
+ add r0, r4, #0
+ mov r3, #0
+ bl FUN_02016C18
+ mov r0, #2
+ mov r1, #0x20
+ mov r2, #0
+ mov r3, #0x34
+ bl FUN_02017F18
+ add r0, r4, #0
+ mov r1, #2
+ bl FUN_02018744
+ ldr r5, _021D9570 ; =0x021DA314
+ add r3, sp, #0
+ ldmia r5!, {r0, r1}
+ add r2, r3, #0
+ stmia r3!, {r0, r1}
+ ldmia r5!, {r0, r1}
+ stmia r3!, {r0, r1}
+ ldmia r5!, {r0, r1}
+ stmia r3!, {r0, r1}
+ ldr r0, [r5]
+ mov r1, #3
+ str r0, [r3]
+ add r0, r4, #0
+ mov r3, #0
+ bl FUN_02016C18
+ mov r0, #3
+ mov r1, #0x20
+ mov r2, #0
+ mov r3, #0x34
+ bl FUN_02017F18
+ add r0, r4, #0
+ mov r1, #3
+ bl FUN_02018744
+ mov r0, #0
+ mov r1, #0x20
+ add r2, r0, #0
+ mov r3, #0x34
+ bl FUN_02017F18
+ mov r0, #1
+ mov r1, #3
+ bl FUN_020178BC
+ mov r0, #2
+ add r1, r0, #0
+ bl FUN_020178BC
+ mov r0, #0
+ mov r1, #1
+ bl FUN_020178BC
+ mov r0, #3
+ mov r1, #0
+ bl FUN_020178BC
+ add sp, #0x64
+ pop {r4, r5, pc}
+ .align 2, 0
+_021D9564: .word 0x021DA2D8
+_021D9568: .word 0x021DA2F8
+_021D956C: .word 0x021DA330
+_021D9570: .word 0x021DA314
+ thumb_func_end MOD55_021D9474
+
+ thumb_func_start MOD55_021D9574
+MOD55_021D9574: ; 0x021D9574
+ push {r3, lr}
+ bl FUN_020BB7F4
+ bl G3X_InitMtxStack
+ mov r0, #1
+ add r1, r0, #0
+ bl FUN_0201E6E4
+ ldr r0, _021D95D8 ; =0x04000008
+ mov r1, #3
+ ldrh r2, [r0]
+ bic r2, r1
+ mov r1, #1
+ orr r1, r2
+ strh r1, [r0]
+ add r0, #0x58
+ ldrh r1, [r0]
+ ldr r2, _021D95DC ; =0xFFFFCFFD
+ and r1, r2
+ strh r1, [r0]
+ ldrh r3, [r0]
+ add r1, r2, #2
+ and r3, r1
+ mov r1, #0x10
+ orr r1, r3
+ strh r1, [r0]
+ ldrh r3, [r0]
+ ldr r1, _021D95E0 ; =0x0000CFFB
+ and r1, r3
+ strh r1, [r0]
+ add r1, r2, #2
+ ldrh r3, [r0]
+ lsr r2, r2, #0x11
+ and r3, r1
+ mov r1, #8
+ orr r1, r3
+ strh r1, [r0]
+ mov r0, #0
+ add r1, r0, #0
+ mov r3, #0x3f
+ str r0, [sp]
+ bl G3X_SetClearColor
+ ldr r1, _021D95E4 ; =0x04000540
+ mov r0, #2
+ str r0, [r1]
+ ldr r0, _021D95E8 ; =0xBFFF0000
+ str r0, [r1, #0x40]
+ pop {r3, pc}
+ .align 2, 0
+_021D95D8: .word 0x04000008
+_021D95DC: .word 0xFFFFCFFD
+_021D95E0: .word 0x0000CFFB
+_021D95E4: .word 0x04000540
+_021D95E8: .word 0xBFFF0000
+ thumb_func_end MOD55_021D9574
+
+ thumb_func_start MOD55_021D95EC
+MOD55_021D95EC: ; 0x021D95EC
+ push {r4, r5, r6, r7, lr}
+ sub sp, #0x34
+ add r4, r0, #0
+ ldr r0, [r4, #8]
+ str r1, [sp, #0x14]
+ bl FUN_020286EC
+ str r0, [sp, #0x1c]
+ mov r0, #0xf2
+ lsl r0, r0, #2
+ ldrb r0, [r4, r0]
+ add r0, r4, r0
+ ldrb r0, [r0, #0x18]
+ sub r0, r0, #1
+ str r0, [sp, #0x18]
+ bl FUN_0200E308
+ cmp r0, #0
+ bne _021D9618
+ ldr r0, [sp, #0x14]
+ add sp, #0x34
+ pop {r4, r5, r6, r7, pc}
+_021D9618:
+ add r0, r4, #0
+ bl MOD55_021D7720
+ add r0, r4, #0
+ bl MOD55_021D8140
+ ldr r0, [r4, #4]
+ bl MOD55_021D7AA4
+ mov r0, #0x34
+ bl FUN_02016B94
+ str r0, [r4, #4]
+ bl MOD55_021D9474
+ bl MOD55_021D9574
+ mov r0, #0
+ str r0, [sp]
+ str r0, [sp, #4]
+ str r0, [sp, #8]
+ mov r0, #0x34
+ str r0, [sp, #0xc]
+ ldr r2, [r4, #4]
+ mov r0, #0x59
+ mov r1, #2
+ mov r3, #1
+ bl FUN_0200687C
+ mov r0, #0
+ str r0, [sp]
+ str r0, [sp, #4]
+ str r0, [sp, #8]
+ mov r0, #0x34
+ str r0, [sp, #0xc]
+ ldr r2, [r4, #4]
+ mov r0, #0x59
+ mov r1, #8
+ mov r3, #1
+ bl FUN_020068C8
+ mov r0, #0
+ str r0, [sp]
+ str r0, [sp, #4]
+ str r0, [sp, #8]
+ mov r0, #0x34
+ str r0, [sp, #0xc]
+ ldr r2, [r4, #4]
+ mov r0, #0x59
+ mov r1, #6
+ mov r3, #2
+ bl FUN_020068C8
+ mov r0, #0xe6
+ lsl r0, r0, #2
+ add r0, r4, r0
+ bl FUN_02019048
+ cmp r0, #0
+ beq _021D969A
+ mov r0, #0xe6
+ lsl r0, r0, #2
+ add r0, r4, r0
+ bl FUN_02019178
+_021D969A:
+ mov r0, #0
+ str r0, [sp]
+ mov r0, #0x14
+ str r0, [sp, #4]
+ mov r2, #3
+ mov r1, #0xe6
+ lsl r1, r1, #2
+ str r2, [sp, #8]
+ mov r0, #0xd
+ str r0, [sp, #0xc]
+ ldr r0, _021D9A50 ; =0x0000019D
+ add r1, r4, r1
+ str r0, [sp, #0x10]
+ ldr r0, [r4, #4]
+ mov r3, #1
+ bl FUN_02019064
+ mov r0, #0xe6
+ lsl r0, r0, #2
+ add r0, r4, r0
+ mov r1, #0
+ bl FUN_02019620
+ mov r0, #0x34
+ bl FUN_02023928
+ str r0, [sp, #0x20]
+ ldr r0, [sp, #0x1c]
+ ldr r1, [sp, #0x18]
+ bl FUN_020283A4
+ add r1, r0, #0
+ ldr r0, [sp, #0x20]
+ bl FUN_0202395C
+ ldr r0, [r4, #0xc]
+ ldr r2, [sp, #0x20]
+ mov r1, #0
+ bl FUN_0200ABC0
+ add r2, r4, #0
+ add r2, #0xb8
+ ldr r0, [r4, #0x10]
+ ldr r2, [r2]
+ mov r1, #0xd
+ bl FUN_0200A8E0
+ add r1, r4, #0
+ add r2, r4, #0
+ add r1, #0xc0
+ add r2, #0xb8
+ ldr r0, [r4, #0xc]
+ ldr r1, [r1]
+ ldr r2, [r2]
+ bl FUN_0200B7B8
+ mov r0, #4
+ str r0, [sp]
+ mov r0, #0xff
+ str r0, [sp, #4]
+ ldr r0, _021D9A54 ; =0x000F0E00
+ add r2, r4, #0
+ str r0, [sp, #8]
+ mov r3, #0
+ mov r0, #0xe6
+ lsl r0, r0, #2
+ str r3, [sp, #0xc]
+ add r2, #0xc0
+ ldr r2, [r2]
+ add r0, r4, r0
+ mov r1, #1
+ bl FUN_0201BDE0
+ mov r0, #0xe6
+ lsl r0, r0, #2
+ add r0, r4, r0
+ bl FUN_02019220
+ mov r0, #0xe2
+ lsl r0, r0, #2
+ add r0, r4, r0
+ bl FUN_02019048
+ cmp r0, #0
+ beq _021D974E
+ mov r0, #0xe2
+ lsl r0, r0, #2
+ add r0, r4, r0
+ bl FUN_02019178
+_021D974E:
+ mov r0, #0x12
+ str r0, [sp]
+ mov r0, #8
+ str r0, [sp, #4]
+ mov r3, #2
+ mov r1, #0xe2
+ lsl r1, r1, #2
+ str r3, [sp, #8]
+ mov r0, #0xd
+ str r0, [sp, #0xc]
+ ldr r0, _021D9A58 ; =0x00000141
+ add r1, r4, r1
+ str r0, [sp, #0x10]
+ ldr r0, [r4, #4]
+ mov r2, #3
+ bl FUN_02019064
+ mov r0, #0xe2
+ lsl r0, r0, #2
+ add r0, r4, r0
+ mov r1, #0
+ bl FUN_02019620
+ ldr r0, [r4, #0xc]
+ ldr r2, [sp, #0x20]
+ mov r1, #0
+ bl FUN_0200ABC0
+ add r2, r4, #0
+ add r2, #0xb8
+ ldr r0, [r4, #0x10]
+ ldr r2, [r2]
+ mov r1, #6
+ bl FUN_0200A8E0
+ add r1, r4, #0
+ add r2, r4, #0
+ add r1, #0xc0
+ add r2, #0xb8
+ ldr r0, [r4, #0xc]
+ ldr r1, [r1]
+ ldr r2, [r2]
+ bl FUN_0200B7B8
+ ldr r0, _021D9A54 ; =0x000F0E00
+ add r1, r4, #0
+ str r0, [sp]
+ mov r0, #0xe2
+ add r1, #0xc0
+ lsl r0, r0, #2
+ ldr r1, [r1]
+ add r0, r4, r0
+ mov r2, #0xff
+ mov r3, #0x40
+ bl MOD55_021D80F0
+ mov r0, #0xe2
+ lsl r0, r0, #2
+ add r0, r4, r0
+ bl FUN_02019220
+ mov r0, #0x34
+ bl FUN_02006D98
+ add r1, r4, #0
+ add r1, #0xdc
+ str r0, [r1]
+ ldr r0, [sp, #0x1c]
+ ldr r1, [sp, #0x18]
+ mov r2, #7
+ bl FUN_0202822C
+ add r6, r0, #0
+ ldr r0, [sp, #0x1c]
+ ldr r1, [sp, #0x18]
+ mov r2, #8
+ bl FUN_0202822C
+ add r1, r6, #0
+ mov r2, #1
+ add r5, r0, #0
+ bl FUN_020536D0
+ add r1, r0, #0
+ lsl r1, r1, #0x10
+ lsl r3, r5, #0x18
+ add r0, sp, #0x24
+ lsr r1, r1, #0x10
+ mov r2, #2
+ lsr r3, r3, #0x18
+ bl FUN_02068FE0
+ mov r0, #0
+ str r0, [sp]
+ str r0, [sp, #4]
+ str r0, [sp, #8]
+ str r0, [sp, #0xc]
+ add r0, r4, #0
+ add r0, #0xdc
+ ldr r0, [r0]
+ add r1, sp, #0x24
+ mov r2, #0x36
+ mov r3, #0x54
+ bl FUN_020073A0
+ add r1, r4, #0
+ add r1, #0xe0
+ str r0, [r1]
+ cmp r5, #1
+ bne _021D9864
+ ldr r0, [r4, #4]
+ mov r1, #2
+ bl FUN_0201886C
+ ldr r2, _021D9A5C ; =0x00000FFF
+ mov r7, #0x10
+ mov ip, r0
+ lsl r6, r7, #5
+ add r3, r2, #1
+_021D983C:
+ lsl r5, r6, #1
+ mov r1, ip
+ mov r0, #0
+ add r1, r1, r5
+_021D9844:
+ ldrh r5, [r1]
+ add r0, r0, #1
+ and r5, r2
+ add r5, r5, r3
+ strh r5, [r1]
+ add r1, r1, #2
+ cmp r0, #0xc
+ blt _021D9844
+ add r7, r7, #1
+ add r6, #0x20
+ cmp r7, #0x15
+ blt _021D983C
+ ldr r0, [r4, #4]
+ mov r1, #2
+ bl FUN_02017CD0
+_021D9864:
+ mov r0, #0xd2
+ lsl r0, r0, #2
+ add r0, r4, r0
+ bl FUN_02019048
+ cmp r0, #0
+ beq _021D987C
+ mov r0, #0xd2
+ lsl r0, r0, #2
+ add r0, r4, r0
+ bl FUN_02019178
+_021D987C:
+ mov r0, #4
+ str r0, [sp]
+ mov r0, #0x10
+ str r0, [sp, #4]
+ mov r0, #0x13
+ str r0, [sp, #8]
+ mov r0, #0xd
+ str r0, [sp, #0xc]
+ mov r0, #2
+ mov r1, #0xd2
+ str r0, [sp, #0x10]
+ lsl r1, r1, #2
+ ldr r0, [r4, #4]
+ add r1, r4, r1
+ mov r2, #3
+ mov r3, #0xf
+ bl FUN_02019064
+ mov r0, #0xd2
+ lsl r0, r0, #2
+ add r0, r4, r0
+ mov r1, #0
+ bl FUN_02019620
+ add r2, r4, #0
+ add r2, #0xc4
+ ldr r0, [r4, #0x10]
+ ldr r2, [r2]
+ mov r1, #0xe
+ bl FUN_0200A8E0
+ mov r0, #2
+ str r0, [sp]
+ mov r0, #0xff
+ str r0, [sp, #4]
+ ldr r0, _021D9A60 ; =0x00010200
+ mov r1, #0
+ str r0, [sp, #8]
+ add r2, r4, #0
+ mov r0, #0xd2
+ lsl r0, r0, #2
+ str r1, [sp, #0xc]
+ add r2, #0xc4
+ ldr r2, [r2]
+ add r0, r4, r0
+ add r3, r1, #0
+ bl FUN_0201BDE0
+ mov r0, #0x34
+ bl FUN_02023928
+ add r5, r0, #0
+ ldr r0, [sp, #0x1c]
+ ldr r1, [sp, #0x18]
+ bl FUN_020283E8
+ add r1, r0, #0
+ add r0, r5, #0
+ bl FUN_0202395C
+ ldr r0, [r4, #0xc]
+ mov r1, #0
+ add r2, r5, #0
+ bl FUN_0200ABC0
+ add r0, r5, #0
+ bl FUN_02016A18
+ add r2, r4, #0
+ add r2, #0xb8
+ ldr r0, [r4, #0x10]
+ ldr r2, [r2]
+ mov r1, #0x2a
+ bl FUN_0200A8E0
+ add r1, r4, #0
+ add r2, r4, #0
+ add r1, #0xc4
+ add r2, #0xb8
+ ldr r0, [r4, #0xc]
+ ldr r1, [r1]
+ ldr r2, [r2]
+ bl FUN_0200B7B8
+ add r1, r4, #0
+ add r1, #0xc4
+ mov r0, #0
+ ldr r1, [r1]
+ add r2, r0, #0
+ bl FUN_02002E14
+ mov r1, #0x78
+ sub r3, r1, r0
+ mov r0, #2
+ str r0, [sp]
+ mov r0, #0xff
+ str r0, [sp, #4]
+ ldr r0, _021D9A60 ; =0x00010200
+ add r2, r4, #0
+ str r0, [sp, #8]
+ mov r1, #0
+ mov r0, #0xd2
+ lsl r0, r0, #2
+ str r1, [sp, #0xc]
+ add r2, #0xc4
+ ldr r2, [r2]
+ add r0, r4, r0
+ bl FUN_0201BDE0
+ add r2, r4, #0
+ add r2, #0xc8
+ ldr r0, [r4, #0x10]
+ ldr r2, [r2]
+ mov r1, #0xf
+ bl FUN_0200A8E0
+ mov r0, #0x18
+ str r0, [sp]
+ mov r0, #0xff
+ str r0, [sp, #4]
+ ldr r0, _021D9A60 ; =0x00010200
+ mov r1, #0
+ str r0, [sp, #8]
+ add r2, r4, #0
+ mov r0, #0xd2
+ lsl r0, r0, #2
+ str r1, [sp, #0xc]
+ add r2, #0xc8
+ ldr r2, [r2]
+ add r0, r4, r0
+ add r3, r1, #0
+ bl FUN_0201BDE0
+ ldr r0, [sp, #0x1c]
+ ldr r1, [sp, #0x18]
+ mov r2, #1
+ bl FUN_0202822C
+ add r2, r0, #0
+ mov r0, #1
+ str r0, [sp]
+ str r0, [sp, #4]
+ ldr r0, [r4, #0xc]
+ mov r1, #0
+ mov r3, #4
+ bl FUN_0200AD38
+ add r2, r4, #0
+ add r2, #0xb8
+ ldr r0, [r4, #0x10]
+ ldr r2, [r2]
+ mov r1, #0x10
+ bl FUN_0200A8E0
+ add r1, r4, #0
+ add r2, r4, #0
+ add r1, #0xc0
+ add r2, #0xb8
+ ldr r0, [r4, #0xc]
+ ldr r1, [r1]
+ ldr r2, [r2]
+ bl FUN_0200B7B8
+ add r1, r4, #0
+ add r1, #0xc0
+ mov r0, #0
+ ldr r1, [r1]
+ add r2, r0, #0
+ bl FUN_02002E14
+ mov r1, #0x78
+ sub r3, r1, r0
+ mov r0, #0x27
+ str r0, [sp]
+ mov r0, #0xff
+ str r0, [sp, #4]
+ ldr r0, _021D9A60 ; =0x00010200
+ add r2, r4, #0
+ str r0, [sp, #8]
+ mov r1, #0
+ mov r0, #0xd2
+ lsl r0, r0, #2
+ str r1, [sp, #0xc]
+ add r2, #0xc0
+ ldr r2, [r2]
+ add r0, r4, r0
+ bl FUN_0201BDE0
+ ldr r0, [sp, #0x1c]
+ ldr r1, [sp, #0x18]
+ mov r2, #2
+ bl FUN_0202822C
+ add r2, r0, #0
+ mov r0, #1
+ str r0, [sp]
+ str r0, [sp, #4]
+ ldr r0, [r4, #0xc]
+ mov r1, #0
+ mov r3, #4
+ bl FUN_0200AD38
+ add r2, r4, #0
+ add r2, #0xb8
+ ldr r0, [r4, #0x10]
+ ldr r2, [r2]
+ mov r1, #0x11
+ bl FUN_0200A8E0
+ add r1, r4, #0
+ add r2, r4, #0
+ add r1, #0xc0
+ add r2, #0xb8
+ ldr r0, [r4, #0xc]
+ ldr r1, [r1]
+ ldr r2, [r2]
+ bl FUN_0200B7B8
+ add r1, r4, #0
+ add r1, #0xc0
+ mov r0, #0
+ ldr r1, [r1]
+ add r2, r0, #0
+ bl FUN_02002E14
+ mov r1, #0x78
+ sub r3, r1, r0
+ mov r0, #0x35
+ str r0, [sp]
+ mov r0, #0xff
+ str r0, [sp, #4]
+ ldr r0, _021D9A60 ; =0x00010200
+ b _021D9A64
+ nop
+_021D9A50: .word 0x0000019D
+_021D9A54: .word 0x000F0E00
+_021D9A58: .word 0x00000141
+_021D9A5C: .word 0x00000FFF
+_021D9A60: .word 0x00010200
+_021D9A64:
+ add r2, r4, #0
+ str r0, [sp, #8]
+ mov r1, #0
+ mov r0, #0xd2
+ lsl r0, r0, #2
+ str r1, [sp, #0xc]
+ add r2, #0xc0
+ ldr r2, [r2]
+ add r0, r4, r0
+ bl FUN_0201BDE0
+ add r2, r4, #0
+ add r2, #0xc0
+ ldr r0, [r4, #0x10]
+ ldr r2, [r2]
+ mov r1, #0x12
+ bl FUN_0200A8E0
+ mov r0, #0x4a
+ str r0, [sp]
+ mov r0, #0xff
+ str r0, [sp, #4]
+ ldr r0, _021D9C4C ; =0x00010200
+ mov r1, #0
+ str r0, [sp, #8]
+ add r2, r4, #0
+ mov r0, #0xd2
+ lsl r0, r0, #2
+ str r1, [sp, #0xc]
+ add r2, #0xc0
+ ldr r2, [r2]
+ add r0, r4, r0
+ add r3, r1, #0
+ bl FUN_0201BDE0
+ ldr r0, [sp, #0x1c]
+ ldr r1, [sp, #0x18]
+ mov r2, #3
+ bl FUN_0202822C
+ add r5, r0, #0
+ mov r0, #1
+ str r0, [sp]
+ str r0, [sp, #4]
+ ldr r0, [r4, #0xc]
+ mov r1, #0
+ add r2, r5, #0
+ mov r3, #4
+ bl FUN_0200AD38
+ cmp r5, #1
+ ldr r0, [r4, #0x10]
+ bne _021D9ADC
+ add r2, r4, #0
+ add r2, #0xb8
+ ldr r2, [r2]
+ mov r1, #0x13
+ bl FUN_0200A8E0
+ b _021D9AE8
+_021D9ADC:
+ add r2, r4, #0
+ add r2, #0xb8
+ ldr r2, [r2]
+ mov r1, #0x2b
+ bl FUN_0200A8E0
+_021D9AE8:
+ add r1, r4, #0
+ add r2, r4, #0
+ add r1, #0xc0
+ add r2, #0xb8
+ ldr r0, [r4, #0xc]
+ ldr r1, [r1]
+ ldr r2, [r2]
+ bl FUN_0200B7B8
+ add r1, r4, #0
+ add r1, #0xc0
+ mov r0, #0
+ ldr r1, [r1]
+ add r2, r0, #0
+ bl FUN_02002E14
+ mov r1, #0x78
+ sub r3, r1, r0
+ mov r0, #0x5c
+ str r0, [sp]
+ mov r0, #0xff
+ str r0, [sp, #4]
+ ldr r0, _021D9C4C ; =0x00010200
+ add r2, r4, #0
+ str r0, [sp, #8]
+ mov r1, #0
+ mov r0, #0xd2
+ lsl r0, r0, #2
+ str r1, [sp, #0xc]
+ add r2, #0xc0
+ ldr r2, [r2]
+ add r0, r4, r0
+ bl FUN_0201BDE0
+ add r2, r4, #0
+ add r2, #0xc0
+ ldr r0, [r4, #0x10]
+ ldr r2, [r2]
+ mov r1, #0x14
+ bl FUN_0200A8E0
+ mov r0, #0x71
+ str r0, [sp]
+ mov r0, #0xff
+ str r0, [sp, #4]
+ ldr r0, _021D9C4C ; =0x00010200
+ mov r1, #0
+ str r0, [sp, #8]
+ add r2, r4, #0
+ mov r0, #0xd2
+ lsl r0, r0, #2
+ str r1, [sp, #0xc]
+ add r2, #0xc0
+ ldr r2, [r2]
+ add r0, r4, r0
+ add r3, r1, #0
+ bl FUN_0201BDE0
+ ldr r0, [sp, #0x1c]
+ ldr r1, [sp, #0x18]
+ mov r2, #6
+ bl FUN_0202822C
+ add r2, r0, #0
+ beq _021D9C18
+ mov r0, #1
+ str r0, [sp]
+ str r0, [sp, #4]
+ mov r1, #2
+ ldr r0, [r4, #0xc]
+ add r3, r1, #0
+ bl FUN_0200AD38
+ ldr r0, [sp, #0x1c]
+ ldr r1, [sp, #0x18]
+ mov r2, #4
+ bl FUN_0202822C
+ add r2, r0, #0
+ mov r0, #1
+ str r0, [sp]
+ str r0, [sp, #4]
+ ldr r0, [r4, #0xc]
+ mov r1, #0
+ mov r3, #4
+ bl FUN_0200AD38
+ ldr r0, [sp, #0x1c]
+ ldr r1, [sp, #0x18]
+ mov r2, #5
+ bl FUN_0202822C
+ add r2, r0, #0
+ ldr r0, [r4, #0xc]
+ mov r1, #1
+ bl FUN_0200B764
+ ldr r0, [sp, #0x1c]
+ ldr r1, [sp, #0x18]
+ mov r2, #6
+ bl FUN_0202822C
+ add r2, r0, #0
+ mov r0, #1
+ str r0, [sp]
+ str r0, [sp, #4]
+ mov r1, #2
+ ldr r0, [r4, #0xc]
+ add r3, r1, #0
+ bl FUN_0200AD38
+ add r2, r4, #0
+ add r2, #0xb8
+ ldr r0, [r4, #0x10]
+ ldr r2, [r2]
+ mov r1, #0x15
+ bl FUN_0200A8E0
+ add r1, r4, #0
+ add r2, r4, #0
+ add r1, #0xc0
+ add r2, #0xb8
+ ldr r0, [r4, #0xc]
+ ldr r1, [r1]
+ ldr r2, [r2]
+ bl FUN_0200B7B8
+ add r1, r4, #0
+ add r1, #0xc0
+ mov r0, #0
+ ldr r1, [r1]
+ add r2, r0, #0
+ bl FUN_02002E14
+ mov r1, #0x78
+ sub r3, r1, r0
+ mov r1, #0x81
+ add r2, r4, #0
+ str r1, [sp]
+ mov r0, #0xff
+ str r0, [sp, #4]
+ lsl r0, r1, #9
+ str r0, [sp, #8]
+ mov r1, #0
+ mov r0, #0xd2
+ lsl r0, r0, #2
+ str r1, [sp, #0xc]
+ add r2, #0xc0
+ ldr r2, [r2]
+ add r0, r4, r0
+ bl FUN_0201BDE0
+_021D9C18:
+ mov r0, #0xd2
+ lsl r0, r0, #2
+ add r0, r4, r0
+ bl FUN_02019220
+ ldr r0, [sp, #0x20]
+ bl FUN_02016A18
+ mov r0, #0x3b
+ mov r1, #0x15
+ lsl r0, r0, #4
+ str r1, [r4, r0]
+ mov r0, #6
+ str r0, [sp]
+ mov r1, #1
+ str r1, [sp, #4]
+ mov r0, #0x34
+ str r0, [sp, #8]
+ mov r0, #0
+ add r2, r1, #0
+ add r3, r0, #0
+ bl FUN_0200E1D0
+ ldr r0, [sp, #0x14]
+ add sp, #0x34
+ pop {r4, r5, r6, r7, pc}
+ .align 2, 0
+_021D9C4C: .word 0x00010200
+ thumb_func_end MOD55_021D95EC
+
+ thumb_func_start MOD55_021D9C50
+MOD55_021D9C50: ; 0x021D9C50
+ push {r4, r5, lr}
+ sub sp, #0xc
+ add r5, r0, #0
+ add r4, r1, #0
+ bl G3X_ResetMtxStack
+ bl G3X_ResetMtxStack_2
+ bl FUN_020B02C8
+ add r0, r5, #0
+ add r0, #0xdc
+ ldr r0, [r0]
+ bl FUN_02006ED4
+ ldr r0, _021D9CB8 ; =0x04000540
+ mov r1, #0
+ str r1, [r0]
+ bl FUN_0200E308
+ cmp r0, #0
+ bne _021D9C82
+ add sp, #0xc
+ add r0, r4, #0
+ pop {r4, r5, pc}
+_021D9C82:
+ ldr r0, _021D9CBC ; =0x021C48B8
+ ldr r1, [r0, #0x48]
+ mov r0, #3
+ tst r0, r1
+ beq _021D9CB2
+ ldr r0, _021D9CC0 ; =0x000005DC
+ bl FUN_020054C8
+ mov r0, #6
+ str r0, [sp]
+ mov r0, #1
+ str r0, [sp, #4]
+ mov r0, #0x34
+ str r0, [sp, #8]
+ mov r0, #0
+ add r1, r0, #0
+ add r2, r0, #0
+ add r3, r0, #0
+ bl FUN_0200E1D0
+ mov r0, #0x3b
+ mov r1, #0x16
+ lsl r0, r0, #4
+ str r1, [r5, r0]
+_021D9CB2:
+ add r0, r4, #0
+ add sp, #0xc
+ pop {r4, r5, pc}
+ .align 2, 0
+_021D9CB8: .word 0x04000540
+_021D9CBC: .word 0x021C48B8
+_021D9CC0: .word 0x000005DC
+ thumb_func_end MOD55_021D9C50
+
+ thumb_func_start MOD55_021D9CC4
+MOD55_021D9CC4: ; 0x021D9CC4
+ push {r3, r4, r5, lr}
+ sub sp, #0x10
+ add r5, r0, #0
+ add r4, r1, #0
+ bl G3X_ResetMtxStack
+ bl G3X_ResetMtxStack_2
+ bl FUN_020B02C8
+ add r0, r5, #0
+ add r0, #0xdc
+ ldr r0, [r0]
+ bl FUN_02006ED4
+ ldr r0, _021D9D84 ; =0x04000540
+ mov r1, #0
+ str r1, [r0]
+ bl FUN_0200E308
+ cmp r0, #0
+ bne _021D9CF6
+ add sp, #0x10
+ add r0, r4, #0
+ pop {r3, r4, r5, pc}
+_021D9CF6:
+ add r0, r5, #0
+ add r0, #0xe0
+ ldr r0, [r0]
+ cmp r0, #0
+ beq _021D9D16
+ bl FUN_02007534
+ add r0, r5, #0
+ add r0, #0xdc
+ ldr r0, [r0]
+ bl FUN_020072E8
+ add r0, r5, #0
+ mov r1, #0
+ add r0, #0xe0
+ str r1, [r0]
+_021D9D16:
+ ldr r0, [r5, #4]
+ bl MOD55_021D7AA4
+ mov r0, #0x34
+ bl FUN_02016B94
+ str r0, [r5, #4]
+ bl MOD55_021D781C
+ add r0, r5, #0
+ bl MOD55_021D74E0
+ mov r0, #0
+ str r0, [sp]
+ str r0, [sp, #4]
+ str r0, [sp, #8]
+ mov r0, #0x34
+ str r0, [sp, #0xc]
+ ldr r2, [r5, #4]
+ mov r0, #0x59
+ mov r1, #0xa
+ mov r3, #4
+ bl FUN_0200687C
+ mov r0, #0
+ str r0, [sp]
+ str r0, [sp, #4]
+ str r0, [sp, #8]
+ mov r0, #0x34
+ str r0, [sp, #0xc]
+ ldr r2, [r5, #4]
+ mov r0, #0x59
+ mov r1, #0xb
+ mov r3, #4
+ bl FUN_020068C8
+ mov r0, #3
+ str r0, [sp]
+ mov r1, #1
+ str r1, [sp, #4]
+ mov r0, #0x34
+ str r0, [sp, #8]
+ mov r0, #0
+ add r2, r1, #0
+ add r3, r0, #0
+ bl FUN_0200E1D0
+ mov r0, #0x3b
+ mov r1, #2
+ lsl r0, r0, #4
+ str r1, [r5, r0]
+ add r0, r4, #0
+ add sp, #0x10
+ pop {r3, r4, r5, pc}
+ nop
+_021D9D84: .word 0x04000540
+ thumb_func_end MOD55_021D9CC4
+
+ thumb_func_start MOD55_021D9D88
+MOD55_021D9D88: ; 0x021D9D88
+ push {r4, r5, r6, r7, lr}
+ sub sp, #0x14
+ add r6, r0, #0
+ ldr r0, [r6, #4]
+ str r1, [sp, #0x10]
+ mov r1, #3
+ bl FUN_02018744
+ mov r3, #0
+ str r3, [sp]
+ str r3, [sp, #4]
+ str r3, [sp, #8]
+ mov r0, #0x34
+ str r0, [sp, #0xc]
+ ldr r2, [r6, #4]
+ mov r0, #0x59
+ mov r1, #8
+ bl FUN_020068C8
+ mov r0, #0
+ str r0, [sp]
+ str r0, [sp, #4]
+ str r0, [sp, #8]
+ mov r0, #0x34
+ str r0, [sp, #0xc]
+ ldr r2, [r6, #4]
+ mov r0, #0x59
+ mov r1, #4
+ mov r3, #1
+ bl FUN_020068C8
+ mov r7, #0x29
+ mov r4, #0
+ add r5, r6, #0
+ lsl r7, r7, #4
+_021D9DCE:
+ ldr r0, [r5, r7]
+ mov r1, #0
+ bl FUN_020200A0
+ add r4, r4, #1
+ add r5, r5, #4
+ cmp r4, #0xa
+ blt _021D9DCE
+ mov r0, #0xf2
+ mov r1, #0
+ lsl r0, r0, #2
+ strb r1, [r6, r0]
+ add r0, r0, #3
+ strb r1, [r6, r0]
+ add r0, r6, #0
+ bl MOD55_021D7EE4
+ add r0, r6, #0
+ bl MOD55_021D8044
+ mov r0, #0x3b
+ mov r1, #1
+ lsl r0, r0, #4
+ str r1, [r6, r0]
+ ldr r0, [sp, #0x10]
+ add sp, #0x14
+ pop {r4, r5, r6, r7, pc}
+ thumb_func_end MOD55_021D9D88
+
+ thumb_func_start MOD55_021D9E04
+MOD55_021D9E04: ; 0x021D9E04
+ push {r4, r5, lr}
+ sub sp, #0xc
+ add r5, r0, #0
+ mov r0, #6
+ str r0, [sp]
+ mov r0, #1
+ str r0, [sp, #4]
+ mov r0, #0x34
+ add r4, r1, #0
+ str r0, [sp, #8]
+ mov r0, #0
+ mov r1, #0x10
+ add r2, r1, #0
+ add r3, r0, #0
+ bl FUN_0200E1D0
+ mov r0, #0x3b
+ mov r1, #0x18
+ lsl r0, r0, #4
+ str r1, [r5, r0]
+ add r0, r4, #0
+ add sp, #0xc
+ pop {r4, r5, pc}
+ .align 2, 0
+ thumb_func_end MOD55_021D9E04
+
+ thumb_func_start MOD55_021D9E34
+MOD55_021D9E34: ; 0x021D9E34
+ ldr r3, _021D9E3C ; =0x0201C78D
+ ldrh r0, [r0]
+ bx r3
+ nop
+_021D9E3C: .word 0x0201C78D
+ thumb_func_end MOD55_021D9E34
+
+ thumb_func_start MOD55_021D9E40
+MOD55_021D9E40: ; 0x021D9E40
+ push {r3, r4, r5, r6, lr}
+ sub sp, #4
+ add r4, r0, #0
+ ldr r0, [r4, #8]
+ add r6, r1, #0
+ bl FUN_020286EC
+ add r5, r0, #0
+ bl FUN_0200E308
+ cmp r0, #0
+ beq _021D9EBE
+ mov r0, #0
+ bl MOD55_021DA27C
+ add r0, r4, #0
+ bl MOD55_021D778C
+ ldr r0, [r4, #8]
+ bl LoadPlayerDataAddress
+ mov r1, #7
+ str r0, [sp]
+ mov r0, #0x34
+ mov r2, #0
+ add r3, r1, #0
+ bl FUN_02077A84
+ str r0, [r4]
+ ldr r0, _021D9EC4 ; =0x020FA5FC
+ ldr r1, [r4]
+ mov r2, #0x34
+ bl FUN_02006234
+ mov r1, #0x3d
+ lsl r1, r1, #4
+ str r0, [r4, r1]
+ add r0, r1, #0
+ mov r2, #0x19
+ sub r0, #0x20
+ str r2, [r4, r0]
+ sub r1, #8
+ ldrb r1, [r4, r1]
+ add r0, r5, #0
+ add r1, r4, r1
+ ldrb r1, [r1, #0x18]
+ sub r1, r1, #1
+ bl FUN_020283A4
+ add r5, r0, #0
+ bl MOD55_021D9E34
+ cmp r0, #0
+ ldr r0, [r4]
+ bne _021D9EB8
+ ldr r0, [r0, #0x18]
+ add r1, r5, #0
+ bl FUN_02021E28
+ b _021D9EBE
+_021D9EB8:
+ ldr r0, [r0, #0x18]
+ bl FUN_02021A4C
+_021D9EBE:
+ add r0, r6, #0
+ add sp, #4
+ pop {r3, r4, r5, r6, pc}
+ .align 2, 0
+_021D9EC4: .word 0x020FA5FC
+ thumb_func_end MOD55_021D9E40
+
+ thumb_func_start MOD55_021D9EC8
+MOD55_021D9EC8: ; 0x021D9EC8
+ push {r4, r5, lr}
+ sub sp, #0xc
+ add r5, r0, #0
+ mov r0, #0x3d
+ lsl r0, r0, #4
+ ldr r0, [r5, r0]
+ add r4, r1, #0
+ bl FUN_02006290
+ cmp r0, #0
+ beq _021D9F68
+ mov r0, #0x3d
+ lsl r0, r0, #4
+ ldr r0, [r5, r0]
+ bl FUN_02006260
+ ldr r1, [r5]
+ ldr r0, [r1, #0x14]
+ cmp r0, #0
+ bne _021D9F18
+ add r0, r5, #0
+ add r0, #0xd4
+ ldr r0, [r0]
+ ldr r1, [r1, #0x18]
+ bl FUN_02021A74
+ ldr r0, [r5, #8]
+ bl FUN_020286EC
+ mov r1, #0xf2
+ lsl r1, r1, #2
+ ldrb r1, [r5, r1]
+ add r2, r5, #0
+ add r2, #0xd4
+ add r1, r5, r1
+ ldrb r1, [r1, #0x18]
+ ldr r2, [r2]
+ sub r1, r1, #1
+ bl FUN_020283C0
+_021D9F18:
+ ldr r0, [r5]
+ bl FUN_02077AC4
+ mov r0, #0
+ add r1, r0, #0
+ bl FUN_0200E3A0
+ mov r0, #1
+ mov r1, #0
+ bl FUN_0200E3A0
+ mov r0, #0
+ bl MOD55_021DA27C
+ mov r0, #6
+ str r0, [sp]
+ mov r0, #1
+ str r0, [sp, #4]
+ mov r0, #0x34
+ str r0, [sp, #8]
+ mov r0, #0
+ mov r1, #0x11
+ add r2, r1, #0
+ add r3, r0, #0
+ bl FUN_0200E1D0
+ add r0, r5, #0
+ bl MOD55_021D7504
+ add r0, r5, #0
+ add r1, r4, #0
+ bl MOD55_021D8A7C
+ mov r0, #1
+ bl MOD55_021DA27C
+ mov r0, #0x3b
+ mov r1, #0x1a
+ lsl r0, r0, #4
+ str r1, [r5, r0]
+_021D9F68:
+ add r0, r4, #0
+ add sp, #0xc
+ pop {r4, r5, pc}
+ .align 2, 0
+ thumb_func_end MOD55_021D9EC8
+
+ thumb_func_start MOD55_021D9F70
+MOD55_021D9F70: ; 0x021D9F70
+ push {r3, r4, r5, lr}
+ add r5, r0, #0
+ add r4, r1, #0
+ bl FUN_0200E308
+ cmp r0, #0
+ beq _021D9F86
+ mov r0, #0x3b
+ mov r1, #3
+ lsl r0, r0, #4
+ str r1, [r5, r0]
+_021D9F86:
+ add r0, r4, #0
+ pop {r3, r4, r5, pc}
+ .align 2, 0
+ thumb_func_end MOD55_021D9F70
+
+ thumb_func_start MOD55_021D9F8C
+MOD55_021D9F8C: ; 0x021D9F8C
+ push {r4, r5, r6, lr}
+ add r5, r0, #0
+ mov r0, #0x34
+ add r6, r1, #0
+ bl FUN_02023928
+ add r4, r0, #0
+ ldr r0, [r5, #8]
+ bl FUN_020286EC
+ mov r1, #0xf2
+ lsl r1, r1, #2
+ ldrb r1, [r5, r1]
+ add r1, r5, r1
+ ldrb r1, [r1, #0x18]
+ sub r1, r1, #1
+ bl FUN_020283A4
+ add r1, r0, #0
+ add r0, r4, #0
+ bl FUN_0202395C
+ ldr r0, [r5, #0xc]
+ mov r1, #0
+ add r2, r4, #0
+ bl FUN_0200ABC0
+ add r0, r5, #0
+ mov r1, #0x1c
+ bl MOD55_021DA0A4
+ add r0, r4, #0
+ bl FUN_02016A18
+ mov r0, #0x3b
+ mov r1, #0x1c
+ lsl r0, r0, #4
+ str r1, [r5, r0]
+ add r0, r6, #0
+ pop {r4, r5, r6, pc}
+ thumb_func_end MOD55_021D9F8C
+
+ thumb_func_start MOD55_021D9FDC
+MOD55_021D9FDC: ; 0x021D9FDC
+ push {r3, r4, r5, lr}
+ add r5, r0, #0
+ add r0, #0xe4
+ ldr r0, [r0]
+ add r4, r1, #0
+ lsl r0, r0, #0x18
+ lsr r0, r0, #0x18
+ bl FUN_0201BD70
+ cmp r0, #0
+ bne _021DA010
+ mov r0, #0x34
+ str r0, [sp]
+ ldr r0, [r5, #4]
+ ldr r1, _021DA014 ; =0x021DA2AC
+ ldr r2, _021DA018 ; =0x000001D9
+ mov r3, #0xb
+ bl FUN_02002198
+ add r1, r5, #0
+ add r1, #0xe8
+ str r0, [r1]
+ mov r0, #0x3b
+ mov r1, #0x1d
+ lsl r0, r0, #4
+ str r1, [r5, r0]
+_021DA010:
+ add r0, r4, #0
+ pop {r3, r4, r5, pc}
+ .align 2, 0
+_021DA014: .word 0x021DA2AC
+_021DA018: .word 0x000001D9
+ thumb_func_end MOD55_021D9FDC
+
+ thumb_func_start MOD55_021DA01C
+MOD55_021DA01C: ; 0x021DA01C
+ push {r3, r4, r5, lr}
+ add r5, r0, #0
+ add r0, #0xe8
+ add r4, r1, #0
+ ldr r0, [r0]
+ mov r1, #0x34
+ bl FUN_020021AC
+ mov r1, #0
+ mvn r1, r1
+ cmp r0, r1
+ bne _021DA038
+ add r0, r4, #0
+ pop {r3, r4, r5, pc}
+_021DA038:
+ cmp r0, #0
+ bne _021DA056
+ ldr r0, [r5, #8]
+ bl FUN_020286EC
+ mov r1, #0xf2
+ lsl r1, r1, #2
+ ldrb r1, [r5, r1]
+ add r1, r5, r1
+ ldrb r1, [r1, #0x18]
+ sub r1, r1, #1
+ bl FUN_02028468
+ mov r1, #2
+ b _021DA070
+_021DA056:
+ mov r0, #0x2b
+ lsl r0, r0, #4
+ ldr r0, [r5, r0]
+ mov r1, #1
+ bl FUN_020200A0
+ mov r0, #0xad
+ lsl r0, r0, #2
+ ldr r0, [r5, r0]
+ mov r1, #1
+ bl FUN_020200A0
+ mov r1, #3
+_021DA070:
+ mov r0, #0x3b
+ lsl r0, r0, #4
+ str r1, [r5, r0]
+ add r0, r5, #0
+ bl MOD55_021DA214
+ add r0, r4, #0
+ pop {r3, r4, r5, pc}
+ thumb_func_end MOD55_021DA01C
+
+ thumb_func_start MOD55_021DA080
+MOD55_021DA080: ; 0x021DA080
+ push {lr}
+ sub sp, #0xc
+ mov r0, #6
+ str r0, [sp]
+ mov r0, #1
+ str r0, [sp, #4]
+ mov r0, #0x34
+ str r0, [sp, #8]
+ mov r0, #0
+ mov r1, #0x10
+ add r2, r1, #0
+ add r3, r0, #0
+ bl FUN_0200E1D0
+ mov r0, #2
+ add sp, #0xc
+ pop {pc}
+ .align 2, 0
+ thumb_func_end MOD55_021DA080
+
+ thumb_func_start MOD55_021DA0A4
+MOD55_021DA0A4: ; 0x021DA0A4
+ push {r3, r4, r5, r6, lr}
+ sub sp, #0x14
+ add r5, r0, #0
+ ldr r0, [r5, #8]
+ add r6, r1, #0
+ bl LoadPlayerDataAddress
+ bl FUN_02024FF4
+ add r4, r0, #0
+ mov r0, #0xce
+ lsl r0, r0, #2
+ add r0, r5, r0
+ bl FUN_02019048
+ cmp r0, #0
+ beq _021DA0D0
+ mov r0, #0xce
+ lsl r0, r0, #2
+ add r0, r5, r0
+ bl FUN_02019178
+_021DA0D0:
+ mov r0, #0x13
+ str r0, [sp]
+ mov r0, #0x1b
+ str r0, [sp, #4]
+ mov r0, #4
+ str r0, [sp, #8]
+ mov r0, #0xc
+ str r0, [sp, #0xc]
+ ldr r0, _021DA154 ; =0x0000012D
+ mov r1, #0xce
+ str r0, [sp, #0x10]
+ lsl r1, r1, #2
+ mov r2, #2
+ ldr r0, [r5, #4]
+ add r1, r5, r1
+ add r3, r2, #0
+ bl FUN_02019064
+ add r2, r5, #0
+ add r2, #0xb8
+ ldr r0, [r5, #0x10]
+ ldr r2, [r2]
+ add r1, r6, #0
+ bl FUN_0200A8E0
+ add r1, r5, #0
+ add r2, r5, #0
+ add r1, #0xbc
+ add r2, #0xb8
+ ldr r0, [r5, #0xc]
+ ldr r1, [r1]
+ ldr r2, [r2]
+ bl FUN_0200B7B8
+ mov r0, #0xce
+ lsl r0, r0, #2
+ add r0, r5, r0
+ mov r1, #0xf
+ bl FUN_02019620
+ mov r0, #0xce
+ lsl r0, r0, #2
+ ldr r2, _021DA158 ; =0x000001E2
+ add r0, r5, r0
+ mov r1, #1
+ mov r3, #0xa
+ bl FUN_0200D0BC
+ mov r3, #0
+ str r3, [sp]
+ str r4, [sp, #4]
+ add r2, r5, #0
+ mov r0, #0xce
+ lsl r0, r0, #2
+ str r3, [sp, #8]
+ add r2, #0xbc
+ ldr r2, [r2]
+ add r0, r5, r0
+ mov r1, #1
+ bl FUN_0201BD84
+ add r5, #0xe4
+ str r0, [r5]
+ add sp, #0x14
+ pop {r3, r4, r5, r6, pc}
+ nop
+_021DA154: .word 0x0000012D
+_021DA158: .word 0x000001E2
+ thumb_func_end MOD55_021DA0A4
+
+ thumb_func_start MOD55_021DA15C
+MOD55_021DA15C: ; 0x021DA15C
+ push {r4, r5, lr}
+ sub sp, #0x14
+ add r5, r0, #0
+ mov r0, #0xce
+ lsl r0, r0, #2
+ add r0, r5, r0
+ add r4, r1, #0
+ bl FUN_02019048
+ cmp r0, #0
+ beq _021DA17C
+ mov r0, #0xce
+ lsl r0, r0, #2
+ add r0, r5, r0
+ bl FUN_02019178
+_021DA17C:
+ mov r0, #0x13
+ str r0, [sp]
+ mov r0, #0x1b
+ str r0, [sp, #4]
+ mov r0, #4
+ str r0, [sp, #8]
+ mov r0, #0xc
+ str r0, [sp, #0xc]
+ ldr r0, _021DA20C ; =0x0000012D
+ mov r1, #0xce
+ str r0, [sp, #0x10]
+ lsl r1, r1, #2
+ mov r2, #2
+ ldr r0, [r5, #4]
+ add r1, r5, r1
+ add r3, r2, #0
+ bl FUN_02019064
+ add r2, r5, #0
+ add r2, #0xb8
+ ldr r0, [r5, #0x10]
+ ldr r2, [r2]
+ add r1, r4, #0
+ bl FUN_0200A8E0
+ add r1, r5, #0
+ add r2, r5, #0
+ add r1, #0xbc
+ add r2, #0xb8
+ ldr r0, [r5, #0xc]
+ ldr r1, [r1]
+ ldr r2, [r2]
+ bl FUN_0200B7B8
+ mov r0, #0xce
+ lsl r0, r0, #2
+ add r0, r5, r0
+ mov r1, #0xf
+ bl FUN_02019620
+ mov r0, #0xce
+ lsl r0, r0, #2
+ ldr r2, _021DA210 ; =0x000001E2
+ add r0, r5, r0
+ mov r1, #1
+ mov r3, #0xa
+ bl FUN_0200D0BC
+ mov r3, #0
+ add r2, r5, #0
+ str r3, [sp]
+ mov r0, #0xff
+ str r0, [sp, #4]
+ mov r0, #0xce
+ lsl r0, r0, #2
+ str r3, [sp, #8]
+ add r2, #0xbc
+ ldr r2, [r2]
+ add r0, r5, r0
+ mov r1, #1
+ bl FUN_0201BD84
+ add r1, r5, #0
+ add r1, #0xe4
+ str r0, [r1]
+ mov r0, #0xce
+ lsl r0, r0, #2
+ add r0, r5, r0
+ bl FUN_02019220
+ add sp, #0x14
+ pop {r4, r5, pc}
+ .align 2, 0
+_021DA20C: .word 0x0000012D
+_021DA210: .word 0x000001E2
+ thumb_func_end MOD55_021DA15C
+
+ thumb_func_start MOD55_021DA214
+MOD55_021DA214: ; 0x021DA214
+ mov r1, #0xce
+ lsl r1, r1, #2
+ add r0, r0, r1
+ ldr r3, _021DA220 ; =0x0200D0E1
+ mov r1, #0
+ bx r3
+ .align 2, 0
+_021DA220: .word 0x0200D0E1
+ thumb_func_end MOD55_021DA214
+
+ thumb_func_start MOD55_021DA224
+MOD55_021DA224: ; 0x021DA224
+ push {r3, r4, r5, r6, r7, lr}
+ add r5, r0, #0
+ add r7, r1, #0
+ add r4, r2, #0
+ add r6, r3, #0
+ cmp r5, #0
+ beq _021DA276
+ bl FUN_020286EC
+ bl FUN_02028228
+ add r1, r4, #0
+ add r2, r6, #0
+ bl FUN_020973B4
+ cmp r0, #0
+ bne _021DA24C
+ mov r0, #0
+ mvn r0, r0
+ pop {r3, r4, r5, r6, r7, pc}
+_021DA24C:
+ add r0, r5, #0
+ add r1, r4, #0
+ add r2, r6, #0
+ add r3, sp, #0
+ bl FUN_02033918
+ cmp r0, #0
+ bne _021DA262
+ mov r0, #1
+ mvn r0, r0
+ pop {r3, r4, r5, r6, r7, pc}
+_021DA262:
+ add r0, r5, #0
+ bl FUN_020286EC
+ add r1, r7, #0
+ bl FUN_0202838C
+ add r1, r4, #0
+ add r2, r6, #0
+ bl FUN_02096D2C
+_021DA276:
+ mov r0, #0
+ pop {r3, r4, r5, r6, r7, pc}
+ .align 2, 0
+ thumb_func_end MOD55_021DA224
+
+ thumb_func_start MOD55_021DA27C
+MOD55_021DA27C: ; 0x021DA27C
+ push {r4, lr}
+ add r4, r0, #0
+ lsl r1, r4, #0x18
+ mov r0, #0xf
+ lsr r1, r1, #0x18
+ bl FUN_0201E6E4
+ lsl r1, r4, #0x18
+ mov r0, #1
+ lsr r1, r1, #0x18
+ bl FUN_0201E74C
+ pop {r4, pc}
+ .align 2, 0
+ thumb_func_end MOD55_021DA27C
+
+ .section .rodata
+ ; 0x021DA298
+ .incbin "baserom.nds", 0x2A15B8, 0x1E8
+
+ .section .data
+ ; 0x021DA4A0
+ .incbin "baserom.nds", 0x2A17C0, 0x80