diff options
-rw-r--r-- | arm9/arm9.lcf | 335 | ||||
-rw-r--r-- | arm9/global.inc | 8 | ||||
-rw-r--r-- | arm9/modules/55/asm/module_55.s | 5594 |
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 |