summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMarcus Huderle <huderlem@gmail.com>2018-10-12 09:46:01 -0500
committerMarcus Huderle <huderlem@gmail.com>2018-10-12 09:46:01 -0500
commite6318b44aac1d1fe94aedb7dba1b03553d192647 (patch)
tree097352a24da11eb1a165c4e769c71598b24adebf
parentf5d6fb1bc7097dcc9d122d4b490ca6e9c26d5994 (diff)
Dump more assembly and fixup some labels
-rwxr-xr-xasm/main.s34644
-rwxr-xr-xasm/rom.s2
-rwxr-xr-xasm/start.s1
3 files changed, 34450 insertions, 197 deletions
diff --git a/asm/main.s b/asm/main.s
index 27ae05b..3e7a2d6 100755
--- a/asm/main.s
+++ b/asm/main.s
@@ -34,19 +34,32 @@
.set sub_53E74, 0x08053E74
.set sub_53EDC, 0x08053EDC
.set sub_53EDC, 0x08053EDC
+ .set sub_53F20, 0x08053F20
+ .set sub_53F80, 0x08053F80
.set sub_543DC, 0x080543DC
.set sub_54458, 0x08054458
.set sub_5450C, 0x0805450C
.set sub_545F0, 0x080545F0
.set sub_54D94, 0x08054D94
.set sub_54D94, 0x08054D94
+ .set sub_552EC, 0x080552EC
+ .set sub_553BC, 0x080553BC
+ .set sub_553D0, 0x080553D0
+ .set sub_553E8, 0x080553E8
+ .set sub_55420, 0x08055420
+ .set sub_5542C, 0x0805542C
+ .set sub_55438, 0x08055438
+ .set sub_5545C, 0x0805545C
+ .set sub_554C8, 0x080554C8
.set sub_554D4, 0x080554D4
.set sub_554D8, 0x080554D8
.set sub_554D8, 0x080554D8
+ .set sub_554DC, 0x080554DC
.set sub_554E0, 0x080554E0
.set sub_554E4, 0x080554E4
.set sub_554E8, 0x080554E8
.set sub_554E8, 0x080554E8
+ .set sub_555BC, 0x080555BC
.set sub_55654, 0x08055654
.set sub_55694, 0x08055694
.set sub_55694, 0x08055694
@@ -918,14 +931,14 @@ _080008B8: .4byte 0x0200FB9C
thumb_func_start sub_8BC
sub_8BC: @ 0x080008BC
ldr r0, _080008C8 @ =0x0200FB9C
- ldr r1, _080008CC @ =0x08000DC5
+ ldr r1, _080008CC @ =sub_DC4 + 1
str r1, [r0]
ldr r0, _080008D0 @ =0x02017BD4
str r1, [r0]
bx lr
.align 2, 0
_080008C8: .4byte 0x0200FB9C
-_080008CC: .4byte 0x08000DC5
+_080008CC: .4byte sub_DC4 + 1
_080008D0: .4byte 0x02017BD4
thumb_func_start sub_8D4
@@ -953,14 +966,14 @@ _080008F8: .4byte 0x0200FB98
sub_8FC: @ 0x080008FC
ldr r0, _0800090C @ =0x0200FB98
ldr r0, [r0]
- ldr r1, _08000910 @ =0x08000A09
+ ldr r1, _08000910 @ =sub_A08 + 1
str r1, [r0]
ldr r0, _08000914 @ =0x02017BD0
str r1, [r0]
bx lr
.align 2, 0
_0800090C: .4byte 0x0200FB98
-_08000910: .4byte 0x08000A09
+_08000910: .4byte sub_A08 + 1
_08000914: .4byte 0x02017BD0
thumb_func_start sub_918
@@ -988,14 +1001,14 @@ _0800093C: .4byte 0x02019BE0
sub_940: @ 0x08000940
ldr r0, _08000950 @ =0x02019BE0
ldr r0, [r0]
- ldr r1, _08000954 @ =0x08000A21
+ ldr r1, _08000954 @ =sub_A20 + 1
str r1, [r0]
ldr r0, _08000958 @ =0x0200FBA0
str r1, [r0]
bx lr
.align 2, 0
_08000950: .4byte 0x02019BE0
-_08000954: .4byte 0x08000A21
+_08000954: .4byte sub_A20 + 1
_08000958: .4byte 0x0200FBA0
thumb_func_start AgbMain
@@ -1005,7 +1018,7 @@ AgbMain: @ 0x0800095C
bl sub_554E0
bl sub_BBC
ldr r1, _080009A0 @ =0x040000D4
- ldr r0, _080009A4 @ =0x08000104
+ ldr r0, _080009A4 @ =IntrMain
str r0, [r1]
ldr r2, _080009A8 @ =0x03005400
str r2, [r1, #4]
@@ -1029,7 +1042,7 @@ _08000988:
b _08000988
.align 2, 0
_080009A0: .4byte 0x040000D4
-_080009A4: .4byte 0x08000104
+_080009A4: .4byte IntrMain
_080009A8: .4byte 0x03005400
_080009AC: .4byte 0x84000200
_080009B0: .4byte 0x03007FFC
@@ -1913,9 +1926,9 @@ sub_10C0: @ 0x080010C0
cmp r2, #1
bne _080010DC
ldr r1, _080010FC @ =0x02003060
- ldr r0, _08001100 @ =0x080013FD
+ ldr r0, _08001100 @ =sub_13FC + 1
str r0, [r1]
- ldr r0, _08001104 @ =0x08001829
+ ldr r0, _08001104 @ =sub_1828 + 1
str r0, [r1, #4]
ldr r0, _08001108 @ =0x02019BF4
str r2, [r0]
@@ -1938,8 +1951,8 @@ _080010DC:
.align 2, 0
_080010F8: .4byte 0x02019C0C
_080010FC: .4byte 0x02003060
-_08001100: .4byte 0x080013FD
-_08001104: .4byte 0x08001829
+_08001100: .4byte sub_13FC + 1
+_08001104: .4byte sub_1828 + 1
_08001108: .4byte 0x02019BF4
_0800110C: .4byte 0x02019BFC
_08001110: .4byte 0x02019BE4
@@ -2008,15 +2021,15 @@ _08001196:
thumb_func_start sub_1198
sub_1198: @ 0x08001198
ldr r0, _080011A4 @ =0x02003060
- ldr r1, _080011A8 @ =0x08000B39
+ ldr r1, _080011A8 @ =sub_B38 + 1
str r1, [r0]
- ldr r1, _080011AC @ =0x08000B45
+ ldr r1, _080011AC @ =sub_B44 + 1
str r1, [r0, #4]
bx lr
.align 2, 0
_080011A4: .4byte 0x02003060
-_080011A8: .4byte 0x08000B39
-_080011AC: .4byte 0x08000B45
+_080011A8: .4byte sub_B38 + 1
+_080011AC: .4byte sub_B44 + 1
thumb_func_start sub_11B0
sub_11B0: @ 0x080011B0
@@ -2076,14 +2089,14 @@ _08001208:
b _08001324
_08001212:
lsls r0, r0, #2
- ldr r1, _08001224 @ =0x08001228
+ ldr r1, _08001224 @ =_08001228
adds r0, r0, r1
ldr r0, [r0]
mov pc, r0
.align 2, 0
_0800121C: .4byte 0x02019C0C
_08001220: .4byte 0x02019C10
-_08001224: .4byte 0x08001228
+_08001224: .4byte _08001228
_08001228: @ jump table
.4byte _08001324 @ case 0
.4byte _08001324 @ case 1
@@ -2332,7 +2345,7 @@ sub_13FC: @ 0x080013FC
b _0800161C
_0800142A:
lsls r0, r1, #2
- ldr r1, _08001444 @ =0x08001448
+ ldr r1, _08001444 @ =_08001448
adds r0, r0, r1
ldr r0, [r0]
mov pc, r0
@@ -2341,7 +2354,7 @@ _08001434: .4byte 0x02002818
_08001438: .4byte 0x04000120
_0800143C: .4byte 0x0400010E
_08001440: .4byte 0x02019C10
-_08001444: .4byte 0x08001448
+_08001444: .4byte _08001448
_08001448: @ jump table
.4byte _08001460 @ case 0
.4byte _08001520 @ case 1
@@ -2739,12 +2752,12 @@ sub_1748: @ 0x08001748
cmp r0, #4
bhi _080017CE
lsls r0, r0, #2
- ldr r1, _08001760 @ =0x08001764
+ ldr r1, _08001760 @ =_08001764
adds r0, r0, r1
ldr r0, [r0]
mov pc, r0
.align 2, 0
-_08001760: .4byte 0x08001764
+_08001760: .4byte _08001764
_08001764: @ jump table
.4byte _080017C4 @ case 0
.4byte _08001778 @ case 1
@@ -2807,13 +2820,13 @@ sub_17D8: @ 0x080017D8
cmp r0, #4
bhi _08001824
lsls r0, r0, #2
- ldr r1, _080017F0 @ =0x080017F4
+ ldr r1, _080017F0 @ =_080017F4
adds r0, r0, r1
ldr r0, [r0]
mov pc, r0
.align 2, 0
_080017EC: .4byte 0x02019BEC
-_080017F0: .4byte 0x080017F4
+_080017F0: .4byte _080017F4
_080017F4: @ jump table
.4byte _08001808 @ case 0
.4byte _0800180C @ case 1
@@ -2918,9 +2931,9 @@ sub_1884: @ 0x08001884
ldrh r0, [r5]
mov r1, r8
strh r0, [r1]
- ldr r0, _08001960 @ =0x080019CD
+ ldr r0, _08001960 @ =sub_19CC + 1
bl sub_898
- ldr r0, _08001964 @ =0x08001A79
+ ldr r0, _08001964 @ =sub_1A78 + 1
bl sub_8D4
strh r4, [r5]
ldrh r0, [r6]
@@ -2987,8 +3000,8 @@ _08001950: .4byte 0x0000FF3F
_08001954: .4byte 0x04000134
_08001958: .4byte 0x04000128
_0800195C: .4byte 0x00004003
-_08001960: .4byte 0x080019CD
-_08001964: .4byte 0x08001A79
+_08001960: .4byte sub_19CC + 1
+_08001964: .4byte sub_1A78 + 1
_08001968: .4byte 0x0400012A
_0800196C: .4byte 0x04000120
_08001970: .4byte 0x0202BF20
@@ -3183,13 +3196,13 @@ sub_1B04: @ 0x08001B04
cmp r0, #4
bhi _08001BEE
lsls r0, r0, #2
- ldr r1, _08001B24 @ =0x08001B28
+ ldr r1, _08001B24 @ =_08001B28
adds r0, r0, r1
ldr r0, [r0]
mov pc, r0
.align 2, 0
_08001B20: .4byte 0x0202BF20
-_08001B24: .4byte 0x08001B28
+_08001B24: .4byte _08001B28
_08001B28: @ jump table
.4byte _08001B3C @ case 0
.4byte _08001B4C @ case 1
@@ -4685,7 +4698,7 @@ sub_25C4: @ 0x080025C4
ldr r0, [r0, #8]
bl sub_CBC
bl sub_2710
- ldr r0, _0800270C @ =0x080029C9
+ ldr r0, _0800270C @ =sub_29C8 + 1
bl sub_FD5C
movs r0, #3
bl sub_53DA8
@@ -4721,7 +4734,7 @@ _080026FC: .4byte 0x80000030
_08002700: .4byte 0x080A8C40
_08002704: .4byte 0x06010000
_08002708: .4byte 0x80002010
-_0800270C: .4byte 0x080029C9
+_0800270C: .4byte sub_29C8 + 1
thumb_func_start sub_2710
sub_2710: @ 0x08002710
@@ -5030,7 +5043,7 @@ _0800298C: .4byte 0x0202BEE4
thumb_func_start sub_2990
sub_2990: @ 0x08002990
push {lr}
- ldr r0, _080029BC @ =0x080029C9
+ ldr r0, _080029BC @ =sub_29C8 + 1
bl sub_FE04
bl sub_53EDC
bl sub_D10
@@ -5047,7 +5060,7 @@ sub_2990: @ 0x08002990
pop {r0}
bx r0
.align 2, 0
-_080029BC: .4byte 0x080029C9
+_080029BC: .4byte sub_29C8 + 1
_080029C0: .4byte 0x0201A4B4
_080029C4: .4byte 0x0202BEE4
@@ -13561,14 +13574,14 @@ sub_6F78: @ 0x08006F78
b _080070C0
_08006FB0:
lsls r0, r0, #2
- ldr r1, _08006FC4 @ =0x08006FC8
+ ldr r1, _08006FC4 @ =_08006FC8
adds r0, r0, r1
ldr r0, [r0]
mov pc, r0
.align 2, 0
_08006FBC: .4byte 0x0202A1C0
_08006FC0: .4byte 0x0202ADE0
-_08006FC4: .4byte 0x08006FC8
+_08006FC4: .4byte _08006FC8
_08006FC8: @ jump table
.4byte _08006FDC @ case 0
.4byte _08007000 @ case 1
@@ -13836,12 +13849,12 @@ _080071F4:
bl _080088C8
_08007206:
lsls r0, r0, #2
- ldr r1, _08007210 @ =0x08007214
+ ldr r1, _08007210 @ =_08007214
adds r0, r0, r1
ldr r0, [r0]
mov pc, r0
.align 2, 0
-_08007210: .4byte 0x08007214
+_08007210: .4byte _08007214
_08007214: @ jump table
.4byte _08008580 @ case 0
.4byte _0800819C @ case 1
@@ -13862,12 +13875,12 @@ _08007230:
bl _080088C8
_0800723E:
lsls r0, r0, #2
- ldr r1, _08007248 @ =0x0800724C
+ ldr r1, _08007248 @ =_0800724C
adds r0, r0, r1
ldr r0, [r0]
mov pc, r0
.align 2, 0
-_08007248: .4byte 0x0800724C
+_08007248: .4byte _0800724C
_0800724C: @ jump table
.4byte _0800726C @ case 0
.4byte _080072EC @ case 1
@@ -14595,12 +14608,12 @@ _08007814:
bl _080088C8
_08007822:
lsls r0, r0, #2
- ldr r1, _0800782C @ =0x08007830
+ ldr r1, _0800782C @ =_08007830
adds r0, r0, r1
ldr r0, [r0]
mov pc, r0
.align 2, 0
-_0800782C: .4byte 0x08007830
+_0800782C: .4byte _08007830
_08007830: @ jump table
.4byte _08007850 @ case 0
.4byte _080078D0 @ case 1
@@ -15247,12 +15260,12 @@ _08007D58:
bl _080088C8
_08007D66:
lsls r0, r0, #2
- ldr r1, _08007D70 @ =0x08007D74
+ ldr r1, _08007D70 @ =_08007D74
adds r0, r0, r1
ldr r0, [r0]
mov pc, r0
.align 2, 0
-_08007D70: .4byte 0x08007D74
+_08007D70: .4byte _08007D74
_08007D74: @ jump table
.4byte _08007D94 @ case 0
.4byte _08007DD8 @ case 1
@@ -15776,12 +15789,12 @@ _080081A4:
b _080088C8
_080081B0:
lsls r0, r0, #2
- ldr r1, _080081BC @ =0x080081C0
+ ldr r1, _080081BC @ =_080081C0
adds r0, r0, r1
ldr r0, [r0]
mov pc, r0
.align 2, 0
-_080081BC: .4byte 0x080081C0
+_080081BC: .4byte _080081C0
_080081C0: @ jump table
.4byte _080081E0 @ case 0
.4byte _08008230 @ case 1
@@ -16263,12 +16276,12 @@ _08008588:
b _080088C8
_08008594:
lsls r0, r0, #2
- ldr r1, _080085A0 @ =0x080085A4
+ ldr r1, _080085A0 @ =_080085A4
adds r0, r0, r1
ldr r0, [r0]
mov pc, r0
.align 2, 0
-_080085A0: .4byte 0x080085A4
+_080085A0: .4byte _080085A4
_080085A4: @ jump table
.4byte _080085C4 @ case 0
.4byte _08008610 @ case 1
@@ -16720,7 +16733,7 @@ _0800891E:
cmp r0, #4
bhi _08008968
lsls r0, r0, #2
- ldr r1, _08008944 @ =0x08008948
+ ldr r1, _08008944 @ =_08008948
adds r0, r0, r1
ldr r0, [r0]
mov pc, r0
@@ -16729,7 +16742,7 @@ _08008934: .4byte 0x0202A1C0
_08008938: .4byte 0x0201A514
_0800893C: .4byte 0x0202BEB8
_08008940: .4byte 0x0200B134
-_08008944: .4byte 0x08008948
+_08008944: .4byte _08008948
_08008948: @ jump table
.4byte _08008968 @ case 0
.4byte _08008962 @ case 1
@@ -17036,7 +17049,7 @@ sub_8AF4: @ 0x08008AF4
ldr r0, [r0, #8]
bl sub_CBC
bl sub_8C38
- ldr r0, _08008C34 @ =0x08008F95
+ ldr r0, _08008C34 @ =sub_8F94 + 1
bl sub_FD5C
ldrb r0, [r4, #3]
adds r0, #1
@@ -17071,7 +17084,7 @@ _08008C24: .4byte 0x05000200
_08008C28: .4byte 0x080A8C40
_08008C2C: .4byte 0x06010000
_08008C30: .4byte 0x80002010
-_08008C34: .4byte 0x08008F95
+_08008C34: .4byte sub_8F94 + 1
thumb_func_start sub_8C38
sub_8C38: @ 0x08008C38
@@ -17495,7 +17508,7 @@ _08008F60: .4byte 0x0200B0C0
thumb_func_start sub_8F64
sub_8F64: @ 0x08008F64
push {lr}
- ldr r0, _08008F88 @ =0x08008F95
+ ldr r0, _08008F88 @ =sub_8F94 + 1
bl sub_FE04
bl sub_53EDC
bl sub_D10
@@ -17508,7 +17521,7 @@ sub_8F64: @ 0x08008F64
pop {r0}
bx r0
.align 2, 0
-_08008F88: .4byte 0x08008F95
+_08008F88: .4byte sub_8F94 + 1
_08008F8C: .4byte 0x0201A4B4
_08008F90: .4byte 0x02002838
@@ -17951,7 +17964,7 @@ sub_929C: @ 0x0800929C
strh r1, [r0]
ldr r0, _08009340 @ =0x0202C790
strb r2, [r0]
- ldr r0, _08009344 @ =0x080093F9
+ ldr r0, _08009344 @ =sub_93F8 + 1
bl sub_898
bl sub_CBC
bl sub_24C
@@ -17973,7 +17986,7 @@ _08009334: .4byte 0x80000100
_08009338: .4byte 0x0200B0C0
_0800933C: .4byte 0x0202BF10
_08009340: .4byte 0x0202C790
-_08009344: .4byte 0x080093F9
+_08009344: .4byte sub_93F8 + 1
thumb_func_start sub_9348
sub_9348: @ 0x08009348
@@ -32719,7 +32732,7 @@ _08010A9C:
movs r1, #1
strb r1, [r0, #3]
bl sub_CBC
- ldr r0, _08010ABC @ =0x08011641
+ ldr r0, _08010ABC @ =sub_11640 + 1
bl sub_FD5C
_08010AAC:
movs r0, #1
@@ -32729,7 +32742,7 @@ _08010AAC:
bx r0
.align 2, 0
_08010AB8: .4byte 0x0200B0C0
-_08010ABC: .4byte 0x08011641
+_08010ABC: .4byte sub_11640 + 1
thumb_func_start sub_10AC0
sub_10AC0: @ 0x08010AC0
@@ -33904,14 +33917,14 @@ sub_11428: @ 0x08011428
ldrb r0, [r0, #7]
cmp r0, #0
bne _08011444
- ldr r0, _08011440 @ =0x0801175D
+ ldr r0, _08011440 @ =sub_1175C + 1
bl sub_FE04
b _0801144A
.align 2, 0
_0801143C: .4byte 0x02002888
-_08011440: .4byte 0x0801175D
+_08011440: .4byte sub_1175C + 1
_08011444:
- ldr r0, _08011470 @ =0x08011969
+ ldr r0, _08011470 @ =sub_11968 + 1
bl sub_FE04
_0801144A:
bl sub_53EDC
@@ -33931,7 +33944,7 @@ _0801144A:
movs r0, #0
b _08011484
.align 2, 0
-_08011470: .4byte 0x08011969
+_08011470: .4byte sub_11968 + 1
_08011474: .4byte 0x086A964C
_08011478: .4byte 0x02002888
_0801147C: .4byte 0x0202C588
@@ -33963,7 +33976,7 @@ _080114B0: .4byte 0x02002888
thumb_func_start sub_114B4
sub_114B4: @ 0x080114B4
push {lr}
- ldr r0, _080114E8 @ =0x08011641
+ ldr r0, _080114E8 @ =sub_11640 + 1
bl sub_FE04
bl sub_53EDC
bl sub_D10
@@ -33985,7 +33998,7 @@ sub_114B4: @ 0x080114B4
pop {r0}
bx r0
.align 2, 0
-_080114E8: .4byte 0x08011641
+_080114E8: .4byte sub_11640 + 1
_080114EC: .4byte 0x0202C588
_080114F0: .4byte 0x0201A4B4
_080114F4: .4byte 0x086A964C
@@ -36852,7 +36865,7 @@ sub_12BF8: @ 0x08012BF8
cmp r0, #4
bhi _08012CA0
lsls r0, r0, #2
- ldr r1, _08012C44 @ =0x08012C48
+ ldr r1, _08012C44 @ =_08012C48
adds r0, r0, r1
ldr r0, [r0]
mov pc, r0
@@ -36862,7 +36875,7 @@ _08012C34: .4byte 0x00001330
_08012C38: .4byte 0x00001334
_08012C3C: .4byte 0x0000132C
_08012C40: .4byte 0x0200B0C0
-_08012C44: .4byte 0x08012C48
+_08012C44: .4byte _08012C48
_08012C48: @ jump table
.4byte _08012C5C @ case 0
.4byte _08012C78 @ case 1
@@ -37766,13 +37779,13 @@ sub_1333C: @ 0x0801333C
b _08013758
_08013362:
lsls r0, r0, #2
- ldr r1, _08013370 @ =0x08013374
+ ldr r1, _08013370 @ =_08013374
adds r0, r0, r1
ldr r0, [r0]
mov pc, r0
.align 2, 0
_0801336C: .4byte 0x020314E0
-_08013370: .4byte 0x08013374
+_08013370: .4byte _08013374
_08013374: @ jump table
.4byte _080133C8 @ case 0
.4byte _08013488 @ case 1
@@ -41187,7 +41200,7 @@ _08014E82:
b _0801502C
_08014F00:
lsls r0, r0, #2
- ldr r1, _08014F20 @ =0x08014F24
+ ldr r1, _08014F20 @ =_08014F24
adds r0, r0, r1
ldr r0, [r0]
mov pc, r0
@@ -41197,7 +41210,7 @@ _08014F10: .4byte 0x0000132C
_08014F14: .4byte 0xFFFF0000
_08014F18: .4byte 0x0000FFFF
_08014F1C: .4byte 0x02031520
-_08014F20: .4byte 0x08014F24
+_08014F20: .4byte _08014F24
_08014F24: @ jump table
.4byte _08014F3C @ case 0
.4byte _08014FE8 @ case 1
@@ -41811,12 +41824,12 @@ sub_153CC: @ 0x080153CC
bl _08016082
_080153E0:
lsls r0, r0, #2
- ldr r1, _080153EC @ =0x080153F0
+ ldr r1, _080153EC @ =_080153F0
adds r0, r0, r1
ldr r0, [r0]
mov pc, r0
.align 2, 0
-_080153EC: .4byte 0x080153F0
+_080153EC: .4byte _080153F0
_080153F0: @ jump table
.4byte _0801542C @ case 0
.4byte _08015494 @ case 1
@@ -43877,12 +43890,12 @@ sub_1642C: @ 0x0801642C
bl _080171B8
_08016446:
lsls r0, r0, #2
- ldr r1, _08016450 @ =0x08016454
+ ldr r1, _08016450 @ =_08016454
adds r0, r0, r1
ldr r0, [r0]
mov pc, r0
.align 2, 0
-_08016450: .4byte 0x08016454
+_08016450: .4byte _08016454
_08016454: @ jump table
.4byte _08016490 @ case 0
.4byte _080164D8 @ case 1
@@ -45689,7 +45702,7 @@ _08017242:
b _080173DA
_080172C0:
lsls r0, r0, #2
- ldr r1, _080172E0 @ =0x080172E4
+ ldr r1, _080172E0 @ =_080172E4
adds r0, r0, r1
ldr r0, [r0]
mov pc, r0
@@ -45699,7 +45712,7 @@ _080172D0: .4byte 0x0000132C
_080172D4: .4byte 0xFFFF0000
_080172D8: .4byte 0x0000FFFF
_080172DC: .4byte 0x02031520
-_080172E0: .4byte 0x080172E4
+_080172E0: .4byte _080172E4
_080172E4: @ jump table
.4byte _080172FC @ case 0
.4byte _080173A8 @ case 1
@@ -46133,12 +46146,12 @@ sub_17634: @ 0x08017634
cmp r0, #0xe
bhi _080176A6
lsls r0, r0, #2
- ldr r1, _08017648 @ =0x0801764C
+ ldr r1, _08017648 @ =_0801764C
adds r0, r0, r1
ldr r0, [r0]
mov pc, r0
.align 2, 0
-_08017648: .4byte 0x0801764C
+_08017648: .4byte _0801764C
_0801764C: @ jump table
.4byte _080176A6 @ case 0
.4byte _080176A6 @ case 1
@@ -46305,7 +46318,7 @@ _0801772A:
cmp r0, #5
bhi _08017876
lsls r0, r0, #2
- ldr r1, _080177C4 @ =0x080177C8
+ ldr r1, _080177C4 @ =_080177C8
adds r0, r0, r1
ldr r0, [r0]
mov pc, r0
@@ -46315,7 +46328,7 @@ _080177B4: .4byte 0x0000132C
_080177B8: .4byte 0xFFFF0000
_080177BC: .4byte 0x0000FFFF
_080177C0: .4byte 0x02031520
-_080177C4: .4byte 0x080177C8
+_080177C4: .4byte _080177C8
_080177C8: @ jump table
.4byte _080177E0 @ case 0
.4byte _08017804 @ case 1
@@ -46585,14 +46598,14 @@ sub_179D0: @ 0x080179D0
b _08017C12
_080179EC:
lsls r0, r0, #2
- ldr r1, _08017A00 @ =0x08017A04
+ ldr r1, _08017A00 @ =_08017A04
adds r0, r0, r1
ldr r0, [r0]
mov pc, r0
.align 2, 0
_080179F8: .4byte 0x020314E0
_080179FC: .4byte 0x0000132C
-_08017A00: .4byte 0x08017A04
+_08017A00: .4byte _08017A04
_08017A04: @ jump table
.4byte _08017C12 @ case 0
.4byte _08017C12 @ case 1
@@ -46969,7 +46982,7 @@ _08017C88:
b _08017F18
_08017CEE:
lsls r0, r0, #2
- ldr r1, _08017D0C @ =0x08017D10
+ ldr r1, _08017D0C @ =_08017D10
adds r0, r0, r1
ldr r0, [r0]
mov pc, r0
@@ -46979,7 +46992,7 @@ _08017CFC: .4byte 0xFFFF0000
_08017D00: .4byte 0x0000FFFF
_08017D04: .4byte 0x02031520
_08017D08: .4byte 0x00000402
-_08017D0C: .4byte 0x08017D10
+_08017D0C: .4byte _08017D10
_08017D10: @ jump table
.4byte _08017D24 @ case 0
.4byte _08017D74 @ case 1
@@ -47411,12 +47424,12 @@ _0801803E:
b _0801815E
_08018058:
lsls r0, r0, #2
- ldr r1, _08018064 @ =0x08018068
+ ldr r1, _08018064 @ =_08018068
adds r0, r0, r1
ldr r0, [r0]
mov pc, r0
.align 2, 0
-_08018064: .4byte 0x08018068
+_08018064: .4byte _08018068
_08018068: @ jump table
.4byte _08018080 @ case 0
.4byte _0801812C @ case 1
@@ -47714,12 +47727,12 @@ sub_182B4: @ 0x080182B4
cmp r0, #0xe
bhi _0801831C
lsls r0, r0, #2
- ldr r1, _080182C8 @ =0x080182CC
+ ldr r1, _080182C8 @ =_080182CC
adds r0, r0, r1
ldr r0, [r0]
mov pc, r0
.align 2, 0
-_080182C8: .4byte 0x080182CC
+_080182C8: .4byte _080182CC
_080182CC: @ jump table
.4byte _0801831C @ case 0
.4byte _0801831C @ case 1
@@ -47906,12 +47919,12 @@ _0801843A:
b _0801855A
_08018454:
lsls r0, r0, #2
- ldr r1, _08018460 @ =0x08018464
+ ldr r1, _08018460 @ =_08018464
adds r0, r0, r1
ldr r0, [r0]
mov pc, r0
.align 2, 0
-_08018460: .4byte 0x08018464
+_08018460: .4byte _08018464
_08018464: @ jump table
.4byte _0801847C @ case 0
.4byte _08018528 @ case 1
@@ -48314,12 +48327,12 @@ sub_18784: @ 0x08018784
cmp r0, #0xe
bhi _080187EC
lsls r0, r0, #2
- ldr r1, _08018798 @ =0x0801879C
+ ldr r1, _08018798 @ =_0801879C
adds r0, r0, r1
ldr r0, [r0]
mov pc, r0
.align 2, 0
-_08018798: .4byte 0x0801879C
+_08018798: .4byte _0801879C
_0801879C: @ jump table
.4byte _080187EC @ case 0
.4byte _080187EC @ case 1
@@ -48506,12 +48519,12 @@ _0801890A:
b _08018A2A
_08018924:
lsls r0, r0, #2
- ldr r1, _08018930 @ =0x08018934
+ ldr r1, _08018930 @ =_08018934
adds r0, r0, r1
ldr r0, [r0]
mov pc, r0
.align 2, 0
-_08018930: .4byte 0x08018934
+_08018930: .4byte _08018934
_08018934: @ jump table
.4byte _0801894C @ case 0
.4byte _080189F8 @ case 1
@@ -48729,12 +48742,12 @@ sub_18AE0: @ 0x08018AE0
cmp r0, #0xe
bhi _08018B48
lsls r0, r0, #2
- ldr r1, _08018AF4 @ =0x08018AF8
+ ldr r1, _08018AF4 @ =_08018AF8
adds r0, r0, r1
ldr r0, [r0]
mov pc, r0
.align 2, 0
-_08018AF4: .4byte 0x08018AF8
+_08018AF4: .4byte _08018AF8
_08018AF8: @ jump table
.4byte _08018B48 @ case 0
.4byte _08018B48 @ case 1
@@ -48897,7 +48910,7 @@ _08018BCA:
b _08018D8A
_08018C48:
lsls r0, r0, #2
- ldr r1, _08018C68 @ =0x08018C6C
+ ldr r1, _08018C68 @ =_08018C6C
adds r0, r0, r1
ldr r0, [r0]
mov pc, r0
@@ -48907,7 +48920,7 @@ _08018C58: .4byte 0x0000132C
_08018C5C: .4byte 0xFFFF0000
_08018C60: .4byte 0x0000FFFF
_08018C64: .4byte 0x02031520
-_08018C68: .4byte 0x08018C6C
+_08018C68: .4byte _08018C6C
_08018C6C: @ jump table
.4byte _08018C84 @ case 0
.4byte _08018D30 @ case 1
@@ -49272,12 +49285,12 @@ sub_18F38: @ 0x08018F38
cmp r0, #0xe
bhi _0801901C
lsls r0, r0, #2
- ldr r1, _08018F4C @ =0x08018F50
+ ldr r1, _08018F4C @ =_08018F50
adds r0, r0, r1
ldr r0, [r0]
mov pc, r0
.align 2, 0
-_08018F4C: .4byte 0x08018F50
+_08018F4C: .4byte _08018F50
_08018F50: @ jump table
.4byte _0801901C @ case 0
.4byte _08018F8C @ case 1
@@ -56393,13 +56406,13 @@ sub_1C7F4: @ 0x0801C7F4
bl _0801D0B8
_0801C81A:
lsls r0, r0, #2
- ldr r1, _0801C828 @ =0x0801C82C
+ ldr r1, _0801C828 @ =_0801C82C
adds r0, r0, r1
ldr r0, [r0]
mov pc, r0
.align 2, 0
_0801C824: .4byte 0x020314E0
-_0801C828: .4byte 0x0801C82C
+_0801C828: .4byte _0801C82C
_0801C82C: @ jump table
.4byte _0801C854 @ case 0
.4byte _0801C900 @ case 1
@@ -58058,7 +58071,7 @@ sub_1D5D8: @ 0x0801D5D8
b _0801D930
_0801D600:
lsls r0, r0, #2
- ldr r1, _0801D618 @ =0x0801D61C
+ ldr r1, _0801D618 @ =_0801D61C
adds r0, r0, r1
ldr r0, [r0]
mov pc, r0
@@ -58066,7 +58079,7 @@ _0801D600:
_0801D60C: .4byte 0x0200E6C0
_0801D610: .4byte 0x020314E0
_0801D614: .4byte 0x000002FB
-_0801D618: .4byte 0x0801D61C
+_0801D618: .4byte _0801D61C
_0801D61C: @ jump table
.4byte _0801D63C @ case 0
.4byte _0801D65C @ case 1
@@ -59086,7 +59099,7 @@ _0801DE4E:
bl _0801E780
_0801DE64:
lsls r0, r0, #2
- ldr r1, _0801DE84 @ =0x0801DE88
+ ldr r1, _0801DE84 @ =_0801DE88
adds r0, r0, r1
ldr r0, [r0]
mov pc, r0
@@ -59096,7 +59109,7 @@ _0801DE74: .4byte 0x0000016F
_0801DE78: .4byte 0x000002A2
_0801DE7C: .4byte 0x000002A5
_0801DE80: .4byte 0x000002A6
-_0801DE84: .4byte 0x0801DE88
+_0801DE84: .4byte _0801DE88
_0801DE88: @ jump table
.4byte _0801DEB4 @ case 0
.4byte _0801DF2C @ case 1
@@ -60217,13 +60230,13 @@ _0801E780:
b _0801EC32
_0801E798:
lsls r0, r0, #2
- ldr r1, _0801E7A8 @ =0x0801E7AC
+ ldr r1, _0801E7A8 @ =_0801E7AC
adds r0, r0, r1
ldr r0, [r0]
mov pc, r0
.align 2, 0
_0801E7A4: .4byte 0x020314E0
-_0801E7A8: .4byte 0x0801E7AC
+_0801E7A8: .4byte _0801E7AC
_0801E7AC: @ jump table
.4byte _0801E7C8 @ case 0
.4byte _0801E814 @ case 1
@@ -65602,13 +65615,13 @@ sub_21320: @ 0x08021320
b _0802150C
_08021336:
lsls r0, r0, #2
- ldr r1, _08021344 @ =0x08021348
+ ldr r1, _08021344 @ =_08021348
adds r0, r0, r1
ldr r0, [r0]
mov pc, r0
.align 2, 0
_08021340: .4byte 0x020314E0
-_08021344: .4byte 0x08021348
+_08021344: .4byte _08021348
_08021348: @ jump table
.4byte _08021364 @ case 0
.4byte _080213B2 @ case 1
@@ -65903,7 +65916,7 @@ sub_21578: @ 0x08021578
b _080216AE
_0802159C:
lsls r0, r0, #2
- ldr r1, _080215B4 @ =0x080215B8
+ ldr r1, _080215B4 @ =_080215B8
adds r0, r0, r1
ldr r0, [r0]
mov pc, r0
@@ -65911,7 +65924,7 @@ _0802159C:
_080215A8: .4byte 0x0200B0C0
_080215AC: .4byte 0x020314E0
_080215B0: .4byte 0x00000283
-_080215B4: .4byte 0x080215B8
+_080215B4: .4byte _080215B8
_080215B8: @ jump table
.4byte _080215CC @ case 0
.4byte _080215E8 @ case 1
@@ -65972,14 +65985,14 @@ _0802161C:
cmp r0, #4
bhi _080216AE
lsls r0, r0, #2
- ldr r1, _08021648 @ =0x0802164C
+ ldr r1, _08021648 @ =_0802164C
adds r0, r0, r1
ldr r0, [r0]
mov pc, r0
.align 2, 0
_08021640: .4byte 0x020314E0
_08021644: .4byte 0x00000283
-_08021648: .4byte 0x0802164C
+_08021648: .4byte _0802164C
_0802164C: @ jump table
.4byte _08021660 @ case 0
.4byte _0802167C @ case 1
@@ -66082,13 +66095,13 @@ sub_216FC: @ 0x080216FC
b _080219A2
_08021710:
lsls r0, r0, #2
- ldr r1, _08021720 @ =0x08021724
+ ldr r1, _08021720 @ =_08021724
adds r0, r0, r1
ldr r0, [r0]
mov pc, r0
.align 2, 0
_0802171C: .4byte 0x020314E0
-_08021720: .4byte 0x08021724
+_08021720: .4byte _08021724
_08021724: @ jump table
.4byte _08021748 @ case 0
.4byte _0802175C @ case 1
@@ -66145,13 +66158,13 @@ _08021784:
cmp r0, #4
bhi _080217CE
lsls r0, r0, #2
- ldr r1, _080217A8 @ =0x080217AC
+ ldr r1, _080217A8 @ =_080217AC
adds r0, r0, r1
ldr r0, [r0]
mov pc, r0
.align 2, 0
_080217A4: .4byte 0x00000283
-_080217A8: .4byte 0x080217AC
+_080217A8: .4byte _080217AC
_080217AC: @ jump table
.4byte _080217C0 @ case 0
.4byte _080217C8 @ case 1
@@ -70403,14 +70416,14 @@ sub_239A4: @ 0x080239A4
cmp r0, #5
bhi _08023A22
lsls r0, r0, #2
- ldr r1, _080239E4 @ =0x080239E8
+ ldr r1, _080239E4 @ =_080239E8
adds r0, r0, r1
ldr r0, [r0]
mov pc, r0
.align 2, 0
_080239DC: .4byte 0x0200D638
_080239E0: .4byte 0x020314E0
-_080239E4: .4byte 0x080239E8
+_080239E4: .4byte _080239E8
_080239E8: @ jump table
.4byte _08023A22 @ case 0
.4byte _08023A22 @ case 1
@@ -71707,14 +71720,14 @@ sub_24408: @ 0x08024408
bl _080252F6
_08024434:
lsls r0, r0, #2
- ldr r1, _08024448 @ =0x0802444C
+ ldr r1, _08024448 @ =_0802444C
adds r0, r0, r1
ldr r0, [r0]
mov pc, r0
.align 2, 0
_08024440: .4byte 0x0200B0C0
_08024444: .4byte 0x020314E0
-_08024448: .4byte 0x0802444C
+_08024448: .4byte _0802444C
_0802444C: @ jump table
.4byte _08024470 @ case 0
.4byte _080244A0 @ case 1
@@ -74143,14 +74156,14 @@ sub_25808: @ 0x08025808
b _08025F36
_08025828:
lsls r0, r0, #2
- ldr r1, _0802583C @ =0x08025840
+ ldr r1, _0802583C @ =_08025840
adds r0, r0, r1
ldr r0, [r0]
mov pc, r0
.align 2, 0
_08025834: .4byte 0x020314E0
_08025838: .4byte 0x00000602
-_0802583C: .4byte 0x08025840
+_0802583C: .4byte _08025840
_08025840: @ jump table
.4byte _08025864 @ case 0
.4byte _080258A8 @ case 1
@@ -75185,13 +75198,13 @@ sub_260B8: @ 0x080260B8
b _0802674E
_080260D8:
lsls r0, r0, #2
- ldr r1, _080260E8 @ =0x080260EC
+ ldr r1, _080260E8 @ =_080260EC
adds r0, r0, r1
ldr r0, [r0]
mov pc, r0
.align 2, 0
_080260E4: .4byte 0x020314E0
-_080260E8: .4byte 0x080260EC
+_080260E8: .4byte _080260EC
_080260EC: @ jump table
.4byte _08026104 @ case 0
.4byte _080261E0 @ case 1
@@ -76371,14 +76384,14 @@ _08026A4C:
b _08026E9E
_08026A5E:
lsls r0, r0, #2
- ldr r1, _08026A70 @ =0x08026A74
+ ldr r1, _08026A70 @ =_08026A74
adds r0, r0, r1
ldr r0, [r0]
mov pc, r0
.align 2, 0
_08026A68: .4byte 0x020314E0
_08026A6C: .4byte 0x00000296
-_08026A70: .4byte 0x08026A74
+_08026A70: .4byte _08026A74
_08026A74: @ jump table
.4byte _08026A94 @ case 0
.4byte _08026AC4 @ case 1
@@ -77165,14 +77178,14 @@ _080270C0:
bl _080278E6
_080270D4:
lsls r0, r0, #2
- ldr r1, _080270E8 @ =0x080270EC
+ ldr r1, _080270E8 @ =_080270EC
adds r0, r0, r1
ldr r0, [r0]
mov pc, r0
.align 2, 0
_080270E0: .4byte 0x020314E0
_080270E4: .4byte 0x00000296
-_080270E8: .4byte 0x080270EC
+_080270E8: .4byte _080270EC
_080270EC: @ jump table
.4byte _08027118 @ case 0
.4byte _08027390 @ case 1
@@ -79030,14 +79043,14 @@ _08027FD0:
b _080283FA
_08027FE2:
lsls r0, r0, #2
- ldr r1, _08027FF4 @ =0x08027FF8
+ ldr r1, _08027FF4 @ =_08027FF8
adds r0, r0, r1
ldr r0, [r0]
mov pc, r0
.align 2, 0
_08027FEC: .4byte 0x020314E0
_08027FF0: .4byte 0x00000296
-_08027FF4: .4byte 0x08027FF8
+_08027FF4: .4byte _08027FF8
_08027FF8: @ jump table
.4byte _0802802C @ case 0
.4byte _08028040 @ case 1
@@ -79682,13 +79695,13 @@ sub_28544: @ 0x08028544
b _08028AD2
_0802855C:
lsls r0, r0, #2
- ldr r1, _0802856C @ =0x08028570
+ ldr r1, _0802856C @ =_08028570
adds r0, r0, r1
ldr r0, [r0]
mov pc, r0
.align 2, 0
_08028568: .4byte 0x020314E0
-_0802856C: .4byte 0x08028570
+_0802856C: .4byte _08028570
_08028570: @ jump table
.4byte _0802858C @ case 0
.4byte _080285A8 @ case 1
@@ -82782,7 +82795,7 @@ _08029E38:
b _08029F9E
_08029E56:
lsls r0, r0, #2
- ldr r1, _08029E80 @ =0x08029E84
+ ldr r1, _08029E80 @ =_08029E84
adds r0, r0, r1
ldr r0, [r0]
mov pc, r0
@@ -82795,7 +82808,7 @@ _08029E70: .4byte 0x000006F4
_08029E74: .4byte 0x000006E9
_08029E78: .4byte 0x086AD180
_08029E7C: .4byte 0x00000283
-_08029E80: .4byte 0x08029E84
+_08029E80: .4byte _08029E84
_08029E84: @ jump table
.4byte _08029E98 @ case 0
.4byte _08029EAA @ case 1
@@ -82833,13 +82846,13 @@ _08029EBC:
cmp r0, #4
bhi _08029F9E
lsls r0, r0, #2
- ldr r1, _08029EE0 @ =0x08029EE4
+ ldr r1, _08029EE0 @ =_08029EE4
adds r0, r0, r1
ldr r0, [r0]
mov pc, r0
.align 2, 0
_08029EDC: .4byte 0x00000283
-_08029EE0: .4byte 0x08029EE4
+_08029EE0: .4byte _08029EE4
_08029EE4: @ jump table
.4byte _08029EF8 @ case 0
.4byte _08029F0A @ case 1
@@ -83449,7 +83462,7 @@ _0802A3A6:
b _0802AAD2
_0802A3B8:
lsls r0, r0, #2
- ldr r1, _0802A3D0 @ =0x0802A3D4
+ ldr r1, _0802A3D0 @ =_0802A3D4
adds r0, r0, r1
ldr r0, [r0]
mov pc, r0
@@ -83457,7 +83470,7 @@ _0802A3B8:
_0802A3C4: .4byte 0x020314E0
_0802A3C8: .4byte 0x000006DE
_0802A3CC: .4byte 0x000006DC
-_0802A3D0: .4byte 0x0802A3D4
+_0802A3D0: .4byte _0802A3D4
_0802A3D4: @ jump table
.4byte _0802A48C @ case 0
.4byte _0802A48C @ case 1
@@ -84372,7 +84385,7 @@ _0802AB38:
bl _0802C4D2
_0802AB50:
lsls r0, r0, #2
- ldr r1, _0802AB68 @ =0x0802AB6C
+ ldr r1, _0802AB68 @ =_0802AB6C
adds r0, r0, r1
ldr r0, [r0]
mov pc, r0
@@ -84380,7 +84393,7 @@ _0802AB50:
_0802AB5C: .4byte 0x020314E0
_0802AB60: .4byte 0x000005A6
_0802AB64: .4byte 0x086ACF38
-_0802AB68: .4byte 0x0802AB6C
+_0802AB68: .4byte _0802AB6C
_0802AB6C: @ jump table
.4byte _0802ABF8 @ case 0
.4byte _0802AD18 @ case 1
@@ -87510,13 +87523,13 @@ sub_2C538: @ 0x0802C538
b _0802C784
_0802C55C:
lsls r0, r0, #2
- ldr r1, _0802C56C @ =0x0802C570
+ ldr r1, _0802C56C @ =_0802C570
adds r0, r0, r1
ldr r0, [r0]
mov pc, r0
.align 2, 0
_0802C568: .4byte 0x020314E0
-_0802C56C: .4byte 0x0802C570
+_0802C56C: .4byte _0802C570
_0802C570: @ jump table
.4byte _0802C588 @ case 0
.4byte _0802C5BC @ case 1
@@ -88724,7 +88737,7 @@ _0802CF02:
b _0802D0FA
_0802CF14:
lsls r0, r0, #2
- ldr r1, _0802CF38 @ =0x0802CF3C
+ ldr r1, _0802CF38 @ =_0802CF3C
adds r0, r0, r1
ldr r0, [r0]
mov pc, r0
@@ -88735,7 +88748,7 @@ _0802CF28: .4byte 0x08137B5C
_0802CF2C: .4byte 0x05000360
_0802CF30: .4byte 0x80000010
_0802CF34: .4byte 0x00000163
-_0802CF38: .4byte 0x0802CF3C
+_0802CF38: .4byte _0802CF3C
_0802CF3C: @ jump table
.4byte _0802CF50 @ case 0
.4byte _0802CFAC @ case 1
@@ -91666,14 +91679,14 @@ sub_2E6AC: @ 0x0802E6AC
bl _0802EFFC
_0802E6D6:
lsls r0, r0, #2
- ldr r1, _0802E6E8 @ =0x0802E6EC
+ ldr r1, _0802E6E8 @ =_0802E6EC
adds r0, r0, r1
ldr r0, [r0]
mov pc, r0
.align 2, 0
_0802E6E0: .4byte 0x020314E0
_0802E6E4: .4byte 0x00000306
-_0802E6E8: .4byte 0x0802E6EC
+_0802E6E8: .4byte _0802E6EC
_0802E6EC: @ jump table
.4byte _0802E718 @ case 0
.4byte _0802E75C @ case 1
@@ -93068,13 +93081,13 @@ sub_2F26C: @ 0x0802F26C
b _0802F4FA
_0802F286:
lsls r0, r0, #2
- ldr r1, _0802F294 @ =0x0802F298
+ ldr r1, _0802F294 @ =_0802F298
adds r0, r0, r1
ldr r0, [r0]
mov pc, r0
.align 2, 0
_0802F290: .4byte 0x020314E0
-_0802F294: .4byte 0x0802F298
+_0802F294: .4byte _0802F298
_0802F298: @ jump table
.4byte _0802F2AC @ case 0
.4byte _0802F2F0 @ case 1
@@ -93717,14 +93730,14 @@ _0802F7A8:
b _0802FB26
_0802F7C4:
lsls r0, r0, #2
- ldr r1, _0802F7D8 @ =0x0802F7DC
+ ldr r1, _0802F7D8 @ =_0802F7DC
adds r0, r0, r1
ldr r0, [r0]
mov pc, r0
.align 2, 0
_0802F7D0: .4byte 0x020314E0
_0802F7D4: .4byte 0x0000036A
-_0802F7D8: .4byte 0x0802F7DC
+_0802F7D8: .4byte _0802F7DC
_0802F7DC: @ jump table
.4byte _0802F7F4 @ case 0
.4byte _0802F87E @ case 1
@@ -95358,14 +95371,14 @@ sub_304C8: @ 0x080304C8
cmp r0, #5
bhi _08030552
lsls r0, r0, #2
- ldr r1, _0803050C @ =0x08030510
+ ldr r1, _0803050C @ =_08030510
adds r0, r0, r1
ldr r0, [r0]
mov pc, r0
.align 2, 0
_08030504: .4byte 0x0200D918
_08030508: .4byte 0x020314E0
-_0803050C: .4byte 0x08030510
+_0803050C: .4byte _08030510
_08030510: @ jump table
.4byte _08030552 @ case 0
.4byte _08030552 @ case 1
@@ -97356,14 +97369,14 @@ sub_31498: @ 0x08031498
b _080319AC
_080314B8:
lsls r0, r0, #2
- ldr r1, _080314CC @ =0x080314D0
+ ldr r1, _080314CC @ =_080314D0
adds r0, r0, r1
ldr r0, [r0]
mov pc, r0
.align 2, 0
_080314C4: .4byte 0x020314E0
_080314C8: .4byte 0x00000346
-_080314CC: .4byte 0x080314D0
+_080314CC: .4byte _080314D0
_080314D0: @ jump table
.4byte _080314EC @ case 0
.4byte _08031610 @ case 1
@@ -100977,13 +100990,13 @@ sub_33130: @ 0x08033130
b _080333C4
_08033142:
lsls r0, r0, #2
- ldr r1, _08033150 @ =0x08033154
+ ldr r1, _08033150 @ =_08033154
adds r0, r0, r1
ldr r0, [r0]
mov pc, r0
.align 2, 0
_0803314C: .4byte 0x020314E0
-_08033150: .4byte 0x08033154
+_08033150: .4byte _08033154
_08033154: @ jump table
.4byte _08033170 @ case 0
.4byte _08033208 @ case 1
@@ -101735,7 +101748,7 @@ _08033752:
bl _08033FD8
_08033772:
lsls r0, r0, #2
- ldr r1, _08033790 @ =0x08033794
+ ldr r1, _08033790 @ =_08033794
adds r0, r0, r1
ldr r0, [r0]
mov pc, r0
@@ -101745,7 +101758,7 @@ _08033780: .4byte 0x00000385
_08033784: .4byte 0x000003A6
_08033788: .4byte 0x0200B0C0
_0803378C: .4byte 0x000008B8
-_08033790: .4byte 0x08033794
+_08033790: .4byte _08033794
_08033794: @ jump table
.4byte _080337BC @ case 0
.4byte _0803394C @ case 1
@@ -103346,14 +103359,14 @@ sub_34450: @ 0x08034450
bl _08034D7E
_0803447E:
lsls r0, r0, #2
- ldr r1, _08034490 @ =0x08034494
+ ldr r1, _08034490 @ =_08034494
adds r0, r0, r1
ldr r0, [r0]
mov pc, r0
.align 2, 0
_08034488: .4byte 0x0200BDC8
_0803448C: .4byte 0x020314E0
-_08034490: .4byte 0x08034494
+_08034490: .4byte _08034494
_08034494: @ jump table
.4byte _080344B8 @ case 0
.4byte _08034510 @ case 1
@@ -105007,7 +105020,7 @@ _080351E0:
b _08035314
_080351EC:
lsls r0, r0, #2
- ldr r1, _08035204 @ =0x08035208
+ ldr r1, _08035204 @ =_08035208
adds r0, r0, r1
ldr r0, [r0]
mov pc, r0
@@ -105015,7 +105028,7 @@ _080351EC:
_080351F8: .4byte 0x0200B808
_080351FC: .4byte 0x020314E0
_08035200: .4byte 0x0200B0C0
-_08035204: .4byte 0x08035208
+_08035204: .4byte _08035208
_08035208: @ jump table
.4byte _0803521C @ case 0
.4byte _08035250 @ case 1
@@ -105328,7 +105341,7 @@ _080353F8:
b _08035678
_08035494:
lsls r0, r0, #2
- ldr r1, _080354D8 @ =0x080354DC
+ ldr r1, _080354D8 @ =_080354DC
adds r0, r0, r1
ldr r0, [r0]
mov pc, r0
@@ -105347,7 +105360,7 @@ _080354C8: .4byte 0x000F4240
_080354CC: .4byte 0x000186A0
_080354D0: .4byte 0x00002710
_080354D4: .4byte 0x0200B0C0
-_080354D8: .4byte 0x080354DC
+_080354D8: .4byte _080354DC
_080354DC: @ jump table
.4byte _080354F0 @ case 0
.4byte _0803553C @ case 1
@@ -105578,14 +105591,14 @@ sub_356A0: @ 0x080356A0
cmp r0, #8
bhi _08035740
lsls r0, r0, #2
- ldr r1, _080356CC @ =0x080356D0
+ ldr r1, _080356CC @ =_080356D0
adds r0, r0, r1
ldr r0, [r0]
mov pc, r0
.align 2, 0
_080356C4: .4byte 0x0200BDC8
_080356C8: .4byte 0x020314E0
-_080356CC: .4byte 0x080356D0
+_080356CC: .4byte _080356D0
_080356D0: @ jump table
.4byte _08035702 @ case 0
.4byte _08035702 @ case 1
@@ -106059,13 +106072,13 @@ sub_35AA4: @ 0x08035AA4
b _08035CB4
_08035ABA:
lsls r0, r0, #2
- ldr r1, _08035AC8 @ =0x08035ACC
+ ldr r1, _08035AC8 @ =_08035ACC
adds r0, r0, r1
ldr r0, [r0]
mov pc, r0
.align 2, 0
_08035AC4: .4byte 0x020314E0
-_08035AC8: .4byte 0x08035ACC
+_08035AC8: .4byte _08035ACC
_08035ACC: @ jump table
.4byte _08035AE0 @ case 0
.4byte _08035B5C @ case 1
@@ -106386,13 +106399,13 @@ sub_35D54: @ 0x08035D54
bl _08036C9E
_08035D78:
lsls r0, r0, #2
- ldr r1, _08035D88 @ =0x08035D8C
+ ldr r1, _08035D88 @ =_08035D8C
adds r0, r0, r1
ldr r0, [r0]
mov pc, r0
.align 2, 0
_08035D84: .4byte 0x020314E0
-_08035D88: .4byte 0x08035D8C
+_08035D88: .4byte _08035D8C
_08035D8C: @ jump table
.4byte _08035DCC @ case 0
.4byte _08035E34 @ case 1
@@ -111488,13 +111501,13 @@ sub_3869C: @ 0x0803869C
b _0803899C
_080386AE:
lsls r0, r0, #2
- ldr r1, _080386BC @ =0x080386C0
+ ldr r1, _080386BC @ =_080386C0
adds r0, r0, r1
ldr r0, [r0]
mov pc, r0
.align 2, 0
_080386B8: .4byte 0x020314E0
-_080386BC: .4byte 0x080386C0
+_080386BC: .4byte _080386C0
_080386C0: @ jump table
.4byte _080386DC @ case 0
.4byte _0803899C @ case 1
@@ -111993,7 +112006,7 @@ _08038AC6:
bl _08039562
_08038ADE:
lsls r0, r0, #2
- ldr r1, _08038B08 @ =0x08038B0C
+ ldr r1, _08038B08 @ =_08038B0C
adds r0, r0, r1
ldr r0, [r0]
mov pc, r0
@@ -112006,7 +112019,7 @@ _08038AF8: .4byte 0x086A1E74
_08038AFC: .4byte 0x0007A120
_08038B00: .4byte 0x00000385
_08038B04: .4byte 0x00000387
-_08038B08: .4byte 0x08038B0C
+_08038B08: .4byte _08038B0C
_08038B0C: @ jump table
.4byte _08038B44 @ case 0
.4byte _08038B88 @ case 1
@@ -114103,7 +114116,7 @@ _08039C04:
b _08039EBA
_08039C18:
lsls r0, r0, #2
- ldr r1, _08039C48 @ =0x08039C4C
+ ldr r1, _08039C48 @ =_08039C4C
adds r0, r0, r1
ldr r0, [r0]
mov pc, r0
@@ -114117,7 +114130,7 @@ _08039C38: .4byte 0x000006DB
_08039C3C: .4byte 0x000001FF
_08039C40: .4byte 0xFFFFFE00
_08039C44: .4byte 0x00000445
-_08039C48: .4byte 0x08039C4C
+_08039C48: .4byte _08039C4C
_08039C4C: @ jump table
.4byte _08039C6C @ case 0
.4byte _08039CFC @ case 1
@@ -114752,7 +114765,7 @@ _0803A174:
b _0803A8A2
_0803A18A:
lsls r0, r0, #2
- ldr r1, _0803A1D0 @ =0x0803A1D4
+ ldr r1, _0803A1D0 @ =_0803A1D4
adds r0, r0, r1
ldr r0, [r0]
mov pc, r0
@@ -114772,7 +114785,7 @@ _0803A1C0: .4byte 0x000001FF
_0803A1C4: .4byte 0x0200C388
_0803A1C8: .4byte 0xFFFFED38
_0803A1CC: .4byte 0x00000441
-_0803A1D0: .4byte 0x0803A1D4
+_0803A1D0: .4byte _0803A1D4
_0803A1D4: @ jump table
.4byte _0803A1EC @ case 0
.4byte _0803A218 @ case 1
@@ -117027,13 +117040,13 @@ sub_3B49C: @ 0x0803B49C
b _0803B740
_0803B4AE:
lsls r0, r0, #2
- ldr r1, _0803B4BC @ =0x0803B4C0
+ ldr r1, _0803B4BC @ =_0803B4C0
adds r0, r0, r1
ldr r0, [r0]
mov pc, r0
.align 2, 0
_0803B4B8: .4byte 0x020314E0
-_0803B4BC: .4byte 0x0803B4C0
+_0803B4BC: .4byte _0803B4C0
_0803B4C0: @ jump table
.4byte _0803B4DC @ case 0
.4byte _0803B740 @ case 1
@@ -117478,7 +117491,7 @@ _0803B850:
bl _0803C476
_0803B868:
lsls r0, r0, #2
- ldr r1, _0803B890 @ =0x0803B894
+ ldr r1, _0803B890 @ =_0803B894
adds r0, r0, r1
ldr r0, [r0]
mov pc, r0
@@ -117490,7 +117503,7 @@ _0803B880: .4byte 0x02032F20
_0803B884: .4byte 0x086A22D8
_0803B888: .4byte 0x0007A120
_0803B88C: .4byte 0x00000385
-_0803B890: .4byte 0x0803B894
+_0803B890: .4byte _0803B894
_0803B894: @ jump table
.4byte _0803B8C0 @ case 0
.4byte _0803B91C @ case 1
@@ -120767,7 +120780,7 @@ _0803D2E8:
b _0803D982
_0803D2FE:
lsls r0, r0, #2
- ldr r1, _0803D338 @ =0x0803D33C
+ ldr r1, _0803D338 @ =_0803D33C
adds r0, r0, r1
ldr r0, [r0]
mov pc, r0
@@ -120784,7 +120797,7 @@ _0803D328: .4byte 0x000001FF
_0803D32C: .4byte 0x000005A4
_0803D330: .4byte 0x0200BE80
_0803D334: .4byte 0x000004CF
-_0803D338: .4byte 0x0803D33C
+_0803D338: .4byte _0803D33C
_0803D33C: @ jump table
.4byte _0803D354 @ case 0
.4byte _0803D4E4 @ case 1
@@ -121738,7 +121751,7 @@ _0803DAF2:
b _0803DF08
_0803DB08:
lsls r0, r0, #2
- ldr r1, _0803DB60 @ =0x0803DB64
+ ldr r1, _0803DB60 @ =_0803DB64
adds r0, r0, r1
ldr r0, [r0]
mov pc, r0
@@ -121762,7 +121775,7 @@ _0803DB50: .4byte 0x086AF34C
_0803DB54: .4byte 0x000004CC
_0803DB58: .4byte 0x0200C0A8
_0803DB5C: .4byte 0x0000048C
-_0803DB60: .4byte 0x0803DB64
+_0803DB60: .4byte _0803DB64
_0803DB64: @ jump table
.4byte _0803DB90 @ case 0
.4byte _0803DBD4 @ case 1
@@ -123703,13 +123716,13 @@ sub_3EB2C: @ 0x0803EB2C
b _0803ED6C
_0803EB3E:
lsls r0, r0, #2
- ldr r1, _0803EB4C @ =0x0803EB50
+ ldr r1, _0803EB4C @ =_0803EB50
adds r0, r0, r1
ldr r0, [r0]
mov pc, r0
.align 2, 0
_0803EB48: .4byte 0x020314E0
-_0803EB4C: .4byte 0x0803EB50
+_0803EB4C: .4byte _0803EB50
_0803EB50: @ jump table
.4byte _0803EB6C @ case 0
.4byte _0803ED6C @ case 1
@@ -124133,13 +124146,13 @@ _0803EEC0:
bl _0803FA78
_0803EED6:
lsls r0, r0, #2
- ldr r1, _0803EEE4 @ =0x0803EEE8
+ ldr r1, _0803EEE4 @ =_0803EEE8
adds r0, r0, r1
ldr r0, [r0]
mov pc, r0
.align 2, 0
_0803EEE0: .4byte 0x00000387
-_0803EEE4: .4byte 0x0803EEE8
+_0803EEE4: .4byte _0803EEE8
_0803EEE8: @ jump table
.4byte _0803EF28 @ case 0
.4byte _0803EF84 @ case 1
@@ -126772,7 +126785,7 @@ _08040444:
b _08040802
_0804045C:
lsls r0, r0, #2
- ldr r1, _0804048C @ =0x08040490
+ ldr r1, _0804048C @ =_08040490
adds r0, r0, r1
ldr r0, [r0]
mov pc, r0
@@ -126786,7 +126799,7 @@ _0804047C: .4byte 0xFFFFFE00
_08040480: .4byte 0x000006DB
_08040484: .4byte 0x000001FF
_08040488: .4byte 0x00000507
-_0804048C: .4byte 0x08040490
+_0804048C: .4byte _08040490
_08040490: @ jump table
.4byte _080404A4 @ case 0
.4byte _080404C4 @ case 1
@@ -127815,7 +127828,7 @@ _08040CAE:
b _0804131A
_08040CD8:
lsls r0, r0, #2
- ldr r1, _08040CF4 @ =0x08040CF8
+ ldr r1, _08040CF4 @ =_08040CF8
adds r0, r0, r1
ldr r0, [r0]
mov pc, r0
@@ -127824,7 +127837,7 @@ _08040CE4: .4byte 0x0000132C
_08040CE8: .4byte 0x0200BE80
_08040CEC: .4byte 0x020314E0
_08040CF0: .4byte 0x00000441
-_08040CF4: .4byte 0x08040CF8
+_08040CF4: .4byte _08040CF8
_08040CF8: @ jump table
.4byte _08040D10 @ case 0
.4byte _08040D3C @ case 1
@@ -128857,3 +128870,34242 @@ _08041570: .4byte 0x0200C218
_08041574: .4byte 0x00000522
_08041578: .4byte 0x0000050E
_0804157C: .4byte 0x086B5CC0
+
+ thumb_func_start sub_41580
+sub_41580: @ 0x08041580
+ push {r4, r5, r6, r7, lr}
+ mov r7, sl
+ mov r6, sb
+ mov r5, r8
+ push {r5, r6, r7}
+ ldr r0, _080415F4 @ =0x0200CD98
+ mov sb, r0
+ ldrh r0, [r0]
+ cmp r0, #0
+ bne _08041596
+ b _080417D0
+_08041596:
+ ldr r1, _080415F8 @ =0x020314E0
+ ldr r5, [r1]
+ ldr r2, _080415FC @ =0x00000486
+ adds r6, r5, r2
+ ldrh r7, [r6]
+ subs r0, r7, #1
+ strh r0, [r6]
+ lsls r0, r0, #0x10
+ asrs r0, r0, #0x10
+ mov sl, r1
+ cmp r0, #5
+ bgt _080415B0
+ b _080416C2
+_080415B0:
+ ldr r4, _08041600 @ =0x08137D48
+ movs r1, #0
+ ldrsh r0, [r6, r1]
+ movs r1, #0x21
+ bl sub_55768
+ lsls r0, r0, #0x10
+ asrs r0, r0, #0x10
+ movs r1, #3
+ bl sub_556D0
+ lsls r0, r0, #0x10
+ asrs r0, r0, #0xf
+ adds r0, r0, r4
+ ldrh r0, [r0]
+ mov r8, r0
+ ldr r1, _08041604 @ =0x0000047F
+ adds r0, r5, r1
+ ldrb r0, [r0]
+ lsls r0, r0, #0x18
+ asrs r0, r0, #0x18
+ cmp r0, #0
+ ble _08041658
+ cmp r0, #7
+ bne _0804160C
+ ldr r2, _08041608 @ =0x0000132C
+ adds r0, r5, r2
+ ldr r1, [r0]
+ ldr r0, [r1, #0x34]
+ movs r4, #0x80
+ lsls r4, r4, #1
+ adds r0, r0, r4
+ b _0804163A
+ .align 2, 0
+_080415F4: .4byte 0x0200CD98
+_080415F8: .4byte 0x020314E0
+_080415FC: .4byte 0x00000486
+_08041600: .4byte 0x08137D48
+_08041604: .4byte 0x0000047F
+_08041608: .4byte 0x0000132C
+_0804160C:
+ cmp r0, #4
+ bne _08041628
+ ldr r7, _08041620 @ =0x0000132C
+ adds r0, r5, r7
+ ldr r1, [r0]
+ ldr r0, [r1, #0x34]
+ ldr r2, _08041624 @ =0xFFFFFE00
+ adds r0, r0, r2
+ b _0804163A
+ .align 2, 0
+_08041620: .4byte 0x0000132C
+_08041624: .4byte 0xFFFFFE00
+_08041628:
+ cmp r0, #1
+ bne _0804163C
+ ldr r4, _0804164C @ =0x0000132C
+ adds r0, r5, r4
+ ldr r1, [r0]
+ ldr r0, [r1, #0x34]
+ movs r5, #0x80
+ lsls r5, r5, #1
+ adds r0, r0, r5
+_0804163A:
+ str r0, [r1, #0x34]
+_0804163C:
+ ldr r0, _08041650 @ =0x020314E0
+ ldr r1, [r0]
+ ldr r7, _08041654 @ =0x0000047F
+ adds r1, r1, r7
+ ldrb r0, [r1]
+ subs r0, #1
+ strb r0, [r1]
+ b _08041682
+ .align 2, 0
+_0804164C: .4byte 0x0000132C
+_08041650: .4byte 0x020314E0
+_08041654: .4byte 0x0000047F
+_08041658:
+ ldrh r0, [r5, #4]
+ cmp r0, #0
+ beq _08041682
+ adds r0, r7, #0
+ subs r0, #0x1f
+ strh r0, [r6]
+ lsls r0, r0, #0x10
+ asrs r0, r0, #0x10
+ cmp r0, #4
+ bgt _08041670
+ movs r0, #5
+ strh r0, [r6]
+_08041670:
+ mov r2, sl
+ ldr r0, [r2]
+ adds r0, r0, r1
+ movs r1, #7
+ strb r1, [r0]
+ movs r0, #0x95
+ lsls r0, r0, #1
+ bl sub_53DA8
+_08041682:
+ ldr r0, _080416A8 @ =0x020314E0
+ ldr r5, [r0]
+ movs r7, #0x90
+ lsls r7, r7, #3
+ adds r4, r5, r7
+ ldrh r3, [r4]
+ mov sl, r0
+ cmp r3, #0
+ beq _080416B6
+ subs r0, r3, #1
+ strh r0, [r4]
+ lsls r0, r0, #0x10
+ lsrs r0, r0, #0x10
+ cmp r0, #0x34
+ bls _080416AC
+ movs r0, #8
+ mov r8, r0
+ b _080416C6
+ .align 2, 0
+_080416A8: .4byte 0x020314E0
+_080416AC:
+ cmp r0, #0x2a
+ bls _080416C6
+ movs r1, #9
+ mov r8, r1
+ b _080416C6
+_080416B6:
+ ldrh r0, [r5, #4]
+ cmp r0, #0
+ beq _080416C6
+ movs r0, #0x3c
+ strh r0, [r4]
+ b _080416C6
+_080416C2:
+ movs r2, #8
+ mov r8, r2
+_080416C6:
+ mov r4, sl
+ ldr r1, [r4]
+ ldr r5, _080416F4 @ =0x00000486
+ adds r0, r1, r5
+ movs r7, #0
+ ldrsh r3, [r0, r7]
+ cmp r3, #0
+ bne _08041704
+ ldr r0, _080416F8 @ =0x0200B0C0
+ ldr r1, _080416FC @ =0x00001CD8
+ adds r0, r0, r1
+ movs r2, #0
+ strh r3, [r0]
+ ldr r0, [r4]
+ movs r4, #0x90
+ lsls r4, r4, #3
+ adds r1, r0, r4
+ strh r3, [r1]
+ ldr r5, _08041700 @ =0x00000383
+ adds r0, r0, r5
+ strb r2, [r0]
+ b _08041722
+ .align 2, 0
+_080416F4: .4byte 0x00000486
+_080416F8: .4byte 0x0200B0C0
+_080416FC: .4byte 0x00001CD8
+_08041700: .4byte 0x00000383
+_08041704:
+ ldr r7, _080417E0 @ =0x00000383
+ adds r1, r1, r7
+ movs r2, #0
+ movs r0, #1
+ strb r0, [r1]
+ mov r1, sl
+ ldr r0, [r1]
+ ldr r4, _080417E4 @ =0x0000132C
+ adds r0, r0, r4
+ ldr r1, [r0]
+ strh r2, [r1, #0x30]
+ ldr r1, [r0]
+ strh r2, [r1, #0x32]
+ ldr r0, [r0]
+ strh r2, [r0, #6]
+_08041722:
+ mov r5, sl
+ ldr r2, [r5]
+ ldr r7, _080417E4 @ =0x0000132C
+ adds r3, r2, r7
+ ldr r0, [r3]
+ adds r1, r2, #0
+ adds r1, #0x58
+ ldrh r0, [r0, #0x10]
+ ldrh r1, [r1]
+ subs r0, r0, r1
+ subs r0, #8
+ mov r1, sb
+ strh r0, [r1, #2]
+ ldr r0, [r3]
+ adds r2, #0x5a
+ ldrh r0, [r0, #0x12]
+ ldrh r1, [r2]
+ subs r0, r0, r1
+ subs r0, #8
+ mov r2, sb
+ strh r0, [r2, #4]
+ movs r2, #0
+ mov r4, r8
+ lsls r1, r4, #0x10
+ ldr r5, _080417E8 @ =0x086B5D56
+ mov sl, r5
+ ldr r6, _080417EC @ =0x03005000
+ asrs r1, r1, #0x10
+ lsls r0, r1, #1
+ adds r0, r0, r1
+ lsls r0, r0, #2
+ mov ip, r0
+ ldr r7, _080417F0 @ =0xFFFFFE00
+ mov r8, r7
+_08041766:
+ lsls r3, r2, #0x10
+ asrs r3, r3, #0x10
+ lsls r4, r3, #3
+ adds r4, #8
+ add r4, sb
+ ldrh r2, [r4]
+ lsls r2, r2, #3
+ adds r2, r2, r6
+ lsls r0, r3, #1
+ adds r0, r0, r3
+ lsls r0, r0, #1
+ add r0, sl
+ add r0, ip
+ ldrh r1, [r0]
+ strh r1, [r2]
+ adds r0, #2
+ adds r2, #2
+ ldrh r1, [r0]
+ strh r1, [r2]
+ ldrh r0, [r0, #2]
+ strh r0, [r2, #2]
+ ldrh r2, [r4]
+ lsls r2, r2, #3
+ adds r2, r2, r6
+ ldrh r0, [r2, #2]
+ lsls r1, r0, #0x17
+ lsrs r1, r1, #0x17
+ mov r5, sb
+ movs r7, #2
+ ldrsh r0, [r5, r7]
+ adds r1, r1, r0
+ ldr r5, _080417F4 @ =0x000001FF
+ adds r0, r5, #0
+ ands r1, r0
+ mov r0, r8
+ ldrh r7, [r2, #2]
+ ands r0, r7
+ orrs r0, r1
+ strh r0, [r2, #2]
+ ldrh r1, [r4]
+ lsls r1, r1, #3
+ adds r1, r1, r6
+ mov r2, sb
+ ldrb r0, [r2, #4]
+ ldrb r4, [r1]
+ adds r0, r0, r4
+ strb r0, [r1]
+ adds r3, #1
+ lsls r3, r3, #0x10
+ lsrs r2, r3, #0x10
+ asrs r3, r3, #0x10
+ cmp r3, #1
+ ble _08041766
+_080417D0:
+ pop {r3, r4, r5}
+ mov r8, r3
+ mov sb, r4
+ mov sl, r5
+ pop {r4, r5, r6, r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080417E0: .4byte 0x00000383
+_080417E4: .4byte 0x0000132C
+_080417E8: .4byte 0x086B5D56
+_080417EC: .4byte 0x03005000
+_080417F0: .4byte 0xFFFFFE00
+_080417F4: .4byte 0x000001FF
+
+ thumb_func_start sub_417F8
+sub_417F8: @ 0x080417F8
+ push {r4, r5, r6, r7, lr}
+ mov r7, sl
+ mov r6, sb
+ mov r5, r8
+ push {r5, r6, r7}
+ ldr r6, _08041BD0 @ =0x0200C4F8
+ ldrh r0, [r6]
+ ldr r1, _08041BD4 @ =0x020314E0
+ mov sl, r1
+ cmp r0, #0
+ bne _08041810
+ b _08041922
+_08041810:
+ ldr r4, [r1]
+ movs r2, #0xa5
+ lsls r2, r2, #3
+ adds r0, r4, r2
+ movs r3, #0
+ ldrsh r0, [r0, r3]
+ movs r1, #0xa
+ bl sub_556D0
+ adds r4, #0x58
+ ldrh r1, [r4]
+ adds r1, #0x80
+ subs r0, r0, r1
+ strh r0, [r6, #2]
+ mov r5, sl
+ ldr r4, [r5]
+ ldr r1, _08041BD8 @ =0x0000052A
+ adds r0, r4, r1
+ movs r2, #0
+ ldrsh r0, [r0, r2]
+ movs r1, #0xa
+ bl sub_556D0
+ adds r4, #0x5a
+ ldrh r1, [r4]
+ subs r1, #0x5a
+ subs r0, r0, r1
+ strh r0, [r6, #4]
+ movs r0, #0
+ movs r3, #0xb8
+ adds r3, r3, r6
+ mov sb, r3
+ ldr r7, _08041BDC @ =0x03005000
+ ldr r4, _08041BE0 @ =0xFFFFFE00
+ mov r8, r4
+_08041856:
+ lsls r4, r0, #0x10
+ asrs r4, r4, #0x10
+ lsls r0, r4, #3
+ adds r0, #8
+ adds r5, r6, r0
+ ldrh r3, [r5]
+ lsls r3, r3, #3
+ adds r3, r3, r7
+ movs r0, #2
+ ldrsh r1, [r5, r0]
+ movs r2, #2
+ ldrsh r0, [r6, r2]
+ adds r1, r1, r0
+ ldr r2, _08041BE4 @ =0x000001FF
+ adds r0, r2, #0
+ ands r1, r0
+ ldrh r2, [r3, #2]
+ mov r0, r8
+ ands r0, r2
+ orrs r0, r1
+ strh r0, [r3, #2]
+ ldrh r1, [r5]
+ lsls r1, r1, #3
+ adds r1, r1, r7
+ ldrb r0, [r6, #4]
+ ldrb r5, [r5, #4]
+ adds r0, r0, r5
+ strb r0, [r1]
+ adds r4, #1
+ lsls r4, r4, #0x10
+ lsrs r0, r4, #0x10
+ asrs r4, r4, #0x10
+ cmp r4, #0xe
+ ble _08041856
+ mov r6, sb
+ mov r3, sl
+ ldr r4, [r3]
+ movs r5, #0xa5
+ lsls r5, r5, #3
+ adds r0, r4, r5
+ movs r1, #0
+ ldrsh r0, [r0, r1]
+ movs r1, #0xa
+ bl sub_556D0
+ adds r4, #0x58
+ ldrh r1, [r4]
+ adds r1, #0x80
+ subs r0, r0, r1
+ strh r0, [r6, #2]
+ mov r2, sl
+ ldr r4, [r2]
+ ldr r3, _08041BD8 @ =0x0000052A
+ adds r0, r4, r3
+ movs r5, #0
+ ldrsh r0, [r0, r5]
+ movs r1, #0xa
+ bl sub_556D0
+ adds r4, #0x5a
+ ldrh r1, [r4]
+ subs r1, #0x5a
+ subs r0, r0, r1
+ strh r0, [r6, #4]
+ movs r0, #0
+ ldr r7, _08041BDC @ =0x03005000
+ ldr r1, _08041BE0 @ =0xFFFFFE00
+ mov r8, r1
+_080418DE:
+ lsls r4, r0, #0x10
+ asrs r4, r4, #0x10
+ lsls r0, r4, #3
+ adds r0, #8
+ adds r5, r6, r0
+ ldrh r3, [r5]
+ lsls r3, r3, #3
+ adds r3, r3, r7
+ movs r2, #2
+ ldrsh r1, [r5, r2]
+ movs r2, #2
+ ldrsh r0, [r6, r2]
+ adds r1, r1, r0
+ ldr r2, _08041BE4 @ =0x000001FF
+ adds r0, r2, #0
+ ands r1, r0
+ ldrh r2, [r3, #2]
+ mov r0, r8
+ ands r0, r2
+ orrs r0, r1
+ strh r0, [r3, #2]
+ ldrh r1, [r5]
+ lsls r1, r1, #3
+ adds r1, r1, r7
+ ldrb r0, [r6, #4]
+ ldrb r5, [r5, #4]
+ adds r0, r0, r5
+ strb r0, [r1]
+ adds r4, #1
+ lsls r4, r4, #0x10
+ lsrs r0, r4, #0x10
+ asrs r4, r4, #0x10
+ cmp r4, #0xd
+ ble _080418DE
+_08041922:
+ ldr r6, _08041BE8 @ =0x0200C668
+ ldrh r0, [r6]
+ cmp r0, #0
+ bne _0804192C
+ b _08041A40
+_0804192C:
+ mov r3, sl
+ ldr r4, [r3]
+ movs r5, #0xa5
+ lsls r5, r5, #3
+ adds r0, r4, r5
+ movs r1, #0
+ ldrsh r0, [r0, r1]
+ movs r1, #0xa
+ bl sub_556D0
+ adds r4, #0x58
+ ldrh r1, [r4]
+ adds r1, #0x80
+ subs r0, r0, r1
+ strh r0, [r6, #2]
+ mov r2, sl
+ ldr r4, [r2]
+ ldr r3, _08041BD8 @ =0x0000052A
+ adds r0, r4, r3
+ movs r5, #0
+ ldrsh r0, [r0, r5]
+ movs r1, #0xa
+ bl sub_556D0
+ adds r4, #0x5a
+ ldrh r1, [r4]
+ subs r1, #0x5a
+ subs r0, r0, r1
+ strh r0, [r6, #4]
+ movs r0, #0
+ movs r1, #0xb8
+ adds r1, r1, r6
+ mov sb, r1
+ ldr r7, _08041BDC @ =0x03005000
+ ldr r2, _08041BE0 @ =0xFFFFFE00
+ mov r8, r2
+_08041974:
+ lsls r4, r0, #0x10
+ asrs r4, r4, #0x10
+ lsls r0, r4, #3
+ adds r0, #8
+ adds r5, r6, r0
+ ldrh r3, [r5]
+ lsls r3, r3, #3
+ adds r3, r3, r7
+ movs r0, #2
+ ldrsh r1, [r5, r0]
+ movs r2, #2
+ ldrsh r0, [r6, r2]
+ adds r1, r1, r0
+ ldr r2, _08041BE4 @ =0x000001FF
+ adds r0, r2, #0
+ ands r1, r0
+ ldrh r2, [r3, #2]
+ mov r0, r8
+ ands r0, r2
+ orrs r0, r1
+ strh r0, [r3, #2]
+ ldrh r1, [r5]
+ lsls r1, r1, #3
+ adds r1, r1, r7
+ ldrb r0, [r6, #4]
+ ldrb r5, [r5, #4]
+ adds r0, r0, r5
+ strb r0, [r1]
+ adds r4, #1
+ lsls r4, r4, #0x10
+ lsrs r0, r4, #0x10
+ asrs r4, r4, #0x10
+ cmp r4, #0xe
+ ble _08041974
+ mov r6, sb
+ mov r3, sl
+ ldr r4, [r3]
+ movs r5, #0xa5
+ lsls r5, r5, #3
+ adds r0, r4, r5
+ movs r1, #0
+ ldrsh r0, [r0, r1]
+ movs r1, #0xa
+ bl sub_556D0
+ adds r4, #0x58
+ ldrh r1, [r4]
+ adds r1, #0x80
+ subs r0, r0, r1
+ strh r0, [r6, #2]
+ mov r2, sl
+ ldr r4, [r2]
+ ldr r3, _08041BD8 @ =0x0000052A
+ adds r0, r4, r3
+ movs r5, #0
+ ldrsh r0, [r0, r5]
+ movs r1, #0xa
+ bl sub_556D0
+ adds r4, #0x5a
+ ldrh r1, [r4]
+ subs r1, #0x5a
+ subs r0, r0, r1
+ strh r0, [r6, #4]
+ movs r0, #0
+ ldr r7, _08041BDC @ =0x03005000
+ ldr r1, _08041BE0 @ =0xFFFFFE00
+ mov r8, r1
+_080419FC:
+ lsls r4, r0, #0x10
+ asrs r4, r4, #0x10
+ lsls r0, r4, #3
+ adds r0, #8
+ adds r5, r6, r0
+ ldrh r3, [r5]
+ lsls r3, r3, #3
+ adds r3, r3, r7
+ movs r2, #2
+ ldrsh r1, [r5, r2]
+ movs r2, #2
+ ldrsh r0, [r6, r2]
+ adds r1, r1, r0
+ ldr r2, _08041BE4 @ =0x000001FF
+ adds r0, r2, #0
+ ands r1, r0
+ ldrh r2, [r3, #2]
+ mov r0, r8
+ ands r0, r2
+ orrs r0, r1
+ strh r0, [r3, #2]
+ ldrh r1, [r5]
+ lsls r1, r1, #3
+ adds r1, r1, r7
+ ldrb r0, [r6, #4]
+ ldrb r5, [r5, #4]
+ adds r0, r0, r5
+ strb r0, [r1]
+ adds r4, #1
+ lsls r4, r4, #0x10
+ lsrs r0, r4, #0x10
+ asrs r4, r4, #0x10
+ cmp r4, #8
+ ble _080419FC
+_08041A40:
+ ldr r6, _08041BEC @ =0x0200C7D8
+ ldrh r0, [r6]
+ cmp r0, #0
+ bne _08041A4A
+ b _08041B5E
+_08041A4A:
+ mov r3, sl
+ ldr r4, [r3]
+ movs r5, #0xa5
+ lsls r5, r5, #3
+ adds r0, r4, r5
+ movs r1, #0
+ ldrsh r0, [r0, r1]
+ movs r1, #0xa
+ bl sub_556D0
+ adds r4, #0x58
+ ldrh r1, [r4]
+ adds r1, #0x80
+ subs r0, r0, r1
+ strh r0, [r6, #2]
+ mov r2, sl
+ ldr r4, [r2]
+ ldr r3, _08041BD8 @ =0x0000052A
+ adds r0, r4, r3
+ movs r5, #0
+ ldrsh r0, [r0, r5]
+ movs r1, #0xa
+ bl sub_556D0
+ adds r4, #0x5a
+ ldrh r1, [r4]
+ subs r1, #0x5a
+ subs r0, r0, r1
+ strh r0, [r6, #4]
+ movs r0, #0
+ movs r1, #0xb8
+ adds r1, r1, r6
+ mov sb, r1
+ ldr r7, _08041BDC @ =0x03005000
+ ldr r2, _08041BE0 @ =0xFFFFFE00
+ mov r8, r2
+_08041A92:
+ lsls r4, r0, #0x10
+ asrs r4, r4, #0x10
+ lsls r0, r4, #3
+ adds r0, #8
+ adds r5, r6, r0
+ ldrh r3, [r5]
+ lsls r3, r3, #3
+ adds r3, r3, r7
+ movs r0, #2
+ ldrsh r1, [r5, r0]
+ movs r2, #2
+ ldrsh r0, [r6, r2]
+ adds r1, r1, r0
+ ldr r2, _08041BE4 @ =0x000001FF
+ adds r0, r2, #0
+ ands r1, r0
+ ldrh r2, [r3, #2]
+ mov r0, r8
+ ands r0, r2
+ orrs r0, r1
+ strh r0, [r3, #2]
+ ldrh r1, [r5]
+ lsls r1, r1, #3
+ adds r1, r1, r7
+ ldrb r0, [r6, #4]
+ ldrb r5, [r5, #4]
+ adds r0, r0, r5
+ strb r0, [r1]
+ adds r4, #1
+ lsls r4, r4, #0x10
+ lsrs r0, r4, #0x10
+ asrs r4, r4, #0x10
+ cmp r4, #0xe
+ ble _08041A92
+ mov r6, sb
+ mov r3, sl
+ ldr r4, [r3]
+ movs r5, #0xa5
+ lsls r5, r5, #3
+ adds r0, r4, r5
+ movs r1, #0
+ ldrsh r0, [r0, r1]
+ movs r1, #0xa
+ bl sub_556D0
+ adds r4, #0x58
+ ldrh r1, [r4]
+ adds r1, #0x80
+ subs r0, r0, r1
+ strh r0, [r6, #2]
+ mov r2, sl
+ ldr r4, [r2]
+ ldr r3, _08041BD8 @ =0x0000052A
+ adds r0, r4, r3
+ movs r5, #0
+ ldrsh r0, [r0, r5]
+ movs r1, #0xa
+ bl sub_556D0
+ adds r4, #0x5a
+ ldrh r1, [r4]
+ subs r1, #0x5a
+ subs r0, r0, r1
+ strh r0, [r6, #4]
+ movs r0, #0
+ ldr r7, _08041BDC @ =0x03005000
+ ldr r1, _08041BE0 @ =0xFFFFFE00
+ mov r8, r1
+_08041B1A:
+ lsls r4, r0, #0x10
+ asrs r4, r4, #0x10
+ lsls r0, r4, #3
+ adds r0, #8
+ adds r5, r6, r0
+ ldrh r3, [r5]
+ lsls r3, r3, #3
+ adds r3, r3, r7
+ movs r2, #2
+ ldrsh r1, [r5, r2]
+ movs r2, #2
+ ldrsh r0, [r6, r2]
+ adds r1, r1, r0
+ ldr r2, _08041BE4 @ =0x000001FF
+ adds r0, r2, #0
+ ands r1, r0
+ ldrh r2, [r3, #2]
+ mov r0, r8
+ ands r0, r2
+ orrs r0, r1
+ strh r0, [r3, #2]
+ ldrh r1, [r5]
+ lsls r1, r1, #3
+ adds r1, r1, r7
+ ldrb r0, [r6, #4]
+ ldrb r5, [r5, #4]
+ adds r0, r0, r5
+ strb r0, [r1]
+ adds r4, #1
+ lsls r4, r4, #0x10
+ lsrs r0, r4, #0x10
+ asrs r4, r4, #0x10
+ cmp r4, #0xb
+ ble _08041B1A
+_08041B5E:
+ ldr r6, _08041BF0 @ =0x0200C948
+ ldrh r0, [r6]
+ cmp r0, #0
+ bne _08041B68
+ b _08041CB0
+_08041B68:
+ mov r3, sl
+ ldr r4, [r3]
+ movs r5, #0xa5
+ lsls r5, r5, #3
+ adds r0, r4, r5
+ movs r1, #0
+ ldrsh r0, [r0, r1]
+ movs r1, #0xa
+ bl sub_556D0
+ adds r4, #0x58
+ ldr r2, _08041BF4 @ =0xFFFFFE90
+ adds r1, r2, #0
+ ldrh r4, [r4]
+ adds r1, r1, r4
+ subs r0, r0, r1
+ strh r0, [r6, #2]
+ mov r3, sl
+ ldr r4, [r3]
+ adds r5, #2
+ adds r0, r4, r5
+ movs r1, #0
+ ldrsh r0, [r0, r1]
+ movs r1, #0xa
+ bl sub_556D0
+ adds r4, #0x5a
+ ldrh r1, [r4]
+ subs r1, #0x5a
+ subs r0, r0, r1
+ strh r0, [r6, #4]
+ movs r0, #0
+ movs r2, #0xb8
+ adds r2, r2, r6
+ mov sb, r2
+ ldr r7, _08041BDC @ =0x03005000
+ ldr r3, _08041BE0 @ =0xFFFFFE00
+ mov r8, r3
+_08041BB4:
+ lsls r4, r0, #0x10
+ asrs r4, r4, #0x10
+ lsls r0, r4, #3
+ adds r0, #8
+ adds r5, r6, r0
+ ldrh r3, [r5]
+ lsls r3, r3, #3
+ adds r3, r3, r7
+ movs r0, #2
+ ldrsh r1, [r5, r0]
+ movs r2, #2
+ ldrsh r0, [r6, r2]
+ b _08041BF8
+ .align 2, 0
+_08041BD0: .4byte 0x0200C4F8
+_08041BD4: .4byte 0x020314E0
+_08041BD8: .4byte 0x0000052A
+_08041BDC: .4byte 0x03005000
+_08041BE0: .4byte 0xFFFFFE00
+_08041BE4: .4byte 0x000001FF
+_08041BE8: .4byte 0x0200C668
+_08041BEC: .4byte 0x0200C7D8
+_08041BF0: .4byte 0x0200C948
+_08041BF4: .4byte 0xFFFFFE90
+_08041BF8:
+ adds r1, r1, r0
+ ldr r2, _08041FB0 @ =0x000001FF
+ adds r0, r2, #0
+ ands r1, r0
+ ldrh r2, [r3, #2]
+ mov r0, r8
+ ands r0, r2
+ orrs r0, r1
+ strh r0, [r3, #2]
+ ldrh r1, [r5]
+ lsls r1, r1, #3
+ adds r1, r1, r7
+ ldrb r0, [r6, #4]
+ ldrb r5, [r5, #4]
+ adds r0, r0, r5
+ strb r0, [r1]
+ adds r4, #1
+ lsls r4, r4, #0x10
+ lsrs r0, r4, #0x10
+ asrs r4, r4, #0x10
+ cmp r4, #0xe
+ ble _08041BB4
+ mov r6, sb
+ mov r3, sl
+ ldr r4, [r3]
+ movs r5, #0xa5
+ lsls r5, r5, #3
+ adds r0, r4, r5
+ movs r1, #0
+ ldrsh r0, [r0, r1]
+ movs r1, #0xa
+ bl sub_556D0
+ adds r4, #0x58
+ ldr r2, _08041FB4 @ =0xFFFFFE90
+ adds r1, r2, #0
+ ldrh r4, [r4]
+ adds r1, r1, r4
+ subs r0, r0, r1
+ strh r0, [r6, #2]
+ mov r3, sl
+ ldr r4, [r3]
+ adds r5, #2
+ adds r0, r4, r5
+ movs r1, #0
+ ldrsh r0, [r0, r1]
+ movs r1, #0xa
+ bl sub_556D0
+ adds r4, #0x5a
+ ldrh r1, [r4]
+ subs r1, #0x5a
+ subs r0, r0, r1
+ strh r0, [r6, #4]
+ movs r0, #0
+ ldr r7, _08041FB8 @ =0x03005000
+ ldr r2, _08041FBC @ =0xFFFFFE00
+ mov r8, r2
+_08041C6C:
+ lsls r4, r0, #0x10
+ asrs r4, r4, #0x10
+ lsls r0, r4, #3
+ adds r0, #8
+ adds r5, r6, r0
+ ldrh r3, [r5]
+ lsls r3, r3, #3
+ adds r3, r3, r7
+ movs r0, #2
+ ldrsh r1, [r5, r0]
+ movs r2, #2
+ ldrsh r0, [r6, r2]
+ adds r1, r1, r0
+ ldr r2, _08041FB0 @ =0x000001FF
+ adds r0, r2, #0
+ ands r1, r0
+ ldrh r2, [r3, #2]
+ mov r0, r8
+ ands r0, r2
+ orrs r0, r1
+ strh r0, [r3, #2]
+ ldrh r1, [r5]
+ lsls r1, r1, #3
+ adds r1, r1, r7
+ ldrb r0, [r6, #4]
+ ldrb r5, [r5, #4]
+ adds r0, r0, r5
+ strb r0, [r1]
+ adds r4, #1
+ lsls r4, r4, #0x10
+ lsrs r0, r4, #0x10
+ asrs r4, r4, #0x10
+ cmp r4, #0xd
+ ble _08041C6C
+_08041CB0:
+ ldr r6, _08041FC0 @ =0x0200CAB8
+ ldrh r0, [r6]
+ cmp r0, #0
+ bne _08041CBA
+ b _08041DD6
+_08041CBA:
+ mov r3, sl
+ ldr r4, [r3]
+ movs r5, #0xa5
+ lsls r5, r5, #3
+ adds r0, r4, r5
+ movs r1, #0
+ ldrsh r0, [r0, r1]
+ movs r1, #0xa
+ bl sub_556D0
+ adds r4, #0x58
+ ldr r2, _08041FB4 @ =0xFFFFFE90
+ adds r1, r2, #0
+ ldrh r4, [r4]
+ adds r1, r1, r4
+ subs r0, r0, r1
+ strh r0, [r6, #2]
+ mov r3, sl
+ ldr r4, [r3]
+ adds r5, #2
+ adds r0, r4, r5
+ movs r1, #0
+ ldrsh r0, [r0, r1]
+ movs r1, #0xa
+ bl sub_556D0
+ adds r4, #0x5a
+ ldrh r1, [r4]
+ subs r1, #0x5a
+ subs r0, r0, r1
+ strh r0, [r6, #4]
+ movs r0, #0
+ movs r2, #0xb8
+ adds r2, r2, r6
+ mov sb, r2
+ ldr r7, _08041FB8 @ =0x03005000
+ ldr r3, _08041FBC @ =0xFFFFFE00
+ mov r8, r3
+_08041D06:
+ lsls r4, r0, #0x10
+ asrs r4, r4, #0x10
+ lsls r0, r4, #3
+ adds r0, #8
+ adds r5, r6, r0
+ ldrh r3, [r5]
+ lsls r3, r3, #3
+ adds r3, r3, r7
+ movs r0, #2
+ ldrsh r1, [r5, r0]
+ movs r2, #2
+ ldrsh r0, [r6, r2]
+ adds r1, r1, r0
+ ldr r2, _08041FB0 @ =0x000001FF
+ adds r0, r2, #0
+ ands r1, r0
+ ldrh r2, [r3, #2]
+ mov r0, r8
+ ands r0, r2
+ orrs r0, r1
+ strh r0, [r3, #2]
+ ldrh r1, [r5]
+ lsls r1, r1, #3
+ adds r1, r1, r7
+ ldrb r0, [r6, #4]
+ ldrb r5, [r5, #4]
+ adds r0, r0, r5
+ strb r0, [r1]
+ adds r4, #1
+ lsls r4, r4, #0x10
+ lsrs r0, r4, #0x10
+ asrs r4, r4, #0x10
+ cmp r4, #0xe
+ ble _08041D06
+ mov r6, sb
+ mov r3, sl
+ ldr r4, [r3]
+ movs r5, #0xa5
+ lsls r5, r5, #3
+ adds r0, r4, r5
+ movs r1, #0
+ ldrsh r0, [r0, r1]
+ movs r1, #0xa
+ bl sub_556D0
+ adds r4, #0x58
+ ldr r2, _08041FB4 @ =0xFFFFFE90
+ adds r1, r2, #0
+ ldrh r4, [r4]
+ adds r1, r1, r4
+ subs r0, r0, r1
+ strh r0, [r6, #2]
+ mov r3, sl
+ ldr r4, [r3]
+ adds r5, #2
+ adds r0, r4, r5
+ movs r1, #0
+ ldrsh r0, [r0, r1]
+ movs r1, #0xa
+ bl sub_556D0
+ adds r4, #0x5a
+ ldrh r1, [r4]
+ subs r1, #0x5a
+ subs r0, r0, r1
+ strh r0, [r6, #4]
+ movs r0, #0
+ ldr r7, _08041FB8 @ =0x03005000
+ ldr r2, _08041FBC @ =0xFFFFFE00
+ mov r8, r2
+_08041D92:
+ lsls r4, r0, #0x10
+ asrs r4, r4, #0x10
+ lsls r0, r4, #3
+ adds r0, #8
+ adds r5, r6, r0
+ ldrh r3, [r5]
+ lsls r3, r3, #3
+ adds r3, r3, r7
+ movs r0, #2
+ ldrsh r1, [r5, r0]
+ movs r2, #2
+ ldrsh r0, [r6, r2]
+ adds r1, r1, r0
+ ldr r2, _08041FB0 @ =0x000001FF
+ adds r0, r2, #0
+ ands r1, r0
+ ldrh r2, [r3, #2]
+ mov r0, r8
+ ands r0, r2
+ orrs r0, r1
+ strh r0, [r3, #2]
+ ldrh r1, [r5]
+ lsls r1, r1, #3
+ adds r1, r1, r7
+ ldrb r0, [r6, #4]
+ ldrb r5, [r5, #4]
+ adds r0, r0, r5
+ strb r0, [r1]
+ adds r4, #1
+ lsls r4, r4, #0x10
+ lsrs r0, r4, #0x10
+ asrs r4, r4, #0x10
+ cmp r4, #8
+ ble _08041D92
+_08041DD6:
+ ldr r6, _08041FC4 @ =0x0200CC28
+ ldrh r0, [r6]
+ cmp r0, #0
+ bne _08041DE0
+ b _08041EFC
+_08041DE0:
+ mov r3, sl
+ ldr r4, [r3]
+ movs r5, #0xa5
+ lsls r5, r5, #3
+ adds r0, r4, r5
+ movs r1, #0
+ ldrsh r0, [r0, r1]
+ movs r1, #0xa
+ bl sub_556D0
+ adds r4, #0x58
+ ldr r2, _08041FB4 @ =0xFFFFFE90
+ adds r1, r2, #0
+ ldrh r4, [r4]
+ adds r1, r1, r4
+ subs r0, r0, r1
+ strh r0, [r6, #2]
+ mov r3, sl
+ ldr r4, [r3]
+ adds r5, #2
+ adds r0, r4, r5
+ movs r1, #0
+ ldrsh r0, [r0, r1]
+ movs r1, #0xa
+ bl sub_556D0
+ adds r4, #0x5a
+ ldrh r1, [r4]
+ subs r1, #0x5a
+ subs r0, r0, r1
+ strh r0, [r6, #4]
+ movs r0, #0
+ movs r2, #0xb8
+ adds r2, r2, r6
+ mov sb, r2
+ ldr r7, _08041FB8 @ =0x03005000
+ ldr r3, _08041FBC @ =0xFFFFFE00
+ mov r8, r3
+_08041E2C:
+ lsls r4, r0, #0x10
+ asrs r4, r4, #0x10
+ lsls r0, r4, #3
+ adds r0, #8
+ adds r5, r6, r0
+ ldrh r3, [r5]
+ lsls r3, r3, #3
+ adds r3, r3, r7
+ movs r0, #2
+ ldrsh r1, [r5, r0]
+ movs r2, #2
+ ldrsh r0, [r6, r2]
+ adds r1, r1, r0
+ ldr r2, _08041FB0 @ =0x000001FF
+ adds r0, r2, #0
+ ands r1, r0
+ ldrh r2, [r3, #2]
+ mov r0, r8
+ ands r0, r2
+ orrs r0, r1
+ strh r0, [r3, #2]
+ ldrh r1, [r5]
+ lsls r1, r1, #3
+ adds r1, r1, r7
+ ldrb r0, [r6, #4]
+ ldrb r5, [r5, #4]
+ adds r0, r0, r5
+ strb r0, [r1]
+ adds r4, #1
+ lsls r4, r4, #0x10
+ lsrs r0, r4, #0x10
+ asrs r4, r4, #0x10
+ cmp r4, #0xe
+ ble _08041E2C
+ mov r6, sb
+ mov r3, sl
+ ldr r4, [r3]
+ movs r5, #0xa5
+ lsls r5, r5, #3
+ adds r0, r4, r5
+ movs r1, #0
+ ldrsh r0, [r0, r1]
+ movs r1, #0xa
+ bl sub_556D0
+ adds r4, #0x58
+ ldr r2, _08041FB4 @ =0xFFFFFE90
+ adds r1, r2, #0
+ ldrh r4, [r4]
+ adds r1, r1, r4
+ subs r0, r0, r1
+ strh r0, [r6, #2]
+ mov r3, sl
+ ldr r4, [r3]
+ adds r5, #2
+ adds r0, r4, r5
+ movs r1, #0
+ ldrsh r0, [r0, r1]
+ movs r1, #0xa
+ bl sub_556D0
+ adds r4, #0x5a
+ ldrh r1, [r4]
+ subs r1, #0x5a
+ subs r0, r0, r1
+ strh r0, [r6, #4]
+ movs r0, #0
+ ldr r7, _08041FB8 @ =0x03005000
+ ldr r2, _08041FBC @ =0xFFFFFE00
+ mov r8, r2
+_08041EB8:
+ lsls r4, r0, #0x10
+ asrs r4, r4, #0x10
+ lsls r0, r4, #3
+ adds r0, #8
+ adds r5, r6, r0
+ ldrh r3, [r5]
+ lsls r3, r3, #3
+ adds r3, r3, r7
+ movs r0, #2
+ ldrsh r1, [r5, r0]
+ movs r2, #2
+ ldrsh r0, [r6, r2]
+ adds r1, r1, r0
+ ldr r2, _08041FB0 @ =0x000001FF
+ adds r0, r2, #0
+ ands r1, r0
+ ldrh r2, [r3, #2]
+ mov r0, r8
+ ands r0, r2
+ orrs r0, r1
+ strh r0, [r3, #2]
+ ldrh r1, [r5]
+ lsls r1, r1, #3
+ adds r1, r1, r7
+ ldrb r0, [r6, #4]
+ ldrb r5, [r5, #4]
+ adds r0, r0, r5
+ strb r0, [r1]
+ adds r4, #1
+ lsls r4, r4, #0x10
+ lsrs r0, r4, #0x10
+ asrs r4, r4, #0x10
+ cmp r4, #0xb
+ ble _08041EB8
+_08041EFC:
+ ldr r3, _08041FC8 @ =0x0200B0C0
+ ldr r4, _08041FCC @ =0x000012C8
+ adds r0, r3, r4
+ ldrh r1, [r0]
+ cmp r1, #0
+ bne _08041F0A
+ b _08042014
+_08041F0A:
+ ldr r0, _08041FD0 @ =0x020314E0
+ ldr r2, [r0]
+ ldr r5, _08041FD4 @ =0x00000514
+ adds r0, r2, r5
+ ldrh r0, [r0]
+ cmp r0, #6
+ bne _08041F7A
+ ldr r1, _08041FD8 @ =0x00001438
+ adds r0, r3, r1
+ movs r1, #0
+ strh r1, [r0]
+ ldr r4, _08041FDC @ =0x000014F0
+ adds r0, r3, r4
+ strh r1, [r0]
+ ldr r5, _08041FE0 @ =0x000015A8
+ adds r0, r3, r5
+ movs r1, #1
+ strh r1, [r0]
+ movs r4, #0xb3
+ lsls r4, r4, #5
+ adds r0, r3, r4
+ strh r1, [r0]
+ ldr r5, _08041FE4 @ =0x00000441
+ adds r0, r2, r5
+ ldrb r0, [r0]
+ lsls r0, r0, #0x18
+ asrs r0, r0, #0x18
+ cmp r0, #2
+ bgt _08041F7A
+ ldr r1, _08041FE8 @ =0x00000442
+ adds r0, r2, r1
+ ldrb r0, [r0]
+ lsls r0, r0, #0x18
+ asrs r0, r0, #0x18
+ cmp r0, #2
+ bgt _08041F7A
+ movs r3, #0xe2
+ lsls r3, r3, #2
+ adds r0, r2, r3
+ ldrb r0, [r0]
+ lsls r0, r0, #0x18
+ asrs r0, r0, #0x18
+ cmp r0, #0
+ bne _08041F7A
+ ldr r4, _08041FEC @ =0x0000132C
+ adds r0, r2, r4
+ ldr r1, [r0]
+ movs r5, #0xfa
+ lsls r5, r5, #1
+ adds r0, r5, #0
+ ldrh r2, [r1, #0x30]
+ adds r0, r0, r2
+ strh r0, [r1, #0x30]
+ movs r0, #0xd
+ bl sub_11B0
+_08041F7A:
+ ldr r4, _08041FD0 @ =0x020314E0
+ ldr r0, [r4]
+ ldr r3, _08041FD4 @ =0x00000514
+ adds r0, r0, r3
+ ldrh r0, [r0]
+ cmp r0, #0xb
+ bne _08041FA6
+ ldr r1, _08041FC8 @ =0x0200B0C0
+ ldr r5, _08041FE0 @ =0x000015A8
+ adds r0, r1, r5
+ movs r2, #0
+ strh r2, [r0]
+ adds r5, #0xb8
+ adds r0, r1, r5
+ strh r2, [r0]
+ ldr r2, _08041FF0 @ =0x00001718
+ adds r0, r1, r2
+ movs r2, #1
+ strh r2, [r0]
+ ldr r5, _08041FF4 @ =0x000017D0
+ adds r1, r1, r5
+ strh r2, [r1]
+_08041FA6:
+ ldr r0, [r4]
+ adds r0, r0, r3
+ ldrh r0, [r0]
+ cmp r0, #0xe
+ b _08041FF8
+ .align 2, 0
+_08041FB0: .4byte 0x000001FF
+_08041FB4: .4byte 0xFFFFFE90
+_08041FB8: .4byte 0x03005000
+_08041FBC: .4byte 0xFFFFFE00
+_08041FC0: .4byte 0x0200CAB8
+_08041FC4: .4byte 0x0200CC28
+_08041FC8: .4byte 0x0200B0C0
+_08041FCC: .4byte 0x000012C8
+_08041FD0: .4byte 0x020314E0
+_08041FD4: .4byte 0x00000514
+_08041FD8: .4byte 0x00001438
+_08041FDC: .4byte 0x000014F0
+_08041FE0: .4byte 0x000015A8
+_08041FE4: .4byte 0x00000441
+_08041FE8: .4byte 0x00000442
+_08041FEC: .4byte 0x0000132C
+_08041FF0: .4byte 0x00001718
+_08041FF4: .4byte 0x000017D0
+_08041FF8:
+ bne _080420CC
+ ldr r0, _08042008 @ =0x0200B0C0
+ ldr r2, _0804200C @ =0x00001718
+ adds r1, r0, r2
+ movs r2, #0
+ strh r2, [r1]
+ ldr r3, _08042010 @ =0x000017D0
+ b _080420C8
+ .align 2, 0
+_08042008: .4byte 0x0200B0C0
+_0804200C: .4byte 0x00001718
+_08042010: .4byte 0x000017D0
+_08042014:
+ ldr r0, _08042274 @ =0x020314E0
+ ldr r2, [r0]
+ ldr r4, _08042278 @ =0x00000514
+ adds r0, r2, r4
+ ldrh r0, [r0]
+ cmp r0, #6
+ bne _08042082
+ ldr r5, _0804227C @ =0x0200B0C0
+ ldr r3, _08042280 @ =0x00001888
+ adds r0, r5, r3
+ strh r1, [r0]
+ movs r4, #0xca
+ lsls r4, r4, #5
+ adds r0, r5, r4
+ strh r1, [r0]
+ ldr r1, _08042284 @ =0x000019F8
+ adds r0, r5, r1
+ movs r1, #1
+ strh r1, [r0]
+ ldr r3, _08042288 @ =0x00001AB0
+ adds r0, r5, r3
+ strh r1, [r0]
+ ldr r4, _0804228C @ =0x00000441
+ adds r0, r2, r4
+ ldrb r0, [r0]
+ lsls r0, r0, #0x18
+ asrs r0, r0, #0x18
+ cmp r0, #2
+ bgt _08042082
+ ldr r5, _08042290 @ =0x00000442
+ adds r0, r2, r5
+ ldrb r0, [r0]
+ lsls r0, r0, #0x18
+ asrs r0, r0, #0x18
+ cmp r0, #2
+ bgt _08042082
+ movs r1, #0xe2
+ lsls r1, r1, #2
+ adds r0, r2, r1
+ ldrb r0, [r0]
+ lsls r0, r0, #0x18
+ asrs r0, r0, #0x18
+ cmp r0, #0
+ bne _08042082
+ ldr r3, _08042294 @ =0x0000132C
+ adds r0, r2, r3
+ ldr r1, [r0]
+ ldr r4, _08042298 @ =0xFFFFFE0C
+ adds r0, r4, #0
+ ldrh r5, [r1, #0x30]
+ adds r0, r0, r5
+ strh r0, [r1, #0x30]
+ movs r0, #0xd
+ bl sub_11B0
+_08042082:
+ ldr r4, _08042274 @ =0x020314E0
+ ldr r0, [r4]
+ ldr r3, _08042278 @ =0x00000514
+ adds r0, r0, r3
+ ldrh r0, [r0]
+ cmp r0, #0xb
+ bne _080420B0
+ ldr r1, _0804227C @ =0x0200B0C0
+ ldr r2, _08042284 @ =0x000019F8
+ adds r0, r1, r2
+ movs r2, #0
+ strh r2, [r0]
+ ldr r5, _08042288 @ =0x00001AB0
+ adds r0, r1, r5
+ strh r2, [r0]
+ ldr r2, _0804229C @ =0x00001B68
+ adds r0, r1, r2
+ movs r2, #1
+ strh r2, [r0]
+ movs r5, #0xe1
+ lsls r5, r5, #5
+ adds r1, r1, r5
+ strh r2, [r1]
+_080420B0:
+ ldr r0, [r4]
+ adds r0, r0, r3
+ ldrh r0, [r0]
+ cmp r0, #0xe
+ bne _080420CC
+ ldr r0, _0804227C @ =0x0200B0C0
+ ldr r2, _0804229C @ =0x00001B68
+ adds r1, r0, r2
+ movs r2, #0
+ strh r2, [r1]
+ movs r3, #0xe1
+ lsls r3, r3, #5
+_080420C8:
+ adds r0, r0, r3
+ strh r2, [r0]
+_080420CC:
+ ldr r4, _08042274 @ =0x020314E0
+ mov sb, r4
+ ldr r1, [r4]
+ ldr r5, _08042278 @ =0x00000514
+ adds r0, r1, r5
+ ldrh r0, [r0]
+ cmp r0, #0xa
+ bne _08042184
+ ldr r0, _0804228C @ =0x00000441
+ adds r2, r1, r0
+ movs r0, #0
+ ldrsb r0, [r2, r0]
+ cmp r0, #2
+ bgt _08042184
+ movs r3, #0x8b
+ lsls r3, r3, #3
+ adds r1, r1, r3
+ movs r0, #0
+ strh r0, [r1]
+ movs r1, #1
+ strb r1, [r2]
+ ldr r4, _0804227C @ =0x0200B0C0
+ movs r5, #0xdc
+ lsls r5, r5, #4
+ adds r0, r4, r5
+ strh r1, [r0]
+ bl sub_C00
+ adds r5, r0, #0
+ movs r0, #7
+ ands r5, r0
+ ldr r0, [r4, #0x4c]
+ movs r1, #0xf0
+ bl sub_558B0
+ lsls r0, r0, #0x10
+ movs r1, #0xf0
+ bl sub_55838
+ lsls r0, r0, #0x10
+ lsrs r7, r0, #0x10
+ mov r0, sb
+ ldr r2, [r0]
+ ldr r0, _080422A0 @ =0x086AF744
+ lsls r1, r5, #2
+ adds r1, r1, r0
+ ldrh r3, [r1]
+ ldr r5, _080422A4 @ =0x00000464
+ adds r0, r2, r5
+ strh r3, [r0]
+ ldrh r0, [r1, #2]
+ ldr r6, _080422A8 @ =0x00000466
+ adds r2, r2, r6
+ strh r0, [r2]
+ adds r0, r7, #0
+ bl sub_C74
+ mov r1, sb
+ ldr r4, [r1]
+ adds r5, r4, r5
+ lsls r0, r0, #0x10
+ asrs r0, r0, #0x10
+ movs r2, #0xfa
+ lsls r2, r2, #1
+ mov r8, r2
+ mov r1, r8
+ bl sub_556D0
+ ldrh r1, [r5]
+ adds r1, r1, r0
+ ldr r3, _080422AC @ =0x0000045C
+ adds r4, r4, r3
+ strh r1, [r4]
+ adds r0, r7, #0
+ bl sub_C24
+ mov r5, sb
+ ldr r4, [r5]
+ adds r6, r4, r6
+ lsls r0, r0, #0x10
+ asrs r0, r0, #0x10
+ mov r1, r8
+ bl sub_556D0
+ ldrh r1, [r6]
+ adds r1, r1, r0
+ ldr r0, _080422B0 @ =0x0000045E
+ adds r4, r4, r0
+ strh r1, [r4]
+ ldr r0, _080422B4 @ =0x0000012D
+ bl sub_53DA8
+_08042184:
+ ldr r1, _08042274 @ =0x020314E0
+ mov sb, r1
+ ldr r1, [r1]
+ ldr r2, _08042278 @ =0x00000514
+ adds r0, r1, r2
+ ldrh r0, [r0]
+ cmp r0, #0x10
+ bne _08042240
+ ldr r3, _08042290 @ =0x00000442
+ adds r2, r1, r3
+ movs r0, #0
+ ldrsb r0, [r2, r0]
+ cmp r0, #2
+ bgt _08042240
+ ldr r4, _080422B8 @ =0x0000045A
+ adds r1, r1, r4
+ movs r0, #0
+ strh r0, [r1]
+ movs r1, #1
+ strb r1, [r2]
+ ldr r4, _0804227C @ =0x0200B0C0
+ ldr r5, _080422BC @ =0x00000E78
+ adds r0, r4, r5
+ strh r1, [r0]
+ bl sub_C00
+ movs r1, #7
+ ands r1, r0
+ adds r1, #8
+ adds r5, r1, #0
+ ldr r0, [r4, #0x4c]
+ adds r0, #0x78
+ movs r1, #0xf0
+ bl sub_558B0
+ lsls r0, r0, #0x10
+ movs r1, #0xf0
+ bl sub_55838
+ lsls r0, r0, #0x10
+ lsrs r7, r0, #0x10
+ mov r0, sb
+ ldr r2, [r0]
+ ldr r0, _080422A0 @ =0x086AF744
+ lsls r1, r5, #2
+ adds r1, r1, r0
+ ldrh r3, [r1]
+ movs r5, #0x8d
+ lsls r5, r5, #3
+ adds r0, r2, r5
+ strh r3, [r0]
+ ldrh r0, [r1, #2]
+ ldr r6, _080422C0 @ =0x0000046A
+ adds r2, r2, r6
+ strh r0, [r2]
+ adds r0, r7, #0
+ bl sub_C74
+ mov r1, sb
+ ldr r4, [r1]
+ adds r5, r4, r5
+ lsls r0, r0, #0x10
+ asrs r0, r0, #0x10
+ movs r2, #0xfa
+ lsls r2, r2, #1
+ mov r8, r2
+ mov r1, r8
+ bl sub_556D0
+ ldrh r1, [r5]
+ adds r1, r1, r0
+ movs r3, #0x8c
+ lsls r3, r3, #3
+ adds r4, r4, r3
+ strh r1, [r4]
+ adds r0, r7, #0
+ bl sub_C24
+ mov r5, sb
+ ldr r4, [r5]
+ adds r6, r4, r6
+ lsls r0, r0, #0x10
+ asrs r0, r0, #0x10
+ mov r1, r8
+ bl sub_556D0
+ ldrh r1, [r6]
+ adds r1, r1, r0
+ ldr r0, _080422C4 @ =0x00000462
+ adds r4, r4, r0
+ strh r1, [r4]
+ ldr r0, _080422B4 @ =0x0000012D
+ bl sub_53DA8
+_08042240:
+ ldr r0, _08042274 @ =0x020314E0
+ ldr r1, [r0]
+ movs r3, #0x99
+ lsls r3, r3, #3
+ adds r2, r1, r3
+ ldrb r3, [r2]
+ movs r1, #0
+ ldrsb r1, [r2, r1]
+ mov sl, r0
+ cmp r1, #0
+ bgt _08042258
+ b _0804235E
+_08042258:
+ subs r0, r3, #1
+ strb r0, [r2]
+ mov r4, sl
+ ldr r5, [r4]
+ movs r0, #0x99
+ lsls r0, r0, #3
+ adds r1, r5, r0
+ movs r0, #0
+ ldrsb r0, [r1, r0]
+ cmp r0, #0xb
+ bgt _080422CC
+ ldr r4, _080422C8 @ =0x086AEF28
+ b _0804232E
+ .align 2, 0
+_08042274: .4byte 0x020314E0
+_08042278: .4byte 0x00000514
+_0804227C: .4byte 0x0200B0C0
+_08042280: .4byte 0x00001888
+_08042284: .4byte 0x000019F8
+_08042288: .4byte 0x00001AB0
+_0804228C: .4byte 0x00000441
+_08042290: .4byte 0x00000442
+_08042294: .4byte 0x0000132C
+_08042298: .4byte 0xFFFFFE0C
+_0804229C: .4byte 0x00001B68
+_080422A0: .4byte 0x086AF744
+_080422A4: .4byte 0x00000464
+_080422A8: .4byte 0x00000466
+_080422AC: .4byte 0x0000045C
+_080422B0: .4byte 0x0000045E
+_080422B4: .4byte 0x0000012D
+_080422B8: .4byte 0x0000045A
+_080422BC: .4byte 0x00000E78
+_080422C0: .4byte 0x0000046A
+_080422C4: .4byte 0x00000462
+_080422C8: .4byte 0x086AEF28
+_080422CC:
+ cmp r0, #0x17
+ ble _08042300
+ cmp r0, #0x23
+ bgt _080422FC
+ ldr r4, _080422F8 @ =0x086AEF28
+ movs r0, #0
+ ldrsb r0, [r1, r0]
+ movs r1, #0xc
+ bl sub_55768
+ lsls r0, r0, #0x18
+ asrs r0, r0, #0x17
+ adds r0, r0, r4
+ movs r1, #0
+ ldrsh r0, [r0, r1]
+ lsls r0, r0, #2
+ movs r2, #0xab
+ lsls r2, r2, #2
+ adds r1, r5, r2
+ strh r0, [r1]
+ b _08042344
+ .align 2, 0
+_080422F8: .4byte 0x086AEF28
+_080422FC:
+ cmp r0, #0x2f
+ bgt _08042328
+_08042300:
+ ldr r4, _08042324 @ =0x086AEF28
+ movs r0, #0
+ ldrsb r0, [r1, r0]
+ movs r1, #0xc
+ bl sub_55768
+ lsls r0, r0, #0x18
+ asrs r0, r0, #0x17
+ adds r0, r0, r4
+ movs r3, #0
+ ldrsh r0, [r0, r3]
+ lsls r0, r0, #1
+ movs r4, #0xab
+ lsls r4, r4, #2
+ adds r1, r5, r4
+ strh r0, [r1]
+ b _08042344
+ .align 2, 0
+_08042324: .4byte 0x086AEF28
+_08042328:
+ ldr r4, _08042394 @ =0x086AEF28
+ movs r0, #0
+ ldrsb r0, [r1, r0]
+_0804232E:
+ movs r1, #0xc
+ bl sub_55768
+ lsls r0, r0, #0x18
+ asrs r0, r0, #0x17
+ adds r0, r0, r4
+ ldrh r1, [r0]
+ movs r2, #0xab
+ lsls r2, r2, #2
+ adds r0, r5, r2
+ strh r1, [r0]
+_08042344:
+ mov r3, sl
+ ldr r2, [r3]
+ movs r4, #0x99
+ lsls r4, r4, #3
+ adds r0, r2, r4
+ movs r1, #0
+ ldrsb r1, [r0, r1]
+ cmp r1, #0
+ bne _0804235E
+ movs r5, #0xab
+ lsls r5, r5, #2
+ adds r0, r2, r5
+ strh r1, [r0]
+_0804235E:
+ mov r0, sl
+ ldr r2, [r0]
+ movs r3, #0xa1
+ lsls r3, r3, #3
+ adds r1, r2, r3
+ movs r4, #0
+ ldrsh r0, [r1, r4]
+ cmp r0, #0
+ ble _080423C2
+ adds r1, r0, #0
+ cmp r1, #0
+ bge _08042378
+ adds r0, r1, #3
+_08042378:
+ asrs r0, r0, #2
+ lsls r0, r0, #2
+ subs r0, r1, r0
+ lsls r0, r0, #0x10
+ asrs r1, r0, #0x10
+ lsrs r0, r0, #0x1f
+ adds r1, r1, r0
+ asrs r1, r1, #1
+ cmp r1, #0
+ beq _0804239C
+ ldr r0, _08042398 @ =0x000002AA
+ adds r1, r2, r0
+ movs r0, #2
+ b _080423A2
+ .align 2, 0
+_08042394: .4byte 0x086AEF28
+_08042398: .4byte 0x000002AA
+_0804239C:
+ ldr r3, _080423D0 @ =0x000002AA
+ adds r1, r2, r3
+ ldr r0, _080423D4 @ =0x0000FFFE
+_080423A2:
+ strh r0, [r1]
+ mov r5, sl
+ ldr r4, [r5]
+ movs r0, #0xa1
+ lsls r0, r0, #3
+ adds r1, r4, r0
+ ldrh r0, [r1]
+ subs r0, #1
+ strh r0, [r1]
+ lsls r0, r0, #0x10
+ asrs r1, r0, #0x10
+ cmp r1, #0
+ bne _080423C2
+ ldr r2, _080423D0 @ =0x000002AA
+ adds r0, r4, r2
+ strh r1, [r0]
+_080423C2:
+ pop {r3, r4, r5}
+ mov r8, r3
+ mov sb, r4
+ mov sl, r5
+ pop {r4, r5, r6, r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080423D0: .4byte 0x000002AA
+_080423D4: .4byte 0x0000FFFE
+
+ thumb_func_start sub_423D8
+sub_423D8: @ 0x080423D8
+ push {r4, r5, r6, r7, lr}
+ mov r7, sl
+ mov r6, sb
+ mov r5, r8
+ push {r5, r6, r7}
+ ldr r0, _0804267C @ =0x020314E0
+ ldr r3, [r0]
+ ldr r2, _08042680 @ =0x00000506
+ adds r1, r3, r2
+ ldrb r1, [r1]
+ lsls r1, r1, #0x18
+ asrs r1, r1, #0x18
+ mov r8, r0
+ cmp r1, #0
+ beq _080423F8
+ b _08042AB2
+_080423F8:
+ ldr r4, _08042684 @ =0x00000516
+ adds r1, r3, r4
+ ldrh r2, [r1]
+ movs r0, #0xac
+ lsls r0, r0, #2
+ cmp r2, r0
+ bls _08042408
+ b _08042AB2
+_08042408:
+ subs r0, #0x78
+ cmp r2, r0
+ bhi _08042484
+ adds r0, r2, #0
+ movs r1, #0xa0
+ bl sub_558B0
+ lsls r0, r0, #0x10
+ lsrs r0, r0, #0x10
+ cmp r0, #0x14
+ bne _08042428
+ ldr r0, _08042688 @ =0x02032F20
+ ldr r1, _0804268C @ =0x0000FFFF
+ movs r2, #0x80
+ bl sub_54D94
+_08042428:
+ mov r3, r8
+ ldr r0, [r3]
+ adds r0, r0, r4
+ ldrh r0, [r0]
+ movs r1, #0xa0
+ bl sub_558B0
+ lsls r0, r0, #0x10
+ lsrs r0, r0, #0x10
+ cmp r0, #0x5a
+ bne _08042446
+ ldr r0, _08042688 @ =0x02032F20
+ movs r1, #5
+ bl sub_53F80
+_08042446:
+ mov r1, r8
+ ldr r0, [r1]
+ adds r0, r0, r4
+ ldrh r0, [r0]
+ movs r1, #0xa0
+ bl sub_558B0
+ lsls r0, r0, #0x10
+ lsrs r0, r0, #0x10
+ cmp r0, #1
+ bne _08042464
+ movs r0, #0x97
+ lsls r0, r0, #1
+ bl sub_53DA8
+_08042464:
+ mov r2, r8
+ ldr r0, [r2]
+ adds r0, r0, r4
+ ldrh r0, [r0]
+ movs r1, #0xa0
+ bl sub_558B0
+ lsls r0, r0, #0x10
+ lsrs r0, r0, #0x10
+ cmp r0, #2
+ bne _08042484
+ ldr r0, _08042688 @ =0x02032F20
+ ldr r1, _0804268C @ =0x0000FFFF
+ movs r2, #0x33
+ bl sub_54D94
+_08042484:
+ ldr r2, _0804267C @ =0x020314E0
+ ldr r5, [r2]
+ ldr r4, _08042684 @ =0x00000516
+ adds r3, r5, r4
+ ldrh r1, [r3]
+ ldr r0, _08042690 @ =0x000001FF
+ mov r8, r2
+ cmp r1, r0
+ bls _080424AA
+ adds r0, r1, #0
+ ldr r3, _08042694 @ =0xFFFFFE00
+ adds r0, r0, r3
+ lsrs r1, r0, #0x1f
+ adds r0, r0, r1
+ asrs r0, r0, #1
+ subs r0, #0x58
+ adds r1, r5, #0
+ adds r1, #0xe6
+ strh r0, [r1]
+_080424AA:
+ mov r0, r8
+ ldr r2, [r0]
+ adds r0, r2, r4
+ ldrh r1, [r0]
+ movs r0, #0x9c
+ lsls r0, r0, #2
+ cmp r1, r0
+ bne _080424C4
+ movs r3, #0xa5
+ lsls r3, r3, #2
+ adds r1, r2, r3
+ movs r0, #1
+ strb r0, [r1]
+_080424C4:
+ mov r0, r8
+ ldr r3, [r0]
+ adds r2, r3, r4
+ ldrh r1, [r2]
+ movs r0, #0x80
+ lsls r0, r0, #2
+ cmp r1, r0
+ bhi _080424E0
+ adds r0, r1, #0
+ lsrs r0, r0, #1
+ movs r2, #0xa3
+ lsls r2, r2, #3
+ adds r1, r3, r2
+ strh r0, [r1]
+_080424E0:
+ mov r3, r8
+ ldr r2, [r3]
+ adds r0, r2, r4
+ ldrh r1, [r0]
+ movs r0, #0xac
+ lsls r0, r0, #2
+ cmp r1, r0
+ bne _080424F8
+ ldr r0, _08042680 @ =0x00000506
+ adds r1, r2, r0
+ movs r0, #1
+ strb r0, [r1]
+_080424F8:
+ mov r1, r8
+ ldr r2, [r1]
+ adds r0, r2, r4
+ ldrh r1, [r0]
+ adds r1, #1
+ strh r1, [r0]
+ lsls r1, r1, #0x10
+ movs r0, #0x8e
+ lsls r0, r0, #0x12
+ cmp r1, r0
+ bhi _0804251C
+ ldr r3, _08042698 @ =0x00000392
+ adds r1, r2, r3
+ ldrh r0, [r1]
+ cmp r0, #5
+ bls _0804251C
+ subs r0, #1
+ strh r0, [r1]
+_0804251C:
+ mov r4, r8
+ ldr r2, [r4]
+ ldr r3, _08042684 @ =0x00000516
+ adds r0, r2, r3
+ ldrh r0, [r0]
+ cmp r0, #1
+ bne _08042562
+ movs r0, #0xf1
+ lsls r0, r0, #2
+ adds r1, r2, r0
+ movs r0, #0x96
+ lsls r0, r0, #1
+ strh r0, [r1]
+ ldr r1, _0804269C @ =0x000003C6
+ adds r0, r2, r1
+ adds r1, #0xea
+ strh r1, [r0]
+ movs r4, #0xf2
+ lsls r4, r4, #2
+ adds r0, r2, r4
+ strh r1, [r0]
+ ldr r0, _080426A0 @ =0x000003CA
+ adds r1, r2, r0
+ movs r0, #0xc8
+ lsls r0, r0, #1
+ strh r0, [r1]
+ adds r4, #4
+ adds r1, r2, r4
+ movs r0, #0xfa
+ lsls r0, r0, #2
+ strh r0, [r1]
+ subs r0, #0x1a
+ adds r1, r2, r0
+ ldr r0, _080426A4 @ =0x000009C4
+ strh r0, [r1]
+_08042562:
+ mov r1, r8
+ ldr r2, [r1]
+ adds r0, r2, r3
+ ldrh r0, [r0]
+ cmp r0, #0x58
+ bne _08042584
+ movs r4, #0xf1
+ lsls r4, r4, #2
+ adds r1, r2, r4
+ movs r0, #0xc8
+ lsls r0, r0, #3
+ strh r0, [r1]
+ ldr r0, _0804269C @ =0x000003C6
+ adds r1, r2, r0
+ movs r0, #0xe1
+ lsls r0, r0, #3
+ strh r0, [r1]
+_08042584:
+ mov r1, r8
+ ldr r2, [r1]
+ adds r0, r2, r3
+ ldrh r0, [r0]
+ cmp r0, #0x78
+ bne _080425A6
+ movs r4, #0xf2
+ lsls r4, r4, #2
+ adds r1, r2, r4
+ movs r0, #0x96
+ lsls r0, r0, #2
+ strh r0, [r1]
+ ldr r0, _080426A0 @ =0x000003CA
+ adds r1, r2, r0
+ movs r0, #0xe1
+ lsls r0, r0, #3
+ strh r0, [r1]
+_080425A6:
+ mov r1, r8
+ ldr r2, [r1]
+ adds r0, r2, r3
+ ldrh r0, [r0]
+ cmp r0, #0xaa
+ bne _080425C8
+ movs r4, #0xf3
+ lsls r4, r4, #2
+ adds r1, r2, r4
+ movs r0, #0xe1
+ lsls r0, r0, #3
+ strh r0, [r1]
+ ldr r0, _080426A8 @ =0x000003CE
+ adds r1, r2, r0
+ movs r0, #0xfa
+ lsls r0, r0, #3
+ strh r0, [r1]
+_080425C8:
+ mov r1, r8
+ ldr r2, [r1]
+ adds r0, r2, r3
+ ldrh r0, [r0]
+ cmp r0, #0xd7
+ bne _080425E8
+ movs r4, #0xf1
+ lsls r4, r4, #2
+ adds r1, r2, r4
+ movs r0, #0
+ strh r0, [r1]
+ ldr r0, _0804269C @ =0x000003C6
+ adds r1, r2, r0
+ movs r0, #0xfa
+ lsls r0, r0, #3
+ strh r0, [r1]
+_080425E8:
+ mov r1, r8
+ ldr r2, [r1]
+ adds r0, r2, r3
+ ldrh r1, [r0]
+ ldr r0, _080426AC @ =0x00000131
+ cmp r1, r0
+ bne _08042608
+ movs r4, #0xf2
+ lsls r4, r4, #2
+ adds r0, r2, r4
+ movs r1, #0xe1
+ lsls r1, r1, #3
+ strh r1, [r0]
+ adds r4, #2
+ adds r0, r2, r4
+ strh r1, [r0]
+_08042608:
+ mov r0, r8
+ ldr r2, [r0]
+ adds r0, r2, r3
+ ldrh r1, [r0]
+ ldr r0, _080426B0 @ =0x0000013B
+ cmp r1, r0
+ bne _0804262A
+ movs r3, #0xf3
+ lsls r3, r3, #2
+ adds r1, r2, r3
+ subs r0, #0xf
+ strh r0, [r1]
+ ldr r4, _080426A8 @ =0x000003CE
+ adds r1, r2, r4
+ movs r0, #0xe1
+ lsls r0, r0, #3
+ strh r0, [r1]
+_0804262A:
+ ldr r6, _080426B4 @ =0x0200BBA0
+ ldrh r0, [r6]
+ movs r1, #0xb8
+ adds r1, r1, r6
+ mov sb, r1
+ movs r2, #0xb8
+ lsls r2, r2, #1
+ adds r2, r2, r6
+ mov sl, r2
+ cmp r0, #0
+ beq _08042728
+ mov r3, r8
+ ldr r0, [r3]
+ movs r4, #0xf1
+ lsls r4, r4, #2
+ adds r0, r0, r4
+ movs r1, #0
+ ldrsh r0, [r0, r1]
+ movs r1, #0xa
+ bl sub_556D0
+ strh r0, [r6, #2]
+ mov r2, r8
+ ldr r0, [r2]
+ ldr r3, _0804269C @ =0x000003C6
+ adds r0, r0, r3
+ movs r4, #0
+ ldrsh r0, [r0, r4]
+ movs r1, #0xa
+ bl sub_556D0
+ strh r0, [r6, #4]
+ lsls r0, r0, #0x10
+ asrs r0, r0, #0x10
+ movs r1, #0x3c
+ rsbs r1, r1, #0
+ cmp r0, r1
+ bgt _080426B8
+ strh r1, [r6, #4]
+ b _080426C6
+ .align 2, 0
+_0804267C: .4byte 0x020314E0
+_08042680: .4byte 0x00000506
+_08042684: .4byte 0x00000516
+_08042688: .4byte 0x02032F20
+_0804268C: .4byte 0x0000FFFF
+_08042690: .4byte 0x000001FF
+_08042694: .4byte 0xFFFFFE00
+_08042698: .4byte 0x00000392
+_0804269C: .4byte 0x000003C6
+_080426A0: .4byte 0x000003CA
+_080426A4: .4byte 0x000009C4
+_080426A8: .4byte 0x000003CE
+_080426AC: .4byte 0x00000131
+_080426B0: .4byte 0x0000013B
+_080426B4: .4byte 0x0200BBA0
+_080426B8:
+ mov r0, r8
+ ldr r1, [r0]
+ ldr r2, _0804276C @ =0x000003C6
+ adds r1, r1, r2
+ ldrh r0, [r1]
+ subs r0, #0x14
+ strh r0, [r1]
+_080426C6:
+ movs r3, #4
+ ldrsh r0, [r6, r3]
+ cmp r0, #0xc8
+ ble _080426D2
+ movs r0, #0xb4
+ strh r0, [r6, #4]
+_080426D2:
+ movs r0, #0
+ ldr r4, _08042770 @ =0x0200BC58
+ mov sb, r4
+ movs r1, #0xb8
+ add r1, sb
+ mov sl, r1
+ ldr r7, _08042774 @ =0x03005000
+ ldr r2, _08042778 @ =0xFFFFFE00
+ mov ip, r2
+_080426E4:
+ lsls r4, r0, #0x10
+ asrs r4, r4, #0x10
+ lsls r0, r4, #3
+ adds r0, #8
+ adds r5, r6, r0
+ ldrh r3, [r5]
+ lsls r3, r3, #3
+ adds r3, r3, r7
+ movs r0, #2
+ ldrsh r1, [r5, r0]
+ movs r2, #2
+ ldrsh r0, [r6, r2]
+ adds r1, r1, r0
+ ldr r2, _0804277C @ =0x000001FF
+ adds r0, r2, #0
+ ands r1, r0
+ ldrh r2, [r3, #2]
+ mov r0, ip
+ ands r0, r2
+ orrs r0, r1
+ strh r0, [r3, #2]
+ ldrh r1, [r5]
+ lsls r1, r1, #3
+ adds r1, r1, r7
+ ldrb r0, [r6, #4]
+ ldrb r5, [r5, #4]
+ adds r0, r0, r5
+ strb r0, [r1]
+ adds r4, #1
+ lsls r4, r4, #0x10
+ lsrs r0, r4, #0x10
+ asrs r4, r4, #0x10
+ cmp r4, #3
+ ble _080426E4
+_08042728:
+ mov r6, sb
+ ldrh r0, [r6]
+ cmp r0, #0
+ beq _080427EE
+ mov r3, r8
+ ldr r0, [r3]
+ movs r4, #0xf2
+ lsls r4, r4, #2
+ adds r0, r0, r4
+ movs r1, #0
+ ldrsh r0, [r0, r1]
+ movs r1, #0xa
+ bl sub_556D0
+ strh r0, [r6, #2]
+ mov r2, r8
+ ldr r0, [r2]
+ ldr r3, _08042780 @ =0x000003CA
+ adds r0, r0, r3
+ movs r4, #0
+ ldrsh r0, [r0, r4]
+ movs r1, #0xa
+ bl sub_556D0
+ strh r0, [r6, #4]
+ lsls r0, r0, #0x10
+ asrs r0, r0, #0x10
+ movs r1, #0x3c
+ rsbs r1, r1, #0
+ cmp r0, r1
+ bgt _08042788
+ ldr r0, _08042784 @ =0x0000FFC4
+ strh r0, [r6, #4]
+ b _08042796
+ .align 2, 0
+_0804276C: .4byte 0x000003C6
+_08042770: .4byte 0x0200BC58
+_08042774: .4byte 0x03005000
+_08042778: .4byte 0xFFFFFE00
+_0804277C: .4byte 0x000001FF
+_08042780: .4byte 0x000003CA
+_08042784: .4byte 0x0000FFC4
+_08042788:
+ mov r0, r8
+ ldr r1, [r0]
+ ldr r2, _08042834 @ =0x000003CA
+ adds r1, r1, r2
+ ldrh r0, [r1]
+ subs r0, #0xc
+ strh r0, [r1]
+_08042796:
+ movs r3, #4
+ ldrsh r0, [r6, r3]
+ cmp r0, #0xc8
+ ble _080427A2
+ movs r0, #0xb4
+ strh r0, [r6, #4]
+_080427A2:
+ movs r0, #0
+ ldr r7, _08042838 @ =0x03005000
+ ldr r4, _0804283C @ =0xFFFFFE00
+ mov ip, r4
+_080427AA:
+ lsls r4, r0, #0x10
+ asrs r4, r4, #0x10
+ lsls r0, r4, #3
+ adds r0, #8
+ adds r5, r6, r0
+ ldrh r3, [r5]
+ lsls r3, r3, #3
+ adds r3, r3, r7
+ movs r0, #2
+ ldrsh r1, [r5, r0]
+ movs r2, #2
+ ldrsh r0, [r6, r2]
+ adds r1, r1, r0
+ ldr r2, _08042840 @ =0x000001FF
+ adds r0, r2, #0
+ ands r1, r0
+ ldrh r2, [r3, #2]
+ mov r0, ip
+ ands r0, r2
+ orrs r0, r1
+ strh r0, [r3, #2]
+ ldrh r1, [r5]
+ lsls r1, r1, #3
+ adds r1, r1, r7
+ ldrb r0, [r6, #4]
+ ldrb r5, [r5, #4]
+ adds r0, r0, r5
+ strb r0, [r1]
+ adds r4, #1
+ lsls r4, r4, #0x10
+ lsrs r0, r4, #0x10
+ asrs r4, r4, #0x10
+ cmp r4, #5
+ ble _080427AA
+_080427EE:
+ mov r6, sl
+ ldrh r0, [r6]
+ cmp r0, #0
+ beq _080428B2
+ mov r3, r8
+ ldr r0, [r3]
+ movs r4, #0xf3
+ lsls r4, r4, #2
+ adds r0, r0, r4
+ movs r1, #0
+ ldrsh r0, [r0, r1]
+ movs r1, #0xa
+ bl sub_556D0
+ strh r0, [r6, #2]
+ mov r2, r8
+ ldr r0, [r2]
+ ldr r3, _08042844 @ =0x000003CE
+ adds r0, r0, r3
+ movs r4, #0
+ ldrsh r0, [r0, r4]
+ movs r1, #0xa
+ bl sub_556D0
+ strh r0, [r6, #4]
+ lsls r0, r0, #0x10
+ asrs r0, r0, #0x10
+ movs r1, #0x3c
+ rsbs r1, r1, #0
+ cmp r0, r1
+ bgt _0804284C
+ ldr r0, _08042848 @ =0x0000FFC4
+ strh r0, [r6, #4]
+ b _0804285A
+ .align 2, 0
+_08042834: .4byte 0x000003CA
+_08042838: .4byte 0x03005000
+_0804283C: .4byte 0xFFFFFE00
+_08042840: .4byte 0x000001FF
+_08042844: .4byte 0x000003CE
+_08042848: .4byte 0x0000FFC4
+_0804284C:
+ mov r0, r8
+ ldr r1, [r0]
+ ldr r2, _0804290C @ =0x000003CE
+ adds r1, r1, r2
+ ldrh r0, [r1]
+ subs r0, #0x12
+ strh r0, [r1]
+_0804285A:
+ movs r3, #4
+ ldrsh r0, [r6, r3]
+ cmp r0, #0xc8
+ ble _08042866
+ movs r0, #0xb4
+ strh r0, [r6, #4]
+_08042866:
+ movs r0, #0
+ ldr r7, _08042910 @ =0x03005000
+ ldr r4, _08042914 @ =0xFFFFFE00
+ mov ip, r4
+_0804286E:
+ lsls r4, r0, #0x10
+ asrs r4, r4, #0x10
+ lsls r0, r4, #3
+ adds r0, #8
+ adds r5, r6, r0
+ ldrh r3, [r5]
+ lsls r3, r3, #3
+ adds r3, r3, r7
+ movs r0, #2
+ ldrsh r1, [r5, r0]
+ movs r2, #2
+ ldrsh r0, [r6, r2]
+ adds r1, r1, r0
+ ldr r2, _08042918 @ =0x000001FF
+ adds r0, r2, #0
+ ands r1, r0
+ ldrh r2, [r3, #2]
+ mov r0, ip
+ ands r0, r2
+ orrs r0, r1
+ strh r0, [r3, #2]
+ ldrh r1, [r5]
+ lsls r1, r1, #3
+ adds r1, r1, r7
+ ldrb r0, [r6, #4]
+ ldrb r5, [r5, #4]
+ adds r0, r0, r5
+ strb r0, [r1]
+ adds r4, #1
+ lsls r4, r4, #0x10
+ lsrs r0, r4, #0x10
+ asrs r4, r4, #0x10
+ cmp r4, #4
+ ble _0804286E
+_080428B2:
+ mov r3, r8
+ ldr r0, [r3]
+ ldr r2, _0804291C @ =0x00000516
+ adds r0, r0, r2
+ ldrh r1, [r0]
+ movs r0, #0xa5
+ lsls r0, r0, #2
+ cmp r1, r0
+ bne _080428DC
+ ldr r4, _08042920 @ =0x0200B0C0
+ movs r1, #0xae
+ lsls r1, r1, #4
+ adds r0, r4, r1
+ movs r1, #0
+ strh r1, [r0]
+ ldr r3, _08042924 @ =0x00000B98
+ adds r0, r4, r3
+ strh r1, [r0]
+ adds r3, #0xb8
+ adds r0, r4, r3
+ strh r1, [r0]
+_080428DC:
+ ldr r6, _08042928 @ =0x0200BDC8
+ ldrh r0, [r6]
+ cmp r0, #0
+ beq _080429CA
+ mov r4, r8
+ ldr r0, [r4]
+ adds r1, r0, r2
+ ldrh r0, [r1]
+ subs r0, #0xc3
+ lsls r0, r0, #0x10
+ lsrs r0, r0, #0x10
+ cmp r0, #9
+ bhi _08042930
+ ldr r0, _0804292C @ =0x086AF784
+ ldrh r1, [r1]
+ subs r1, #0xc3
+ lsrs r2, r1, #0x1f
+ adds r1, r1, r2
+ asrs r1, r1, #1
+ lsls r1, r1, #1
+ adds r1, r1, r0
+ ldrh r7, [r1]
+ b _08042938
+ .align 2, 0
+_0804290C: .4byte 0x000003CE
+_08042910: .4byte 0x03005000
+_08042914: .4byte 0xFFFFFE00
+_08042918: .4byte 0x000001FF
+_0804291C: .4byte 0x00000516
+_08042920: .4byte 0x0200B0C0
+_08042924: .4byte 0x00000B98
+_08042928: .4byte 0x0200BDC8
+_0804292C: .4byte 0x086AF784
+_08042930:
+ ldrh r0, [r1]
+ movs r1, #3
+ ands r0, r1
+ lsrs r7, r0, #1
+_08042938:
+ mov r0, r8
+ ldr r4, [r0]
+ movs r1, #0x83
+ lsls r1, r1, #3
+ adds r0, r4, r1
+ movs r2, #0
+ ldrsh r0, [r0, r2]
+ movs r1, #0xa
+ bl sub_556D0
+ strh r0, [r6, #2]
+ ldr r3, _08042A40 @ =0x0000041A
+ adds r4, r4, r3
+ movs r1, #0
+ ldrsh r0, [r4, r1]
+ movs r1, #0xa
+ bl sub_556D0
+ strh r0, [r6, #4]
+ lsls r0, r0, #0x10
+ asrs r0, r0, #0x10
+ movs r1, #0x3c
+ rsbs r1, r1, #0
+ cmp r0, r1
+ bge _0804296E
+ ldr r0, _08042A44 @ =0x0000FFC4
+ strh r0, [r6, #4]
+_0804296E:
+ movs r2, #4
+ ldrsh r0, [r6, r2]
+ cmp r0, #0xb4
+ ble _0804297A
+ movs r0, #0xb4
+ strh r0, [r6, #4]
+_0804297A:
+ adds r5, r6, #0
+ adds r5, #8
+ ldr r4, _08042A48 @ =0x03005000
+ ldrh r2, [r6, #8]
+ lsls r2, r2, #3
+ adds r2, r2, r4
+ movs r3, #2
+ ldrsh r1, [r5, r3]
+ movs r3, #2
+ ldrsh r0, [r6, r3]
+ adds r1, r1, r0
+ ldr r3, _08042A4C @ =0x000001FF
+ adds r0, r3, #0
+ ands r1, r0
+ ldrh r3, [r2, #2]
+ ldr r0, _08042A50 @ =0xFFFFFE00
+ ands r0, r3
+ orrs r0, r1
+ strh r0, [r2, #2]
+ ldrh r1, [r6, #8]
+ lsls r1, r1, #3
+ adds r1, r1, r4
+ ldrb r0, [r6, #4]
+ ldrb r5, [r5, #4]
+ adds r0, r0, r5
+ strb r0, [r1]
+ ldrh r2, [r6, #8]
+ lsls r2, r2, #3
+ adds r2, r2, r4
+ lsls r1, r7, #0x10
+ asrs r1, r1, #0xe
+ adds r1, #0x7d
+ ldr r4, _08042A54 @ =0x000003FF
+ adds r0, r4, #0
+ ands r1, r0
+ ldrh r3, [r2, #4]
+ ldr r0, _08042A58 @ =0xFFFFFC00
+ ands r0, r3
+ orrs r0, r1
+ strh r0, [r2, #4]
+_080429CA:
+ mov r1, r8
+ ldr r0, [r1]
+ ldr r4, _08042A5C @ =0x00000516
+ adds r0, r0, r4
+ ldrh r0, [r0]
+ cmp r0, #0x96
+ bne _08042A0A
+ ldr r2, _08042A60 @ =0x0200B0C0
+ ldr r3, _08042A64 @ =0x00000D08
+ adds r1, r2, r3
+ movs r0, #1
+ strh r0, [r1]
+ mov r0, r8
+ ldr r1, [r0]
+ movs r3, #0x83
+ lsls r3, r3, #3
+ adds r2, r1, r3
+ movs r0, #0xc8
+ lsls r0, r0, #3
+ strh r0, [r2]
+ ldr r0, _08042A40 @ =0x0000041A
+ adds r2, r1, r0
+ ldr r0, _08042A68 @ =0x0000FF9C
+ strh r0, [r2]
+ subs r3, #4
+ adds r2, r1, r3
+ adds r0, #0x4f
+ strh r0, [r2]
+ ldr r0, _08042A6C @ =0x00000416
+ adds r1, r1, r0
+ movs r0, #0xe
+ strh r0, [r1]
+_08042A0A:
+ mov r1, r8
+ ldr r3, [r1]
+ adds r0, r3, r4
+ ldrh r0, [r0]
+ cmp r0, #0xcd
+ bls _08042A70
+ ldr r4, _08042A6C @ =0x00000416
+ adds r2, r3, r4
+ ldrh r0, [r2]
+ adds r0, #1
+ strh r0, [r2]
+ movs r0, #0x83
+ lsls r0, r0, #3
+ adds r1, r3, r0
+ subs r4, #2
+ adds r0, r3, r4
+ ldrh r0, [r0]
+ ldrh r4, [r1]
+ adds r0, r0, r4
+ strh r0, [r1]
+ ldr r0, _08042A40 @ =0x0000041A
+ adds r1, r3, r0
+ ldrh r0, [r2]
+ ldrh r2, [r1]
+ adds r0, r0, r2
+ b _08042A94
+ .align 2, 0
+_08042A40: .4byte 0x0000041A
+_08042A44: .4byte 0x0000FFC4
+_08042A48: .4byte 0x03005000
+_08042A4C: .4byte 0x000001FF
+_08042A50: .4byte 0xFFFFFE00
+_08042A54: .4byte 0x000003FF
+_08042A58: .4byte 0xFFFFFC00
+_08042A5C: .4byte 0x00000516
+_08042A60: .4byte 0x0200B0C0
+_08042A64: .4byte 0x00000D08
+_08042A68: .4byte 0x0000FF9C
+_08042A6C: .4byte 0x00000416
+_08042A70:
+ cmp r0, #0x96
+ bls _08042A96
+ movs r4, #0x83
+ lsls r4, r4, #3
+ adds r1, r3, r4
+ ldr r2, _08042B2C @ =0x00000414
+ adds r0, r3, r2
+ ldrh r0, [r0]
+ ldrh r4, [r1]
+ adds r0, r0, r4
+ strh r0, [r1]
+ ldr r0, _08042B30 @ =0x0000041A
+ adds r1, r3, r0
+ adds r2, #2
+ adds r0, r3, r2
+ ldrh r0, [r0]
+ ldrh r3, [r1]
+ adds r0, r0, r3
+_08042A94:
+ strh r0, [r1]
+_08042A96:
+ mov r4, r8
+ ldr r0, [r4]
+ ldr r1, _08042B34 @ =0x00000516
+ adds r0, r0, r1
+ ldrh r1, [r0]
+ movs r0, #0xaf
+ lsls r0, r0, #1
+ cmp r1, r0
+ bne _08042AB2
+ ldr r0, _08042B38 @ =0x0200B0C0
+ ldr r2, _08042B3C @ =0x00000D08
+ adds r0, r0, r2
+ movs r1, #0
+ strh r1, [r0]
+_08042AB2:
+ mov r3, r8
+ ldr r1, [r3]
+ ldr r4, _08042B40 @ =0x00000506
+ adds r0, r1, r4
+ ldrb r0, [r0]
+ lsls r0, r0, #0x18
+ asrs r0, r0, #0x18
+ cmp r0, #2
+ beq _08042AC6
+ b _08042DA0
+_08042AC6:
+ ldr r5, _08042B34 @ =0x00000516
+ adds r2, r1, r5
+ ldrh r0, [r2]
+ cmp r0, #0xff
+ bhi _08042ADE
+ asrs r0, r0, #1
+ rsbs r0, r0, #0
+ adds r1, #0xe6
+ strh r0, [r1]
+ ldrh r0, [r2]
+ adds r0, #1
+ strh r0, [r2]
+_08042ADE:
+ ldr r0, _08042B38 @ =0x0200B0C0
+ movs r1, #0xae
+ lsls r1, r1, #4
+ adds r6, r0, r1
+ ldrh r0, [r6]
+ ldr r2, _08042B38 @ =0x0200B0C0
+ ldr r3, _08042B44 @ =0x00000B98
+ adds r2, r2, r3
+ mov sb, r2
+ cmp r0, #0
+ beq _08042BC0
+ mov r4, r8
+ ldr r0, [r4]
+ movs r1, #0xf1
+ lsls r1, r1, #2
+ adds r0, r0, r1
+ movs r2, #0
+ ldrsh r0, [r0, r2]
+ movs r1, #0xa
+ bl sub_556D0
+ strh r0, [r6, #2]
+ ldr r0, [r4]
+ ldr r4, _08042B48 @ =0x000003C6
+ adds r0, r0, r4
+ movs r3, #0
+ ldrsh r0, [r0, r3]
+ movs r1, #0xa
+ bl sub_556D0
+ strh r0, [r6, #4]
+ lsls r0, r0, #0x10
+ asrs r0, r0, #0x10
+ cmp r0, #0xb4
+ ble _08042B4C
+ movs r0, #0xb4
+ strh r0, [r6, #4]
+ b _08042B60
+ .align 2, 0
+_08042B2C: .4byte 0x00000414
+_08042B30: .4byte 0x0000041A
+_08042B34: .4byte 0x00000516
+_08042B38: .4byte 0x0200B0C0
+_08042B3C: .4byte 0x00000D08
+_08042B40: .4byte 0x00000506
+_08042B44: .4byte 0x00000B98
+_08042B48: .4byte 0x000003C6
+_08042B4C:
+ mov r0, r8
+ ldr r1, [r0]
+ adds r0, r1, r5
+ ldrh r0, [r0]
+ cmp r0, #0xff
+ bhi _08042B60
+ adds r1, r1, r4
+ ldrh r0, [r1]
+ adds r0, #0x14
+ strh r0, [r1]
+_08042B60:
+ movs r2, #4
+ ldrsh r1, [r6, r2]
+ movs r0, #0x3c
+ rsbs r0, r0, #0
+ cmp r1, r0
+ bge _08042B70
+ ldr r0, _08042C00 @ =0x0000FFC4
+ strh r0, [r6, #4]
+_08042B70:
+ movs r0, #0
+ ldr r3, _08042C04 @ =0x0200BC58
+ mov sb, r3
+ ldr r7, _08042C08 @ =0x03005000
+ ldr r4, _08042C0C @ =0xFFFFFE00
+ mov ip, r4
+_08042B7C:
+ lsls r4, r0, #0x10
+ asrs r4, r4, #0x10
+ lsls r0, r4, #3
+ adds r0, #8
+ adds r5, r6, r0
+ ldrh r3, [r5]
+ lsls r3, r3, #3
+ adds r3, r3, r7
+ movs r0, #2
+ ldrsh r1, [r5, r0]
+ movs r2, #2
+ ldrsh r0, [r6, r2]
+ adds r1, r1, r0
+ ldr r2, _08042C10 @ =0x000001FF
+ adds r0, r2, #0
+ ands r1, r0
+ ldrh r2, [r3, #2]
+ mov r0, ip
+ ands r0, r2
+ orrs r0, r1
+ strh r0, [r3, #2]
+ ldrh r1, [r5]
+ lsls r1, r1, #3
+ adds r1, r1, r7
+ ldrb r0, [r6, #4]
+ ldrb r5, [r5, #4]
+ adds r0, r0, r5
+ strb r0, [r1]
+ adds r4, #1
+ lsls r4, r4, #0x10
+ lsrs r0, r4, #0x10
+ asrs r4, r4, #0x10
+ cmp r4, #3
+ ble _08042B7C
+_08042BC0:
+ mov r6, sb
+ ldrh r0, [r6]
+ cmp r0, #0
+ beq _08042C86
+ mov r3, r8
+ ldr r0, [r3]
+ movs r4, #0xf2
+ lsls r4, r4, #2
+ adds r0, r0, r4
+ movs r1, #0
+ ldrsh r0, [r0, r1]
+ movs r1, #0xa
+ bl sub_556D0
+ strh r0, [r6, #2]
+ mov r2, r8
+ ldr r0, [r2]
+ adds r4, #2
+ adds r0, r0, r4
+ movs r3, #0
+ ldrsh r0, [r0, r3]
+ movs r1, #0xa
+ bl sub_556D0
+ strh r0, [r6, #4]
+ lsls r0, r0, #0x10
+ asrs r0, r0, #0x10
+ cmp r0, #0xb4
+ ble _08042C14
+ movs r0, #0xb4
+ strh r0, [r6, #4]
+ b _08042C2A
+ .align 2, 0
+_08042C00: .4byte 0x0000FFC4
+_08042C04: .4byte 0x0200BC58
+_08042C08: .4byte 0x03005000
+_08042C0C: .4byte 0xFFFFFE00
+_08042C10: .4byte 0x000001FF
+_08042C14:
+ mov r0, r8
+ ldr r1, [r0]
+ ldr r2, _08042CB8 @ =0x00000516
+ adds r0, r1, r2
+ ldrh r0, [r0]
+ cmp r0, #0xff
+ bhi _08042C2A
+ adds r1, r1, r4
+ ldrh r0, [r1]
+ adds r0, #0xa
+ strh r0, [r1]
+_08042C2A:
+ movs r3, #4
+ ldrsh r1, [r6, r3]
+ movs r0, #0x3c
+ rsbs r0, r0, #0
+ cmp r1, r0
+ bge _08042C3A
+ ldr r0, _08042CBC @ =0x0000FFC4
+ strh r0, [r6, #4]
+_08042C3A:
+ movs r0, #0
+ ldr r7, _08042CC0 @ =0x03005000
+ ldr r4, _08042CC4 @ =0xFFFFFE00
+ mov ip, r4
+_08042C42:
+ lsls r4, r0, #0x10
+ asrs r4, r4, #0x10
+ lsls r0, r4, #3
+ adds r0, #8
+ adds r5, r6, r0
+ ldrh r3, [r5]
+ lsls r3, r3, #3
+ adds r3, r3, r7
+ movs r0, #2
+ ldrsh r1, [r5, r0]
+ movs r2, #2
+ ldrsh r0, [r6, r2]
+ adds r1, r1, r0
+ ldr r2, _08042CC8 @ =0x000001FF
+ adds r0, r2, #0
+ ands r1, r0
+ ldrh r2, [r3, #2]
+ mov r0, ip
+ ands r0, r2
+ orrs r0, r1
+ strh r0, [r3, #2]
+ ldrh r1, [r5]
+ lsls r1, r1, #3
+ adds r1, r1, r7
+ ldrb r0, [r6, #4]
+ ldrb r5, [r5, #4]
+ adds r0, r0, r5
+ strb r0, [r1]
+ adds r4, #1
+ lsls r4, r4, #0x10
+ lsrs r0, r4, #0x10
+ asrs r4, r4, #0x10
+ cmp r4, #5
+ ble _08042C42
+_08042C86:
+ ldr r6, _08042CCC @ =0x0200BDC8
+ ldrh r0, [r6]
+ cmp r0, #0
+ bne _08042C90
+ b _08042DA0
+_08042C90:
+ mov r3, r8
+ ldr r0, [r3]
+ ldr r4, _08042CB8 @ =0x00000516
+ adds r1, r0, r4
+ ldrh r0, [r1]
+ subs r0, #0xbe
+ lsls r0, r0, #0x10
+ lsrs r0, r0, #0x10
+ cmp r0, #9
+ bhi _08042CD4
+ ldr r0, _08042CD0 @ =0x086AF784
+ ldrh r1, [r1]
+ subs r1, #0xbe
+ lsrs r2, r1, #0x1f
+ adds r1, r1, r2
+ asrs r1, r1, #1
+ lsls r1, r1, #1
+ adds r1, r1, r0
+ ldrh r7, [r1]
+ b _08042CDC
+ .align 2, 0
+_08042CB8: .4byte 0x00000516
+_08042CBC: .4byte 0x0000FFC4
+_08042CC0: .4byte 0x03005000
+_08042CC4: .4byte 0xFFFFFE00
+_08042CC8: .4byte 0x000001FF
+_08042CCC: .4byte 0x0200BDC8
+_08042CD0: .4byte 0x086AF784
+_08042CD4:
+ ldrh r0, [r1]
+ movs r1, #3
+ ands r0, r1
+ lsrs r7, r0, #1
+_08042CDC:
+ mov r0, r8
+ ldr r4, [r0]
+ movs r1, #0x83
+ lsls r1, r1, #3
+ mov sl, r1
+ adds r0, r4, r1
+ movs r2, #0
+ ldrsh r0, [r0, r2]
+ movs r1, #0xa
+ bl sub_556D0
+ strh r0, [r6, #2]
+ ldr r3, _08042DB8 @ =0x0000041A
+ mov sb, r3
+ add r4, sb
+ movs r1, #0
+ ldrsh r0, [r4, r1]
+ movs r1, #0xa
+ bl sub_556D0
+ strh r0, [r6, #4]
+ lsls r0, r0, #0x10
+ asrs r0, r0, #0x10
+ movs r1, #0x3c
+ rsbs r1, r1, #0
+ cmp r0, r1
+ bge _08042D16
+ ldr r0, _08042DBC @ =0x0000FFC4
+ strh r0, [r6, #4]
+_08042D16:
+ movs r2, #4
+ ldrsh r0, [r6, r2]
+ cmp r0, #0xb4
+ ble _08042D22
+ movs r0, #0xb4
+ strh r0, [r6, #4]
+_08042D22:
+ adds r5, r6, #0
+ adds r5, #8
+ ldr r4, _08042DC0 @ =0x03005000
+ ldrh r2, [r6, #8]
+ lsls r2, r2, #3
+ adds r2, r2, r4
+ movs r3, #2
+ ldrsh r1, [r5, r3]
+ movs r3, #2
+ ldrsh r0, [r6, r3]
+ adds r1, r1, r0
+ ldr r3, _08042DC4 @ =0x000001FF
+ adds r0, r3, #0
+ ands r1, r0
+ ldrh r3, [r2, #2]
+ ldr r0, _08042DC8 @ =0xFFFFFE00
+ ands r0, r3
+ orrs r0, r1
+ strh r0, [r2, #2]
+ ldrh r1, [r6, #8]
+ lsls r1, r1, #3
+ adds r1, r1, r4
+ ldrb r0, [r6, #4]
+ ldrb r5, [r5, #4]
+ adds r0, r0, r5
+ strb r0, [r1]
+ ldrh r2, [r6, #8]
+ lsls r2, r2, #3
+ adds r2, r2, r4
+ lsls r1, r7, #0x10
+ asrs r1, r1, #0xe
+ adds r1, #0x7d
+ ldr r4, _08042DCC @ =0x000003FF
+ adds r0, r4, #0
+ ands r1, r0
+ ldrh r3, [r2, #4]
+ ldr r0, _08042DD0 @ =0xFFFFFC00
+ ands r0, r3
+ orrs r0, r1
+ strh r0, [r2, #4]
+ mov r0, r8
+ ldr r2, [r0]
+ ldr r1, _08042DD4 @ =0x00000516
+ adds r0, r2, r1
+ ldrh r0, [r0]
+ cmp r0, #0xa0
+ bls _08042DA0
+ mov r3, sl
+ adds r1, r2, r3
+ adds r4, #0x15
+ adds r0, r2, r4
+ ldrh r0, [r0]
+ ldrh r3, [r1]
+ adds r0, r0, r3
+ strh r0, [r1]
+ mov r4, sb
+ adds r1, r2, r4
+ ldr r3, _08042DD8 @ =0x00000416
+ adds r0, r2, r3
+ ldrh r0, [r0]
+ ldrh r4, [r1]
+ adds r0, r0, r4
+ strh r0, [r1]
+_08042DA0:
+ mov r0, r8
+ ldr r2, [r0]
+ adds r0, r2, #0
+ adds r0, #0xe6
+ movs r3, #0
+ ldrsh r1, [r0, r3]
+ movs r0, #0x20
+ rsbs r0, r0, #0
+ cmp r1, r0
+ blt _08042DDC
+ movs r0, #0
+ b _08042DDE
+ .align 2, 0
+_08042DB8: .4byte 0x0000041A
+_08042DBC: .4byte 0x0000FFC4
+_08042DC0: .4byte 0x03005000
+_08042DC4: .4byte 0x000001FF
+_08042DC8: .4byte 0xFFFFFE00
+_08042DCC: .4byte 0x000003FF
+_08042DD0: .4byte 0xFFFFFC00
+_08042DD4: .4byte 0x00000516
+_08042DD8: .4byte 0x00000416
+_08042DDC:
+ movs r0, #1
+_08042DDE:
+ strb r0, [r2, #0x1a]
+ ldr r4, _08042E38 @ =0x0200B0C0
+ ldr r0, _08042E3C @ =0x000002F2
+ adds r2, r4, r0
+ mov r1, r8
+ ldr r0, [r1]
+ movs r1, #0xa3
+ lsls r1, r1, #3
+ adds r0, r0, r1
+ ldrh r0, [r0]
+ ldrh r3, [r2]
+ adds r0, r0, r3
+ strh r0, [r2]
+ ldr r0, _08042E40 @ =0x000002EE
+ adds r2, r4, r0
+ mov r3, r8
+ ldr r0, [r3]
+ adds r0, r0, r1
+ ldrh r0, [r0]
+ ldrh r4, [r2]
+ adds r0, r0, r4
+ strh r0, [r2]
+ ldr r0, _08042E38 @ =0x0200B0C0
+ ldr r3, _08042E44 @ =0x000002F6
+ adds r2, r0, r3
+ mov r4, r8
+ ldr r0, [r4]
+ adds r0, r0, r1
+ movs r1, #0
+ ldrsh r0, [r0, r1]
+ cmp r0, #0
+ bge _08042E20
+ adds r0, #3
+_08042E20:
+ asrs r0, r0, #2
+ adds r0, #0xe0
+ ldrh r3, [r2]
+ adds r0, r0, r3
+ strh r0, [r2]
+ pop {r3, r4, r5}
+ mov r8, r3
+ mov sb, r4
+ mov sl, r5
+ pop {r4, r5, r6, r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08042E38: .4byte 0x0200B0C0
+_08042E3C: .4byte 0x000002F2
+_08042E40: .4byte 0x000002EE
+_08042E44: .4byte 0x000002F6
+
+ thumb_func_start sub_42E48
+sub_42E48: @ 0x08042E48
+ push {r4, r5, r6, r7, lr}
+ mov r7, r8
+ push {r7}
+ ldr r0, _08043198 @ =0x0200B0C0
+ ldr r1, [r0, #0x4c]
+ movs r0, #0xf
+ movs r5, #0
+ ands r1, r0
+ cmp r5, r1
+ bge _08042E72
+ adds r4, r1, #0
+_08042E5E:
+ bl sub_C00
+ lsls r0, r5, #0x10
+ movs r1, #0x80
+ lsls r1, r1, #9
+ adds r0, r0, r1
+ lsrs r5, r0, #0x10
+ asrs r0, r0, #0x10
+ cmp r0, r4
+ blt _08042E5E
+_08042E72:
+ ldr r1, _08043198 @ =0x0200B0C0
+ ldr r0, [r1, #0x4c]
+ str r0, [r1, #0x48]
+ ldr r4, _0804319C @ =0x020314E0
+ ldr r0, [r4]
+ movs r6, #0
+ movs r3, #0
+ strh r3, [r0, #0x18]
+ strb r6, [r0, #0x17]
+ ldr r0, [r4]
+ strb r6, [r0, #0x13]
+ ldr r0, [r4]
+ movs r2, #0xa5
+ lsls r2, r2, #2
+ adds r0, r0, r2
+ movs r5, #1
+ mov r8, r5
+ mov r7, r8
+ strb r7, [r0]
+ ldr r2, [r4]
+ adds r5, r2, #0
+ adds r5, #0x6c
+ movs r1, #0xe1
+ lsls r1, r1, #5
+ adds r0, r1, #0
+ ldrh r7, [r5]
+ adds r0, r0, r7
+ ldr r7, _080431A0 @ =0x00000296
+ adds r1, r2, r7
+ strh r0, [r1]
+ strh r3, [r5]
+ ldr r1, _080431A4 @ =0x00000392
+ adds r0, r2, r1
+ strh r3, [r0]
+ ldr r5, _080431A8 @ =0x00000383
+ adds r2, r2, r5
+ strb r6, [r2]
+ ldr r0, [r4]
+ adds r7, #0xf2
+ adds r0, r0, r7
+ strb r6, [r0]
+ ldr r0, [r4]
+ ldr r1, _080431AC @ =0x0000132C
+ adds r0, r0, r1
+ ldr r0, [r0]
+ mov r2, r8
+ strb r2, [r0]
+ ldr r0, [r4]
+ strb r2, [r0, #0x1f]
+ ldr r2, [r4]
+ adds r1, r2, r1
+ ldr r0, [r1]
+ strh r3, [r0, #0x30]
+ ldr r0, [r1]
+ strh r3, [r0, #0x32]
+ ldr r0, [r1]
+ strh r3, [r0, #6]
+ adds r5, #3
+ adds r2, r2, r5
+ strb r6, [r2]
+ ldr r1, [r4]
+ ldr r7, _080431B0 @ =0x0000053A
+ adds r0, r1, r7
+ strh r3, [r0]
+ ldr r2, _080431B4 @ =0x00000542
+ adds r0, r1, r2
+ strh r3, [r0]
+ ldr r5, _080431B8 @ =0x00000544
+ adds r0, r1, r5
+ str r3, [r0]
+ adds r7, #0x10
+ adds r1, r1, r7
+ strb r6, [r1]
+ ldr r0, [r4]
+ movs r2, #0xe5
+ lsls r2, r2, #2
+ adds r1, r0, r2
+ strh r3, [r1]
+ adds r5, #0x4c
+ adds r0, r0, r5
+ strb r6, [r0]
+ ldr r0, [r4]
+ adds r7, #0x47
+ adds r0, r0, r7
+ strb r6, [r0]
+ ldr r1, [r4]
+ ldr r2, _080431BC @ =0x00000592
+ adds r0, r1, r2
+ strh r3, [r0]
+ adds r5, #4
+ adds r0, r1, r5
+ strh r3, [r0]
+ adds r7, #5
+ adds r0, r1, r7
+ strh r3, [r0]
+ adds r1, #0x7e
+ mov r0, r8
+ strh r0, [r1]
+ movs r5, #0
+ movs r6, #0xe8
+ lsls r6, r6, #2
+_08042F3C:
+ ldr r0, [r4]
+ lsls r1, r5, #0x10
+ asrs r1, r1, #0x10
+ adds r0, r0, r6
+ adds r0, r0, r1
+ strb r3, [r0]
+ ldr r0, [r4]
+ ldr r2, _080431C0 @ =0x000003A3
+ adds r0, r0, r2
+ adds r0, r0, r1
+ strb r3, [r0]
+ ldr r0, [r4]
+ lsls r2, r1, #1
+ movs r5, #0xec
+ lsls r5, r5, #2
+ adds r0, r0, r5
+ adds r0, r0, r2
+ strh r3, [r0]
+ adds r1, #1
+ lsls r1, r1, #0x10
+ lsrs r5, r1, #0x10
+ asrs r1, r1, #0x10
+ cmp r1, #2
+ ble _08042F3C
+ movs r5, #0
+ ldr r4, _0804319C @ =0x020314E0
+ movs r3, #0
+_08042F72:
+ ldr r0, [r4]
+ lsls r1, r5, #0x10
+ asrs r1, r1, #0x10
+ movs r7, #0xa6
+ lsls r7, r7, #3
+ adds r0, r0, r7
+ adds r0, r0, r1
+ strb r3, [r0]
+ ldr r0, [r4]
+ ldr r2, _080431C4 @ =0x00000533
+ adds r0, r0, r2
+ adds r0, r0, r1
+ strb r3, [r0]
+ ldr r0, [r4]
+ ldr r5, _080431C8 @ =0x00000536
+ adds r0, r0, r5
+ adds r0, r0, r1
+ strb r3, [r0]
+ ldr r0, [r4]
+ lsls r2, r1, #1
+ adds r7, #0xc
+ adds r0, r0, r7
+ adds r0, r0, r2
+ strh r3, [r0]
+ adds r1, #1
+ lsls r1, r1, #0x10
+ lsrs r5, r1, #0x10
+ asrs r1, r1, #0x10
+ cmp r1, #2
+ ble _08042F72
+ movs r5, #0
+ ldr r6, _0804319C @ =0x020314E0
+ movs r4, #0
+_08042FB4:
+ ldr r0, [r6]
+ lsls r3, r5, #0x10
+ asrs r3, r3, #0x10
+ ldr r1, _080431CC @ =0x0000052C
+ adds r0, r0, r1
+ adds r0, r0, r3
+ strb r4, [r0]
+ ldr r0, [r6]
+ ldr r2, _080431D0 @ =0x0000052E
+ adds r0, r0, r2
+ adds r0, r0, r3
+ strb r4, [r0]
+ ldr r0, [r6]
+ movs r5, #0xa9
+ lsls r5, r5, #3
+ adds r0, r0, r5
+ adds r0, r0, r3
+ strb r4, [r0]
+ ldr r0, [r6]
+ ldr r7, _080431D4 @ =0x0000054B
+ adds r0, r0, r7
+ adds r0, r0, r3
+ strb r4, [r0]
+ ldr r0, [r6]
+ adds r1, #0x21
+ adds r0, r0, r1
+ adds r0, r0, r3
+ strb r4, [r0]
+ ldr r0, [r6]
+ adds r2, #0x21
+ adds r0, r0, r2
+ adds r0, r0, r3
+ strb r4, [r0]
+ ldr r0, [r6]
+ adds r5, #9
+ adds r0, r0, r5
+ adds r0, r0, r3
+ strb r4, [r0]
+ ldr r0, [r6]
+ adds r7, #8
+ adds r0, r0, r7
+ adds r0, r0, r3
+ strb r4, [r0]
+ ldr r0, [r6]
+ adds r1, #8
+ adds r0, r0, r1
+ adds r0, r0, r3
+ strb r4, [r0]
+ ldr r0, [r6]
+ adds r2, #8
+ adds r0, r0, r2
+ adds r0, r0, r3
+ strb r4, [r0]
+ ldr r0, [r6]
+ adds r5, #8
+ adds r0, r0, r5
+ adds r0, r0, r3
+ strb r4, [r0]
+ ldr r0, [r6]
+ adds r7, #8
+ adds r0, r0, r7
+ adds r0, r0, r3
+ strb r4, [r0]
+ ldr r0, [r6]
+ adds r1, #8
+ adds r0, r0, r1
+ adds r0, r0, r3
+ strb r4, [r0]
+ ldr r0, [r6]
+ adds r2, #8
+ adds r0, r0, r2
+ adds r0, r0, r3
+ strb r4, [r0]
+ ldr r2, [r6]
+ lsls r1, r3, #1
+ adds r5, #9
+ adds r0, r2, r5
+ adds r0, r0, r1
+ strh r4, [r0]
+ adds r7, #0xb
+ adds r0, r2, r7
+ adds r0, r0, r1
+ strh r4, [r0]
+ adds r5, #8
+ adds r0, r2, r5
+ adds r0, r0, r1
+ strh r4, [r0]
+ lsls r0, r3, #2
+ adds r0, r2, r0
+ adds r7, #0xa
+ adds r1, r0, r7
+ strh r4, [r1]
+ adds r5, #8
+ adds r1, r0, r5
+ strh r4, [r1]
+ adds r7, #8
+ adds r1, r0, r7
+ strh r4, [r1]
+ ldr r1, _080431D8 @ =0x0000057A
+ adds r0, r0, r1
+ strh r4, [r0]
+ lsls r1, r3, #3
+ adds r5, #0xe
+ adds r0, r2, r5
+ adds r0, r0, r1
+ str r4, [r0]
+ adds r7, #0xc
+ adds r2, r2, r7
+ adds r2, r2, r1
+ str r4, [r2]
+ adds r3, #1
+ lsls r3, r3, #0x10
+ lsrs r5, r3, #0x10
+ asrs r3, r3, #0x10
+ cmp r3, #1
+ ble _08042FB4
+ ldr r0, _0804319C @ =0x020314E0
+ ldr r1, [r0]
+ movs r0, #0
+ strb r0, [r1, #0x1a]
+ bl sub_4387C
+ bl sub_43500
+ bl sub_44D58
+ bl sub_45E08
+ movs r5, #0
+ ldr r6, _080431DC @ =0x03005C00
+ movs r4, #0x80
+ lsls r4, r4, #3
+ movs r3, #0x80
+ lsls r3, r3, #2
+ ldr r2, _080431E0 @ =0x000007FF
+_080430C2:
+ lsls r1, r5, #0x10
+ asrs r1, r1, #0x10
+ adds r0, r1, r4
+ lsls r0, r0, #1
+ adds r0, r0, r6
+ strh r3, [r0]
+ adds r1, #1
+ lsls r1, r1, #0x10
+ lsrs r5, r1, #0x10
+ asrs r1, r1, #0x10
+ cmp r1, r2
+ ble _080430C2
+ ldr r1, _080431E4 @ =0x040000D4
+ ldr r2, _080431E8 @ =0x03006400
+ str r2, [r1]
+ ldr r0, _080431EC @ =0x06001000
+ str r0, [r1, #4]
+ ldr r0, _080431F0 @ =0x80000800
+ str r0, [r1, #8]
+ ldr r0, [r1, #8]
+ ldr r1, _08043198 @ =0x0200B0C0
+ ldrh r0, [r1, #0x38]
+ ldr r0, _080431F4 @ =0x00001C42
+ strh r0, [r1, #0x38]
+ ldrh r0, [r1, #0x3a]
+ ldr r0, _080431F8 @ =0x00000C04
+ strh r0, [r1, #0x3a]
+ movs r5, #0
+ adds r6, r1, #0
+ ldr r0, _0804319C @ =0x020314E0
+ mov r8, r0
+ movs r1, #0x80
+ lsls r1, r1, #4
+ adds r7, r2, r1
+ ldr r0, _080431FC @ =0x08137E14
+ mov ip, r0
+ ldr r1, _08043200 @ =0xFFFFF800
+ adds r2, r2, r1
+ ldr r4, _08043204 @ =0x0000013F
+_08043110:
+ lsls r0, r5, #0x10
+ asrs r3, r0, #0x10
+ adds r0, r3, #0
+ cmp r3, #0
+ bge _0804311C
+ adds r0, #0x1f
+_0804311C:
+ asrs r0, r0, #5
+ lsls r0, r0, #5
+ subs r0, r3, r0
+ subs r0, #2
+ lsls r0, r0, #0x10
+ lsrs r0, r0, #0x10
+ cmp r0, #0x1b
+ bhi _0804313C
+ movs r5, #0x80
+ lsls r5, r5, #4
+ adds r0, r3, r5
+ lsls r0, r0, #1
+ adds r0, r0, r2
+ movs r1, #0x90
+ lsls r1, r1, #8
+ strh r1, [r0]
+_0804313C:
+ adds r0, r3, #1
+ lsls r0, r0, #0x10
+ lsrs r5, r0, #0x10
+ asrs r0, r0, #0x10
+ cmp r0, r4
+ ble _08043110
+ ldr r0, _08043208 @ =0x000002EE
+ adds r1, r6, r0
+ movs r0, #0x7e
+ strh r0, [r1]
+ ldr r4, _080431E4 @ =0x040000D4
+ str r7, [r4]
+ ldr r0, _0804320C @ =0x06001140
+ str r0, [r4, #4]
+ ldr r0, _08043210 @ =0x80000140
+ str r0, [r4, #8]
+ ldr r0, [r4, #8]
+ mov r1, r8
+ ldr r0, [r1]
+ ldr r2, _08043214 @ =0x000005F6
+ adds r0, r0, r2
+ ldrb r0, [r0]
+ lsls r0, r0, #0x18
+ asrs r0, r0, #0x18
+ lsls r0, r0, #5
+ add r0, ip
+ str r0, [r4]
+ ldr r0, _08043218 @ =0x05000220
+ str r0, [r4, #4]
+ ldr r5, _0804321C @ =0x80000010
+ str r5, [r4, #8]
+ ldr r0, [r4, #8]
+ movs r0, #0x27
+ bl sub_53DA8
+ ldr r0, _08043220 @ =0x081B36A4
+ str r0, [r4]
+ ldr r0, _08043224 @ =0x05000320
+ str r0, [r4, #4]
+ str r5, [r4, #8]
+ ldr r0, [r4, #8]
+ pop {r3}
+ mov r8, r3
+ pop {r4, r5, r6, r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08043198: .4byte 0x0200B0C0
+_0804319C: .4byte 0x020314E0
+_080431A0: .4byte 0x00000296
+_080431A4: .4byte 0x00000392
+_080431A8: .4byte 0x00000383
+_080431AC: .4byte 0x0000132C
+_080431B0: .4byte 0x0000053A
+_080431B4: .4byte 0x00000542
+_080431B8: .4byte 0x00000544
+_080431BC: .4byte 0x00000592
+_080431C0: .4byte 0x000003A3
+_080431C4: .4byte 0x00000533
+_080431C8: .4byte 0x00000536
+_080431CC: .4byte 0x0000052C
+_080431D0: .4byte 0x0000052E
+_080431D4: .4byte 0x0000054B
+_080431D8: .4byte 0x0000057A
+_080431DC: .4byte 0x03005C00
+_080431E0: .4byte 0x000007FF
+_080431E4: .4byte 0x040000D4
+_080431E8: .4byte 0x03006400
+_080431EC: .4byte 0x06001000
+_080431F0: .4byte 0x80000800
+_080431F4: .4byte 0x00001C42
+_080431F8: .4byte 0x00000C04
+_080431FC: .4byte 0x08137E14
+_08043200: .4byte 0xFFFFF800
+_08043204: .4byte 0x0000013F
+_08043208: .4byte 0x000002EE
+_0804320C: .4byte 0x06001140
+_08043210: .4byte 0x80000140
+_08043214: .4byte 0x000005F6
+_08043218: .4byte 0x05000220
+_0804321C: .4byte 0x80000010
+_08043220: .4byte 0x081B36A4
+_08043224: .4byte 0x05000320
+
+ thumb_func_start sub_43228
+sub_43228: @ 0x08043228
+ push {r4, r5, lr}
+ ldr r1, _08043248 @ =0x020314E0
+ ldr r0, [r1]
+ ldrb r0, [r0, #0x13]
+ lsls r0, r0, #0x18
+ asrs r0, r0, #0x18
+ adds r5, r1, #0
+ cmp r0, #5
+ bls _0804323C
+ b _080434BA
+_0804323C:
+ lsls r0, r0, #2
+ ldr r1, _0804324C @ =_08043250
+ adds r0, r0, r1
+ ldr r0, [r0]
+ mov pc, r0
+ .align 2, 0
+_08043248: .4byte 0x020314E0
+_0804324C: .4byte _08043250
+_08043250: @ jump table
+ .4byte _08043268 @ case 0
+ .4byte _080432CE @ case 1
+ .4byte _08043342 @ case 2
+ .4byte _080433D4 @ case 3
+ .4byte _08043470 @ case 4
+ .4byte _080434A2 @ case 5
+_08043268:
+ ldr r0, [r5]
+ ldr r1, _080432B0 @ =0x000005F7
+ adds r0, r0, r1
+ movs r3, #0
+ movs r2, #1
+ strb r2, [r0]
+ ldr r4, [r5]
+ ldrh r1, [r4, #0x18]
+ ldr r0, _080432B4 @ =0x00000153
+ cmp r1, r0
+ bhi _080432C0
+ subs r0, #0x13
+ cmp r1, r0
+ bhi _08043296
+ adds r0, r1, #0
+ movs r1, #5
+ bl sub_55838
+ ldr r2, _080432B8 @ =0x0000FFC0
+ adds r0, r0, r2
+ adds r1, r4, #0
+ adds r1, #0xe6
+ strh r0, [r1]
+_08043296:
+ ldr r2, [r5]
+ ldrh r1, [r2, #0x18]
+ ldr r0, _080432BC @ =0x00000145
+ cmp r1, r0
+ bne _080432AA
+ movs r3, #0xa5
+ lsls r3, r3, #2
+ adds r1, r2, r3
+ movs r0, #2
+ strb r0, [r1]
+_080432AA:
+ ldr r1, [r5]
+ ldrh r0, [r1, #0x18]
+ b _0804331C
+ .align 2, 0
+_080432B0: .4byte 0x000005F7
+_080432B4: .4byte 0x00000153
+_080432B8: .4byte 0x0000FFC0
+_080432BC: .4byte 0x00000145
+_080432C0:
+ adds r0, r4, #0
+ adds r0, #0xe6
+ strh r3, [r0]
+ strb r2, [r4, #0x13]
+ ldr r0, [r5]
+ strh r3, [r0, #0x18]
+ b _080434BA
+_080432CE:
+ ldr r1, [r5]
+ ldr r4, _08043324 @ =0x00000296
+ adds r0, r1, r4
+ ldrh r4, [r0]
+ cmp r4, #0
+ beq _080432DC
+ b _080434BA
+_080432DC:
+ movs r0, #0xa5
+ lsls r0, r0, #2
+ adds r1, r1, r0
+ movs r0, #3
+ strb r0, [r1]
+ ldr r0, [r5]
+ ldrh r0, [r0, #0x18]
+ cmp r0, #0
+ bne _08043314
+ bl sub_53EDC
+ ldr r0, _08043328 @ =0x02032F20
+ ldr r1, _0804332C @ =0x086A2E90
+ bl sub_5450C
+ ldr r1, _08043330 @ =0x0200B0C0
+ movs r0, #0x80
+ strb r0, [r1, #0xf]
+ ldr r0, [r5]
+ movs r1, #0xe2
+ lsls r1, r1, #2
+ adds r0, r0, r1
+ movs r1, #2
+ strb r1, [r0]
+ ldr r0, [r5]
+ ldr r2, _08043334 @ =0x00000392
+ adds r0, r0, r2
+ strh r4, [r0]
+_08043314:
+ ldr r1, [r5]
+ ldrh r0, [r1, #0x18]
+ cmp r0, #0x3b
+ bhi _08043338
+_0804331C:
+ adds r0, #1
+ strh r0, [r1, #0x18]
+ b _080434BA
+ .align 2, 0
+_08043324: .4byte 0x00000296
+_08043328: .4byte 0x02032F20
+_0804332C: .4byte 0x086A2E90
+_08043330: .4byte 0x0200B0C0
+_08043334: .4byte 0x00000392
+_08043338:
+ movs r0, #2
+ strb r0, [r1, #0x13]
+ ldr r0, [r5]
+ strh r4, [r0, #0x18]
+ b _080434BA
+_08043342:
+ ldr r0, [r5]
+ ldrh r0, [r0, #0x18]
+ cmp r0, #0
+ bne _08043354
+ bl sub_53EDC
+ movs r0, #0x2b
+ bl sub_53DA8
+_08043354:
+ ldr r2, [r5]
+ ldrh r0, [r2, #0x18]
+ cmp r0, #0x13
+ bhi _08043362
+ adds r0, #1
+ strh r0, [r2, #0x18]
+ b _080434BA
+_08043362:
+ movs r1, #0
+ movs r0, #3
+ strb r0, [r2, #0x13]
+ ldr r0, [r5]
+ strh r1, [r0, #0x18]
+ ldr r2, _080433B0 @ =0x0200B0C0
+ movs r3, #0x80
+ lsls r3, r3, #4
+ adds r0, r2, r3
+ movs r3, #1
+ movs r1, #1
+ strh r1, [r0]
+ ldr r4, _080433B4 @ =0x000008B8
+ adds r0, r2, r4
+ strh r1, [r0]
+ adds r4, #0xb8
+ adds r0, r2, r4
+ strh r1, [r0]
+ ldr r0, _080433B8 @ =0x00000A28
+ adds r2, r2, r0
+ strh r1, [r2]
+ ldr r1, _080433BC @ =0x040000D4
+ ldr r0, _080433C0 @ =0x084B77EC
+ str r0, [r1]
+ ldr r0, _080433C4 @ =0x06015800
+ str r0, [r1, #4]
+ ldr r0, _080433C8 @ =0x80000400
+ str r0, [r1, #8]
+ ldr r0, [r1, #8]
+ ldr r0, [r5]
+ movs r1, #0xe5
+ lsls r1, r1, #2
+ adds r2, r0, r1
+ ldr r1, _080433CC @ =0x0000FF82
+ strh r1, [r2]
+ ldr r2, _080433D0 @ =0x000005FA
+ adds r0, r0, r2
+ strb r3, [r0]
+ b _080434BA
+ .align 2, 0
+_080433B0: .4byte 0x0200B0C0
+_080433B4: .4byte 0x000008B8
+_080433B8: .4byte 0x00000A28
+_080433BC: .4byte 0x040000D4
+_080433C0: .4byte 0x084B77EC
+_080433C4: .4byte 0x06015800
+_080433C8: .4byte 0x80000400
+_080433CC: .4byte 0x0000FF82
+_080433D0: .4byte 0x000005FA
+_080433D4:
+ bl sub_45E90
+ ldr r1, _08043444 @ =0x020314E0
+ ldr r2, [r1]
+ ldrb r0, [r2, #0x1c]
+ cmp r0, #0
+ beq _080433E6
+ movs r0, #0xb5
+ strh r0, [r2, #0x18]
+_080433E6:
+ ldr r2, [r1]
+ ldrh r0, [r2, #0x18]
+ cmp r0, #0xb4
+ bne _08043408
+ ldr r3, _08043448 @ =0x00000544
+ adds r0, r2, r3
+ ldr r0, [r0]
+ cmp r0, #0
+ beq _08043408
+ movs r0, #1
+ strb r0, [r2, #0x1c]
+ ldr r1, [r1]
+ ldr r0, _0804344C @ =0x00061A80
+ str r0, [r1, #0x38]
+ adds r0, r1, r3
+ ldr r0, [r0]
+ str r0, [r1, #0x3c]
+_08043408:
+ ldr r0, _08043444 @ =0x020314E0
+ ldr r2, [r0]
+ ldrh r1, [r2, #0x18]
+ adds r5, r0, #0
+ cmp r1, #0xbd
+ bls _08043426
+ ldr r0, _08043450 @ =0x0200B0C0
+ ldrh r1, [r0, #0x18]
+ movs r0, #1
+ ands r0, r1
+ cmp r0, #0
+ beq _08043426
+ movs r0, #0x87
+ lsls r0, r0, #2
+ strh r0, [r2, #0x18]
+_08043426:
+ ldr r1, [r5]
+ ldrh r2, [r1, #0x18]
+ ldr r0, _08043454 @ =0x0000021B
+ cmp r2, r0
+ bhi _08043458
+ cmp r2, #4
+ bne _0804343A
+ movs r0, #0xa4
+ bl sub_53DA8
+_0804343A:
+ ldr r1, [r5]
+ ldrh r0, [r1, #0x18]
+ adds r0, #1
+ strh r0, [r1, #0x18]
+ b _08043460
+ .align 2, 0
+_08043444: .4byte 0x020314E0
+_08043448: .4byte 0x00000544
+_0804344C: .4byte 0x00061A80
+_08043450: .4byte 0x0200B0C0
+_08043454: .4byte 0x0000021B
+_08043458:
+ movs r0, #0
+ strh r0, [r1, #0x18]
+ movs r0, #4
+ strb r0, [r1, #0x13]
+_08043460:
+ ldr r0, [r5]
+ ldr r4, _0804346C @ =0x000005FA
+ adds r0, r0, r4
+ movs r1, #1
+ b _080434B8
+ .align 2, 0
+_0804346C: .4byte 0x000005FA
+_08043470:
+ bl sub_45E90
+ ldr r0, _08043494 @ =0x020314E0
+ ldr r1, [r0]
+ ldrh r0, [r1, #0x18]
+ cmp r0, #0x1d
+ bhi _08043498
+ adds r0, #1
+ strh r0, [r1, #0x18]
+ lsls r0, r0, #0x10
+ lsrs r0, r0, #0x10
+ cmp r0, #2
+ bne _080434BA
+ movs r0, #0xa4
+ bl sub_53DA8
+ b _080434BA
+ .align 2, 0
+_08043494: .4byte 0x020314E0
+_08043498:
+ movs r0, #0
+ strh r0, [r1, #0x18]
+ movs r0, #5
+ strb r0, [r1, #0x13]
+ b _080434BA
+_080434A2:
+ bl sub_45E90
+ ldr r2, _080434F4 @ =0x020314E0
+ ldr r0, [r2]
+ ldr r1, _080434F8 @ =0x00000386
+ adds r0, r0, r1
+ movs r1, #1
+ strb r1, [r0]
+ ldr r0, [r2]
+ ldr r2, _080434FC @ =0x000005FA
+ adds r0, r0, r2
+_080434B8:
+ strb r1, [r0]
+_080434BA:
+ bl sub_4387C
+ bl sub_43500
+ bl sub_44D58
+ bl sub_45E08
+ ldr r0, _080434F4 @ =0x020314E0
+ ldr r1, [r0]
+ ldr r3, _080434F8 @ =0x00000386
+ adds r0, r1, r3
+ ldrb r0, [r0]
+ lsls r0, r0, #0x18
+ asrs r0, r0, #0x18
+ cmp r0, #0
+ beq _080434E8
+ ldr r4, _080434FC @ =0x000005FA
+ adds r1, r1, r4
+ movs r0, #1
+ strb r0, [r1]
+ bl sub_350F0
+_080434E8:
+ bl sub_472E4
+ pop {r4, r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080434F4: .4byte 0x020314E0
+_080434F8: .4byte 0x00000386
+_080434FC: .4byte 0x000005FA
+
+ thumb_func_start sub_43500
+sub_43500: @ 0x08043500
+ push {r4, r5, r6, r7, lr}
+ mov r7, sl
+ mov r6, sb
+ mov r5, r8
+ push {r5, r6, r7}
+ ldr r0, _08043594 @ =0x020314E0
+ ldr r0, [r0]
+ ldrb r0, [r0, #0x13]
+ lsls r0, r0, #0x18
+ asrs r0, r0, #0x18
+ cmp r0, #1
+ bgt _08043524
+ ldr r0, _08043598 @ =0x0200B0C0
+ ldrb r0, [r0, #0xf]
+ cmp r0, #0
+ bne _08043524
+ bl sub_455D0
+_08043524:
+ ldr r2, _08043594 @ =0x020314E0
+ ldr r0, [r2]
+ ldrb r0, [r0, #0x13]
+ lsls r0, r0, #0x18
+ asrs r0, r0, #0x18
+ cmp r0, #1
+ ble _08043534
+ b _080436E8
+_08043534:
+ ldr r0, _08043598 @ =0x0200B0C0
+ ldrb r0, [r0, #0xf]
+ cmp r0, #0
+ beq _0804353E
+ b _080436E8
+_0804353E:
+ movs r1, #0
+ adds r7, r2, #0
+ movs r0, #0xa9
+ lsls r0, r0, #3
+ mov r8, r0
+ ldr r2, _0804359C @ =0x086AFAE2
+ mov sl, r2
+_0804354C:
+ ldr r0, [r7]
+ lsls r1, r1, #0x10
+ asrs r4, r1, #0x10
+ add r0, r8
+ adds r0, r0, r4
+ ldrb r0, [r0]
+ lsls r0, r0, #0x18
+ asrs r0, r0, #0x18
+ mov sb, r1
+ cmp r0, #0x17
+ bne _08043576
+ ldr r0, _080435A0 @ =0x02032F20
+ ldr r1, _080435A4 @ =0x086A2EAC
+ bl sub_5450C
+ ldr r1, [r7]
+ ldr r0, _080435A8 @ =0x00001388
+ str r0, [r1, #0x3c]
+ movs r0, #8
+ bl sub_11B0
+_08043576:
+ ldr r3, [r7]
+ movs r6, #0xe8
+ lsls r6, r6, #2
+ adds r0, r3, r6
+ adds r0, r0, r4
+ movs r2, #0
+ ldrsb r2, [r0, r2]
+ cmp r2, #1
+ beq _080435D4
+ cmp r2, #1
+ bgt _080435AC
+ cmp r2, #0
+ beq _080435B6
+ b _080436D8
+ .align 2, 0
+_08043594: .4byte 0x020314E0
+_08043598: .4byte 0x0200B0C0
+_0804359C: .4byte 0x086AFAE2
+_080435A0: .4byte 0x02032F20
+_080435A4: .4byte 0x086A2EAC
+_080435A8: .4byte 0x00001388
+_080435AC:
+ cmp r2, #2
+ beq _08043628
+ cmp r2, #3
+ beq _0804366C
+ b _080436D8
+_080435B6:
+ lsls r1, r4, #1
+ movs r5, #0xec
+ lsls r5, r5, #2
+ adds r0, r3, r5
+ adds r0, r0, r1
+ strh r2, [r0]
+ ldr r1, _080435D0 @ =0x000003A3
+ adds r0, r3, r1
+ adds r0, r0, r4
+ movs r1, #4
+ strb r1, [r0]
+ b _080436CE
+ .align 2, 0
+_080435D0: .4byte 0x000003A3
+_080435D4:
+ mov r2, r8
+ adds r0, r3, r2
+ adds r1, r0, r4
+ ldrb r2, [r1]
+ movs r0, #0
+ ldrsb r0, [r1, r0]
+ cmp r0, #0
+ bgt _0804367C
+ ldr r5, _08043624 @ =0x000003A3
+ adds r0, r3, r5
+ adds r5, r0, r4
+ movs r1, #0
+ ldrsb r1, [r5, r1]
+ lsls r1, r1, #2
+ add r1, sl
+ lsls r2, r4, #1
+ movs r6, #0xec
+ lsls r6, r6, #2
+ adds r0, r3, r6
+ adds r2, r0, r2
+ ldrh r3, [r2]
+ ldrh r0, [r1]
+ cmp r0, r3
+ bhi _080436A6
+ movs r0, #0
+ strh r0, [r2]
+ ldrb r0, [r5]
+ adds r0, #1
+ strb r0, [r5]
+ ldr r0, [r7]
+ ldr r1, _08043624 @ =0x000003A3
+ adds r0, r0, r1
+ adds r1, r0, r4
+ movs r0, #0
+ ldrsb r0, [r1, r0]
+ cmp r0, #6
+ bne _080436D8
+ movs r0, #4
+ strb r0, [r1]
+ b _080436D8
+ .align 2, 0
+_08043624: .4byte 0x000003A3
+_08043628:
+ mov r2, r8
+ adds r0, r3, r2
+ adds r1, r0, r4
+ ldrb r2, [r1]
+ movs r0, #0
+ ldrsb r0, [r1, r0]
+ cmp r0, #0
+ bgt _0804367C
+ lsls r1, r4, #1
+ movs r5, #0xec
+ lsls r5, r5, #2
+ adds r0, r3, r5
+ adds r1, r0, r1
+ ldrh r0, [r1]
+ cmp r0, #0
+ beq _0804365C
+ subs r0, #1
+ strh r0, [r1]
+ ldr r6, _08043658 @ =0x000003A3
+ adds r0, r3, r6
+ adds r0, r0, r4
+ movs r1, #8
+ b _080436D6
+ .align 2, 0
+_08043658: .4byte 0x000003A3
+_0804365C:
+ ldr r1, _08043668 @ =0x000003A3
+ adds r0, r3, r1
+ adds r0, r0, r4
+ movs r1, #7
+ b _080436D6
+ .align 2, 0
+_08043668: .4byte 0x000003A3
+_0804366C:
+ mov r2, r8
+ adds r0, r3, r2
+ adds r1, r0, r4
+ ldrb r2, [r1]
+ movs r0, #0
+ ldrsb r0, [r1, r0]
+ cmp r0, #0
+ ble _08043682
+_0804367C:
+ subs r0, r2, #1
+ strb r0, [r1]
+ b _080436D8
+_08043682:
+ ldr r5, _080436AC @ =0x000003A3
+ adds r0, r3, r5
+ adds r5, r0, r4
+ movs r1, #0
+ ldrsb r1, [r5, r1]
+ lsls r1, r1, #2
+ add r1, sl
+ lsls r0, r4, #1
+ mov ip, r0
+ movs r2, #0xec
+ lsls r2, r2, #2
+ adds r0, r3, r2
+ mov r3, ip
+ adds r2, r0, r3
+ ldrh r3, [r2]
+ ldrh r0, [r1]
+ cmp r0, r3
+ bls _080436B0
+_080436A6:
+ adds r0, r3, #1
+ strh r0, [r2]
+ b _080436D8
+ .align 2, 0
+_080436AC: .4byte 0x000003A3
+_080436B0:
+ movs r0, #0
+ strh r0, [r2]
+ ldrb r0, [r5]
+ adds r0, #1
+ strb r0, [r5]
+ ldr r0, [r7]
+ ldr r5, _08043720 @ =0x000003A3
+ adds r0, r0, r5
+ adds r1, r0, r4
+ movs r0, #0
+ ldrsb r0, [r1, r0]
+ cmp r0, #0xe
+ ble _080436D8
+ movs r0, #4
+ strb r0, [r1]
+_080436CE:
+ ldr r0, [r7]
+ adds r0, r0, r6
+ adds r0, r0, r4
+ movs r1, #1
+_080436D6:
+ strb r1, [r0]
+_080436D8:
+ movs r0, #0x80
+ lsls r0, r0, #9
+ add r0, sb
+ lsrs r1, r0, #0x10
+ asrs r0, r0, #0x10
+ cmp r0, #1
+ bgt _080436E8
+ b _0804354C
+_080436E8:
+ ldr r6, _08043724 @ =0x0200C388
+ ldrh r0, [r6]
+ cmp r0, #0
+ beq _08043788
+ ldr r2, _08043728 @ =0x020314E0
+ ldr r0, [r2]
+ adds r0, #0x58
+ ldrh r1, [r0]
+ movs r0, #0x64
+ subs r0, r0, r1
+ strh r0, [r6, #2]
+ ldr r0, [r2]
+ adds r0, #0x5a
+ ldrh r1, [r0]
+ movs r0, #0x5e
+ subs r0, r0, r1
+ strh r0, [r6, #4]
+ ldr r2, [r2]
+ movs r1, #0xa9
+ lsls r1, r1, #3
+ adds r0, r2, r1
+ ldrb r0, [r0]
+ lsls r0, r0, #0x18
+ asrs r0, r0, #0x18
+ cmp r0, #0
+ ble _0804372C
+ movs r0, #0
+ b _0804373E
+ .align 2, 0
+_08043720: .4byte 0x000003A3
+_08043724: .4byte 0x0200C388
+_08043728: .4byte 0x020314E0
+_0804372C:
+ ldr r1, _080437C0 @ =0x086AFAE0
+ ldr r3, _080437C4 @ =0x000003A3
+ adds r0, r2, r3
+ ldrb r0, [r0]
+ lsls r0, r0, #0x18
+ asrs r0, r0, #0x18
+ lsls r0, r0, #2
+ adds r0, r0, r1
+ ldrh r0, [r0]
+_0804373E:
+ ldr r2, _080437C8 @ =0x040000D4
+ lsls r0, r0, #0x10
+ asrs r0, r0, #5
+ ldr r1, _080437CC @ =0x084B47EC
+ adds r0, r0, r1
+ str r0, [r2]
+ ldr r0, _080437D0 @ =0x060114A0
+ str r0, [r2, #4]
+ ldr r0, _080437D4 @ =0x80000300
+ str r0, [r2, #8]
+ ldr r0, [r2, #8]
+ adds r5, r6, #0
+ adds r5, #8
+ ldr r4, _080437D8 @ =0x03005000
+ ldrh r2, [r6, #8]
+ lsls r2, r2, #3
+ adds r2, r2, r4
+ movs r0, #2
+ ldrsh r1, [r5, r0]
+ movs r3, #2
+ ldrsh r0, [r6, r3]
+ adds r1, r1, r0
+ ldr r3, _080437DC @ =0x000001FF
+ adds r0, r3, #0
+ ands r1, r0
+ ldrh r3, [r2, #2]
+ ldr r0, _080437E0 @ =0xFFFFFE00
+ ands r0, r3
+ orrs r0, r1
+ strh r0, [r2, #2]
+ ldrh r1, [r6, #8]
+ lsls r1, r1, #3
+ adds r1, r1, r4
+ ldrb r0, [r6, #4]
+ ldrb r5, [r5, #4]
+ adds r0, r0, r5
+ strb r0, [r1]
+_08043788:
+ ldr r6, _080437E4 @ =0x0200C2D0
+ ldrh r0, [r6]
+ cmp r0, #0
+ beq _0804384E
+ ldr r2, _080437E8 @ =0x020314E0
+ ldr r0, [r2]
+ adds r0, #0x58
+ ldrh r1, [r0]
+ movs r0, #0x8c
+ subs r0, r0, r1
+ strh r0, [r6, #2]
+ ldr r0, [r2]
+ adds r0, #0x5a
+ ldrh r1, [r0]
+ movs r0, #0x5e
+ subs r0, r0, r1
+ strh r0, [r6, #4]
+ ldr r2, [r2]
+ ldr r5, _080437EC @ =0x00000549
+ adds r0, r2, r5
+ ldrb r0, [r0]
+ lsls r0, r0, #0x18
+ asrs r0, r0, #0x18
+ cmp r0, #0
+ ble _080437F0
+ movs r0, #0
+ b _08043804
+ .align 2, 0
+_080437C0: .4byte 0x086AFAE0
+_080437C4: .4byte 0x000003A3
+_080437C8: .4byte 0x040000D4
+_080437CC: .4byte 0x084B47EC
+_080437D0: .4byte 0x060114A0
+_080437D4: .4byte 0x80000300
+_080437D8: .4byte 0x03005000
+_080437DC: .4byte 0x000001FF
+_080437E0: .4byte 0xFFFFFE00
+_080437E4: .4byte 0x0200C2D0
+_080437E8: .4byte 0x020314E0
+_080437EC: .4byte 0x00000549
+_080437F0:
+ ldr r1, _0804385C @ =0x086AFAE0
+ movs r3, #0xe9
+ lsls r3, r3, #2
+ adds r0, r2, r3
+ ldrb r0, [r0]
+ lsls r0, r0, #0x18
+ asrs r0, r0, #0x18
+ lsls r0, r0, #2
+ adds r0, r0, r1
+ ldrh r0, [r0]
+_08043804:
+ ldr r2, _08043860 @ =0x040000D4
+ lsls r0, r0, #0x10
+ asrs r0, r0, #5
+ ldr r1, _08043864 @ =0x084B47EC
+ adds r0, r0, r1
+ str r0, [r2]
+ ldr r0, _08043868 @ =0x06010CA0
+ str r0, [r2, #4]
+ ldr r0, _0804386C @ =0x80000300
+ str r0, [r2, #8]
+ ldr r0, [r2, #8]
+ adds r5, r6, #0
+ adds r5, #8
+ ldr r4, _08043870 @ =0x03005000
+ ldrh r2, [r6, #8]
+ lsls r2, r2, #3
+ adds r2, r2, r4
+ movs r0, #2
+ ldrsh r1, [r5, r0]
+ movs r3, #2
+ ldrsh r0, [r6, r3]
+ adds r1, r1, r0
+ ldr r3, _08043874 @ =0x000001FF
+ adds r0, r3, #0
+ ands r1, r0
+ ldrh r3, [r2, #2]
+ ldr r0, _08043878 @ =0xFFFFFE00
+ ands r0, r3
+ orrs r0, r1
+ strh r0, [r2, #2]
+ ldrh r1, [r6, #8]
+ lsls r1, r1, #3
+ adds r1, r1, r4
+ ldrb r0, [r6, #4]
+ ldrb r5, [r5, #4]
+ adds r0, r0, r5
+ strb r0, [r1]
+_0804384E:
+ pop {r3, r4, r5}
+ mov r8, r3
+ mov sb, r4
+ mov sl, r5
+ pop {r4, r5, r6, r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0804385C: .4byte 0x086AFAE0
+_08043860: .4byte 0x040000D4
+_08043864: .4byte 0x084B47EC
+_08043868: .4byte 0x06010CA0
+_0804386C: .4byte 0x80000300
+_08043870: .4byte 0x03005000
+_08043874: .4byte 0x000001FF
+_08043878: .4byte 0xFFFFFE00
+
+ thumb_func_start sub_4387C
+sub_4387C: @ 0x0804387C
+ push {r4, r5, r6, r7, lr}
+ mov r7, sl
+ mov r6, sb
+ mov r5, r8
+ push {r5, r6, r7}
+ sub sp, #0x10
+ ldr r0, _080438D4 @ =0x020314E0
+ ldr r0, [r0]
+ ldrb r0, [r0, #0x13]
+ lsls r0, r0, #0x18
+ asrs r0, r0, #0x18
+ cmp r0, #1
+ beq _0804389A
+ bl _080448FC
+_0804389A:
+ ldr r0, _080438D8 @ =0x0200B0C0
+ ldrb r0, [r0, #0xf]
+ cmp r0, #0
+ beq _080438A6
+ bl _080448FC
+_080438A6:
+ movs r0, #0
+ str r0, [sp]
+_080438AA:
+ ldr r3, _080438D4 @ =0x020314E0
+ ldr r0, [r3]
+ ldr r1, [sp]
+ lsls r2, r1, #0x10
+ asrs r1, r2, #0x10
+ ldr r4, _080438DC @ =0x00000553
+ adds r0, r0, r4
+ adds r0, r0, r1
+ ldrb r0, [r0]
+ lsls r0, r0, #0x18
+ asrs r0, r0, #0x18
+ mov sb, r2
+ cmp r0, #0xe
+ bls _080438CA
+ bl _080448E4
+_080438CA:
+ lsls r0, r0, #2
+ ldr r1, _080438E0 @ =_080438E4
+ adds r0, r0, r1
+ ldr r0, [r0]
+ mov pc, r0
+ .align 2, 0
+_080438D4: .4byte 0x020314E0
+_080438D8: .4byte 0x0200B0C0
+_080438DC: .4byte 0x00000553
+_080438E0: .4byte _080438E4
+_080438E4: @ jump table
+ .4byte _08043920 @ case 0
+ .4byte _08043980 @ case 1
+ .4byte _08043BF8 @ case 2
+ .4byte _08043CB0 @ case 3
+ .4byte _08043DC0 @ case 4
+ .4byte _08043EB8 @ case 5
+ .4byte _08043F04 @ case 6
+ .4byte _08043FB0 @ case 7
+ .4byte _0804409C @ case 8
+ .4byte _080442A6 @ case 9
+ .4byte _08044344 @ case 10
+ .4byte _08044450 @ case 11
+ .4byte _080445BC @ case 12
+ .4byte _08044624 @ case 13
+ .4byte _080446AC @ case 14
+_08043920:
+ ldr r5, _08043968 @ =0x020314E0
+ ldr r1, [r5]
+ mov r6, sb
+ asrs r3, r6, #0x10
+ ldr r7, _0804396C @ =0x00000553
+ adds r1, r1, r7
+ adds r1, r1, r3
+ movs r4, #0
+ movs r0, #1
+ strb r0, [r1]
+ ldr r0, [r5]
+ ldr r1, _08043970 @ =0x0000055B
+ adds r0, r0, r1
+ adds r0, r0, r3
+ strb r4, [r0]
+ ldr r1, [r5]
+ lsls r2, r3, #1
+ ldr r5, _08043974 @ =0x00000562
+ adds r0, r1, r5
+ adds r0, r0, r2
+ movs r2, #0
+ strh r4, [r0]
+ ldr r6, _08043978 @ =0x0000054F
+ adds r1, r1, r6
+ adds r1, r1, r3
+ strb r2, [r1]
+ ldr r7, _08043968 @ =0x020314E0
+ ldr r0, [r7]
+ ldr r1, _0804397C @ =0x00000557
+ adds r0, r0, r1
+ adds r0, r0, r3
+ movs r1, #0xff
+ strb r1, [r0]
+ bl _080448E4
+ .align 2, 0
+_08043968: .4byte 0x020314E0
+_0804396C: .4byte 0x00000553
+_08043970: .4byte 0x0000055B
+_08043974: .4byte 0x00000562
+_08043978: .4byte 0x0000054F
+_0804397C: .4byte 0x00000557
+_08043980:
+ ldr r2, _080439A4 @ =0x020314E0
+ ldr r0, [r2]
+ mov r3, sb
+ asrs r5, r3, #0x10
+ lsls r1, r5, #1
+ ldr r4, _080439A8 @ =0x00000562
+ adds r0, r0, r4
+ adds r2, r0, r1
+ ldrh r1, [r2]
+ lsls r0, r5, #4
+ subs r0, r0, r5
+ lsls r0, r0, #1
+ adds r0, #0x78
+ cmp r1, r0
+ bge _080439AC
+ adds r0, r1, #1
+ strh r0, [r2]
+ b _08043BCA
+ .align 2, 0
+_080439A4: .4byte 0x020314E0
+_080439A8: .4byte 0x00000562
+_080439AC:
+ bl sub_C00
+ adds r1, r0, #0
+ ldr r6, _08043A34 @ =0x0200B0C0
+ ldr r0, [r6, #0x4c]
+ adds r0, r0, r1
+ lsls r0, r0, #0x10
+ lsrs r0, r0, #0x10
+ ldr r7, _08043A38 @ =0x020314E0
+ ldr r4, [r7]
+ ldr r7, _08043A3C @ =0x00000557
+ adds r4, r4, r7
+ adds r4, r4, r5
+ movs r1, #6
+ bl sub_558B0
+ strb r0, [r4]
+ ldr r1, _08043A38 @ =0x020314E0
+ ldr r0, [r1]
+ adds r4, r0, r7
+ movs r2, #0xab
+ lsls r2, r2, #3
+ adds r0, r0, r2
+ movs r1, #0
+ ldrsb r1, [r4, r1]
+ ldrb r0, [r0]
+ lsls r0, r0, #0x18
+ asrs r0, r0, #0x18
+ cmp r1, r0
+ bne _080439F8
+ adds r4, r4, r5
+ movs r0, #0
+ ldrsb r0, [r4, r0]
+ adds r0, #2
+ movs r1, #6
+ bl sub_55768
+ strb r0, [r4]
+_080439F8:
+ ldr r4, _08043A38 @ =0x020314E0
+ ldr r3, [r4]
+ adds r0, r3, r7
+ adds r0, r0, r5
+ movs r4, #0
+ ldrsb r4, [r0, r4]
+ cmp r4, #1
+ bgt _08043AA0
+ cmp r4, #0
+ bne _08043A48
+ lsls r2, r5, #3
+ movs r6, #0xb0
+ lsls r6, r6, #3
+ adds r0, r3, r6
+ adds r0, r0, r2
+ movs r1, #0x92
+ lsls r1, r1, #7
+ str r1, [r0]
+ ldr r7, _08043A40 @ =0x00000584
+ adds r0, r3, r7
+ adds r0, r0, r2
+ movs r1, #0xab
+ lsls r1, r1, #8
+ str r1, [r0]
+ ldr r1, _08043A44 @ =0x00000551
+ adds r0, r3, r1
+ adds r0, r0, r5
+ strb r4, [r0]
+ b _08043A6E
+ .align 2, 0
+_08043A34: .4byte 0x0200B0C0
+_08043A38: .4byte 0x020314E0
+_08043A3C: .4byte 0x00000557
+_08043A40: .4byte 0x00000584
+_08043A44: .4byte 0x00000551
+_08043A48:
+ lsls r2, r5, #3
+ movs r4, #0xb0
+ lsls r4, r4, #3
+ adds r0, r3, r4
+ adds r0, r0, r2
+ movs r1, #0xa7
+ lsls r1, r1, #8
+ str r1, [r0]
+ ldr r6, _08043A8C @ =0x00000584
+ adds r0, r3, r6
+ adds r0, r0, r2
+ movs r1, #0xac
+ lsls r1, r1, #8
+ str r1, [r0]
+ ldr r7, _08043A90 @ =0x00000551
+ adds r0, r3, r7
+ adds r0, r0, r5
+ movs r1, #1
+ strb r1, [r0]
+_08043A6E:
+ ldr r2, _08043A94 @ =0x020314E0
+ ldr r1, [r2]
+ mov r0, sb
+ asrs r3, r0, #0x10
+ ldr r4, _08043A98 @ =0x0000055B
+ adds r1, r1, r4
+ adds r1, r1, r3
+ movs r0, #9
+ strb r0, [r1]
+ ldr r0, [r2]
+ ldr r5, _08043A9C @ =0x00000553
+ adds r0, r0, r5
+ adds r0, r0, r3
+ movs r1, #7
+ b _08043BB6
+ .align 2, 0
+_08043A8C: .4byte 0x00000584
+_08043A90: .4byte 0x00000551
+_08043A94: .4byte 0x020314E0
+_08043A98: .4byte 0x0000055B
+_08043A9C: .4byte 0x00000553
+_08043AA0:
+ bl sub_C00
+ ldr r1, _08043AF8 @ =0x020314E0
+ ldr r2, [r1]
+ ldr r3, _08043AFC @ =0x00000551
+ adds r2, r2, r3
+ adds r2, r2, r5
+ ldr r1, [r6, #0x4c]
+ adds r1, r1, r0
+ movs r0, #1
+ ands r1, r0
+ strb r1, [r2]
+ ldr r2, _08043AF8 @ =0x020314E0
+ ldr r1, [r2]
+ adds r3, r1, r3
+ adds r3, r3, r5
+ movs r0, #0
+ ldrsb r0, [r3, r0]
+ cmp r0, #0
+ beq _08043B24
+ adds r0, r1, r7
+ adds r0, r0, r5
+ ldrb r0, [r0]
+ lsls r0, r0, #0x18
+ asrs r0, r0, #0x18
+ cmp r0, #5
+ bne _08043B00
+ bl sub_C00
+ ldr r3, _08043AF8 @ =0x020314E0
+ ldr r4, [r3]
+ lsls r1, r5, #3
+ movs r5, #0xb0
+ lsls r5, r5, #3
+ adds r4, r4, r5
+ adds r4, r4, r1
+ movs r1, #0x65
+ bl sub_558B0
+ movs r1, #5
+ bl sub_55838
+ adds r0, #0x50
+ b _08043B74
+ .align 2, 0
+_08043AF8: .4byte 0x020314E0
+_08043AFC: .4byte 0x00000551
+_08043B00:
+ bl sub_C00
+ ldr r6, _08043B20 @ =0x020314E0
+ ldr r4, [r6]
+ lsls r1, r5, #3
+ movs r7, #0xb0
+ lsls r7, r7, #3
+ adds r4, r4, r7
+ adds r4, r4, r1
+ movs r1, #0x65
+ bl sub_558B0
+ lsrs r0, r0, #1
+ adds r0, #0x32
+ b _08043B74
+ .align 2, 0
+_08043B20: .4byte 0x020314E0
+_08043B24:
+ adds r0, r1, r7
+ adds r0, r0, r5
+ ldrb r0, [r0]
+ lsls r0, r0, #0x18
+ asrs r0, r0, #0x18
+ cmp r0, #5
+ bne _08043B58
+ bl sub_C00
+ ldr r1, _08043B54 @ =0x020314E0
+ ldr r4, [r1]
+ lsls r1, r5, #3
+ movs r2, #0xb0
+ lsls r2, r2, #3
+ adds r4, r4, r2
+ adds r4, r4, r1
+ movs r1, #0x65
+ bl sub_558B0
+ movs r1, #5
+ bl sub_55838
+ b _08043B72
+ .align 2, 0
+_08043B54: .4byte 0x020314E0
+_08043B58:
+ bl sub_C00
+ ldr r3, _08043BE0 @ =0x020314E0
+ ldr r4, [r3]
+ lsls r1, r5, #3
+ movs r5, #0xb0
+ lsls r5, r5, #3
+ adds r4, r4, r5
+ adds r4, r4, r1
+ movs r1, #0x65
+ bl sub_558B0
+ lsrs r0, r0, #1
+_08043B72:
+ adds r0, #0x8c
+_08043B74:
+ lsls r0, r0, #8
+ str r0, [r4]
+ ldr r5, _08043BE0 @ =0x020314E0
+ ldr r2, [r5]
+ mov r6, sb
+ asrs r4, r6, #0x10
+ lsls r0, r4, #3
+ ldr r7, _08043BE4 @ =0x00000584
+ adds r3, r2, r7
+ adds r3, r3, r0
+ ldr r1, _08043BE8 @ =0x00000557
+ adds r0, r2, r1
+ adds r0, r0, r4
+ movs r1, #0
+ ldrsb r1, [r0, r1]
+ subs r1, #2
+ lsls r0, r1, #2
+ adds r0, r0, r1
+ lsls r0, r0, #9
+ movs r6, #0xaf
+ lsls r6, r6, #8
+ adds r0, r0, r6
+ str r0, [r3]
+ subs r7, #0x29
+ adds r2, r2, r7
+ adds r2, r2, r4
+ movs r0, #0
+ strb r0, [r2]
+ ldr r0, [r5]
+ ldr r1, _08043BEC @ =0x00000553
+ adds r0, r0, r1
+ adds r0, r0, r4
+ movs r1, #2
+_08043BB6:
+ strb r1, [r0]
+ ldr r2, _08043BE0 @ =0x020314E0
+ ldr r0, [r2]
+ mov r3, sb
+ asrs r1, r3, #0xf
+ ldr r4, _08043BF0 @ =0x00000562
+ adds r0, r0, r4
+ adds r0, r0, r1
+ movs r1, #0
+ strh r1, [r0]
+_08043BCA:
+ ldr r5, _08043BE0 @ =0x020314E0
+ ldr r0, [r5]
+ mov r6, sb
+ asrs r1, r6, #0x10
+ ldr r7, _08043BF4 @ =0x0000054F
+ adds r0, r0, r7
+ adds r0, r0, r1
+ movs r1, #0
+ strb r1, [r0]
+ bl _080448E4
+ .align 2, 0
+_08043BE0: .4byte 0x020314E0
+_08043BE4: .4byte 0x00000584
+_08043BE8: .4byte 0x00000557
+_08043BEC: .4byte 0x00000553
+_08043BF0: .4byte 0x00000562
+_08043BF4: .4byte 0x0000054F
+_08043BF8:
+ ldr r3, _08043C2C @ =0x086AFB2C
+ ldr r7, _08043C30 @ =0x020314E0
+ ldr r2, [r7]
+ mov r0, sb
+ asrs r5, r0, #0x10
+ ldr r6, _08043C34 @ =0x0000055B
+ adds r0, r2, r6
+ adds r4, r0, r5
+ movs r1, #0
+ ldrsb r1, [r4, r1]
+ lsls r0, r1, #1
+ adds r0, r0, r1
+ lsls r0, r0, #1
+ adds r3, #2
+ adds r0, r0, r3
+ lsls r1, r5, #1
+ ldr r3, _08043C38 @ =0x00000562
+ adds r2, r2, r3
+ adds r2, r2, r1
+ ldrh r1, [r2]
+ ldrh r0, [r0]
+ cmp r0, r1
+ bls _08043C3C
+ adds r0, r1, #1
+ strh r0, [r2]
+ b _08043C7A
+ .align 2, 0
+_08043C2C: .4byte 0x086AFB2C
+_08043C30: .4byte 0x020314E0
+_08043C34: .4byte 0x0000055B
+_08043C38: .4byte 0x00000562
+_08043C3C:
+ movs r0, #0
+ strh r0, [r2]
+ ldrb r0, [r4]
+ adds r0, #1
+ strb r0, [r4]
+ ldr r0, [r7]
+ ldr r4, _08043C9C @ =0x0000055B
+ adds r0, r0, r4
+ adds r0, r0, r5
+ movs r1, #0
+ ldrsb r1, [r0, r1]
+ cmp r1, #3
+ bne _08043C62
+ strb r1, [r0]
+ ldr r0, [r7]
+ ldr r2, _08043CA0 @ =0x00000553
+ adds r0, r0, r2
+ adds r0, r0, r5
+ strb r1, [r0]
+_08043C62:
+ ldr r0, [r7]
+ adds r0, r0, r6
+ adds r0, r0, r5
+ ldrb r0, [r0]
+ lsls r0, r0, #0x18
+ asrs r0, r0, #0x18
+ cmp r0, #1
+ bne _08043C7A
+ movs r0, #0x9a
+ lsls r0, r0, #1
+ bl sub_53DA8
+_08043C7A:
+ ldr r0, _08043CA4 @ =0x020314E0
+ ldr r2, [r0]
+ mov r4, sb
+ asrs r3, r4, #0x10
+ lsls r1, r3, #1
+ ldr r5, _08043CA8 @ =0x0000056A
+ adds r0, r2, r5
+ adds r0, r0, r1
+ movs r1, #0
+ strh r1, [r0]
+ ldr r6, _08043CAC @ =0x0000054F
+ adds r2, r2, r6
+ adds r2, r2, r3
+ movs r0, #1
+ strb r0, [r2]
+ bl _080448E4
+ .align 2, 0
+_08043C9C: .4byte 0x0000055B
+_08043CA0: .4byte 0x00000553
+_08043CA4: .4byte 0x020314E0
+_08043CA8: .4byte 0x0000056A
+_08043CAC: .4byte 0x0000054F
+_08043CB0:
+ ldr r3, _08043CE4 @ =0x086AFB2C
+ ldr r7, _08043CE8 @ =0x020314E0
+ ldr r2, [r7]
+ mov r0, sb
+ asrs r5, r0, #0x10
+ ldr r1, _08043CEC @ =0x0000055B
+ adds r0, r2, r1
+ adds r4, r0, r5
+ movs r1, #0
+ ldrsb r1, [r4, r1]
+ lsls r0, r1, #1
+ adds r0, r0, r1
+ lsls r0, r0, #1
+ adds r3, #2
+ adds r0, r0, r3
+ lsls r1, r5, #1
+ ldr r3, _08043CF0 @ =0x00000562
+ adds r2, r2, r3
+ adds r2, r2, r1
+ ldrh r1, [r2]
+ ldrh r0, [r0]
+ cmp r0, r1
+ bls _08043CF4
+ adds r0, r1, #1
+ strh r0, [r2]
+ b _08043D14
+ .align 2, 0
+_08043CE4: .4byte 0x086AFB2C
+_08043CE8: .4byte 0x020314E0
+_08043CEC: .4byte 0x0000055B
+_08043CF0: .4byte 0x00000562
+_08043CF4:
+ movs r0, #0
+ strh r0, [r2]
+ ldrb r0, [r4]
+ adds r0, #1
+ strb r0, [r4]
+ ldr r4, _08043D58 @ =0x020314E0
+ ldr r0, [r4]
+ ldr r6, _08043D5C @ =0x0000055B
+ adds r0, r0, r6
+ adds r1, r0, r5
+ movs r0, #0
+ ldrsb r0, [r1, r0]
+ cmp r0, #5
+ bne _08043D14
+ movs r0, #3
+ strb r0, [r1]
+_08043D14:
+ ldr r7, _08043D58 @ =0x020314E0
+ ldr r3, [r7]
+ mov r0, sb
+ asrs r4, r0, #0x10
+ lsls r7, r4, #1
+ ldr r1, _08043D60 @ =0x0000056A
+ adds r0, r3, r1
+ adds r2, r0, r7
+ ldrh r5, [r2]
+ movs r6, #0
+ ldrsh r1, [r2, r6]
+ ldr r0, _08043D64 @ =0x0000018F
+ cmp r1, r0
+ bgt _08043D7E
+ adds r0, r5, #1
+ strh r0, [r2]
+ ldr r7, _08043D68 @ =0x00000551
+ adds r0, r3, r7
+ adds r0, r0, r4
+ ldrb r0, [r0]
+ lsls r0, r0, #0x18
+ asrs r0, r0, #0x18
+ cmp r0, #0
+ beq _08043D6C
+ lsls r0, r4, #3
+ movs r2, #0xb0
+ lsls r2, r2, #3
+ adds r1, r3, r2
+ adds r1, r1, r0
+ ldr r0, [r1]
+ adds r0, #0x23
+ str r0, [r1]
+ b _08043D9E
+ .align 2, 0
+_08043D58: .4byte 0x020314E0
+_08043D5C: .4byte 0x0000055B
+_08043D60: .4byte 0x0000056A
+_08043D64: .4byte 0x0000018F
+_08043D68: .4byte 0x00000551
+_08043D6C:
+ lsls r0, r4, #3
+ movs r4, #0xb0
+ lsls r4, r4, #3
+ adds r1, r3, r4
+ adds r1, r1, r0
+ ldr r0, [r1]
+ subs r0, #0x23
+ str r0, [r1]
+ b _08043D9E
+_08043D7E:
+ ldr r5, _08043DB0 @ =0x0000055B
+ adds r0, r3, r5
+ adds r0, r0, r4
+ movs r3, #0
+ movs r2, #6
+ strb r2, [r0]
+ ldr r6, _08043DB4 @ =0x020314E0
+ ldr r1, [r6]
+ adds r5, #7
+ adds r0, r1, r5
+ adds r0, r0, r7
+ strh r3, [r0]
+ ldr r6, _08043DB8 @ =0x00000553
+ adds r1, r1, r6
+ adds r1, r1, r4
+ strb r2, [r1]
+_08043D9E:
+ ldr r7, _08043DB4 @ =0x020314E0
+ ldr r0, [r7]
+ mov r2, sb
+ asrs r1, r2, #0x10
+ ldr r3, _08043DBC @ =0x0000054F
+ adds r0, r0, r3
+ adds r0, r0, r1
+ bl _080446E8
+ .align 2, 0
+_08043DB0: .4byte 0x0000055B
+_08043DB4: .4byte 0x020314E0
+_08043DB8: .4byte 0x00000553
+_08043DBC: .4byte 0x0000054F
+_08043DC0:
+ ldr r0, _08043E00 @ =0x02032F20
+ ldr r1, _08043E04 @ =0x086A2D28
+ bl sub_5450C
+ ldr r2, _08043E08 @ =0x020314E0
+ ldr r5, [r2]
+ mov r4, sb
+ asrs r6, r4, #0x10
+ ldr r7, _08043E0C @ =0x0000054F
+ adds r0, r5, r7
+ adds r0, r0, r6
+ ldrb r0, [r0]
+ lsls r0, r0, #0x18
+ asrs r0, r0, #0x18
+ cmp r0, #1
+ bne _08043E1C
+ lsls r1, r6, #1
+ ldr r3, _08043E10 @ =0x00000562
+ adds r0, r5, r3
+ adds r0, r0, r1
+ movs r1, #0
+ strh r1, [r0]
+ ldr r4, _08043E14 @ =0x0000055B
+ adds r0, r5, r4
+ adds r0, r0, r6
+ movs r1, #5
+ strb r1, [r0]
+ ldr r0, [r2]
+ ldr r5, _08043E18 @ =0x00000553
+ adds r0, r0, r5
+ adds r0, r0, r6
+ b _08043E80
+ .align 2, 0
+_08043E00: .4byte 0x02032F20
+_08043E04: .4byte 0x086A2D28
+_08043E08: .4byte 0x020314E0
+_08043E0C: .4byte 0x0000054F
+_08043E10: .4byte 0x00000562
+_08043E14: .4byte 0x0000055B
+_08043E18: .4byte 0x00000553
+_08043E1C:
+ lsls r0, r6, #3
+ ldr r7, _08043E4C @ =0x00000584
+ adds r1, r5, r7
+ adds r1, r1, r0
+ ldr r2, _08043E50 @ =0x0000055F
+ adds r0, r5, r2
+ adds r0, r0, r6
+ ldrb r0, [r0]
+ lsls r0, r0, #0x18
+ asrs r0, r0, #0x18
+ lsls r0, r0, #8
+ ldr r1, [r1]
+ adds r1, r1, r0
+ ldr r3, _08043E54 @ =0x0000132C
+ adds r0, r5, r3
+ ldr r0, [r0]
+ ldr r0, [r0, #0x38]
+ cmp r1, r0
+ bge _08043E5C
+ ldr r4, _08043E58 @ =0x00000553
+ adds r0, r5, r4
+ adds r0, r0, r6
+ movs r1, #0xa
+ b _08043E80
+ .align 2, 0
+_08043E4C: .4byte 0x00000584
+_08043E50: .4byte 0x0000055F
+_08043E54: .4byte 0x0000132C
+_08043E58: .4byte 0x00000553
+_08043E5C:
+ lsls r0, r6, #1
+ ldr r7, _08043EA4 @ =0x00000562
+ adds r4, r5, r7
+ adds r4, r4, r0
+ ldrh r1, [r4]
+ lsls r0, r1, #1
+ adds r0, r0, r1
+ lsls r0, r0, #2
+ movs r1, #0xa0
+ bl sub_556D0
+ movs r1, #0xac
+ subs r1, r1, r0
+ strh r1, [r4]
+ ldr r1, _08043EA8 @ =0x00000553
+ adds r0, r5, r1
+ adds r0, r0, r6
+ movs r1, #8
+_08043E80:
+ strb r1, [r0]
+ movs r0, #7
+ bl sub_11B0
+ ldr r2, _08043EAC @ =0x020314E0
+ ldr r1, [r2]
+ mov r3, sb
+ asrs r0, r3, #0x10
+ ldr r4, _08043EB0 @ =0x0000054F
+ adds r1, r1, r4
+ adds r1, r1, r0
+ movs r0, #0
+ strb r0, [r1]
+ ldr r1, [r2]
+ ldr r0, _08043EB4 @ =0x00000BB8
+ str r0, [r1, #0x3c]
+ bl _080448E4
+ .align 2, 0
+_08043EA4: .4byte 0x00000562
+_08043EA8: .4byte 0x00000553
+_08043EAC: .4byte 0x020314E0
+_08043EB0: .4byte 0x0000054F
+_08043EB4: .4byte 0x00000BB8
+_08043EB8:
+ ldr r5, _08043EE0 @ =0x020314E0
+ ldr r2, [r5]
+ mov r6, sb
+ asrs r3, r6, #0x10
+ lsls r1, r3, #1
+ ldr r7, _08043EE4 @ =0x00000562
+ adds r0, r2, r7
+ adds r1, r0, r1
+ ldrh r0, [r1]
+ cmp r0, #9
+ bhi _08043EEC
+ adds r0, #1
+ strh r0, [r1]
+ ldr r1, _08043EE8 @ =0x0000055B
+ adds r0, r2, r1
+ adds r0, r0, r3
+ movs r1, #5
+ strb r1, [r0]
+ bl _080448E4
+ .align 2, 0
+_08043EE0: .4byte 0x020314E0
+_08043EE4: .4byte 0x00000562
+_08043EE8: .4byte 0x0000055B
+_08043EEC:
+ movs r0, #0
+ strh r0, [r1]
+ ldr r4, _08043F00 @ =0x00000553
+ adds r0, r2, r4
+ adds r0, r0, r3
+ movs r1, #6
+ strb r1, [r0]
+ bl _080448E4
+ .align 2, 0
+_08043F00: .4byte 0x00000553
+_08043F04:
+ ldr r3, _08043F38 @ =0x086AFB2C
+ ldr r7, _08043F3C @ =0x020314E0
+ ldr r2, [r7]
+ mov r6, sb
+ asrs r5, r6, #0x10
+ ldr r6, _08043F40 @ =0x0000055B
+ adds r0, r2, r6
+ adds r4, r0, r5
+ movs r1, #0
+ ldrsb r1, [r4, r1]
+ lsls r0, r1, #1
+ adds r0, r0, r1
+ lsls r0, r0, #1
+ adds r3, #2
+ adds r0, r0, r3
+ lsls r1, r5, #1
+ ldr r3, _08043F44 @ =0x00000562
+ adds r2, r2, r3
+ adds r2, r2, r1
+ ldrh r1, [r2]
+ ldrh r0, [r0]
+ cmp r0, r1
+ bls _08043F48
+ adds r0, r1, #1
+ strh r0, [r2]
+ b _08043F86
+ .align 2, 0
+_08043F38: .4byte 0x086AFB2C
+_08043F3C: .4byte 0x020314E0
+_08043F40: .4byte 0x0000055B
+_08043F44: .4byte 0x00000562
+_08043F48:
+ movs r3, #0
+ movs r0, #0
+ strh r0, [r2]
+ ldrb r0, [r4]
+ adds r0, #1
+ strb r0, [r4]
+ ldr r0, [r7]
+ ldr r4, _08043F9C @ =0x0000055B
+ adds r0, r0, r4
+ adds r1, r0, r5
+ movs r0, #0
+ ldrsb r0, [r1, r0]
+ cmp r0, #9
+ bne _08043F70
+ strb r3, [r1]
+ ldr r0, [r7]
+ ldr r1, _08043FA0 @ =0x00000553
+ adds r0, r0, r1
+ adds r0, r0, r5
+ strb r3, [r0]
+_08043F70:
+ ldr r0, [r7]
+ adds r0, r0, r6
+ adds r0, r0, r5
+ ldrb r0, [r0]
+ lsls r0, r0, #0x18
+ asrs r0, r0, #0x18
+ cmp r0, #7
+ bne _08043F86
+ ldr r0, _08043FA4 @ =0x00000135
+ bl sub_53DA8
+_08043F86:
+ ldr r0, _08043FA8 @ =0x020314E0
+ ldr r1, [r0]
+ mov r2, sb
+ asrs r0, r2, #0x10
+ ldr r3, _08043FAC @ =0x0000054F
+ adds r1, r1, r3
+ adds r1, r1, r0
+ movs r0, #0
+ strb r0, [r1]
+ bl _080448E4
+ .align 2, 0
+_08043F9C: .4byte 0x0000055B
+_08043FA0: .4byte 0x00000553
+_08043FA4: .4byte 0x00000135
+_08043FA8: .4byte 0x020314E0
+_08043FAC: .4byte 0x0000054F
+_08043FB0:
+ ldr r3, _08043FE4 @ =0x086AFB2C
+ ldr r6, _08043FE8 @ =0x020314E0
+ ldr r2, [r6]
+ mov r4, sb
+ asrs r5, r4, #0x10
+ ldr r7, _08043FEC @ =0x0000055B
+ adds r0, r2, r7
+ adds r4, r0, r5
+ movs r1, #0
+ ldrsb r1, [r4, r1]
+ lsls r0, r1, #1
+ adds r0, r0, r1
+ lsls r0, r0, #1
+ adds r3, #2
+ adds r0, r0, r3
+ lsls r1, r5, #1
+ ldr r3, _08043FF0 @ =0x00000562
+ adds r2, r2, r3
+ adds r2, r2, r1
+ ldrh r1, [r2]
+ ldrh r0, [r0]
+ cmp r0, r1
+ bls _08043FF4
+ adds r0, r1, #1
+ strh r0, [r2]
+ b _08044068
+ .align 2, 0
+_08043FE4: .4byte 0x086AFB2C
+_08043FE8: .4byte 0x020314E0
+_08043FEC: .4byte 0x0000055B
+_08043FF0: .4byte 0x00000562
+_08043FF4:
+ movs r0, #0
+ strh r0, [r2]
+ ldrb r0, [r4]
+ adds r0, #1
+ strb r0, [r4]
+ ldr r1, [r6]
+ ldr r4, _08044080 @ =0x0000055B
+ adds r0, r1, r4
+ adds r0, r0, r5
+ ldrb r0, [r0]
+ lsls r0, r0, #0x18
+ asrs r0, r0, #0x18
+ cmp r0, #0xe
+ bne _08044050
+ ldr r2, _08044084 @ =0x00000553
+ adds r0, r1, r2
+ adds r0, r0, r5
+ movs r1, #8
+ strb r1, [r0]
+ ldr r2, [r6]
+ lsls r4, r5, #3
+ movs r0, #0xb0
+ lsls r0, r0, #3
+ adds r3, r2, r0
+ adds r3, r3, r4
+ ldr r1, _08044088 @ =0x0000055D
+ adds r0, r2, r1
+ adds r0, r0, r5
+ movs r1, #0
+ ldrsb r1, [r0, r1]
+ lsls r1, r1, #8
+ ldr r0, [r3]
+ adds r0, r0, r1
+ str r0, [r3]
+ ldr r0, _0804408C @ =0x00000584
+ adds r3, r2, r0
+ adds r3, r3, r4
+ ldr r1, _08044090 @ =0x0000055F
+ adds r2, r2, r1
+ adds r2, r2, r5
+ movs r1, #0
+ ldrsb r1, [r2, r1]
+ lsls r1, r1, #8
+ ldr r0, [r3]
+ adds r0, r0, r1
+ str r0, [r3]
+_08044050:
+ ldr r0, [r6]
+ adds r0, r0, r7
+ adds r0, r0, r5
+ ldrb r0, [r0]
+ lsls r0, r0, #0x18
+ asrs r0, r0, #0x18
+ cmp r0, #0xa
+ bne _08044068
+ movs r0, #0xa0
+ lsls r0, r0, #1
+ bl sub_53DA8
+_08044068:
+ ldr r0, _08044094 @ =0x020314E0
+ ldr r1, [r0]
+ mov r2, sb
+ asrs r0, r2, #0x10
+ ldr r3, _08044098 @ =0x0000054F
+ adds r1, r1, r3
+ adds r1, r1, r0
+ movs r0, #2
+ strb r0, [r1]
+ bl _080448E4
+ .align 2, 0
+_08044080: .4byte 0x0000055B
+_08044084: .4byte 0x00000553
+_08044088: .4byte 0x0000055D
+_0804408C: .4byte 0x00000584
+_08044090: .4byte 0x0000055F
+_08044094: .4byte 0x020314E0
+_08044098: .4byte 0x0000054F
+_0804409C:
+ ldr r4, _080440D8 @ =0x020314E0
+ ldr r1, [r4]
+ mov r5, sb
+ asrs r3, r5, #0x10
+ lsls r4, r3, #1
+ ldr r6, _080440DC @ =0x00000562
+ adds r0, r1, r6
+ adds r0, r0, r4
+ ldrh r0, [r0]
+ cmp r0, #0xb7
+ bls _080440B4
+ b _0804423C
+_080440B4:
+ cmp r0, #0x9f
+ bhi _0804417C
+ ldr r7, _080440E0 @ =0x00000551
+ adds r0, r1, r7
+ adds r0, r0, r3
+ ldrb r0, [r0]
+ lsls r0, r0, #0x18
+ asrs r0, r0, #0x18
+ cmp r0, #0
+ bne _080440E4
+ lsls r0, r3, #3
+ movs r2, #0xb0
+ lsls r2, r2, #3
+ adds r1, r1, r2
+ adds r1, r1, r0
+ ldr r0, [r1]
+ subs r0, #0x10
+ b _080440F2
+ .align 2, 0
+_080440D8: .4byte 0x020314E0
+_080440DC: .4byte 0x00000562
+_080440E0: .4byte 0x00000551
+_080440E4:
+ lsls r0, r3, #3
+ movs r3, #0xb0
+ lsls r3, r3, #3
+ adds r1, r1, r3
+ adds r1, r1, r0
+ ldr r0, [r1]
+ adds r0, #0x10
+_080440F2:
+ str r0, [r1]
+ ldr r4, _0804411C @ =0x020314E0
+ ldr r3, [r4]
+ mov r5, sb
+ asrs r2, r5, #0x10
+ lsls r1, r2, #1
+ ldr r6, _08044120 @ =0x00000562
+ adds r0, r3, r6
+ adds r0, r0, r1
+ ldrh r1, [r0]
+ movs r0, #1
+ ands r0, r1
+ cmp r0, #0
+ beq _08044128
+ lsls r0, r2, #3
+ ldr r7, _08044124 @ =0x00000584
+ adds r1, r3, r7
+ adds r1, r1, r0
+ ldr r0, [r1]
+ subs r0, #0x10
+ b _08044134
+ .align 2, 0
+_0804411C: .4byte 0x020314E0
+_08044120: .4byte 0x00000562
+_08044124: .4byte 0x00000584
+_08044128:
+ lsls r0, r2, #3
+ ldr r2, _08044160 @ =0x00000584
+ adds r1, r3, r2
+ adds r1, r1, r0
+ ldr r0, [r1]
+ subs r0, #0x20
+_08044134:
+ str r0, [r1]
+ ldr r3, _08044164 @ =0x020314E0
+ ldr r4, [r3]
+ mov r6, sb
+ asrs r5, r6, #0x10
+ lsls r1, r5, #1
+ ldr r7, _08044168 @ =0x00000562
+ adds r0, r4, r7
+ adds r0, r0, r1
+ ldrh r0, [r0]
+ movs r1, #0x13
+ bl sub_558B0
+ lsls r0, r0, #0x10
+ lsrs r0, r0, #0x10
+ cmp r0, #9
+ bhi _08044170
+ ldr r1, _0804416C @ =0x0000055B
+ adds r0, r4, r1
+ adds r0, r0, r5
+ movs r1, #0xe
+ b _08044216
+ .align 2, 0
+_08044160: .4byte 0x00000584
+_08044164: .4byte 0x020314E0
+_08044168: .4byte 0x00000562
+_0804416C: .4byte 0x0000055B
+_08044170:
+ ldr r2, _08044178 @ =0x0000055B
+ adds r0, r4, r2
+ adds r0, r0, r5
+ b _08044214
+ .align 2, 0
+_08044178: .4byte 0x0000055B
+_0804417C:
+ ldr r4, _080441A0 @ =0x00000551
+ adds r0, r1, r4
+ adds r0, r0, r3
+ ldrb r0, [r0]
+ lsls r0, r0, #0x18
+ asrs r0, r0, #0x18
+ cmp r0, #0
+ bne _080441A4
+ lsls r0, r3, #3
+ movs r5, #0xb0
+ lsls r5, r5, #3
+ adds r1, r1, r5
+ adds r1, r1, r0
+ ldr r0, [r1]
+ movs r6, #0xa0
+ lsls r6, r6, #1
+ adds r0, r0, r6
+ b _080441B4
+ .align 2, 0
+_080441A0: .4byte 0x00000551
+_080441A4:
+ lsls r0, r3, #3
+ movs r7, #0xb0
+ lsls r7, r7, #3
+ adds r1, r1, r7
+ adds r1, r1, r0
+ ldr r0, [r1]
+ ldr r2, _080441E4 @ =0xFFFFFEC0
+ adds r0, r0, r2
+_080441B4:
+ str r0, [r1]
+ ldr r4, _080441E8 @ =0x020314E0
+ ldr r3, [r4]
+ mov r5, sb
+ asrs r2, r5, #0x10
+ lsls r1, r2, #1
+ ldr r6, _080441EC @ =0x00000562
+ adds r0, r3, r6
+ adds r0, r0, r1
+ ldrh r1, [r0]
+ movs r0, #1
+ ands r0, r1
+ cmp r0, #0
+ beq _080441F4
+ lsls r0, r2, #3
+ ldr r7, _080441F0 @ =0x00000584
+ adds r1, r3, r7
+ adds r1, r1, r0
+ ldr r0, [r1]
+ movs r2, #0xa0
+ lsls r2, r2, #1
+ adds r0, r0, r2
+ b _08044204
+ .align 2, 0
+_080441E4: .4byte 0xFFFFFEC0
+_080441E8: .4byte 0x020314E0
+_080441EC: .4byte 0x00000562
+_080441F0: .4byte 0x00000584
+_080441F4:
+ lsls r0, r2, #3
+ ldr r4, _0804422C @ =0x00000584
+ adds r1, r3, r4
+ adds r1, r1, r0
+ ldr r0, [r1]
+ movs r5, #0xf0
+ lsls r5, r5, #1
+ adds r0, r0, r5
+_08044204:
+ str r0, [r1]
+ ldr r6, _08044230 @ =0x020314E0
+ ldr r0, [r6]
+ mov r7, sb
+ asrs r1, r7, #0x10
+ ldr r2, _08044234 @ =0x0000055B
+ adds r0, r0, r2
+ adds r0, r0, r1
+_08044214:
+ movs r1, #0xf
+_08044216:
+ strb r1, [r0]
+ ldr r3, _08044230 @ =0x020314E0
+ ldr r0, [r3]
+ mov r4, sb
+ asrs r1, r4, #0xf
+ ldr r5, _08044238 @ =0x00000562
+ adds r0, r0, r5
+ adds r0, r0, r1
+ ldrh r1, [r0]
+ adds r1, #1
+ b _080448E2
+ .align 2, 0
+_0804422C: .4byte 0x00000584
+_08044230: .4byte 0x020314E0
+_08044234: .4byte 0x0000055B
+_08044238: .4byte 0x00000562
+_0804423C:
+ ldr r6, _08044284 @ =0x00000553
+ adds r1, r1, r6
+ adds r1, r1, r3
+ movs r2, #0
+ movs r0, #9
+ strb r0, [r1]
+ ldr r7, _08044288 @ =0x020314E0
+ ldr r0, [r7]
+ ldr r1, _0804428C @ =0x0000055B
+ adds r0, r0, r1
+ adds r0, r0, r3
+ movs r1, #0x10
+ strb r1, [r0]
+ ldr r1, [r7]
+ ldr r5, _08044290 @ =0x00000562
+ adds r0, r1, r5
+ adds r0, r0, r4
+ strh r2, [r0]
+ subs r6, #2
+ adds r0, r1, r6
+ adds r0, r0, r3
+ ldrb r0, [r0]
+ lsls r0, r0, #0x18
+ asrs r0, r0, #0x18
+ cmp r0, #0
+ bne _08044294
+ lsls r0, r3, #3
+ movs r7, #0xb0
+ lsls r7, r7, #3
+ adds r1, r1, r7
+ adds r1, r1, r0
+ ldr r0, [r1]
+ adds r0, #0xf0
+ str r0, [r1]
+ b _080448E4
+ .align 2, 0
+_08044284: .4byte 0x00000553
+_08044288: .4byte 0x020314E0
+_0804428C: .4byte 0x0000055B
+_08044290: .4byte 0x00000562
+_08044294:
+ lsls r0, r3, #3
+ movs r2, #0xb0
+ lsls r2, r2, #3
+ adds r1, r1, r2
+ adds r1, r1, r0
+ ldr r0, [r1]
+ subs r0, #0xf0
+ str r0, [r1]
+ b _080448E4
+_080442A6:
+ ldr r3, _080442DC @ =0x086AFB2C
+ ldr r4, _080442E0 @ =0x020314E0
+ ldr r2, [r4]
+ mov r6, sb
+ asrs r5, r6, #0x10
+ ldr r6, _080442E4 @ =0x0000055B
+ adds r0, r2, r6
+ adds r4, r0, r5
+ movs r1, #0
+ ldrsb r1, [r4, r1]
+ lsls r0, r1, #1
+ adds r0, r0, r1
+ lsls r0, r0, #1
+ adds r3, #2
+ adds r0, r0, r3
+ lsls r1, r5, #1
+ ldr r7, _080442E8 @ =0x00000562
+ adds r2, r2, r7
+ adds r2, r2, r1
+ ldrh r1, [r2]
+ ldrh r0, [r0]
+ cmp r0, r1
+ bls _080442EC
+ adds r0, r1, #1
+ strh r0, [r2]
+ b _080448E4
+ .align 2, 0
+_080442DC: .4byte 0x086AFB2C
+_080442E0: .4byte 0x020314E0
+_080442E4: .4byte 0x0000055B
+_080442E8: .4byte 0x00000562
+_080442EC:
+ movs r3, #0
+ movs r0, #0
+ strh r0, [r2]
+ ldrb r0, [r4]
+ adds r0, #1
+ strb r0, [r4]
+ ldr r1, _08044334 @ =0x020314E0
+ ldr r0, [r1]
+ ldr r2, _08044338 @ =0x0000055B
+ adds r0, r0, r2
+ adds r1, r0, r5
+ movs r0, #0
+ ldrsb r0, [r1, r0]
+ cmp r0, #0x14
+ bne _08044318
+ strb r3, [r1]
+ ldr r4, _08044334 @ =0x020314E0
+ ldr r0, [r4]
+ ldr r7, _0804433C @ =0x00000553
+ adds r0, r0, r7
+ adds r0, r0, r5
+ strb r3, [r0]
+_08044318:
+ ldr r1, _08044334 @ =0x020314E0
+ ldr r0, [r1]
+ adds r0, r0, r6
+ adds r0, r0, r5
+ ldrb r0, [r0]
+ lsls r0, r0, #0x18
+ asrs r0, r0, #0x18
+ cmp r0, #0x11
+ beq _0804432C
+ b _080448E4
+_0804432C:
+ ldr r0, _08044340 @ =0x00000135
+ bl sub_53DA8
+ b _080448E4
+ .align 2, 0
+_08044334: .4byte 0x020314E0
+_08044338: .4byte 0x0000055B
+_0804433C: .4byte 0x00000553
+_08044340: .4byte 0x00000135
+_08044344:
+ ldr r2, _0804442C @ =0x020314E0
+ ldr r6, [r2]
+ mov r3, sb
+ asrs r4, r3, #0x10
+ ldr r5, _08044430 @ =0x00000551
+ adds r0, r6, r5
+ adds r0, r0, r4
+ ldrb r0, [r0]
+ lsls r0, r0, #0x18
+ asrs r0, r0, #0x18
+ movs r2, #0
+ cmp r0, #0
+ bne _08044360
+ movs r2, #3
+_08044360:
+ ldr r1, _08044434 @ =0x086AFAC0
+ lsls r2, r2, #0x10
+ lsrs r0, r2, #0xd
+ adds r3, r0, r1
+ ldrh r0, [r3, #4]
+ lsls r5, r0, #0x10
+ movs r7, #0
+ mov ip, r1
+ mov sl, r2
+ cmp r5, #0
+ ble _0804439E
+ ldr r3, [r3]
+ lsls r1, r4, #1
+ ldr r2, _08044438 @ =0x00000566
+ adds r0, r6, r2
+ adds r0, r0, r1
+ movs r4, #0
+ ldrsh r1, [r0, r4]
+_08044384:
+ lsls r0, r7, #0x10
+ asrs r2, r0, #0x10
+ lsls r0, r2, #2
+ adds r0, r0, r3
+ movs r6, #2
+ ldrsh r0, [r0, r6]
+ cmp r0, r1
+ ble _0804439E
+ adds r0, r2, #1
+ lsls r0, r0, #0x10
+ lsrs r7, r0, #0x10
+ cmp r0, r5
+ blt _08044384
+_0804439E:
+ ldr r1, _0804442C @ =0x020314E0
+ ldr r0, [r1]
+ mov r2, sb
+ asrs r5, r2, #0x10
+ ldr r4, _0804443C @ =0x00000559
+ adds r0, r0, r4
+ adds r0, r0, r5
+ movs r3, #0
+ strb r7, [r0]
+ ldr r0, [r1]
+ ldr r6, _08044440 @ =0x00000553
+ adds r0, r0, r6
+ adds r0, r0, r5
+ movs r1, #0xb
+ strb r1, [r0]
+ ldr r7, _0804442C @ =0x020314E0
+ ldr r0, [r7]
+ ldr r1, _08044444 @ =0x0000055B
+ adds r0, r0, r1
+ adds r0, r0, r5
+ movs r1, #0x1d
+ strb r1, [r0]
+ ldr r2, [r7]
+ lsls r1, r5, #1
+ adds r6, #0xf
+ adds r0, r2, r6
+ adds r0, r0, r1
+ movs r7, #0
+ mov r8, r7
+ strh r3, [r0]
+ lsls r6, r5, #3
+ movs r0, #0xb0
+ lsls r0, r0, #3
+ adds r3, r2, r0
+ adds r3, r3, r6
+ mov r7, sl
+ lsrs r1, r7, #0xd
+ add r1, ip
+ adds r4, r2, r4
+ adds r4, r4, r5
+ movs r0, #0
+ ldrsb r0, [r4, r0]
+ ldr r1, [r1]
+ lsls r0, r0, #2
+ adds r0, r0, r1
+ movs r7, #0
+ ldrsh r0, [r0, r7]
+ lsls r0, r0, #8
+ str r0, [r3]
+ ldr r0, _08044448 @ =0x00000584
+ adds r2, r2, r0
+ adds r2, r2, r6
+ movs r0, #0
+ ldrsb r0, [r4, r0]
+ lsls r0, r0, #2
+ adds r0, r0, r1
+ movs r1, #2
+ ldrsh r0, [r0, r1]
+ lsls r0, r0, #8
+ str r0, [r2]
+ ldrb r0, [r4]
+ adds r0, #1
+ strb r0, [r4]
+ ldr r2, _0804442C @ =0x020314E0
+ ldr r0, [r2]
+ ldr r3, _0804444C @ =0x0000054F
+ adds r0, r0, r3
+ adds r0, r0, r5
+ mov r4, r8
+ strb r4, [r0]
+ b _080448E4
+ .align 2, 0
+_0804442C: .4byte 0x020314E0
+_08044430: .4byte 0x00000551
+_08044434: .4byte 0x086AFAC0
+_08044438: .4byte 0x00000566
+_0804443C: .4byte 0x00000559
+_08044440: .4byte 0x00000553
+_08044444: .4byte 0x0000055B
+_08044448: .4byte 0x00000584
+_0804444C: .4byte 0x0000054F
+_08044450:
+ ldr r5, _08044528 @ =0x020314E0
+ ldr r6, [r5]
+ mov r7, sb
+ asrs r4, r7, #0x10
+ ldr r0, _0804452C @ =0x00000551
+ mov sl, r0
+ adds r0, r6, r0
+ adds r0, r0, r4
+ ldrb r0, [r0]
+ lsls r0, r0, #0x18
+ asrs r0, r0, #0x18
+ movs r2, #0
+ cmp r0, #0
+ bne _0804446E
+ movs r2, #3
+_0804446E:
+ ldr r1, _08044530 @ =0x00000559
+ adds r0, r6, r1
+ adds r5, r0, r4
+ movs r3, #0
+ ldrsb r3, [r5, r3]
+ mov r8, r3
+ ldr r1, _08044534 @ =0x086AFAC0
+ lsls r0, r2, #3
+ adds r0, r0, r1
+ mov ip, r0
+ movs r7, #4
+ ldrsh r0, [r0, r7]
+ cmp r8, r0
+ bge _08044566
+ lsls r2, r4, #3
+ movs r0, #0xb0
+ lsls r0, r0, #3
+ adds r1, r6, r0
+ adds r1, r1, r2
+ mov r7, ip
+ ldr r3, [r7]
+ mov r7, r8
+ lsls r0, r7, #2
+ adds r0, r0, r3
+ movs r7, #0
+ ldrsh r0, [r0, r7]
+ lsls r0, r0, #8
+ str r0, [r1]
+ ldr r0, _08044538 @ =0x00000584
+ adds r1, r6, r0
+ adds r1, r1, r2
+ movs r0, #0
+ ldrsb r0, [r5, r0]
+ lsls r0, r0, #2
+ adds r0, r0, r3
+ movs r2, #2
+ ldrsh r0, [r0, r2]
+ lsls r0, r0, #8
+ str r0, [r1]
+ ldrb r0, [r5]
+ adds r0, #1
+ strb r0, [r5]
+ ldr r3, _08044528 @ =0x020314E0
+ ldr r2, [r3]
+ ldr r5, _08044530 @ =0x00000559
+ adds r0, r2, r5
+ adds r0, r0, r4
+ movs r1, #0
+ ldrsb r1, [r0, r1]
+ mov r6, ip
+ movs r7, #4
+ ldrsh r0, [r6, r7]
+ cmp r1, r0
+ bne _08044566
+ ldr r1, _0804453C @ =0x00000553
+ adds r0, r2, r1
+ adds r0, r0, r4
+ movs r1, #0xc
+ strb r1, [r0]
+ ldr r0, [r3]
+ movs r2, #0xa6
+ lsls r2, r2, #3
+ adds r1, r0, r2
+ adds r1, r1, r4
+ add r0, sl
+ adds r0, r0, r4
+ ldrb r0, [r0]
+ strb r0, [r1]
+ ldr r0, [r3]
+ ldr r3, _08044540 @ =0x00000536
+ adds r0, r0, r3
+ adds r0, r0, r4
+ movs r1, #2
+ strb r1, [r0]
+ ldr r5, _08044528 @ =0x020314E0
+ ldr r1, [r5]
+ mov r6, sl
+ adds r0, r1, r6
+ adds r0, r0, r4
+ ldrb r0, [r0]
+ lsls r0, r0, #0x18
+ asrs r0, r0, #0x18
+ cmp r0, #0
+ bne _08044544
+ lsls r0, r4, #2
+ adds r0, r1, r0
+ movs r7, #0xaf
+ lsls r7, r7, #3
+ adds r0, r0, r7
+ movs r1, #0xa0
+ lsls r1, r1, #1
+ b _08044550
+ .align 2, 0
+_08044528: .4byte 0x020314E0
+_0804452C: .4byte 0x00000551
+_08044530: .4byte 0x00000559
+_08044534: .4byte 0x086AFAC0
+_08044538: .4byte 0x00000584
+_0804453C: .4byte 0x00000553
+_08044540: .4byte 0x00000536
+_08044544:
+ lsls r0, r4, #2
+ adds r0, r1, r0
+ movs r1, #0xaf
+ lsls r1, r1, #3
+ adds r0, r0, r1
+ ldr r1, _080445A4 @ =0x0000FEC0
+_08044550:
+ strh r1, [r0]
+ ldr r2, _080445A8 @ =0x020314E0
+ ldr r0, [r2]
+ mov r3, sb
+ asrs r1, r3, #0xe
+ adds r0, r0, r1
+ ldr r4, _080445AC @ =0x0000057A
+ adds r0, r0, r4
+ movs r1, #0xe8
+ lsls r1, r1, #1
+ strh r1, [r0]
+_08044566:
+ ldr r5, _080445A8 @ =0x020314E0
+ ldr r0, [r5]
+ mov r6, sb
+ asrs r4, r6, #0x10
+ ldr r7, _080445B0 @ =0x0000055B
+ adds r3, r0, r7
+ adds r3, r3, r4
+ lsls r5, r4, #1
+ ldr r2, _080445B4 @ =0x00000562
+ adds r0, r0, r2
+ adds r0, r0, r5
+ ldrh r0, [r0]
+ movs r1, #0x1f
+ ands r0, r1
+ lsrs r0, r0, #2
+ adds r0, #0x1e
+ strb r0, [r3]
+ ldr r0, _080445A8 @ =0x020314E0
+ ldr r1, [r0]
+ adds r2, r1, r2
+ adds r2, r2, r5
+ ldrh r0, [r2]
+ adds r0, #1
+ movs r3, #0
+ strh r0, [r2]
+ ldr r2, _080445B8 @ =0x0000054F
+ adds r1, r1, r2
+ adds r1, r1, r4
+ strb r3, [r1]
+ b _080448E4
+ .align 2, 0
+_080445A4: .4byte 0x0000FEC0
+_080445A8: .4byte 0x020314E0
+_080445AC: .4byte 0x0000057A
+_080445B0: .4byte 0x0000055B
+_080445B4: .4byte 0x00000562
+_080445B8: .4byte 0x0000054F
+_080445BC:
+ ldr r3, _08044610 @ =0x020314E0
+ ldr r4, [r3]
+ mov r5, sb
+ asrs r6, r5, #0x10
+ lsls r5, r6, #3
+ movs r7, #0xb0
+ lsls r7, r7, #3
+ adds r3, r4, r7
+ adds r3, r3, r5
+ lsls r2, r6, #2
+ adds r2, r4, r2
+ movs r1, #0xaf
+ lsls r1, r1, #3
+ adds r0, r2, r1
+ movs r7, #0
+ ldrsh r1, [r0, r7]
+ ldr r0, [r3]
+ adds r0, r0, r1
+ str r0, [r3]
+ ldr r0, _08044614 @ =0x00000584
+ adds r1, r4, r0
+ adds r1, r1, r5
+ ldr r3, _08044618 @ =0x0000057A
+ adds r2, r2, r3
+ movs r5, #0
+ ldrsh r2, [r2, r5]
+ ldr r0, [r1]
+ adds r0, r0, r2
+ str r0, [r1]
+ ldr r7, _0804461C @ =0x0000055B
+ adds r3, r4, r7
+ adds r3, r3, r6
+ lsls r5, r6, #1
+ ldr r2, _08044620 @ =0x00000562
+ adds r4, r4, r2
+ adds r4, r4, r5
+ ldrh r0, [r4]
+ movs r1, #0x1f
+ ands r0, r1
+ lsrs r0, r0, #2
+ adds r0, #0x1e
+ b _08044676
+ .align 2, 0
+_08044610: .4byte 0x020314E0
+_08044614: .4byte 0x00000584
+_08044618: .4byte 0x0000057A
+_0804461C: .4byte 0x0000055B
+_08044620: .4byte 0x00000562
+_08044624:
+ ldr r3, _08044694 @ =0x020314E0
+ ldr r4, [r3]
+ mov r5, sb
+ asrs r6, r5, #0x10
+ lsls r5, r6, #3
+ movs r7, #0xb0
+ lsls r7, r7, #3
+ adds r3, r4, r7
+ adds r3, r3, r5
+ lsls r2, r6, #2
+ adds r2, r4, r2
+ movs r1, #0xaf
+ lsls r1, r1, #3
+ adds r0, r2, r1
+ movs r7, #0
+ ldrsh r1, [r0, r7]
+ ldr r0, [r3]
+ adds r0, r0, r1
+ str r0, [r3]
+ ldr r0, _08044698 @ =0x00000584
+ adds r1, r4, r0
+ adds r1, r1, r5
+ ldr r3, _0804469C @ =0x0000057A
+ adds r2, r2, r3
+ movs r5, #0
+ ldrsh r2, [r2, r5]
+ ldr r0, [r1]
+ adds r0, r0, r2
+ str r0, [r1]
+ ldr r7, _080446A0 @ =0x0000055B
+ adds r3, r4, r7
+ adds r3, r3, r6
+ lsls r5, r6, #1
+ ldr r2, _080446A4 @ =0x00000562
+ adds r4, r4, r2
+ adds r4, r4, r5
+ ldrh r0, [r4]
+ movs r1, #0x1f
+ ands r0, r1
+ lsrs r0, r0, #3
+ adds r0, #0x1a
+_08044676:
+ strb r0, [r3]
+ ldr r0, _08044694 @ =0x020314E0
+ ldr r1, [r0]
+ adds r2, r1, r2
+ adds r2, r2, r5
+ ldrh r0, [r2]
+ adds r0, #1
+ movs r3, #0
+ strh r0, [r2]
+ ldr r2, _080446A8 @ =0x0000054F
+ adds r1, r1, r2
+ adds r1, r1, r6
+ strb r3, [r1]
+ b _080448E4
+ .align 2, 0
+_08044694: .4byte 0x020314E0
+_08044698: .4byte 0x00000584
+_0804469C: .4byte 0x0000057A
+_080446A0: .4byte 0x0000055B
+_080446A4: .4byte 0x00000562
+_080446A8: .4byte 0x0000054F
+_080446AC:
+ ldr r3, _080446F0 @ =0x020314E0
+ ldr r1, [r3]
+ mov r5, sb
+ asrs r4, r5, #0x10
+ ldr r6, _080446F4 @ =0x00000557
+ adds r1, r1, r6
+ adds r1, r1, r4
+ movs r0, #0xff
+ strb r0, [r1]
+ ldr r5, [r3]
+ ldr r7, _080446F8 @ =0x0000054D
+ adds r0, r5, r7
+ adds r1, r0, r4
+ ldrb r2, [r1]
+ movs r0, #0
+ ldrsb r0, [r1, r0]
+ cmp r0, #0
+ ble _08044704
+ subs r0, r2, #1
+ strb r0, [r1]
+ ldr r0, [r3]
+ ldr r1, _080446FC @ =0x0000055B
+ adds r0, r0, r1
+ adds r0, r0, r4
+ movs r1, #0x26
+ strb r1, [r0]
+ ldr r0, [r3]
+ ldr r2, _08044700 @ =0x0000054B
+ adds r0, r0, r2
+ adds r0, r0, r4
+_080446E8:
+ movs r1, #1
+ strb r1, [r0]
+ b _080448E4
+ .align 2, 0
+_080446F0: .4byte 0x020314E0
+_080446F4: .4byte 0x00000557
+_080446F8: .4byte 0x0000054D
+_080446FC: .4byte 0x0000055B
+_08044700: .4byte 0x0000054B
+_08044704:
+ lsls r2, r4, #1
+ ldr r6, _08044748 @ =0x00000562
+ adds r0, r5, r6
+ adds r3, r0, r2
+ ldrh r1, [r3]
+ ldr r0, _0804474C @ =0x0000014D
+ cmp r1, r0
+ bls _08044716
+ b _080448C4
+_08044716:
+ cmp r1, #0xf
+ bhi _0804475C
+ ldr r3, _08044750 @ =0x0000055B
+ adds r0, r5, r3
+ adds r0, r0, r4
+ movs r1, #0x15
+ strb r1, [r0]
+ ldr r5, _08044754 @ =0x020314E0
+ ldr r0, [r5]
+ adds r0, r0, r6
+ adds r0, r0, r2
+ ldrh r0, [r0]
+ cmp r0, #1
+ bne _0804473A
+ movs r0, #0x9f
+ lsls r0, r0, #1
+ bl sub_53DA8
+_0804473A:
+ ldr r6, _08044754 @ =0x020314E0
+ ldr r0, [r6]
+ ldr r7, _08044758 @ =0x0000054F
+ adds r0, r0, r7
+ adds r0, r0, r4
+ b _08044824
+ .align 2, 0
+_08044748: .4byte 0x00000562
+_0804474C: .4byte 0x0000014D
+_08044750: .4byte 0x0000055B
+_08044754: .4byte 0x020314E0
+_08044758: .4byte 0x0000054F
+_0804475C:
+ ldr r0, _0804479C @ =0x0000013B
+ cmp r1, r0
+ bhi _08044840
+ ldr r1, _080447A0 @ =0x0000054B
+ adds r0, r5, r1
+ adds r0, r0, r4
+ ldrb r0, [r0]
+ lsls r0, r0, #0x18
+ asrs r0, r0, #0x18
+ cmp r0, #0
+ bne _080447B8
+ lsls r0, r4, #3
+ ldr r2, _080447A4 @ =0x00000584
+ adds r1, r5, r2
+ adds r1, r1, r0
+ ldr r0, [r1]
+ adds r0, #0x40
+ str r0, [r1]
+ ldrh r0, [r3]
+ movs r1, #0x13
+ bl sub_558B0
+ lsls r0, r0, #0x10
+ lsrs r0, r0, #0x10
+ cmp r0, #9
+ bhi _080447AC
+ ldr r3, _080447A8 @ =0x0000055B
+ adds r0, r5, r3
+ adds r0, r0, r4
+ movs r1, #0x16
+ b _080447F0
+ .align 2, 0
+_0804479C: .4byte 0x0000013B
+_080447A0: .4byte 0x0000054B
+_080447A4: .4byte 0x00000584
+_080447A8: .4byte 0x0000055B
+_080447AC:
+ ldr r6, _080447B4 @ =0x0000055B
+ adds r0, r5, r6
+ b _080447EC
+ .align 2, 0
+_080447B4: .4byte 0x0000055B
+_080447B8:
+ lsls r0, r4, #3
+ ldr r7, _080447E0 @ =0x00000584
+ adds r1, r5, r7
+ adds r1, r1, r0
+ ldr r0, [r1]
+ adds r0, #0x80
+ str r0, [r1]
+ ldrh r0, [r3]
+ movs r1, #0xa
+ bl sub_558B0
+ lsls r0, r0, #0x10
+ lsrs r0, r0, #0x10
+ cmp r0, #4
+ bhi _080447E8
+ ldr r1, _080447E4 @ =0x0000055B
+ adds r0, r5, r1
+ adds r0, r0, r4
+ movs r1, #0x16
+ b _080447F0
+ .align 2, 0
+_080447E0: .4byte 0x00000584
+_080447E4: .4byte 0x0000055B
+_080447E8:
+ ldr r2, _0804482C @ =0x0000055B
+ adds r0, r5, r2
+_080447EC:
+ adds r0, r0, r4
+ movs r1, #0x17
+_080447F0:
+ strb r1, [r0]
+ ldr r4, _08044830 @ =0x020314E0
+ ldr r3, [r4]
+ mov r5, sb
+ asrs r2, r5, #0x10
+ lsls r1, r2, #3
+ ldr r6, _08044834 @ =0x00000584
+ adds r0, r3, r6
+ adds r0, r0, r1
+ ldr r1, [r0]
+ movs r0, #0xac
+ lsls r0, r0, #8
+ cmp r1, r0
+ ble _0804481A
+ lsls r0, r2, #1
+ ldr r7, _08044838 @ =0x00000562
+ adds r1, r3, r7
+ adds r1, r1, r0
+ movs r0, #0x9e
+ lsls r0, r0, #1
+ strh r0, [r1]
+_0804481A:
+ ldr r1, _08044830 @ =0x020314E0
+ ldr r0, [r1]
+ ldr r3, _0804483C @ =0x0000054F
+ adds r0, r0, r3
+ adds r0, r0, r2
+_08044824:
+ movs r1, #3
+ strb r1, [r0]
+ b _080448A0
+ .align 2, 0
+_0804482C: .4byte 0x0000055B
+_08044830: .4byte 0x020314E0
+_08044834: .4byte 0x00000584
+_08044838: .4byte 0x00000562
+_0804483C: .4byte 0x0000054F
+_08044840:
+ lsls r0, r4, #3
+ ldr r6, _0804486C @ =0x00000584
+ adds r1, r5, r6
+ adds r1, r1, r0
+ ldr r0, [r1]
+ adds r0, #0x30
+ str r0, [r1]
+ ldr r7, _08044870 @ =0xFFFFFEC4
+ adds r0, r7, #0
+ ldrh r3, [r3]
+ adds r0, r0, r3
+ lsls r0, r0, #0x10
+ lsrs r2, r0, #0x10
+ asrs r0, r0, #0x10
+ cmp r0, #9
+ bgt _08044878
+ ldr r1, _08044874 @ =0x0000055B
+ adds r0, r5, r1
+ adds r0, r0, r4
+ movs r1, #0x18
+ b _08044880
+ .align 2, 0
+_0804486C: .4byte 0x00000584
+_08044870: .4byte 0xFFFFFEC4
+_08044874: .4byte 0x0000055B
+_08044878:
+ ldr r3, _080448B4 @ =0x0000055B
+ adds r0, r5, r3
+ adds r0, r0, r4
+ movs r1, #0x19
+_08044880:
+ strb r1, [r0]
+ cmp r2, #1
+ bne _0804488E
+ movs r0, #0x9b
+ lsls r0, r0, #1
+ bl sub_53DA8
+_0804488E:
+ ldr r2, _080448B8 @ =0x020314E0
+ ldr r1, [r2]
+ mov r4, sb
+ asrs r0, r4, #0x10
+ ldr r5, _080448BC @ =0x0000054F
+ adds r1, r1, r5
+ adds r1, r1, r0
+ movs r0, #0
+ strb r0, [r1]
+_080448A0:
+ ldr r6, _080448B8 @ =0x020314E0
+ ldr r0, [r6]
+ mov r7, sb
+ asrs r1, r7, #0xf
+ ldr r2, _080448C0 @ =0x00000562
+ adds r0, r0, r2
+ adds r0, r0, r1
+ ldrh r1, [r0]
+ adds r1, #1
+ b _080448E2
+ .align 2, 0
+_080448B4: .4byte 0x0000055B
+_080448B8: .4byte 0x020314E0
+_080448BC: .4byte 0x0000054F
+_080448C0: .4byte 0x00000562
+_080448C4:
+ ldr r3, _08044A9C @ =0x00000553
+ adds r0, r5, r3
+ adds r0, r0, r4
+ movs r1, #0
+ strb r1, [r0]
+ ldr r5, _08044AA0 @ =0x020314E0
+ ldr r0, [r5]
+ ldr r6, _08044AA4 @ =0x0000055B
+ adds r0, r0, r6
+ adds r0, r0, r4
+ strb r1, [r0]
+ ldr r0, [r5]
+ ldr r7, _08044AA8 @ =0x00000562
+ adds r0, r0, r7
+ adds r0, r0, r2
+_080448E2:
+ strh r1, [r0]
+_080448E4:
+ ldr r1, [sp]
+ lsls r0, r1, #0x10
+ movs r2, #0x80
+ lsls r2, r2, #9
+ adds r0, r0, r2
+ lsrs r3, r0, #0x10
+ str r3, [sp]
+ asrs r0, r0, #0x10
+ cmp r0, #1
+ bgt _080448FC
+ bl _080438AA
+_080448FC:
+ movs r4, #0
+ str r4, [sp]
+_08044900:
+ ldr r5, [sp]
+ lsls r1, r5, #0x10
+ asrs r4, r1, #0x10
+ movs r0, #0xb8
+ muls r0, r4, r0
+ ldr r6, _08044AAC @ =0x0200BDC8
+ adds r0, r0, r6
+ mov r8, r0
+ ldrh r0, [r0]
+ mov sb, r1
+ cmp r0, #0
+ bne _0804491A
+ b _08044D12
+_0804491A:
+ ldr r7, _08044AA0 @ =0x020314E0
+ ldr r1, [r7]
+ ldr r0, _08044AB0 @ =0x00000555
+ adds r3, r1, r0
+ adds r3, r3, r4
+ movs r0, #0
+ ldrsb r0, [r3, r0]
+ lsls r0, r0, #0x10
+ lsrs r0, r0, #0x10
+ str r0, [sp, #4]
+ ldr r2, _08044AA4 @ =0x0000055B
+ adds r0, r1, r2
+ adds r0, r0, r4
+ ldrb r0, [r0]
+ lsls r0, r0, #0x18
+ asrs r0, r0, #0x18
+ lsls r2, r0, #1
+ adds r2, r2, r0
+ lsls r2, r2, #1
+ ldr r0, _08044AB4 @ =0x086AFB2C
+ adds r0, #4
+ adds r2, r2, r0
+ ldr r5, _08044AB8 @ =0x00000551
+ adds r1, r1, r5
+ adds r1, r1, r4
+ movs r0, #0
+ ldrsb r0, [r1, r0]
+ movs r1, #1
+ subs r1, r1, r0
+ lsls r0, r1, #4
+ subs r0, r0, r1
+ lsls r0, r0, #1
+ ldrb r2, [r2]
+ adds r0, r0, r2
+ strb r0, [r3]
+ ldr r2, [r7]
+ ldr r6, _08044AA4 @ =0x0000055B
+ adds r0, r2, r6
+ adds r0, r0, r4
+ movs r1, #0
+ ldrsb r1, [r0, r1]
+ lsls r0, r1, #1
+ adds r0, r0, r1
+ lsls r0, r0, #1
+ ldr r7, _08044AB4 @ =0x086AFB2C
+ adds r0, r0, r7
+ ldrh r5, [r0]
+ lsls r3, r4, #3
+ movs r1, #0xb0
+ lsls r1, r1, #3
+ adds r0, r2, r1
+ adds r0, r0, r3
+ ldr r0, [r0]
+ cmp r0, #0
+ bge _0804498A
+ adds r0, #0xff
+_0804498A:
+ asrs r1, r0, #8
+ adds r0, r2, #0
+ adds r0, #0x58
+ ldrh r0, [r0]
+ adds r0, #0xc
+ subs r1, r1, r0
+ mov r6, r8
+ strh r1, [r6, #2]
+ ldr r7, _08044ABC @ =0x00000584
+ adds r0, r2, r7
+ adds r0, r0, r3
+ ldr r0, [r0]
+ cmp r0, #0
+ bge _080449A8
+ adds r0, #0xff
+_080449A8:
+ asrs r1, r0, #8
+ adds r0, r2, #0
+ adds r0, #0x5a
+ ldrh r0, [r0]
+ adds r0, #0xe
+ subs r1, r1, r0
+ mov r0, r8
+ strh r1, [r0, #4]
+ ldr r2, [sp, #4]
+ lsls r1, r2, #0x10
+ asrs r1, r1, #0x10
+ lsls r0, r1, #3
+ adds r0, r0, r1
+ lsls r0, r0, #5
+ ldr r1, _08044AC0 @ =0x084B046C
+ adds r0, r0, r1
+ ldr r6, _08044AC4 @ =0x040000D4
+ str r0, [r6]
+ adds r0, r3, r4
+ lsls r0, r0, #5
+ ldr r7, _08044AC8 @ =0x06011CA0
+ adds r0, r0, r7
+ str r0, [r6, #4]
+ ldr r0, _08044ACC @ =0x80000090
+ str r0, [r6, #8]
+ ldr r0, [r6, #8]
+ movs r7, #0
+ lsls r0, r5, #0x10
+ ldr r1, _08044AD0 @ =0x03005000
+ mov ip, r1
+ adds r6, r4, #0
+ asrs r0, r0, #0x10
+ mov sl, r0
+_080449EA:
+ lsls r0, r7, #0x10
+ asrs r3, r0, #0x10
+ lsls r0, r3, #3
+ adds r0, #8
+ mov r2, r8
+ adds r5, r2, r0
+ ldrh r2, [r5]
+ lsls r2, r2, #3
+ add r2, ip
+ mov r4, sl
+ lsls r1, r4, #1
+ add r1, sl
+ lsls r1, r1, #3
+ lsls r0, r3, #1
+ adds r0, r0, r3
+ lsls r0, r0, #1
+ ldr r4, _08044AD4 @ =0x086B56D8
+ adds r0, r0, r4
+ adds r1, r1, r0
+ ldrh r0, [r1]
+ strh r0, [r2]
+ adds r1, #2
+ adds r2, #2
+ ldrh r0, [r1]
+ strh r0, [r2]
+ ldrh r0, [r1, #2]
+ strh r0, [r2, #2]
+ ldr r0, _08044AA0 @ =0x020314E0
+ ldr r1, [r0]
+ ldr r2, _08044AB8 @ =0x00000551
+ adds r0, r1, r2
+ adds r0, r0, r6
+ ldrb r0, [r0]
+ lsls r0, r0, #0x18
+ asrs r0, r0, #0x18
+ cmp r0, #0
+ bne _08044AE8
+ cmp r3, #0
+ bne _08044A5E
+ ldr r3, _08044AD8 @ =0x0000055D
+ adds r1, r1, r3
+ adds r1, r1, r6
+ ldrh r0, [r5]
+ lsls r0, r0, #3
+ add r0, ip
+ ldrb r0, [r0, #2]
+ rsbs r0, r0, #0
+ strb r0, [r1]
+ ldr r4, _08044AA0 @ =0x020314E0
+ ldr r1, [r4]
+ ldr r0, _08044ADC @ =0x0000055F
+ adds r1, r1, r0
+ adds r1, r1, r6
+ ldrh r0, [r5]
+ lsls r0, r0, #3
+ add r0, ip
+ ldrb r0, [r0]
+ strb r0, [r1]
+_08044A5E:
+ ldrh r3, [r5]
+ lsls r3, r3, #3
+ add r3, ip
+ ldrh r4, [r3, #2]
+ lsls r1, r4, #0x17
+ lsrs r1, r1, #0x17
+ mov r2, r8
+ movs r0, #2
+ ldrsh r2, [r2, r0]
+ str r2, [sp, #8]
+ ldr r2, _08044AA0 @ =0x020314E0
+ ldr r0, [r2]
+ ldr r2, _08044AD8 @ =0x0000055D
+ adds r0, r0, r2
+ adds r0, r0, r6
+ ldrb r0, [r0]
+ lsls r0, r0, #0x18
+ asrs r0, r0, #0x18
+ lsls r0, r0, #1
+ ldr r2, [sp, #8]
+ adds r0, r2, r0
+ adds r1, r1, r0
+ ldr r2, _08044AE0 @ =0x000001FF
+ adds r0, r2, #0
+ ands r1, r0
+ ldr r0, _08044AE4 @ =0xFFFFFE00
+ ands r0, r4
+ orrs r0, r1
+ strh r0, [r3, #2]
+ b _08044B36
+ .align 2, 0
+_08044A9C: .4byte 0x00000553
+_08044AA0: .4byte 0x020314E0
+_08044AA4: .4byte 0x0000055B
+_08044AA8: .4byte 0x00000562
+_08044AAC: .4byte 0x0200BDC8
+_08044AB0: .4byte 0x00000555
+_08044AB4: .4byte 0x086AFB2C
+_08044AB8: .4byte 0x00000551
+_08044ABC: .4byte 0x00000584
+_08044AC0: .4byte 0x084B046C
+_08044AC4: .4byte 0x040000D4
+_08044AC8: .4byte 0x06011CA0
+_08044ACC: .4byte 0x80000090
+_08044AD0: .4byte 0x03005000
+_08044AD4: .4byte 0x086B56D8
+_08044AD8: .4byte 0x0000055D
+_08044ADC: .4byte 0x0000055F
+_08044AE0: .4byte 0x000001FF
+_08044AE4: .4byte 0xFFFFFE00
+_08044AE8:
+ cmp r3, #0
+ bne _08044B10
+ ldr r3, _08044C24 @ =0x0000055D
+ adds r1, r1, r3
+ adds r1, r1, r6
+ ldrh r0, [r5]
+ lsls r0, r0, #3
+ add r0, ip
+ ldrh r0, [r0, #2]
+ strb r0, [r1]
+ ldr r4, _08044C28 @ =0x020314E0
+ ldr r1, [r4]
+ ldr r0, _08044C2C @ =0x0000055F
+ adds r1, r1, r0
+ adds r1, r1, r6
+ ldrh r0, [r5]
+ lsls r0, r0, #3
+ add r0, ip
+ ldrb r0, [r0]
+ strb r0, [r1]
+_08044B10:
+ ldrh r2, [r5]
+ lsls r2, r2, #3
+ add r2, ip
+ ldrh r3, [r2, #2]
+ lsls r1, r3, #0x17
+ lsrs r1, r1, #0x17
+ str r1, [sp, #0xc]
+ mov r1, r8
+ movs r4, #2
+ ldrsh r0, [r1, r4]
+ ldr r4, [sp, #0xc]
+ adds r1, r4, r0
+ ldr r4, _08044C30 @ =0x000001FF
+ adds r0, r4, #0
+ ands r1, r0
+ ldr r0, _08044C34 @ =0xFFFFFE00
+ ands r0, r3
+ orrs r0, r1
+ strh r0, [r2, #2]
+_08044B36:
+ ldrh r1, [r5]
+ lsls r1, r1, #3
+ add r1, ip
+ mov r2, r8
+ ldrb r0, [r2, #4]
+ ldrb r3, [r1]
+ adds r0, r0, r3
+ strb r0, [r1]
+ ldrh r2, [r5]
+ lsls r2, r2, #3
+ add r2, ip
+ ldrh r3, [r2, #4]
+ lsls r1, r3, #0x16
+ lsrs r1, r1, #0x16
+ lsls r0, r6, #3
+ adds r0, r0, r6
+ adds r1, r1, r0
+ ldr r4, _08044C38 @ =0x000003FF
+ adds r0, r4, #0
+ ands r1, r0
+ ldr r0, _08044C3C @ =0xFFFFFC00
+ ands r0, r3
+ orrs r0, r1
+ strh r0, [r2, #4]
+ lsls r0, r7, #0x10
+ movs r5, #0x80
+ lsls r5, r5, #9
+ adds r0, r0, r5
+ lsrs r7, r0, #0x10
+ asrs r0, r0, #0x10
+ cmp r0, #3
+ bgt _08044B78
+ b _080449EA
+_08044B78:
+ ldr r6, _08044C28 @ =0x020314E0
+ ldr r2, [r6]
+ mov r7, sb
+ asrs r3, r7, #0x10
+ lsls r0, r3, #2
+ adds r6, r2, r0
+ lsls r4, r3, #3
+ movs r1, #0xb0
+ lsls r1, r1, #3
+ adds r0, r2, r1
+ adds r0, r0, r4
+ ldr r0, [r0]
+ cmp r0, #0
+ bge _08044B96
+ adds r0, #0xff
+_08044B96:
+ asrs r1, r0, #8
+ ldr r5, _08044C24 @ =0x0000055D
+ adds r0, r2, r5
+ adds r0, r0, r3
+ ldrb r0, [r0]
+ lsls r0, r0, #0x18
+ asrs r0, r0, #0x18
+ subs r0, #0x10
+ adds r1, r1, r0
+ lsls r1, r1, #1
+ movs r7, #0xae
+ lsls r7, r7, #3
+ adds r0, r6, r7
+ strh r1, [r0]
+ ldr r1, _08044C40 @ =0x00000584
+ adds r0, r2, r1
+ adds r7, r0, r4
+ ldr r1, [r7]
+ cmp r1, #0
+ bge _08044BC0
+ adds r1, #0xff
+_08044BC0:
+ asrs r1, r1, #8
+ ldr r4, _08044C2C @ =0x0000055F
+ adds r0, r2, r4
+ adds r5, r0, r3
+ movs r0, #0
+ ldrsb r0, [r5, r0]
+ subs r0, #0x12
+ adds r1, r1, r0
+ lsls r1, r1, #1
+ adds r4, #0x13
+ adds r0, r6, r4
+ strh r1, [r0]
+ lsls r1, r3, #1
+ ldr r6, _08044C44 @ =0x00000566
+ adds r0, r2, r6
+ adds r4, r0, r1
+ ldr r0, [r7]
+ cmp r0, #0
+ bge _08044BE8
+ adds r0, #0xff
+_08044BE8:
+ asrs r1, r0, #8
+ movs r0, #0
+ ldrsb r0, [r5, r0]
+ adds r0, r0, r1
+ strh r0, [r4]
+ movs r0, #0xb8
+ muls r0, r3, r0
+ ldr r7, _08044C48 @ =0x0200BF38
+ adds r0, r0, r7
+ mov r8, r0
+ ldr r1, [sp, #4]
+ lsls r0, r1, #0x10
+ asrs r0, r0, #0x10
+ cmp r0, #0xc
+ beq _08044C0A
+ cmp r0, #0x2a
+ bne _08044C50
+_08044C0A:
+ ldr r4, _08044C4C @ =0x0000055B
+ adds r0, r2, r4
+ adds r0, r0, r3
+ ldrb r0, [r0]
+ lsls r0, r0, #0x18
+ asrs r0, r0, #0x18
+ movs r5, #9
+ str r5, [sp, #4]
+ cmp r0, #0xb
+ bne _08044C54
+ movs r6, #8
+ str r6, [sp, #4]
+ b _08044C54
+ .align 2, 0
+_08044C24: .4byte 0x0000055D
+_08044C28: .4byte 0x020314E0
+_08044C2C: .4byte 0x0000055F
+_08044C30: .4byte 0x000001FF
+_08044C34: .4byte 0xFFFFFE00
+_08044C38: .4byte 0x000003FF
+_08044C3C: .4byte 0xFFFFFC00
+_08044C40: .4byte 0x00000584
+_08044C44: .4byte 0x00000566
+_08044C48: .4byte 0x0200BF38
+_08044C4C: .4byte 0x0000055B
+_08044C50:
+ movs r7, #0
+ str r7, [sp, #4]
+_08044C54:
+ ldr r0, _08044D34 @ =0x020314E0
+ ldr r2, [r0]
+ mov r1, sb
+ asrs r4, r1, #0x10
+ lsls r3, r4, #3
+ movs r5, #0xb0
+ lsls r5, r5, #3
+ adds r0, r2, r5
+ adds r0, r0, r3
+ ldr r0, [r0]
+ cmp r0, #0
+ bge _08044C6E
+ adds r0, #0xff
+_08044C6E:
+ asrs r1, r0, #8
+ adds r0, r2, #0
+ adds r0, #0x58
+ ldrh r0, [r0]
+ adds r0, #0xc
+ subs r1, r1, r0
+ mov r6, r8
+ strh r1, [r6, #2]
+ ldr r7, _08044D38 @ =0x00000584
+ adds r0, r2, r7
+ adds r0, r0, r3
+ ldr r0, [r0]
+ cmp r0, #0
+ bge _08044C8C
+ adds r0, #0xff
+_08044C8C:
+ asrs r1, r0, #8
+ adds r0, r2, #0
+ adds r0, #0x5a
+ ldrh r0, [r0]
+ adds r0, #0xe
+ subs r1, r1, r0
+ mov r0, r8
+ strh r1, [r0, #4]
+ ldr r2, [sp, #4]
+ lsls r1, r2, #0x10
+ asrs r1, r1, #0x10
+ lsls r0, r1, #3
+ adds r0, r0, r1
+ lsls r0, r0, #5
+ ldr r5, _08044D3C @ =0x084B046C
+ adds r0, r0, r5
+ ldr r6, _08044D40 @ =0x040000D4
+ str r0, [r6]
+ adds r0, r3, r4
+ lsls r0, r0, #5
+ ldr r7, _08044D44 @ =0x06011EE0
+ adds r0, r0, r7
+ str r0, [r6, #4]
+ ldr r0, _08044D48 @ =0x80000090
+ str r0, [r6, #8]
+ ldr r0, [r6, #8]
+ movs r7, #0
+ ldr r6, _08044D4C @ =0x03005000
+ ldr r0, _08044D50 @ =0xFFFFFE00
+ mov sl, r0
+_08044CC8:
+ lsls r3, r7, #0x10
+ asrs r3, r3, #0x10
+ lsls r0, r3, #3
+ adds r0, #8
+ mov r1, r8
+ adds r5, r1, r0
+ ldrh r2, [r5]
+ lsls r2, r2, #3
+ adds r2, r2, r6
+ movs r4, #2
+ ldrsh r1, [r5, r4]
+ mov r7, r8
+ movs r4, #2
+ ldrsh r0, [r7, r4]
+ adds r1, r1, r0
+ ldr r7, _08044D54 @ =0x000001FF
+ adds r0, r7, #0
+ ands r1, r0
+ ldrh r4, [r2, #2]
+ mov r0, sl
+ ands r0, r4
+ orrs r0, r1
+ strh r0, [r2, #2]
+ ldrh r1, [r5]
+ lsls r1, r1, #3
+ adds r1, r1, r6
+ mov r2, r8
+ ldrb r0, [r2, #4]
+ ldrb r5, [r5, #4]
+ adds r0, r0, r5
+ strb r0, [r1]
+ adds r3, #1
+ lsls r3, r3, #0x10
+ lsrs r7, r3, #0x10
+ asrs r3, r3, #0x10
+ cmp r3, #3
+ ble _08044CC8
+_08044D12:
+ movs r0, #0x80
+ lsls r0, r0, #9
+ add r0, sb
+ lsrs r3, r0, #0x10
+ str r3, [sp]
+ asrs r0, r0, #0x10
+ cmp r0, #1
+ bgt _08044D24
+ b _08044900
+_08044D24:
+ add sp, #0x10
+ pop {r3, r4, r5}
+ mov r8, r3
+ mov sb, r4
+ mov sl, r5
+ pop {r4, r5, r6, r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08044D34: .4byte 0x020314E0
+_08044D38: .4byte 0x00000584
+_08044D3C: .4byte 0x084B046C
+_08044D40: .4byte 0x040000D4
+_08044D44: .4byte 0x06011EE0
+_08044D48: .4byte 0x80000090
+_08044D4C: .4byte 0x03005000
+_08044D50: .4byte 0xFFFFFE00
+_08044D54: .4byte 0x000001FF
+
+ thumb_func_start sub_44D58
+sub_44D58: @ 0x08044D58
+ push {r4, r5, r6, r7, lr}
+ movs r0, #0
+ mov ip, r0
+ ldr r6, _08044EE4 @ =0x0200C0A8
+ ldrh r0, [r6]
+ ldr r7, _08044EE8 @ =0x020314E0
+ cmp r0, #0
+ beq _08044DE8
+ ldr r0, [r7]
+ adds r0, #0x58
+ ldrh r1, [r0]
+ movs r0, #0x68
+ subs r0, r0, r1
+ strh r0, [r6, #2]
+ ldr r0, [r7]
+ adds r0, #0x5a
+ ldrh r1, [r0]
+ movs r0, #0x56
+ subs r0, r0, r1
+ strh r0, [r6, #4]
+ ldr r0, [r7]
+ ldr r2, _08044EEC @ =0x00000542
+ adds r1, r0, r2
+ ldrh r0, [r1]
+ cmp r0, #0x15
+ bhi _08044D9C
+ ldr r0, _08044EF0 @ =0x08137D60
+ ldrh r1, [r1]
+ adds r1, r1, r0
+ movs r0, #0
+ ldrsb r0, [r1, r0]
+ lsls r0, r0, #0x10
+ lsrs r0, r0, #0x10
+ mov ip, r0
+_08044D9C:
+ ldr r2, _08044EF4 @ =0x040000D4
+ mov r3, ip
+ lsls r0, r3, #0x10
+ asrs r0, r0, #7
+ ldr r1, _08044EF8 @ =0x084AF9EC
+ adds r0, r0, r1
+ str r0, [r2]
+ ldr r0, _08044EFC @ =0x06010920
+ str r0, [r2, #4]
+ ldr r0, _08044F00 @ =0x80000100
+ str r0, [r2, #8]
+ ldr r0, [r2, #8]
+ adds r5, r6, #0
+ adds r5, #8
+ ldr r4, _08044F04 @ =0x03005000
+ ldrh r2, [r6, #8]
+ lsls r2, r2, #3
+ adds r2, r2, r4
+ movs r0, #2
+ ldrsh r1, [r5, r0]
+ movs r3, #2
+ ldrsh r0, [r6, r3]
+ adds r1, r1, r0
+ ldr r3, _08044F08 @ =0x000001FF
+ adds r0, r3, #0
+ ands r1, r0
+ ldrh r3, [r2, #2]
+ ldr r0, _08044F0C @ =0xFFFFFE00
+ ands r0, r3
+ orrs r0, r1
+ strh r0, [r2, #2]
+ ldrh r1, [r6, #8]
+ lsls r1, r1, #3
+ adds r1, r1, r4
+ ldrb r0, [r6, #4]
+ ldrb r5, [r5, #4]
+ adds r0, r0, r5
+ strb r0, [r1]
+_08044DE8:
+ ldr r6, _08044F10 @ =0x0200BBA0
+ ldrh r0, [r6]
+ cmp r0, #0
+ beq _08044E72
+ ldr r0, [r7]
+ adds r0, #0x58
+ ldrh r1, [r0]
+ movs r0, #0x68
+ subs r0, r0, r1
+ strh r0, [r6, #2]
+ ldr r0, [r7]
+ adds r0, #0x5a
+ ldrh r1, [r0]
+ movs r0, #0x5e
+ subs r0, r0, r1
+ strh r0, [r6, #4]
+ ldr r2, _08044EF4 @ =0x040000D4
+ mov r0, ip
+ lsls r1, r0, #0x10
+ asrs r1, r1, #0x10
+ lsls r0, r1, #1
+ adds r0, r0, r1
+ lsls r0, r0, #7
+ ldr r1, _08044F14 @ =0x084AFFEC
+ adds r0, r0, r1
+ str r0, [r2]
+ ldr r0, _08044F18 @ =0x06010B20
+ str r0, [r2, #4]
+ ldr r0, _08044F1C @ =0x800000C0
+ str r0, [r2, #8]
+ ldr r0, [r2, #8]
+ movs r0, #0
+ ldr r7, _08044F04 @ =0x03005000
+ ldr r1, _08044F0C @ =0xFFFFFE00
+ mov ip, r1
+_08044E2E:
+ lsls r4, r0, #0x10
+ asrs r4, r4, #0x10
+ lsls r0, r4, #3
+ adds r0, #8
+ adds r5, r6, r0
+ ldrh r3, [r5]
+ lsls r3, r3, #3
+ adds r3, r3, r7
+ movs r2, #2
+ ldrsh r1, [r5, r2]
+ movs r2, #2
+ ldrsh r0, [r6, r2]
+ adds r1, r1, r0
+ ldr r2, _08044F08 @ =0x000001FF
+ adds r0, r2, #0
+ ands r1, r0
+ ldrh r2, [r3, #2]
+ mov r0, ip
+ ands r0, r2
+ orrs r0, r1
+ strh r0, [r3, #2]
+ ldrh r1, [r5]
+ lsls r1, r1, #3
+ adds r1, r1, r7
+ ldrb r0, [r6, #4]
+ ldrb r5, [r5, #4]
+ adds r0, r0, r5
+ strb r0, [r1]
+ adds r4, #1
+ lsls r4, r4, #0x10
+ lsrs r0, r4, #0x10
+ asrs r4, r4, #0x10
+ cmp r4, #1
+ ble _08044E2E
+_08044E72:
+ ldr r4, _08044EE8 @ =0x020314E0
+ ldr r0, [r4]
+ movs r1, #0x13
+ ldrsb r1, [r0, r1]
+ cmp r1, #1
+ bne _08044E88
+ ldr r0, _08044F20 @ =0x0200B0C0
+ movs r3, #0xae
+ lsls r3, r3, #4
+ adds r0, r0, r3
+ strh r1, [r0]
+_08044E88:
+ ldr r1, [r4]
+ movs r0, #0x13
+ ldrsb r0, [r1, r0]
+ cmp r0, #1
+ bgt _08044EC8
+ ldr r0, _08044F20 @ =0x0200B0C0
+ ldrb r0, [r0, #0xf]
+ cmp r0, #0
+ bne _08044EC8
+ ldr r5, _08044EEC @ =0x00000542
+ adds r0, r1, r5
+ ldrh r0, [r0]
+ cmp r0, #0
+ beq _08044EC8
+ cmp r0, #0x15
+ bne _08044EB0
+ ldr r0, _08044F24 @ =0x02032F20
+ ldr r1, _08044F28 @ =0x086A2D94
+ bl sub_5450C
+_08044EB0:
+ ldr r1, [r4]
+ adds r1, r1, r5
+ ldrh r0, [r1]
+ subs r0, #1
+ strh r0, [r1]
+ lsls r0, r0, #0x10
+ cmp r0, #0
+ bne _08044EC8
+ ldr r0, _08044F24 @ =0x02032F20
+ ldr r1, _08044F2C @ =0x086A2E70
+ bl sub_5450C
+_08044EC8:
+ ldr r0, _08044EE8 @ =0x020314E0
+ ldr r0, [r0]
+ adds r0, #0x7e
+ ldrh r0, [r0]
+ cmp r0, #0
+ beq _08044F34
+ ldr r0, _08044F20 @ =0x0200B0C0
+ ldrb r0, [r0, #5]
+ cmp r0, #0
+ bne _08044F30
+ bl sub_44F3C
+ b _08044F34
+ .align 2, 0
+_08044EE4: .4byte 0x0200C0A8
+_08044EE8: .4byte 0x020314E0
+_08044EEC: .4byte 0x00000542
+_08044EF0: .4byte 0x08137D60
+_08044EF4: .4byte 0x040000D4
+_08044EF8: .4byte 0x084AF9EC
+_08044EFC: .4byte 0x06010920
+_08044F00: .4byte 0x80000100
+_08044F04: .4byte 0x03005000
+_08044F08: .4byte 0x000001FF
+_08044F0C: .4byte 0xFFFFFE00
+_08044F10: .4byte 0x0200BBA0
+_08044F14: .4byte 0x084AFFEC
+_08044F18: .4byte 0x06010B20
+_08044F1C: .4byte 0x800000C0
+_08044F20: .4byte 0x0200B0C0
+_08044F24: .4byte 0x02032F20
+_08044F28: .4byte 0x086A2D94
+_08044F2C: .4byte 0x086A2E70
+_08044F30:
+ bl sub_45164
+_08044F34:
+ pop {r4, r5, r6, r7}
+ pop {r0}
+ bx r0
+
+ thumb_func_start sub_44F3C
+sub_44F3C: @ 0x08044F3C
+ push {r4, r5, r6, r7, lr}
+ mov r7, sb
+ mov r6, r8
+ push {r6, r7}
+ ldr r6, _08045010 @ =0x0200C160
+ ldrh r0, [r6]
+ ldr r1, _08045014 @ =0x020314E0
+ mov sb, r1
+ ldr r2, _08045018 @ =0x086AFC16
+ mov r8, r2
+ cmp r0, #0
+ beq _08044FE6
+ ldr r1, [r1]
+ ldr r3, _0804501C @ =0x00000591
+ adds r0, r1, r3
+ movs r2, #0
+ ldrsb r2, [r0, r2]
+ lsls r2, r2, #3
+ add r2, r8
+ ldrh r0, [r2, #4]
+ adds r0, #0x86
+ adds r1, #0x58
+ ldrh r1, [r1]
+ subs r0, r0, r1
+ strh r0, [r6, #2]
+ ldrh r1, [r2, #6]
+ adds r1, #0x9a
+ mov r3, sb
+ ldr r0, [r3]
+ adds r0, #0x5a
+ ldrh r0, [r0]
+ subs r1, r1, r0
+ strh r1, [r6, #4]
+ ldr r3, _08045020 @ =0x040000D4
+ movs r0, #0
+ ldrsh r1, [r2, r0]
+ lsls r0, r1, #3
+ adds r0, r0, r1
+ lsls r0, r0, #7
+ ldr r1, _08045024 @ =0x084B7FEC
+ adds r0, r0, r1
+ str r0, [r3]
+ ldr r0, _08045028 @ =0x06012120
+ str r0, [r3, #4]
+ ldr r0, _0804502C @ =0x80000230
+ str r0, [r3, #8]
+ ldr r0, [r3, #8]
+ movs r0, #0
+ ldr r7, _08045030 @ =0x03005000
+ ldr r1, _08045034 @ =0xFFFFFE00
+ mov ip, r1
+_08044FA2:
+ lsls r5, r0, #0x10
+ asrs r5, r5, #0x10
+ lsls r3, r5, #3
+ adds r3, #8
+ adds r3, r6, r3
+ ldrh r4, [r3]
+ lsls r4, r4, #3
+ adds r4, r4, r7
+ movs r2, #2
+ ldrsh r1, [r3, r2]
+ movs r2, #2
+ ldrsh r0, [r6, r2]
+ adds r1, r1, r0
+ ldr r2, _08045038 @ =0x000001FF
+ adds r0, r2, #0
+ ands r1, r0
+ ldrh r2, [r4, #2]
+ mov r0, ip
+ ands r0, r2
+ orrs r0, r1
+ strh r0, [r4, #2]
+ ldrh r1, [r3]
+ lsls r1, r1, #3
+ adds r1, r1, r7
+ ldrb r0, [r6, #4]
+ ldrb r3, [r3, #4]
+ adds r0, r0, r3
+ strb r0, [r1]
+ adds r5, #1
+ lsls r5, r5, #0x10
+ lsrs r0, r5, #0x10
+ asrs r5, r5, #0x10
+ cmp r5, #3
+ ble _08044FA2
+_08044FE6:
+ mov r5, sb
+ ldr r2, [r5]
+ ldr r6, _0804501C @ =0x00000591
+ adds r4, r2, r6
+ movs r0, #0
+ ldrsb r0, [r4, r0]
+ lsls r0, r0, #3
+ mov r1, r8
+ adds r1, #2
+ adds r0, r0, r1
+ movs r3, #0
+ ldrsh r0, [r0, r3]
+ ldr r1, _0804503C @ =0x00000592
+ adds r2, r2, r1
+ ldrh r3, [r2]
+ cmp r0, r3
+ ble _08045040
+ adds r0, r3, #1
+ strh r0, [r2]
+ b _08045148
+ .align 2, 0
+_08045010: .4byte 0x0200C160
+_08045014: .4byte 0x020314E0
+_08045018: .4byte 0x086AFC16
+_0804501C: .4byte 0x00000591
+_08045020: .4byte 0x040000D4
+_08045024: .4byte 0x084B7FEC
+_08045028: .4byte 0x06012120
+_0804502C: .4byte 0x80000230
+_08045030: .4byte 0x03005000
+_08045034: .4byte 0xFFFFFE00
+_08045038: .4byte 0x000001FF
+_0804503C: .4byte 0x00000592
+_08045040:
+ movs r3, #0
+ mov r8, r3
+ movs r7, #0
+ strh r7, [r2]
+ ldrb r0, [r4]
+ adds r0, #1
+ strb r0, [r4]
+ ldr r0, [r5]
+ ldr r1, _08045154 @ =0x00000591
+ adds r0, r0, r1
+ movs r1, #0
+ ldrsb r1, [r0, r1]
+ cmp r1, #1
+ bne _08045066
+ ldr r0, _08045158 @ =0x0200B0C0
+ movs r2, #0x85
+ lsls r2, r2, #5
+ adds r0, r0, r2
+ strh r1, [r0]
+_08045066:
+ ldr r0, [r5]
+ adds r1, r0, r6
+ movs r0, #0
+ ldrsb r0, [r1, r0]
+ cmp r0, #0x13
+ bne _08045086
+ movs r0, #0x12
+ strb r0, [r1]
+ ldr r0, _08045158 @ =0x0200B0C0
+ movs r3, #0x85
+ lsls r3, r3, #5
+ adds r0, r0, r3
+ strh r7, [r0]
+ ldr r0, [r5]
+ adds r0, #0x7e
+ strh r7, [r0]
+_08045086:
+ ldr r2, [r5]
+ adds r0, r2, r6
+ ldrb r0, [r0]
+ lsls r0, r0, #0x18
+ asrs r0, r0, #0x18
+ cmp r0, #9
+ bne _080450C8
+ ldr r0, _0804515C @ =0x0000132C
+ adds r2, r2, r0
+ ldr r1, [r2]
+ ldrh r0, [r1, #0xa]
+ subs r0, #0x40
+ strh r0, [r1, #0xa]
+ ldr r1, [r2]
+ movs r0, #0x8d
+ lsls r0, r0, #8
+ str r0, [r1, #0x34]
+ ldr r1, [r2]
+ movs r0, #0xc8
+ lsls r0, r0, #8
+ str r0, [r1, #0x38]
+ ldr r1, [r2]
+ ldr r0, _08045160 @ =0x0000FFA0
+ strh r0, [r1, #0x30]
+ ldr r1, [r2]
+ movs r0, #0x54
+ strh r0, [r1, #0x32]
+ ldr r1, [r2]
+ movs r0, #3
+ strb r0, [r1, #1]
+ movs r0, #7
+ bl sub_11B0
+_080450C8:
+ ldr r0, [r5]
+ adds r0, r0, r6
+ ldrb r0, [r0]
+ lsls r0, r0, #0x18
+ asrs r0, r0, #0x18
+ cmp r0, #2
+ bne _080450DC
+ movs r0, #0xd3
+ bl sub_53DA8
+_080450DC:
+ ldr r0, [r5]
+ adds r0, r0, r6
+ ldrb r0, [r0]
+ lsls r0, r0, #0x18
+ asrs r0, r0, #0x18
+ cmp r0, #0xf
+ bne _080450F0
+ movs r0, #0xd4
+ bl sub_53DA8
+_080450F0:
+ ldr r0, [r5]
+ adds r0, r0, r6
+ ldrb r0, [r0]
+ lsls r0, r0, #0x18
+ asrs r0, r0, #0x18
+ cmp r0, #8
+ bne _08045134
+ movs r0, #0xd6
+ bl sub_53DA8
+ ldr r0, [r5]
+ ldr r2, _0804515C @ =0x0000132C
+ adds r0, r0, r2
+ ldr r0, [r0]
+ mov r1, r8
+ strb r1, [r0]
+ ldr r1, [r5]
+ adds r1, r1, r2
+ ldr r2, [r1]
+ ldrh r0, [r2, #0xa]
+ subs r0, #0x40
+ strh r0, [r2, #0xa]
+ ldr r2, [r1]
+ movs r0, #0x8f
+ lsls r0, r0, #8
+ str r0, [r2, #0x34]
+ ldr r2, [r1]
+ movs r0, #0xc3
+ lsls r0, r0, #8
+ str r0, [r2, #0x38]
+ ldr r0, [r1]
+ strh r7, [r0, #0x30]
+ ldr r0, [r1]
+ strh r7, [r0, #0x32]
+_08045134:
+ mov r2, sb
+ ldr r1, [r2]
+ adds r0, r1, r6
+ ldrb r0, [r0]
+ lsls r0, r0, #0x18
+ asrs r0, r0, #0x18
+ cmp r0, #0xa
+ bne _08045148
+ mov r3, r8
+ strb r3, [r1, #0x1f]
+_08045148:
+ pop {r3, r4}
+ mov r8, r3
+ mov sb, r4
+ pop {r4, r5, r6, r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08045154: .4byte 0x00000591
+_08045158: .4byte 0x0200B0C0
+_0804515C: .4byte 0x0000132C
+_08045160: .4byte 0x0000FFA0
+
+ thumb_func_start sub_45164
+sub_45164: @ 0x08045164
+ push {r4, r5, r6, r7, lr}
+ mov r7, sl
+ mov r6, sb
+ mov r5, r8
+ push {r5, r6, r7}
+ ldr r6, _080452A0 @ =0x0200C218
+ ldrh r0, [r6]
+ cmp r0, #0
+ beq _08045234
+ ldr r0, _080452A4 @ =0x020314E0
+ ldr r4, [r0]
+ movs r1, #0xc8
+ lsls r1, r1, #2
+ adds r0, r4, r1
+ movs r2, #0
+ ldrsh r0, [r0, r2]
+ movs r1, #0xa
+ bl sub_556D0
+ adds r4, #0x58
+ ldrh r1, [r4]
+ subs r1, #0x92
+ subs r0, r0, r1
+ strh r0, [r6, #2]
+ ldr r3, _080452A4 @ =0x020314E0
+ ldr r4, [r3]
+ ldr r1, _080452A8 @ =0x00000322
+ adds r0, r4, r1
+ movs r2, #0
+ ldrsh r0, [r0, r2]
+ movs r1, #0xa
+ bl sub_556D0
+ adds r5, r0, #0
+ adds r0, r4, #0
+ adds r0, #0x5a
+ ldrh r0, [r0]
+ subs r0, #0x6e
+ subs r5, r5, r0
+ ldr r3, _080452AC @ =0x0000030E
+ adds r4, r4, r3
+ movs r1, #0
+ ldrsh r0, [r4, r1]
+ movs r1, #0xa
+ bl sub_556D0
+ adds r5, r5, r0
+ strh r5, [r6, #4]
+ ldr r2, _080452A4 @ =0x020314E0
+ ldr r0, [r2]
+ ldr r3, _080452B0 @ =0x00000591
+ adds r0, r0, r3
+ ldr r2, _080452B4 @ =0x040000D4
+ movs r1, #0
+ ldrsb r1, [r0, r1]
+ lsls r0, r1, #3
+ adds r0, r0, r1
+ lsls r0, r0, #7
+ ldr r1, _080452B8 @ =0x084BB16C
+ adds r0, r0, r1
+ str r0, [r2]
+ ldr r0, _080452BC @ =0x060125A0
+ str r0, [r2, #4]
+ ldr r0, _080452C0 @ =0x80000240
+ str r0, [r2, #8]
+ ldr r0, [r2, #8]
+ movs r0, #0
+ ldr r7, _080452C4 @ =0x03005000
+ ldr r1, _080452C8 @ =0xFFFFFE00
+ mov r8, r1
+_080451F0:
+ lsls r5, r0, #0x10
+ asrs r5, r5, #0x10
+ lsls r3, r5, #3
+ adds r3, #8
+ adds r3, r6, r3
+ ldrh r4, [r3]
+ lsls r4, r4, #3
+ adds r4, r4, r7
+ movs r2, #2
+ ldrsh r1, [r3, r2]
+ movs r2, #2
+ ldrsh r0, [r6, r2]
+ adds r1, r1, r0
+ ldr r2, _080452CC @ =0x000001FF
+ adds r0, r2, #0
+ ands r1, r0
+ ldrh r2, [r4, #2]
+ mov r0, r8
+ ands r0, r2
+ orrs r0, r1
+ strh r0, [r4, #2]
+ ldrh r1, [r3]
+ lsls r1, r1, #3
+ adds r1, r1, r7
+ ldrb r0, [r6, #4]
+ ldrb r3, [r3, #4]
+ adds r0, r0, r3
+ strb r0, [r1]
+ adds r5, #1
+ lsls r5, r5, #0x10
+ lsrs r0, r5, #0x10
+ asrs r5, r5, #0x10
+ cmp r5, #3
+ ble _080451F0
+_08045234:
+ ldr r3, _080452A4 @ =0x020314E0
+ ldr r4, [r3]
+ ldr r1, _080452D0 @ =0x00000592
+ adds r0, r4, r1
+ ldrh r0, [r0]
+ cmp r0, #0xfa
+ bhi _080452F0
+ cmp r0, #0xfa
+ beq _08045248
+ b _08045594
+_08045248:
+ movs r2, #0xc8
+ lsls r2, r2, #2
+ adds r1, r4, r2
+ movs r2, #0
+ movs r0, #0xe6
+ lsls r0, r0, #2
+ strh r0, [r1]
+ ldr r3, _080452A8 @ =0x00000322
+ adds r1, r4, r3
+ ldr r0, _080452D4 @ =0x0000FF9C
+ strh r0, [r1]
+ movs r0, #0xc7
+ lsls r0, r0, #2
+ adds r1, r4, r0
+ ldr r0, _080452D8 @ =0x0000FFAE
+ strh r0, [r1]
+ ldr r1, _080452DC @ =0x0000031E
+ adds r0, r4, r1
+ strh r2, [r0]
+ subs r3, #0x16
+ adds r0, r4, r3
+ strh r2, [r0]
+ ldr r0, _080452E0 @ =0x00000306
+ adds r1, r4, r0
+ movs r0, #8
+ strb r0, [r1]
+ ldr r1, _080452A4 @ =0x020314E0
+ ldr r0, [r1]
+ ldr r2, _080452B0 @ =0x00000591
+ adds r0, r0, r2
+ movs r1, #0xd
+ strb r1, [r0]
+ ldr r0, _080452E4 @ =0x0200B0C0
+ ldr r3, _080452E8 @ =0x00001158
+ adds r0, r0, r3
+ movs r2, #1
+ movs r1, #1
+ strh r1, [r0]
+ ldr r1, _080452A4 @ =0x020314E0
+ ldr r0, [r1]
+ ldr r3, _080452EC @ =0x000005FA
+ adds r0, r0, r3
+ strb r2, [r0]
+ b _08045594
+ .align 2, 0
+_080452A0: .4byte 0x0200C218
+_080452A4: .4byte 0x020314E0
+_080452A8: .4byte 0x00000322
+_080452AC: .4byte 0x0000030E
+_080452B0: .4byte 0x00000591
+_080452B4: .4byte 0x040000D4
+_080452B8: .4byte 0x084BB16C
+_080452BC: .4byte 0x060125A0
+_080452C0: .4byte 0x80000240
+_080452C4: .4byte 0x03005000
+_080452C8: .4byte 0xFFFFFE00
+_080452CC: .4byte 0x000001FF
+_080452D0: .4byte 0x00000592
+_080452D4: .4byte 0x0000FF9C
+_080452D8: .4byte 0x0000FFAE
+_080452DC: .4byte 0x0000031E
+_080452E0: .4byte 0x00000306
+_080452E4: .4byte 0x0200B0C0
+_080452E8: .4byte 0x00001158
+_080452EC: .4byte 0x000005FA
+_080452F0:
+ movs r5, #0xc3
+ lsls r5, r5, #2
+ adds r0, r4, r5
+ ldrh r0, [r0]
+ movs r1, #0x18
+ bl sub_558B0
+ lsls r0, r0, #0x10
+ lsrs r0, r0, #0x10
+ movs r1, #6
+ bl sub_55838
+ adds r0, #0xd
+ ldr r2, _0804537C @ =0x00000591
+ adds r1, r4, r2
+ strb r0, [r1]
+ ldr r3, _08045380 @ =0x020314E0
+ ldr r0, [r3]
+ adds r0, r0, r5
+ ldrh r0, [r0]
+ lsls r0, r0, #0x1a
+ lsrs r0, r0, #0x10
+ bl sub_C24
+ adds r1, r0, #0
+ ldr r0, _08045380 @ =0x020314E0
+ ldr r4, [r0]
+ lsls r1, r1, #0x10
+ asrs r1, r1, #0x10
+ lsls r0, r1, #4
+ subs r0, r0, r1
+ lsls r0, r0, #4
+ ldr r1, _08045384 @ =0x00004E20
+ bl sub_556D0
+ ldr r2, _08045388 @ =0x0000030E
+ adds r1, r4, r2
+ strh r0, [r1]
+ adds r4, r4, r5
+ ldrh r0, [r4]
+ cmp r0, #0
+ bne _0804534A
+ movs r0, #0xe4
+ bl sub_53DA8
+_0804534A:
+ ldr r3, _08045380 @ =0x020314E0
+ ldr r4, [r3]
+ adds r0, r4, r5
+ ldrh r0, [r0]
+ cmp r0, #0x27
+ bhi _08045390
+ movs r0, #0xc8
+ lsls r0, r0, #2
+ adds r1, r4, r0
+ movs r2, #0xc7
+ lsls r2, r2, #2
+ adds r0, r4, r2
+ ldrh r0, [r0]
+ ldrh r3, [r1]
+ adds r0, r0, r3
+ strh r0, [r1]
+ ldr r0, _0804538C @ =0x00000322
+ adds r1, r4, r0
+ adds r2, #2
+ adds r0, r4, r2
+ ldrh r0, [r0]
+ ldrh r3, [r1]
+ adds r0, r0, r3
+ strh r0, [r1]
+ b _0804539A
+ .align 2, 0
+_0804537C: .4byte 0x00000591
+_08045380: .4byte 0x020314E0
+_08045384: .4byte 0x00004E20
+_08045388: .4byte 0x0000030E
+_0804538C: .4byte 0x00000322
+_08045390:
+ ldr r0, _0804547C @ =0x0200B0C0
+ ldr r1, _08045480 @ =0x00001158
+ adds r0, r0, r1
+ movs r1, #0
+ strh r1, [r0]
+_0804539A:
+ ldr r0, _08045484 @ =0x020314E0
+ ldr r2, [r0]
+ movs r6, #0xc3
+ lsls r6, r6, #2
+ adds r1, r2, r6
+ ldrh r1, [r1]
+ cmp r1, #0xd
+ bne _08045416
+ ldr r5, _08045488 @ =0x0000132C
+ adds r0, r2, r5
+ ldr r1, [r0]
+ movs r0, #0
+ strb r0, [r1]
+ ldr r2, _08045484 @ =0x020314E0
+ ldr r4, [r2]
+ movs r3, #0xc5
+ lsls r3, r3, #2
+ adds r1, r4, r3
+ ldr r0, _0804548C @ =0x0000FFF6
+ strh r0, [r1]
+ ldr r0, _08045490 @ =0x00000316
+ adds r1, r4, r0
+ ldr r0, _08045494 @ =0x0000FFE7
+ strh r0, [r1]
+ movs r1, #0xc8
+ lsls r1, r1, #2
+ adds r0, r4, r1
+ movs r2, #0
+ ldrsh r0, [r0, r2]
+ movs r1, #0xa
+ bl sub_556D0
+ lsls r0, r0, #0x10
+ asrs r0, r0, #0x10
+ adds r0, #0x9d
+ lsls r1, r0, #2
+ adds r1, r1, r0
+ lsls r1, r1, #1
+ movs r3, #0xc6
+ lsls r3, r3, #2
+ adds r0, r4, r3
+ strh r1, [r0]
+ ldr r1, _08045498 @ =0x00000322
+ adds r0, r4, r1
+ movs r2, #0
+ ldrsh r0, [r0, r2]
+ movs r1, #0xa
+ bl sub_556D0
+ lsls r0, r0, #0x10
+ asrs r0, r0, #0x10
+ adds r0, #0x86
+ lsls r1, r0, #2
+ adds r1, r1, r0
+ lsls r1, r1, #1
+ ldr r3, _0804549C @ =0x0000031A
+ adds r0, r4, r3
+ strh r1, [r0]
+ adds r4, r4, r5
+ ldr r1, [r4]
+ movs r0, #1
+ strb r0, [r1, #1]
+_08045416:
+ ldr r0, _08045484 @ =0x020314E0
+ ldr r7, [r0]
+ ldrb r0, [r7, #0x1f]
+ cmp r0, #0
+ bne _08045422
+ b _08045584
+_08045422:
+ adds r0, r7, r6
+ ldrh r0, [r0]
+ cmp r0, #0xc
+ bhi _080454A0
+ ldr r1, _08045488 @ =0x0000132C
+ adds r4, r7, r1
+ ldr r5, [r4]
+ movs r2, #0xc8
+ lsls r2, r2, #2
+ adds r0, r7, r2
+ movs r3, #0
+ ldrsh r0, [r0, r3]
+ movs r1, #0xa
+ bl sub_556D0
+ adds r0, #0x9d
+ strh r0, [r5, #0x10]
+ ldr r5, [r4]
+ ldr r1, _08045498 @ =0x00000322
+ adds r0, r7, r1
+ movs r2, #0
+ ldrsh r0, [r0, r2]
+ movs r1, #0xa
+ bl sub_556D0
+ adds r0, #0x86
+ strh r0, [r5, #0x12]
+ ldr r1, [r4]
+ movs r3, #0x10
+ ldrsh r0, [r1, r3]
+ lsls r0, r0, #1
+ strh r0, [r1, #0x28]
+ ldr r1, [r4]
+ movs r2, #0x12
+ ldrsh r0, [r1, r2]
+ lsls r0, r0, #1
+ strh r0, [r1, #0x2a]
+ ldr r1, [r4]
+ movs r3, #0x10
+ ldrsh r0, [r1, r3]
+ lsls r0, r0, #8
+ str r0, [r1, #0x34]
+ ldr r1, [r4]
+ b _0804557C
+ .align 2, 0
+_0804547C: .4byte 0x0200B0C0
+_08045480: .4byte 0x00001158
+_08045484: .4byte 0x020314E0
+_08045488: .4byte 0x0000132C
+_0804548C: .4byte 0x0000FFF6
+_08045490: .4byte 0x00000316
+_08045494: .4byte 0x0000FFE7
+_08045498: .4byte 0x00000322
+_0804549C: .4byte 0x0000031A
+_080454A0:
+ ldr r3, _080455B0 @ =0x00000316
+ adds r1, r7, r3
+ ldrh r0, [r1]
+ adds r0, #2
+ movs r2, #0
+ mov r8, r2
+ movs r3, #0
+ mov sl, r3
+ strh r0, [r1]
+ movs r0, #0xc6
+ lsls r0, r0, #2
+ adds r2, r7, r0
+ movs r3, #0xc5
+ lsls r3, r3, #2
+ adds r0, r7, r3
+ ldrh r0, [r0]
+ ldrh r3, [r2]
+ adds r0, r0, r3
+ strh r0, [r2]
+ ldr r0, _080455B4 @ =0x0000031A
+ adds r4, r7, r0
+ ldrh r0, [r1]
+ ldrh r1, [r4]
+ adds r0, r0, r1
+ strh r0, [r4]
+ ldr r3, _080455B8 @ =0x0000132C
+ mov sb, r3
+ adds r5, r7, r3
+ ldr r6, [r5]
+ movs r1, #0
+ ldrsh r0, [r2, r1]
+ movs r1, #0xa
+ bl sub_556D0
+ strh r0, [r6, #0x10]
+ ldr r6, [r5]
+ movs r2, #0
+ ldrsh r0, [r4, r2]
+ movs r1, #0xa
+ bl sub_556D0
+ strh r0, [r6, #0x12]
+ ldr r5, [r5]
+ movs r3, #0x12
+ ldrsh r0, [r5, r3]
+ cmp r0, #0xb4
+ ble _08045556
+ movs r0, #0xb5
+ strh r0, [r5, #0x12]
+ ldr r1, _080455BC @ =0x000005F7
+ adds r0, r7, r1
+ mov r2, r8
+ strb r2, [r0]
+ ldr r3, _080455C0 @ =0x020314E0
+ ldr r0, [r3]
+ strb r2, [r0, #0x1f]
+ ldr r1, [r3]
+ ldr r0, _080455B8 @ =0x0000132C
+ adds r3, r1, r0
+ ldr r2, [r3]
+ ldr r0, _080455C4 @ =0x0000FFF6
+ strh r0, [r2, #0x30]
+ ldr r0, [r3]
+ mov r2, sl
+ strh r2, [r0, #0x32]
+ ldr r3, _080455C8 @ =0x000005FA
+ adds r1, r1, r3
+ mov r0, r8
+ strb r0, [r1]
+ ldr r1, _080455C0 @ =0x020314E0
+ ldr r0, [r1]
+ ldr r2, _080455B8 @ =0x0000132C
+ adds r0, r0, r2
+ ldr r1, [r0]
+ movs r0, #3
+ strb r0, [r1, #1]
+ ldr r3, _080455C0 @ =0x020314E0
+ ldr r0, [r3]
+ adds r0, #0x24
+ mov r1, r8
+ strb r1, [r0]
+ ldr r0, [r3]
+ adds r0, #0x7e
+ mov r2, sl
+ strh r2, [r0]
+ movs r0, #0xe5
+ bl sub_53DA8
+ movs r0, #7
+ bl sub_11B0
+_08045556:
+ ldr r3, _080455C0 @ =0x020314E0
+ ldr r1, [r3]
+ add r1, sb
+ ldr r2, [r1]
+ movs r3, #0x10
+ ldrsh r0, [r2, r3]
+ lsls r0, r0, #1
+ strh r0, [r2, #0x28]
+ ldr r2, [r1]
+ movs r3, #0x12
+ ldrsh r0, [r2, r3]
+ lsls r0, r0, #1
+ strh r0, [r2, #0x2a]
+ ldr r2, [r1]
+ movs r3, #0x10
+ ldrsh r0, [r2, r3]
+ lsls r0, r0, #8
+ str r0, [r2, #0x34]
+ ldr r1, [r1]
+_0804557C:
+ movs r2, #0x12
+ ldrsh r0, [r1, r2]
+ lsls r0, r0, #8
+ str r0, [r1, #0x38]
+_08045584:
+ ldr r3, _080455C0 @ =0x020314E0
+ ldr r1, [r3]
+ movs r0, #0xc3
+ lsls r0, r0, #2
+ adds r1, r1, r0
+ ldrh r0, [r1]
+ adds r0, #1
+ strh r0, [r1]
+_08045594:
+ ldr r2, _080455C0 @ =0x020314E0
+ ldr r1, [r2]
+ ldr r3, _080455CC @ =0x00000592
+ adds r1, r1, r3
+ ldrh r0, [r1]
+ adds r0, #1
+ strh r0, [r1]
+ pop {r3, r4, r5}
+ mov r8, r3
+ mov sb, r4
+ mov sl, r5
+ pop {r4, r5, r6, r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080455B0: .4byte 0x00000316
+_080455B4: .4byte 0x0000031A
+_080455B8: .4byte 0x0000132C
+_080455BC: .4byte 0x000005F7
+_080455C0: .4byte 0x020314E0
+_080455C4: .4byte 0x0000FFF6
+_080455C8: .4byte 0x000005FA
+_080455CC: .4byte 0x00000592
+
+ thumb_func_start sub_455D0
+sub_455D0: @ 0x080455D0
+ push {r4, r5, r6, r7, lr}
+ mov r7, sl
+ mov r6, sb
+ mov r5, r8
+ push {r5, r6, r7}
+ sub sp, #8
+ movs r2, #0
+_080455DE:
+ ldr r3, _08045608 @ =0x020314E0
+ ldr r0, [r3]
+ lsls r2, r2, #0x10
+ asrs r1, r2, #0x10
+ ldr r4, _0804560C @ =0x00000536
+ adds r0, r0, r4
+ adds r0, r0, r1
+ ldrb r0, [r0]
+ lsls r0, r0, #0x18
+ asrs r0, r0, #0x18
+ mov r8, r3
+ str r2, [sp]
+ cmp r0, #5
+ bls _080455FE
+ bl _08045DE0
+_080455FE:
+ lsls r0, r0, #2
+ ldr r1, _08045610 @ =_08045614
+ adds r0, r0, r1
+ ldr r0, [r0]
+ mov pc, r0
+ .align 2, 0
+_08045608: .4byte 0x020314E0
+_0804560C: .4byte 0x00000536
+_08045610: .4byte _08045614
+_08045614: @ jump table
+ .4byte _0804562C @ case 0
+ .4byte _08045642 @ case 1
+ .4byte _080456E0 @ case 2
+ .4byte _08045778 @ case 3
+ .4byte _08045B00 @ case 4
+ .4byte _08045C4C @ case 5
+_0804562C:
+ mov r5, r8
+ ldr r0, [r5]
+ ldr r2, [sp]
+ asrs r1, r2, #0x10
+ movs r3, #0xa6
+ lsls r3, r3, #3
+ adds r0, r0, r3
+ adds r0, r0, r1
+ movs r1, #0
+ strb r1, [r0]
+ b _08045DE0
+_08045642:
+ mov r4, r8
+ ldr r1, [r4]
+ ldr r5, [sp]
+ asrs r6, r5, #0x10
+ movs r2, #0xa6
+ lsls r2, r2, #3
+ adds r0, r1, r2
+ adds r0, r0, r6
+ movs r3, #0
+ ldrsb r3, [r0, r3]
+ movs r4, #0xe8
+ lsls r4, r4, #2
+ mov sl, r4
+ add r1, sl
+ adds r1, r1, r3
+ movs r2, #0
+ movs r0, #2
+ strb r0, [r1]
+ mov r5, r8
+ ldr r1, [r5]
+ lsls r7, r3, #1
+ movs r0, #0xec
+ lsls r0, r0, #2
+ mov sb, r0
+ adds r0, r1, r0
+ adds r0, r0, r7
+ movs r4, #0
+ mov ip, r4
+ strh r2, [r0]
+ ldr r2, _080456D4 @ =0x000003A3
+ adds r1, r1, r2
+ adds r1, r1, r3
+ movs r0, #7
+ strb r0, [r1]
+ ldr r5, [r5]
+ lsls r1, r6, #1
+ ldr r4, _080456D8 @ =0x0000053C
+ adds r0, r5, r4
+ adds r1, r0, r1
+ ldrh r0, [r1]
+ cmp r0, #0
+ bne _08045698
+ b _08045DE0
+_08045698:
+ subs r0, #1
+ strh r0, [r1]
+ lsls r0, r0, #0x10
+ lsrs r4, r0, #0x10
+ cmp r4, #0
+ beq _080456A6
+ b _08045DE0
+_080456A6:
+ ldr r1, _080456DC @ =0x00000536
+ adds r0, r5, r1
+ adds r0, r0, r6
+ mov r5, ip
+ strb r5, [r0]
+ mov r1, r8
+ ldr r0, [r1]
+ add r0, sl
+ adds r0, r0, r3
+ movs r1, #1
+ strb r1, [r0]
+ mov r5, r8
+ ldr r1, [r5]
+ mov r5, sb
+ adds r0, r1, r5
+ adds r0, r0, r7
+ strh r4, [r0]
+ adds r1, r1, r2
+ adds r1, r1, r3
+ movs r0, #4
+ strb r0, [r1]
+ b _08045DE0
+ .align 2, 0
+_080456D4: .4byte 0x000003A3
+_080456D8: .4byte 0x0000053C
+_080456DC: .4byte 0x00000536
+_080456E0:
+ mov r0, r8
+ ldr r1, [r0]
+ ldr r2, [sp]
+ asrs r6, r2, #0x10
+ movs r3, #0xa6
+ lsls r3, r3, #3
+ adds r0, r1, r3
+ adds r0, r0, r6
+ ldrb r0, [r0]
+ lsls r0, r0, #0x18
+ asrs r0, r0, #0x18
+ lsls r0, r0, #0x10
+ lsrs r5, r0, #0x10
+ cmp r6, #2
+ bne _0804571E
+ movs r0, #1
+ strb r0, [r1, #0x1f]
+ mov r4, r8
+ ldr r0, [r4]
+ ldr r1, _08045768 @ =0x0000132C
+ adds r0, r0, r1
+ ldr r3, [r0]
+ ldrh r2, [r3, #0x30]
+ adds r2, #5
+ lsls r1, r5, #0x10
+ asrs r1, r1, #0x10
+ lsls r0, r1, #2
+ adds r0, r0, r1
+ lsls r0, r0, #1
+ subs r2, r2, r0
+ strh r2, [r3, #0x30]
+_0804571E:
+ mov r2, r8
+ ldr r1, [r2]
+ ldr r3, _0804576C @ =0x00000536
+ adds r1, r1, r3
+ adds r1, r1, r6
+ movs r4, #0
+ movs r0, #3
+ strb r0, [r1]
+ ldr r0, [r2]
+ ldr r1, _08045770 @ =0x00000533
+ adds r0, r0, r1
+ adds r0, r0, r6
+ strb r4, [r0]
+ ldr r1, [r2]
+ lsls r3, r5, #0x10
+ asrs r3, r3, #0x10
+ movs r2, #0xe8
+ lsls r2, r2, #2
+ adds r1, r1, r2
+ adds r1, r1, r3
+ movs r0, #2
+ strb r0, [r1]
+ mov r5, r8
+ ldr r1, [r5]
+ lsls r2, r3, #1
+ movs r5, #0xec
+ lsls r5, r5, #2
+ adds r0, r1, r5
+ adds r0, r0, r2
+ strh r4, [r0]
+ ldr r0, _08045774 @ =0x000003A3
+ adds r1, r1, r0
+ adds r1, r1, r3
+ movs r0, #7
+ strb r0, [r1]
+ b _08045DE0
+ .align 2, 0
+_08045768: .4byte 0x0000132C
+_0804576C: .4byte 0x00000536
+_08045770: .4byte 0x00000533
+_08045774: .4byte 0x000003A3
+_08045778:
+ mov r1, r8
+ ldr r2, [r1]
+ ldr r4, [sp]
+ asrs r3, r4, #0x10
+ movs r5, #0xa6
+ lsls r5, r5, #3
+ adds r0, r2, r5
+ adds r0, r0, r3
+ ldrb r0, [r0]
+ lsls r0, r0, #0x18
+ asrs r0, r0, #0x18
+ lsls r0, r0, #0x10
+ lsrs r5, r0, #0x10
+ cmp r3, #1
+ ble _08045798
+ b _0804599C
+_08045798:
+ lsls r0, r5, #0x10
+ asrs r4, r0, #0x10
+ mov sb, r0
+ cmp r4, #0
+ bne _080457C8
+ lsls r1, r3, #3
+ movs r5, #0xb0
+ lsls r5, r5, #3
+ adds r0, r2, r5
+ adds r0, r0, r1
+ ldr r1, [r0]
+ ldr r0, _080457C4 @ =0x000055FF
+ cmp r1, r0
+ ble _080457EA
+ lsls r0, r3, #2
+ adds r0, r2, r0
+ movs r1, #0xaf
+ lsls r1, r1, #3
+ adds r0, r0, r1
+ strh r4, [r0]
+ b _080457EA
+ .align 2, 0
+_080457C4: .4byte 0x000055FF
+_080457C8:
+ lsls r1, r3, #3
+ movs r4, #0xb0
+ lsls r4, r4, #3
+ adds r0, r2, r4
+ adds r0, r0, r1
+ ldr r1, [r0]
+ movs r0, #0x9c
+ lsls r0, r0, #8
+ cmp r1, r0
+ bgt _080457EA
+ lsls r0, r3, #2
+ adds r0, r2, r0
+ movs r5, #0xaf
+ lsls r5, r5, #3
+ adds r0, r0, r5
+ movs r1, #0
+ strh r1, [r0]
+_080457EA:
+ mov r0, r8
+ ldr r2, [r0]
+ ldr r1, [sp]
+ asrs r5, r1, #0x10
+ lsls r7, r5, #2
+ adds r1, r2, r7
+ ldr r3, _08045870 @ =0x0000057A
+ mov sl, r3
+ add r1, sl
+ ldrh r0, [r1]
+ adds r0, #0xc
+ strh r0, [r1]
+ mov r4, sb
+ asrs r6, r4, #0x10
+ movs r1, #0xa9
+ lsls r1, r1, #3
+ adds r0, r2, r1
+ adds r0, r0, r6
+ ldrb r0, [r0]
+ lsls r0, r0, #0x18
+ asrs r0, r0, #0x18
+ cmp r0, #0
+ ble _08045880
+ lsls r1, r5, #3
+ adds r3, #0xa
+ adds r0, r2, r3
+ adds r0, r0, r1
+ ldr r1, [r0]
+ ldr r0, _08045874 @ =0x000065FF
+ cmp r1, r0
+ bgt _0804582A
+ b _08045DE0
+_0804582A:
+ ldr r4, _08045878 @ =0x00000533
+ adds r0, r2, r4
+ adds r0, r0, r5
+ movs r1, #0
+ strb r1, [r0]
+ mov r2, r8
+ ldr r0, [r2]
+ subs r3, #0x4e
+ adds r0, r0, r3
+ adds r0, r0, r5
+ movs r1, #5
+ strb r1, [r0]
+ ldr r0, [r2]
+ movs r4, #0xe8
+ lsls r4, r4, #2
+ adds r0, r0, r4
+ adds r0, r0, r6
+ movs r1, #3
+ strb r1, [r0]
+ ldr r0, [r2]
+ ldr r5, _0804587C @ =0x000003A3
+ adds r0, r0, r5
+ adds r0, r0, r6
+ movs r1, #0xf
+ strb r1, [r0]
+ ldr r0, [r2]
+ lsls r1, r6, #1
+ movs r2, #0xec
+ lsls r2, r2, #2
+ adds r0, r0, r2
+ adds r0, r0, r1
+ movs r3, #0
+ strh r3, [r0]
+ b _08045DE0
+ .align 2, 0
+_08045870: .4byte 0x0000057A
+_08045874: .4byte 0x000065FF
+_08045878: .4byte 0x00000533
+_0804587C: .4byte 0x000003A3
+_08045880:
+ lsls r3, r5, #3
+ ldr r4, _08045904 @ =0x00000584
+ mov sb, r4
+ adds r0, r2, r4
+ adds r0, r0, r3
+ ldr r1, [r0]
+ ldr r0, _08045908 @ =0x000065FF
+ cmp r1, r0
+ bgt _08045894
+ b _08045DE0
+_08045894:
+ subs r4, #0x51
+ adds r1, r2, r4
+ adds r1, r1, r5
+ ldrb r0, [r1]
+ adds r0, #1
+ strb r0, [r1]
+ ldr r0, _0804590C @ =0x02032F20
+ ldr r1, _08045910 @ =0x086A2EE4
+ str r3, [sp, #4]
+ bl sub_5450C
+ mov r0, r8
+ ldr r2, [r0]
+ adds r4, r2, r4
+ adds r4, r4, r5
+ movs r0, #0
+ ldrsb r0, [r4, r0]
+ ldr r3, [sp, #4]
+ cmp r0, #2
+ bgt _08045920
+ mov r1, sb
+ adds r0, r2, r1
+ adds r0, r0, r3
+ movs r1, #0xcc
+ lsls r1, r1, #7
+ str r1, [r0]
+ adds r0, r2, r7
+ add r0, sl
+ ldr r1, _08045914 @ =0x0000FED4
+ strh r1, [r0]
+ ldr r3, _08045918 @ =0x00000553
+ adds r0, r2, r3
+ adds r0, r0, r5
+ movs r1, #0xd
+ strb r1, [r0]
+ mov r4, r8
+ ldr r0, [r4]
+ movs r5, #0xe8
+ lsls r5, r5, #2
+ adds r0, r0, r5
+ adds r0, r0, r6
+ movs r1, #2
+ strb r1, [r0]
+ ldr r0, [r4]
+ ldr r1, _0804591C @ =0x000003A3
+ adds r0, r0, r1
+ adds r0, r0, r6
+ movs r1, #8
+ strb r1, [r0]
+ ldr r1, [r4]
+ lsls r0, r6, #1
+ movs r2, #0xec
+ lsls r2, r2, #2
+ adds r1, r1, r2
+ adds r1, r1, r0
+ b _08045A5C
+ .align 2, 0
+_08045904: .4byte 0x00000584
+_08045908: .4byte 0x000065FF
+_0804590C: .4byte 0x02032F20
+_08045910: .4byte 0x086A2EE4
+_08045914: .4byte 0x0000FED4
+_08045918: .4byte 0x00000553
+_0804591C: .4byte 0x000003A3
+_08045920:
+ adds r2, r2, r7
+ lsls r0, r6, #4
+ subs r0, r0, r6
+ lsls r0, r0, #2
+ movs r1, #0x1e
+ subs r1, r1, r0
+ lsls r1, r1, #2
+ movs r3, #0xaf
+ lsls r3, r3, #3
+ adds r0, r2, r3
+ strh r1, [r0]
+ add r2, sl
+ ldr r0, _08045988 @ =0x0000FE70
+ strh r0, [r2]
+ movs r0, #0
+ strb r0, [r4]
+ mov r1, r8
+ ldr r0, [r1]
+ ldr r2, _0804598C @ =0x00000536
+ adds r0, r0, r2
+ adds r0, r0, r5
+ movs r1, #4
+ strb r1, [r0]
+ mov r3, r8
+ ldr r0, [r3]
+ movs r4, #0xe8
+ lsls r4, r4, #2
+ adds r0, r0, r4
+ adds r0, r0, r6
+ movs r1, #3
+ strb r1, [r0]
+ ldr r0, [r3]
+ ldr r5, _08045990 @ =0x000003A3
+ adds r0, r0, r5
+ adds r0, r0, r6
+ movs r1, #0xb
+ strb r1, [r0]
+ ldr r2, [r3]
+ lsls r1, r6, #1
+ movs r3, #0xec
+ lsls r3, r3, #2
+ adds r0, r2, r3
+ adds r0, r0, r1
+ movs r4, #0
+ strh r4, [r0]
+ ldr r5, _08045994 @ =0x00000542
+ adds r1, r2, r5
+ movs r0, #0x64
+ strh r0, [r1]
+ ldr r0, _08045998 @ =0x0000052C
+ adds r2, r2, r0
+ b _08045AE2
+ .align 2, 0
+_08045988: .4byte 0x0000FE70
+_0804598C: .4byte 0x00000536
+_08045990: .4byte 0x000003A3
+_08045994: .4byte 0x00000542
+_08045998: .4byte 0x0000052C
+_0804599C:
+ lsls r0, r5, #0x10
+ asrs r3, r0, #0x10
+ mov sb, r0
+ cmp r3, #0
+ bne _080459C0
+ ldr r1, _080459B8 @ =0x0000132C
+ adds r0, r2, r1
+ ldr r2, [r0]
+ ldr r1, [r2, #0x34]
+ ldr r0, _080459BC @ =0x000055FF
+ cmp r1, r0
+ ble _080459D4
+ strh r3, [r2, #0x30]
+ b _080459D4
+ .align 2, 0
+_080459B8: .4byte 0x0000132C
+_080459BC: .4byte 0x000055FF
+_080459C0:
+ ldr r3, _08045A64 @ =0x0000132C
+ adds r0, r2, r3
+ ldr r2, [r0]
+ ldr r1, [r2, #0x34]
+ movs r0, #0x9c
+ lsls r0, r0, #8
+ cmp r1, r0
+ bgt _080459D4
+ movs r0, #0
+ strh r0, [r2, #0x30]
+_080459D4:
+ mov r4, r8
+ ldr r3, [r4]
+ ldr r7, _08045A64 @ =0x0000132C
+ adds r2, r3, r7
+ ldr r1, [r2]
+ ldrh r0, [r1, #0x32]
+ adds r0, #3
+ movs r5, #0
+ mov sl, r5
+ strh r0, [r1, #0x32]
+ ldr r0, [r2]
+ ldr r1, [r0, #0x38]
+ ldr r0, _08045A68 @ =0x000064FF
+ cmp r1, r0
+ bgt _080459F4
+ b _08045DE0
+_080459F4:
+ ldr r0, [sp]
+ asrs r5, r0, #0x10
+ ldr r4, _08045A6C @ =0x00000533
+ adds r1, r3, r4
+ adds r1, r1, r5
+ ldrb r0, [r1]
+ adds r0, #1
+ strb r0, [r1]
+ ldr r0, _08045A70 @ =0x02032F20
+ ldr r1, _08045A74 @ =0x086A2EE4
+ bl sub_5450C
+ movs r0, #7
+ bl sub_11B0
+ mov r1, r8
+ ldr r3, [r1]
+ adds r4, r3, r4
+ adds r6, r4, r5
+ movs r0, #0
+ ldrsb r0, [r6, r0]
+ cmp r0, #2
+ bgt _08045A80
+ adds r2, r3, r7
+ ldr r1, [r2]
+ movs r0, #0xca
+ lsls r0, r0, #7
+ str r0, [r1, #0x38]
+ ldr r1, [r2]
+ ldr r0, _08045A78 @ =0x0000FFA6
+ strh r0, [r1, #0x32]
+ mov r4, sb
+ asrs r2, r4, #0x10
+ movs r5, #0xe8
+ lsls r5, r5, #2
+ adds r0, r3, r5
+ adds r0, r0, r2
+ movs r1, #2
+ strb r1, [r0]
+ mov r1, r8
+ ldr r0, [r1]
+ ldr r3, _08045A7C @ =0x000003A3
+ adds r0, r0, r3
+ adds r0, r0, r2
+ movs r1, #8
+ strb r1, [r0]
+ mov r4, r8
+ ldr r1, [r4]
+ lsls r2, r2, #1
+ adds r5, #0x10
+ adds r1, r1, r5
+ adds r1, r1, r2
+_08045A5C:
+ movs r0, #0xc
+ strh r0, [r1]
+ b _08045DE0
+ .align 2, 0
+_08045A64: .4byte 0x0000132C
+_08045A68: .4byte 0x000064FF
+_08045A6C: .4byte 0x00000533
+_08045A70: .4byte 0x02032F20
+_08045A74: .4byte 0x086A2EE4
+_08045A78: .4byte 0x0000FFA6
+_08045A7C: .4byte 0x000003A3
+_08045A80:
+ adds r2, r3, r7
+ ldr r4, [r2]
+ mov r0, sb
+ asrs r3, r0, #0x10
+ lsls r1, r3, #3
+ subs r1, r1, r3
+ lsls r1, r1, #3
+ movs r0, #0x1c
+ subs r0, r0, r1
+ strh r0, [r4, #0x30]
+ ldr r1, [r2]
+ ldr r0, _08045AEC @ =0x0000FF88
+ strh r0, [r1, #0x32]
+ mov r1, sl
+ strb r1, [r6]
+ mov r2, r8
+ ldr r0, [r2]
+ ldr r4, _08045AF0 @ =0x00000536
+ adds r0, r0, r4
+ adds r0, r0, r5
+ movs r1, #4
+ strb r1, [r0]
+ ldr r0, [r2]
+ movs r5, #0xe8
+ lsls r5, r5, #2
+ adds r0, r0, r5
+ adds r0, r0, r3
+ movs r1, #3
+ strb r1, [r0]
+ ldr r0, [r2]
+ ldr r1, _08045AF4 @ =0x000003A3
+ adds r0, r0, r1
+ adds r0, r0, r3
+ movs r1, #0xb
+ strb r1, [r0]
+ ldr r2, [r2]
+ lsls r3, r3, #1
+ movs r4, #0xec
+ lsls r4, r4, #2
+ adds r0, r2, r4
+ adds r0, r0, r3
+ movs r5, #0
+ strh r5, [r0]
+ ldr r0, _08045AF8 @ =0x00000542
+ adds r1, r2, r0
+ movs r0, #0x6a
+ strh r0, [r1]
+ ldr r1, _08045AFC @ =0x0000052D
+ adds r2, r2, r1
+_08045AE2:
+ ldrb r0, [r2]
+ adds r0, #1
+ strb r0, [r2]
+ b _08045DE0
+ .align 2, 0
+_08045AEC: .4byte 0x0000FF88
+_08045AF0: .4byte 0x00000536
+_08045AF4: .4byte 0x000003A3
+_08045AF8: .4byte 0x00000542
+_08045AFC: .4byte 0x0000052D
+_08045B00:
+ mov r2, r8
+ ldr r3, [r2]
+ ldr r4, [sp]
+ asrs r2, r4, #0x10
+ movs r5, #0xa6
+ lsls r5, r5, #3
+ adds r0, r3, r5
+ adds r0, r0, r2
+ ldrb r0, [r0]
+ lsls r0, r0, #0x18
+ asrs r0, r0, #0x18
+ lsls r0, r0, #0x10
+ lsrs r5, r0, #0x10
+ cmp r2, #1
+ bgt _08045B90
+ lsls r0, r2, #2
+ adds r4, r3, r0
+ ldr r0, _08045B4C @ =0x0000057A
+ adds r1, r4, r0
+ ldrh r0, [r1]
+ adds r0, #0xc
+ movs r6, #0
+ strh r0, [r1]
+ cmp r5, #0
+ bne _08045B54
+ lsls r1, r2, #3
+ movs r2, #0xb0
+ lsls r2, r2, #3
+ adds r0, r3, r2
+ adds r0, r0, r1
+ ldr r1, [r0]
+ ldr r0, _08045B50 @ =0x000077FF
+ cmp r1, r0
+ ble _08045B70
+ movs r3, #0xaf
+ lsls r3, r3, #3
+ adds r0, r4, r3
+ b _08045B6E
+ .align 2, 0
+_08045B4C: .4byte 0x0000057A
+_08045B50: .4byte 0x000077FF
+_08045B54:
+ lsls r1, r2, #3
+ movs r5, #0xb0
+ lsls r5, r5, #3
+ adds r0, r3, r5
+ adds r0, r0, r1
+ ldr r1, [r0]
+ movs r0, #0xf0
+ lsls r0, r0, #7
+ cmp r1, r0
+ bgt _08045B70
+ movs r1, #0xaf
+ lsls r1, r1, #3
+ adds r0, r4, r1
+_08045B6E:
+ strh r6, [r0]
+_08045B70:
+ mov r3, r8
+ ldr r2, [r3]
+ ldr r5, [sp]
+ asrs r4, r5, #0x10
+ lsls r1, r4, #3
+ ldr r3, _08045B88 @ =0x00000584
+ adds r0, r2, r3
+ adds r0, r0, r1
+ ldr r1, [r0]
+ ldr r0, _08045B8C @ =0x000083FF
+ b _08045CD0
+ .align 2, 0
+_08045B88: .4byte 0x00000584
+_08045B8C: .4byte 0x000083FF
+_08045B90:
+ ldr r1, _08045BB4 @ =0x0000132C
+ adds r2, r3, r1
+ ldr r0, [r2]
+ ldrh r1, [r0, #0x32]
+ adds r1, #3
+ movs r3, #0
+ strh r1, [r0, #0x32]
+ lsls r0, r5, #0x10
+ mov sb, r0
+ cmp r0, #0
+ bne _08045BBC
+ ldr r2, [r2]
+ ldr r1, [r2, #0x34]
+ ldr r0, _08045BB8 @ =0x000077FF
+ cmp r1, r0
+ ble _08045BCA
+ b _08045BC8
+ .align 2, 0
+_08045BB4: .4byte 0x0000132C
+_08045BB8: .4byte 0x000077FF
+_08045BBC:
+ ldr r2, [r2]
+ ldr r1, [r2, #0x34]
+ movs r0, #0xf0
+ lsls r0, r0, #7
+ cmp r1, r0
+ bgt _08045BCA
+_08045BC8:
+ strh r3, [r2, #0x30]
+_08045BCA:
+ mov r2, r8
+ ldr r3, [r2]
+ ldr r7, _08045C34 @ =0x0000132C
+ adds r0, r3, r7
+ ldr r0, [r0]
+ ldr r1, [r0, #0x38]
+ ldr r0, _08045C38 @ =0x000083FF
+ cmp r1, r0
+ bgt _08045BDE
+ b _08045DE0
+_08045BDE:
+ ldr r4, [sp]
+ asrs r5, r4, #0x10
+ ldr r2, _08045C3C @ =0x00000533
+ adds r1, r3, r2
+ adds r1, r1, r5
+ ldrb r0, [r1]
+ adds r0, #1
+ movs r3, #0
+ mov sl, r3
+ strb r0, [r1]
+ mov r0, r8
+ ldr r4, [r0]
+ adds r2, r4, r2
+ adds r6, r2, r5
+ movs r0, #0
+ ldrsb r0, [r6, r0]
+ cmp r0, #1
+ bgt _08045C40
+ adds r4, r4, r7
+ ldr r1, [r4]
+ movs r0, #0x84
+ lsls r0, r0, #8
+ str r0, [r1, #0x38]
+ ldr r5, [r4]
+ movs r1, #0x32
+ ldrsh r0, [r5, r1]
+ rsbs r0, r0, #0
+ movs r1, #3
+ bl sub_556D0
+ strh r0, [r5, #0x32]
+ ldr r0, [r4]
+ mov r2, sl
+ strh r2, [r0, #0x30]
+ movs r0, #0
+ ldrsb r0, [r6, r0]
+ cmp r0, #1
+ beq _08045C2C
+ b _08045DE0
+_08045C2C:
+ movs r0, #7
+ bl sub_11B0
+ b _08045DE0
+ .align 2, 0
+_08045C34: .4byte 0x0000132C
+_08045C38: .4byte 0x000083FF
+_08045C3C: .4byte 0x00000533
+_08045C40:
+ adds r1, r4, r7
+ ldr r0, [r1]
+ movs r3, #0
+ mov r2, sl
+ strh r2, [r0, #0x32]
+ b _08045DC0
+_08045C4C:
+ mov r5, r8
+ ldr r3, [r5]
+ ldr r0, [sp]
+ asrs r2, r0, #0x10
+ movs r1, #0xa6
+ lsls r1, r1, #3
+ adds r0, r3, r1
+ adds r0, r0, r2
+ ldrb r0, [r0]
+ lsls r0, r0, #0x18
+ asrs r0, r0, #0x18
+ lsls r0, r0, #0x10
+ lsrs r5, r0, #0x10
+ cmp r2, #1
+ bgt _08045D20
+ lsls r0, r2, #2
+ adds r4, r3, r0
+ ldr r0, _08045C98 @ =0x0000057A
+ adds r1, r4, r0
+ ldrh r0, [r1]
+ adds r0, #0xc
+ movs r6, #0
+ strh r0, [r1]
+ cmp r5, #0
+ bne _08045CA0
+ lsls r1, r2, #3
+ movs r2, #0xb0
+ lsls r2, r2, #3
+ adds r0, r3, r2
+ adds r0, r0, r1
+ ldr r1, [r0]
+ ldr r0, _08045C9C @ =0x000077FF
+ cmp r1, r0
+ ble _08045CBC
+ movs r3, #0xaf
+ lsls r3, r3, #3
+ adds r0, r4, r3
+ b _08045CBA
+ .align 2, 0
+_08045C98: .4byte 0x0000057A
+_08045C9C: .4byte 0x000077FF
+_08045CA0:
+ lsls r1, r2, #3
+ movs r5, #0xb0
+ lsls r5, r5, #3
+ adds r0, r3, r5
+ adds r0, r0, r1
+ ldr r1, [r0]
+ movs r0, #0xf0
+ lsls r0, r0, #7
+ cmp r1, r0
+ bgt _08045CBC
+ movs r1, #0xaf
+ lsls r1, r1, #3
+ adds r0, r4, r1
+_08045CBA:
+ strh r6, [r0]
+_08045CBC:
+ mov r3, r8
+ ldr r2, [r3]
+ ldr r5, [sp]
+ asrs r4, r5, #0x10
+ lsls r1, r4, #3
+ ldr r3, _08045D08 @ =0x00000584
+ adds r0, r2, r3
+ adds r0, r0, r1
+ ldr r1, [r0]
+ ldr r0, _08045D0C @ =0x00008DFF
+_08045CD0:
+ cmp r1, r0
+ bgt _08045CD6
+ b _08045DE0
+_08045CD6:
+ ldr r5, _08045D10 @ =0x00000536
+ adds r0, r2, r5
+ adds r0, r0, r4
+ movs r3, #0
+ strb r3, [r0]
+ mov r1, r8
+ ldr r0, [r1]
+ ldr r2, _08045D14 @ =0x00000553
+ adds r0, r0, r2
+ adds r0, r0, r4
+ movs r1, #0xe
+ strb r1, [r0]
+ mov r5, r8
+ ldr r1, [r5]
+ lsls r2, r4, #1
+ ldr r5, _08045D18 @ =0x00000562
+ adds r0, r1, r5
+ adds r0, r0, r2
+ movs r2, #0
+ strh r3, [r0]
+ ldr r0, _08045D1C @ =0x0000054B
+ adds r1, r1, r0
+ adds r1, r1, r4
+ strb r2, [r1]
+ b _08045DE0
+ .align 2, 0
+_08045D08: .4byte 0x00000584
+_08045D0C: .4byte 0x00008DFF
+_08045D10: .4byte 0x00000536
+_08045D14: .4byte 0x00000553
+_08045D18: .4byte 0x00000562
+_08045D1C: .4byte 0x0000054B
+_08045D20:
+ ldr r1, _08045D44 @ =0x0000132C
+ adds r2, r3, r1
+ ldr r0, [r2]
+ ldrh r1, [r0, #0x32]
+ adds r1, #3
+ movs r3, #0
+ strh r1, [r0, #0x32]
+ lsls r0, r5, #0x10
+ mov sb, r0
+ cmp r0, #0
+ bne _08045D4C
+ ldr r2, [r2]
+ ldr r1, [r2, #0x34]
+ ldr r0, _08045D48 @ =0x000077FF
+ cmp r1, r0
+ ble _08045D5A
+ b _08045D58
+ .align 2, 0
+_08045D44: .4byte 0x0000132C
+_08045D48: .4byte 0x000077FF
+_08045D4C:
+ ldr r2, [r2]
+ ldr r1, [r2, #0x34]
+ movs r0, #0xf0
+ lsls r0, r0, #7
+ cmp r1, r0
+ bgt _08045D5A
+_08045D58:
+ strh r3, [r2, #0x30]
+_08045D5A:
+ mov r4, r8
+ ldr r3, [r4]
+ ldr r6, _08045DAC @ =0x0000132C
+ adds r0, r3, r6
+ ldr r0, [r0]
+ ldr r1, [r0, #0x38]
+ ldr r0, _08045DB0 @ =0x00008DFF
+ cmp r1, r0
+ ble _08045DE0
+ ldr r2, [sp]
+ asrs r5, r2, #0x10
+ ldr r2, _08045DB4 @ =0x00000533
+ adds r1, r3, r2
+ adds r1, r1, r5
+ ldrb r0, [r1]
+ adds r0, #1
+ movs r7, #0
+ strb r0, [r1]
+ ldr r4, [r4]
+ adds r2, r4, r2
+ adds r2, r2, r5
+ movs r0, #0
+ ldrsb r0, [r2, r0]
+ cmp r0, #1
+ bgt _08045DB8
+ adds r4, r4, r6
+ ldr r1, [r4]
+ movs r0, #0x8e
+ lsls r0, r0, #8
+ str r0, [r1, #0x38]
+ ldr r5, [r4]
+ movs r3, #0x32
+ ldrsh r0, [r5, r3]
+ rsbs r0, r0, #0
+ movs r1, #3
+ bl sub_556D0
+ strh r0, [r5, #0x32]
+ ldr r0, [r4]
+ strh r7, [r0, #0x30]
+ b _08045DE0
+ .align 2, 0
+_08045DAC: .4byte 0x0000132C
+_08045DB0: .4byte 0x00008DFF
+_08045DB4: .4byte 0x00000533
+_08045DB8:
+ adds r1, r4, r6
+ ldr r0, [r1]
+ movs r3, #0
+ strh r7, [r0, #0x32]
+_08045DC0:
+ ldr r2, [r1]
+ mov r1, sb
+ asrs r0, r1, #0x10
+ lsls r1, r0, #2
+ adds r1, r1, r0
+ lsls r1, r1, #1
+ movs r0, #5
+ subs r0, r0, r1
+ strh r0, [r2, #0x30]
+ strb r3, [r4, #0x1f]
+ mov r2, r8
+ ldr r0, [r2]
+ ldr r4, _08045E04 @ =0x00000536
+ adds r0, r0, r4
+ adds r0, r0, r5
+ strb r3, [r0]
+_08045DE0:
+ ldr r5, [sp]
+ movs r1, #0x80
+ lsls r1, r1, #9
+ adds r0, r5, r1
+ lsrs r2, r0, #0x10
+ asrs r0, r0, #0x10
+ cmp r0, #2
+ bgt _08045DF4
+ bl _080455DE
+_08045DF4:
+ add sp, #8
+ pop {r3, r4, r5}
+ mov r8, r3
+ mov sb, r4
+ mov sl, r5
+ pop {r4, r5, r6, r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08045E04: .4byte 0x00000536
+
+ thumb_func_start sub_45E08
+sub_45E08: @ 0x08045E08
+ push {r4, r5, r6, r7, lr}
+ ldr r4, _08045E70 @ =0x086AEED6
+ ldr r0, _08045E74 @ =0x0200B0C0
+ ldr r0, [r0, #0x4c]
+ movs r1, #0x60
+ bl sub_558B0
+ movs r1, #0x18
+ bl sub_55838
+ lsls r0, r0, #1
+ adds r0, r0, r4
+ movs r2, #0x80
+ lsls r2, r2, #0x11
+ ldr r1, _08045E78 @ =0x03006C00
+ mov ip, r1
+ ldr r7, _08045E7C @ =0xFFFFF000
+ add r7, ip
+ ldr r6, _08045E80 @ =0x0837A4E8
+ movs r1, #0
+ ldrsh r0, [r0, r1]
+ lsls r3, r0, #2
+ ldr r5, _08045E84 @ =0x000003FF
+ movs r4, #0x80
+ lsls r4, r4, #4
+_08045E3A:
+ asrs r2, r2, #0x10
+ adds r1, r2, r4
+ lsls r1, r1, #1
+ adds r1, r1, r7
+ lsls r0, r2, #1
+ adds r0, r0, r6
+ ldrh r0, [r0]
+ adds r0, r0, r3
+ strh r0, [r1]
+ adds r2, #1
+ lsls r2, r2, #0x10
+ asrs r0, r2, #0x10
+ cmp r0, r5
+ ble _08045E3A
+ ldr r1, _08045E88 @ =0x040000D4
+ mov r0, ip
+ str r0, [r1]
+ movs r0, #0xc0
+ lsls r0, r0, #0x13
+ str r0, [r1, #4]
+ ldr r0, _08045E8C @ =0x80000400
+ str r0, [r1, #8]
+ ldr r0, [r1, #8]
+ pop {r4, r5, r6, r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08045E70: .4byte 0x086AEED6
+_08045E74: .4byte 0x0200B0C0
+_08045E78: .4byte 0x03006C00
+_08045E7C: .4byte 0xFFFFF000
+_08045E80: .4byte 0x0837A4E8
+_08045E84: .4byte 0x000003FF
+_08045E88: .4byte 0x040000D4
+_08045E8C: .4byte 0x80000400
+
+ thumb_func_start sub_45E90
+sub_45E90: @ 0x08045E90
+ push {r4, r5, r6, r7, lr}
+ mov r7, sl
+ mov r6, sb
+ mov r5, r8
+ push {r5, r6, r7}
+ sub sp, #0x30
+ ldr r0, _08045ED0 @ =0x020314E0
+ ldr r4, [r0]
+ movs r1, #0x13
+ ldrsb r1, [r4, r1]
+ cmp r1, #3
+ ble _08045EDC
+ movs r0, #0xe5
+ lsls r0, r0, #2
+ adds r2, r4, r0
+ ldrh r3, [r2]
+ movs r0, #0
+ ldrsh r1, [r2, r0]
+ movs r0, #0x7e
+ rsbs r0, r0, #0
+ cmp r1, r0
+ ble _08045F12
+ subs r0, r3, #6
+ strh r0, [r2]
+ ldr r1, _08045ED4 @ =0x0200B0C0
+ rsbs r0, r0, #0
+ adds r0, #4
+ ldr r2, _08045ED8 @ =0x000002EE
+ adds r1, r1, r2
+ strh r0, [r1]
+ b _08045F12
+ .align 2, 0
+_08045ED0: .4byte 0x020314E0
+_08045ED4: .4byte 0x0200B0C0
+_08045ED8: .4byte 0x000002EE
+_08045EDC:
+ movs r3, #0xe5
+ lsls r3, r3, #2
+ adds r1, r4, r3
+ ldrh r2, [r1]
+ movs r3, #0
+ ldrsh r0, [r1, r3]
+ cmp r0, #0
+ bge _08045EFA
+ adds r0, r2, #6
+ strh r0, [r1]
+ lsls r0, r0, #0x10
+ cmp r0, #0
+ ble _08045EFA
+ movs r0, #0
+ strh r0, [r1]
+_08045EFA:
+ ldr r0, _08045F84 @ =0x0200B0C0
+ ldr r2, _08045F88 @ =0x020314E0
+ ldr r1, [r2]
+ movs r3, #0xe5
+ lsls r3, r3, #2
+ adds r1, r1, r3
+ ldrh r1, [r1]
+ rsbs r1, r1, #0
+ adds r1, #4
+ ldr r2, _08045F8C @ =0x000002EE
+ adds r0, r0, r2
+ strh r1, [r0]
+_08045F12:
+ ldr r3, _08045F88 @ =0x020314E0
+ ldr r0, [r3]
+ ldrb r0, [r0, #0x13]
+ lsls r0, r0, #0x18
+ asrs r0, r0, #0x18
+ cmp r0, #4
+ bgt _08045F2E
+ ldr r1, _08045F84 @ =0x0200B0C0
+ ldrh r0, [r1, #0x38]
+ ldr r0, _08045F90 @ =0x00001C42
+ strh r0, [r1, #0x38]
+ ldrh r0, [r1, #0x3a]
+ ldr r0, _08045F94 @ =0x00000C04
+ strh r0, [r1, #0x3a]
+_08045F2E:
+ ldr r0, _08045F88 @ =0x020314E0
+ ldr r1, [r0]
+ movs r0, #0x13
+ ldrsb r0, [r1, r0]
+ cmp r0, #3
+ bne _08045F3C
+ ldrh r0, [r1, #0x18]
+_08045F3C:
+ ldr r0, _08045F88 @ =0x020314E0
+ ldr r2, [r0]
+ ldr r1, _08045F98 @ =0x0000053A
+ adds r3, r2, r1
+ ldrh r0, [r3]
+ subs r0, #0x65
+ lsls r0, r0, #0x10
+ movs r1, #0xae
+ lsls r1, r1, #0x11
+ cmp r0, r1
+ bhi _08045FAA
+ ldr r0, _08045F9C @ =0x0000052E
+ adds r4, r2, r0
+ ldr r1, _08045FA0 @ =0x0000052C
+ adds r0, r2, r1
+ ldrb r5, [r4]
+ movs r1, #0
+ ldrsb r1, [r4, r1]
+ ldrb r0, [r0]
+ lsls r0, r0, #0x18
+ asrs r0, r0, #0x18
+ cmp r1, r0
+ beq _08045FA4
+ ldrh r0, [r3]
+ movs r1, #3
+ bl sub_558B0
+ lsls r0, r0, #0x10
+ cmp r0, #0
+ bne _08045FAA
+ adds r0, r5, #1
+ strb r0, [r4]
+ movs r0, #0x91
+ bl sub_53DA8
+ b _08045FAA
+ .align 2, 0
+_08045F84: .4byte 0x0200B0C0
+_08045F88: .4byte 0x020314E0
+_08045F8C: .4byte 0x000002EE
+_08045F90: .4byte 0x00001C42
+_08045F94: .4byte 0x00000C04
+_08045F98: .4byte 0x0000053A
+_08045F9C: .4byte 0x0000052E
+_08045FA0: .4byte 0x0000052C
+_08045FA4:
+ movs r0, #0xf5
+ lsls r0, r0, #1
+ strh r0, [r3]
+_08045FAA:
+ ldr r0, _08045FF8 @ =0x020314E0
+ ldr r2, [r0]
+ ldr r0, _08045FFC @ =0x0000053A
+ adds r3, r2, r0
+ ldr r1, _08046000 @ =0xFFFFFE0B
+ adds r0, r1, #0
+ ldrh r1, [r3]
+ adds r0, r0, r1
+ lsls r0, r0, #0x10
+ movs r1, #0x95
+ lsls r1, r1, #0x11
+ cmp r0, r1
+ bhi _08046012
+ ldr r0, _08046004 @ =0x0000052F
+ adds r4, r2, r0
+ ldr r1, _08046008 @ =0x0000052D
+ adds r0, r2, r1
+ ldrb r5, [r4]
+ movs r1, #0
+ ldrsb r1, [r4, r1]
+ ldrb r0, [r0]
+ lsls r0, r0, #0x18
+ asrs r0, r0, #0x18
+ cmp r1, r0
+ beq _0804600C
+ ldrh r0, [r3]
+ movs r1, #3
+ bl sub_558B0
+ lsls r0, r0, #0x10
+ cmp r0, #0
+ bne _08046012
+ adds r0, r5, #1
+ strb r0, [r4]
+ movs r0, #0x91
+ bl sub_53DA8
+ b _08046012
+ .align 2, 0
+_08045FF8: .4byte 0x020314E0
+_08045FFC: .4byte 0x0000053A
+_08046000: .4byte 0xFFFFFE0B
+_08046004: .4byte 0x0000052F
+_08046008: .4byte 0x0000052D
+_0804600C:
+ movs r0, #0xc8
+ lsls r0, r0, #2
+ strh r0, [r3]
+_08046012:
+ ldr r2, _080463D0 @ =0x020314E0
+ ldr r4, [r2]
+ ldr r3, _080463D4 @ =0x0000053A
+ adds r0, r4, r3
+ ldrh r1, [r0]
+ ldr r0, _080463D8 @ =0x0000031F
+ cmp r1, r0
+ bhi _0804602C
+ ldrh r0, [r4, #0x18]
+ cmp r0, #0xa0
+ bls _0804602C
+ movs r0, #0xa0
+ strh r0, [r4, #0x18]
+_0804602C:
+ ldr r1, _080463D0 @ =0x020314E0
+ ldr r0, [r1]
+ ldr r2, _080463D4 @ =0x0000053A
+ adds r0, r0, r2
+ ldrh r1, [r0]
+ adds r1, #1
+ strh r1, [r0]
+ ldr r6, _080463DC @ =0x0200B8C0
+ ldrh r0, [r6]
+ cmp r0, #0
+ bne _08046044
+ b _0804679A
+_08046044:
+ movs r0, #0x78
+ strh r0, [r6, #2]
+ ldr r3, _080463D0 @ =0x020314E0
+ ldr r0, [r3]
+ movs r1, #0xe5
+ lsls r1, r1, #2
+ adds r0, r0, r1
+ ldrh r0, [r0]
+ adds r0, #0x3c
+ strh r0, [r6, #4]
+ movs r1, #0
+ add r2, sp, #0x18
+ mov r8, r2
+ movs r3, #0xb8
+ adds r3, r3, r6
+ mov sb, r3
+ ldr r7, _080463E0 @ =0x03005000
+ ldr r0, _080463E4 @ =0xFFFFFE00
+ mov ip, r0
+_0804606A:
+ lsls r4, r1, #0x10
+ asrs r4, r4, #0x10
+ lsls r0, r4, #3
+ adds r0, #8
+ adds r5, r6, r0
+ ldrh r3, [r5]
+ lsls r3, r3, #3
+ adds r3, r3, r7
+ movs r2, #2
+ ldrsh r1, [r5, r2]
+ movs r2, #2
+ ldrsh r0, [r6, r2]
+ adds r1, r1, r0
+ ldr r2, _080463E8 @ =0x000001FF
+ adds r0, r2, #0
+ ands r1, r0
+ ldrh r2, [r3, #2]
+ mov r0, ip
+ ands r0, r2
+ orrs r0, r1
+ strh r0, [r3, #2]
+ ldrh r1, [r5]
+ lsls r1, r1, #3
+ adds r1, r1, r7
+ ldrb r0, [r6, #4]
+ ldrb r5, [r5, #4]
+ adds r0, r0, r5
+ strb r0, [r1]
+ adds r4, #1
+ lsls r4, r4, #0x10
+ lsrs r1, r4, #0x10
+ asrs r4, r4, #0x10
+ cmp r4, #0x15
+ ble _0804606A
+ ldr r3, _080463D0 @ =0x020314E0
+ ldr r0, [r3]
+ ldr r1, _080463EC @ =0x0000052E
+ adds r0, r0, r1
+ movs r1, #0
+ ldrsb r1, [r0, r1]
+ ldr r0, _080463F0 @ =0x004C4B40
+ adds r7, r1, #0
+ muls r7, r0, r7
+ mov r5, sp
+ ldr r4, _080463F4 @ =0x00989680
+ adds r0, r7, #0
+ adds r1, r4, #0
+ bl sub_556D0
+ strh r0, [r5]
+ mov r5, sp
+ adds r0, r7, #0
+ adds r1, r4, #0
+ bl sub_55768
+ ldr r4, _080463F8 @ =0x000F4240
+ adds r1, r4, #0
+ bl sub_556D0
+ strh r0, [r5, #2]
+ mov r0, sp
+ movs r6, #0xa
+ strh r6, [r0, #4]
+ mov r5, sp
+ adds r0, r7, #0
+ adds r1, r4, #0
+ bl sub_55768
+ ldr r4, _080463FC @ =0x000186A0
+ adds r1, r4, #0
+ bl sub_556D0
+ strh r0, [r5, #6]
+ mov r5, sp
+ adds r0, r7, #0
+ adds r1, r4, #0
+ bl sub_55768
+ ldr r4, _08046400 @ =0x00002710
+ adds r1, r4, #0
+ bl sub_556D0
+ strh r0, [r5, #8]
+ mov r5, sp
+ adds r0, r7, #0
+ adds r1, r4, #0
+ bl sub_55768
+ movs r4, #0xfa
+ lsls r4, r4, #2
+ adds r1, r4, #0
+ bl sub_556D0
+ strh r0, [r5, #0xa]
+ mov r0, sp
+ strh r6, [r0, #0xc]
+ mov r5, sp
+ adds r0, r7, #0
+ adds r1, r4, #0
+ bl sub_55768
+ movs r1, #0x64
+ bl sub_556D0
+ strh r0, [r5, #0xe]
+ mov r4, sp
+ adds r0, r7, #0
+ movs r1, #0x64
+ bl sub_55768
+ movs r1, #0xa
+ bl sub_556D0
+ strh r0, [r4, #0x10]
+ mov r4, sp
+ adds r0, r7, #0
+ movs r1, #0xa
+ bl sub_55768
+ strh r0, [r4, #0x12]
+ movs r1, #0
+_0804615C:
+ lsls r0, r1, #0x10
+ asrs r4, r0, #0x10
+ lsls r0, r4, #1
+ mov r2, sp
+ adds r5, r2, r0
+ movs r3, #0
+ ldrsh r0, [r5, r3]
+ movs r1, #0xa
+ bl sub_55768
+ lsls r0, r0, #0x10
+ cmp r0, #0
+ bne _08046186
+ movs r0, #0x14
+ strh r0, [r5]
+ adds r0, r4, #1
+ lsls r0, r0, #0x10
+ lsrs r1, r0, #0x10
+ asrs r0, r0, #0x10
+ cmp r0, #8
+ ble _0804615C
+_08046186:
+ mov r0, sp
+ movs r1, #0
+ ldrsh r0, [r0, r1]
+ lsls r0, r0, #1
+ movs r2, #0xb4
+ lsls r2, r2, #2
+ adds r5, r2, #0
+ adds r0, r0, r5
+ mov r3, r8
+ strh r0, [r3]
+ mov r0, sp
+ movs r1, #2
+ ldrsh r0, [r0, r1]
+ lsls r0, r0, #1
+ adds r0, r0, r5
+ strh r0, [r3, #2]
+ mov r0, sp
+ movs r2, #4
+ ldrsh r0, [r0, r2]
+ lsls r0, r0, #1
+ adds r0, r0, r5
+ strh r0, [r3, #4]
+ mov r0, sp
+ movs r3, #6
+ ldrsh r0, [r0, r3]
+ lsls r0, r0, #1
+ adds r0, r0, r5
+ mov r1, r8
+ strh r0, [r1, #6]
+ mov r0, sp
+ movs r2, #8
+ ldrsh r0, [r0, r2]
+ lsls r0, r0, #1
+ adds r0, r0, r5
+ strh r0, [r1, #8]
+ mov r0, sp
+ movs r3, #0xa
+ ldrsh r0, [r0, r3]
+ lsls r0, r0, #1
+ adds r0, r0, r5
+ strh r0, [r1, #0xa]
+ mov r0, sp
+ movs r1, #0xc
+ ldrsh r0, [r0, r1]
+ lsls r0, r0, #1
+ adds r0, r0, r5
+ mov r2, r8
+ strh r0, [r2, #0xc]
+ mov r0, sp
+ movs r3, #0xe
+ ldrsh r0, [r0, r3]
+ lsls r0, r0, #1
+ adds r0, r0, r5
+ strh r0, [r2, #0xe]
+ mov r0, sp
+ movs r1, #0x10
+ ldrsh r0, [r0, r1]
+ lsls r0, r0, #1
+ adds r0, r0, r5
+ strh r0, [r2, #0x10]
+ mov r0, sp
+ movs r2, #0x12
+ ldrsh r0, [r0, r2]
+ lsls r0, r0, #1
+ adds r0, r0, r5
+ mov r3, r8
+ strh r0, [r3, #0x12]
+ ldr r1, _080463D0 @ =0x020314E0
+ ldr r0, [r1]
+ ldr r2, _080463EC @ =0x0000052E
+ adds r0, r0, r2
+ movs r7, #0
+ ldrsb r7, [r0, r7]
+ mov r4, sp
+ adds r0, r7, #0
+ movs r1, #0xa
+ bl sub_556D0
+ strh r0, [r4]
+ mov r4, sp
+ adds r0, r7, #0
+ movs r1, #0xa
+ bl sub_55768
+ strh r0, [r4, #2]
+ mov r0, sp
+ movs r3, #0
+ ldrsh r0, [r0, r3]
+ cmp r0, #0
+ bne _08046240
+ mov r1, sp
+ movs r0, #0x14
+ strh r0, [r1]
+_08046240:
+ mov r0, sp
+ movs r1, #0
+ ldrsh r0, [r0, r1]
+ lsls r0, r0, #1
+ adds r0, r0, r5
+ mov r2, r8
+ strh r0, [r2, #0x14]
+ mov r0, sp
+ movs r3, #2
+ ldrsh r0, [r0, r3]
+ lsls r0, r0, #1
+ adds r0, r0, r5
+ strh r0, [r2, #0x16]
+ mov r6, sb
+ movs r0, #0x78
+ strh r0, [r6, #2]
+ ldr r1, _080463D0 @ =0x020314E0
+ ldr r0, [r1]
+ movs r2, #0xe5
+ lsls r2, r2, #2
+ adds r0, r0, r2
+ ldrh r0, [r0]
+ adds r0, #0x3c
+ strh r0, [r6, #4]
+ movs r1, #0
+ ldr r7, _080463E0 @ =0x03005000
+ ldr r3, _08046404 @ =0x000003FF
+ mov sl, r3
+ mov ip, r8
+ ldr r0, _08046408 @ =0xFFFFFC00
+ mov sb, r0
+_0804627E:
+ lsls r4, r1, #0x10
+ asrs r4, r4, #0x10
+ lsls r0, r4, #3
+ adds r0, #8
+ adds r5, r6, r0
+ ldrh r3, [r5]
+ lsls r3, r3, #3
+ adds r3, r3, r7
+ movs r2, #2
+ ldrsh r1, [r5, r2]
+ movs r2, #2
+ ldrsh r0, [r6, r2]
+ adds r1, r1, r0
+ ldr r2, _080463E8 @ =0x000001FF
+ adds r0, r2, #0
+ ands r1, r0
+ ldrh r2, [r3, #2]
+ ldr r0, _080463E4 @ =0xFFFFFE00
+ ands r0, r2
+ orrs r0, r1
+ strh r0, [r3, #2]
+ ldrh r1, [r5]
+ lsls r1, r1, #3
+ adds r1, r1, r7
+ ldrb r0, [r6, #4]
+ ldrb r3, [r5, #4]
+ adds r0, r0, r3
+ strb r0, [r1]
+ ldrh r3, [r5]
+ lsls r3, r3, #3
+ adds r3, r3, r7
+ lsls r0, r4, #1
+ add r0, ip
+ ldrh r0, [r0]
+ mov r1, sl
+ ands r1, r0
+ ldrh r2, [r3, #4]
+ mov r0, sb
+ ands r0, r2
+ orrs r0, r1
+ strh r0, [r3, #4]
+ adds r4, #1
+ lsls r4, r4, #0x10
+ lsrs r1, r4, #0x10
+ asrs r4, r4, #0x10
+ cmp r4, #0xb
+ ble _0804627E
+ ldr r1, _080463D0 @ =0x020314E0
+ ldr r0, [r1]
+ ldr r2, _0804640C @ =0x0000052F
+ adds r0, r0, r2
+ movs r2, #0
+ ldrsb r2, [r0, r2]
+ lsls r1, r2, #5
+ subs r1, r1, r2
+ lsls r0, r1, #6
+ subs r0, r0, r1
+ lsls r0, r0, #3
+ adds r0, r0, r2
+ lsls r7, r0, #6
+ mov r5, sp
+ ldr r4, _080463F4 @ =0x00989680
+ adds r0, r7, #0
+ adds r1, r4, #0
+ bl sub_556D0
+ strh r0, [r5]
+ mov r5, sp
+ adds r0, r7, #0
+ adds r1, r4, #0
+ bl sub_55768
+ ldr r4, _080463F8 @ =0x000F4240
+ adds r1, r4, #0
+ bl sub_556D0
+ strh r0, [r5, #2]
+ mov r0, sp
+ movs r6, #0xa
+ strh r6, [r0, #4]
+ mov r5, sp
+ adds r0, r7, #0
+ adds r1, r4, #0
+ bl sub_55768
+ ldr r4, _080463FC @ =0x000186A0
+ adds r1, r4, #0
+ bl sub_556D0
+ strh r0, [r5, #6]
+ mov r5, sp
+ adds r0, r7, #0
+ adds r1, r4, #0
+ bl sub_55768
+ ldr r4, _08046400 @ =0x00002710
+ adds r1, r4, #0
+ bl sub_556D0
+ strh r0, [r5, #8]
+ mov r5, sp
+ adds r0, r7, #0
+ adds r1, r4, #0
+ bl sub_55768
+ movs r4, #0xfa
+ lsls r4, r4, #2
+ adds r1, r4, #0
+ bl sub_556D0
+ strh r0, [r5, #0xa]
+ mov r0, sp
+ strh r6, [r0, #0xc]
+ mov r5, sp
+ adds r0, r7, #0
+ adds r1, r4, #0
+ bl sub_55768
+ movs r1, #0x64
+ bl sub_556D0
+ strh r0, [r5, #0xe]
+ mov r4, sp
+ adds r0, r7, #0
+ movs r1, #0x64
+ bl sub_55768
+ movs r1, #0xa
+ bl sub_556D0
+ strh r0, [r4, #0x10]
+ mov r4, sp
+ adds r0, r7, #0
+ movs r1, #0xa
+ bl sub_55768
+ strh r0, [r4, #0x12]
+ movs r1, #0
+_08046392:
+ lsls r0, r1, #0x10
+ asrs r4, r0, #0x10
+ lsls r0, r4, #1
+ mov r3, sp
+ adds r5, r3, r0
+ movs r1, #0
+ ldrsh r0, [r5, r1]
+ movs r1, #0xa
+ bl sub_55768
+ lsls r0, r0, #0x10
+ cmp r0, #0
+ bne _080463BC
+ movs r0, #0x14
+ strh r0, [r5]
+ adds r0, r4, #1
+ lsls r0, r0, #0x10
+ lsrs r1, r0, #0x10
+ asrs r0, r0, #0x10
+ cmp r0, #8
+ ble _08046392
+_080463BC:
+ mov r0, sp
+ movs r2, #0
+ ldrsh r0, [r0, r2]
+ lsls r0, r0, #1
+ movs r3, #0xb4
+ lsls r3, r3, #2
+ adds r5, r3, #0
+ adds r0, r0, r5
+ b _08046410
+ .align 2, 0
+_080463D0: .4byte 0x020314E0
+_080463D4: .4byte 0x0000053A
+_080463D8: .4byte 0x0000031F
+_080463DC: .4byte 0x0200B8C0
+_080463E0: .4byte 0x03005000
+_080463E4: .4byte 0xFFFFFE00
+_080463E8: .4byte 0x000001FF
+_080463EC: .4byte 0x0000052E
+_080463F0: .4byte 0x004C4B40
+_080463F4: .4byte 0x00989680
+_080463F8: .4byte 0x000F4240
+_080463FC: .4byte 0x000186A0
+_08046400: .4byte 0x00002710
+_08046404: .4byte 0x000003FF
+_08046408: .4byte 0xFFFFFC00
+_0804640C: .4byte 0x0000052F
+_08046410:
+ mov r1, r8
+ strh r0, [r1]
+ mov r0, sp
+ movs r2, #2
+ ldrsh r0, [r0, r2]
+ lsls r0, r0, #1
+ adds r0, r0, r5
+ strh r0, [r1, #2]
+ mov r0, sp
+ movs r3, #4
+ ldrsh r0, [r0, r3]
+ lsls r0, r0, #1
+ adds r0, r0, r5
+ strh r0, [r1, #4]
+ mov r0, sp
+ movs r1, #6
+ ldrsh r0, [r0, r1]
+ lsls r0, r0, #1
+ adds r0, r0, r5
+ mov r2, r8
+ strh r0, [r2, #6]
+ mov r0, sp
+ movs r3, #8
+ ldrsh r0, [r0, r3]
+ lsls r0, r0, #1
+ adds r0, r0, r5
+ strh r0, [r2, #8]
+ mov r0, sp
+ movs r1, #0xa
+ ldrsh r0, [r0, r1]
+ lsls r0, r0, #1
+ adds r0, r0, r5
+ strh r0, [r2, #0xa]
+ mov r0, sp
+ movs r2, #0xc
+ ldrsh r0, [r0, r2]
+ lsls r0, r0, #1
+ adds r0, r0, r5
+ mov r3, r8
+ strh r0, [r3, #0xc]
+ mov r0, sp
+ movs r1, #0xe
+ ldrsh r0, [r0, r1]
+ lsls r0, r0, #1
+ adds r0, r0, r5
+ strh r0, [r3, #0xe]
+ mov r0, sp
+ movs r2, #0x10
+ ldrsh r0, [r0, r2]
+ lsls r0, r0, #1
+ adds r0, r0, r5
+ strh r0, [r3, #0x10]
+ mov r0, sp
+ movs r3, #0x12
+ ldrsh r0, [r0, r3]
+ lsls r0, r0, #1
+ adds r0, r0, r5
+ mov r1, r8
+ strh r0, [r1, #0x12]
+ ldr r2, _080467AC @ =0x020314E0
+ ldr r0, [r2]
+ ldr r3, _080467B0 @ =0x0000052F
+ adds r0, r0, r3
+ movs r7, #0
+ ldrsb r7, [r0, r7]
+ mov r4, sp
+ adds r0, r7, #0
+ movs r1, #0xa
+ bl sub_556D0
+ strh r0, [r4]
+ mov r4, sp
+ adds r0, r7, #0
+ movs r1, #0xa
+ bl sub_55768
+ strh r0, [r4, #2]
+ mov r0, sp
+ movs r1, #0
+ ldrsh r0, [r0, r1]
+ cmp r0, #0
+ bne _080464BA
+ mov r1, sp
+ movs r0, #0x14
+ strh r0, [r1]
+_080464BA:
+ mov r0, sp
+ movs r2, #0
+ ldrsh r0, [r0, r2]
+ lsls r0, r0, #1
+ adds r0, r0, r5
+ mov r3, r8
+ strh r0, [r3, #0x14]
+ mov r0, sp
+ movs r1, #2
+ ldrsh r0, [r0, r1]
+ lsls r0, r0, #1
+ adds r0, r0, r5
+ strh r0, [r3, #0x16]
+ ldr r6, _080467B4 @ =0x0200BA30
+ movs r0, #0x78
+ strh r0, [r6, #2]
+ ldr r2, _080467AC @ =0x020314E0
+ ldr r0, [r2]
+ movs r3, #0xe5
+ lsls r3, r3, #2
+ adds r0, r0, r3
+ ldrh r0, [r0]
+ adds r0, #0x3c
+ strh r0, [r6, #4]
+ movs r1, #0
+ ldr r7, _080467B8 @ =0x03005000
+ ldr r0, _080467BC @ =0x000003FF
+ mov sl, r0
+ mov ip, r8
+ ldr r2, _080467C0 @ =0xFFFFFC00
+ mov sb, r2
+_080464F8:
+ lsls r4, r1, #0x10
+ asrs r4, r4, #0x10
+ lsls r0, r4, #3
+ adds r0, #8
+ adds r5, r6, r0
+ ldrh r3, [r5]
+ lsls r3, r3, #3
+ adds r3, r3, r7
+ movs r0, #2
+ ldrsh r1, [r5, r0]
+ movs r2, #2
+ ldrsh r0, [r6, r2]
+ adds r1, r1, r0
+ ldr r2, _080467C4 @ =0x000001FF
+ adds r0, r2, #0
+ ands r1, r0
+ ldrh r2, [r3, #2]
+ ldr r0, _080467C8 @ =0xFFFFFE00
+ ands r0, r2
+ orrs r0, r1
+ strh r0, [r3, #2]
+ ldrh r1, [r5]
+ lsls r1, r1, #3
+ adds r1, r1, r7
+ ldrb r0, [r6, #4]
+ ldrb r3, [r5, #4]
+ adds r0, r0, r3
+ strb r0, [r1]
+ ldrh r3, [r5]
+ lsls r3, r3, #3
+ adds r3, r3, r7
+ lsls r0, r4, #1
+ add r0, ip
+ ldrh r0, [r0]
+ mov r1, sl
+ ands r1, r0
+ ldrh r2, [r3, #4]
+ mov r0, sb
+ ands r0, r2
+ orrs r0, r1
+ strh r0, [r3, #4]
+ adds r4, #1
+ lsls r4, r4, #0x10
+ lsrs r1, r4, #0x10
+ asrs r4, r4, #0x10
+ cmp r4, #0xb
+ ble _080464F8
+ ldr r0, _080467AC @ =0x020314E0
+ ldr r3, [r0]
+ ldr r1, _080467CC @ =0x0000052E
+ adds r0, r3, r1
+ movs r1, #0
+ ldrsb r1, [r0, r1]
+ ldr r0, _080467D0 @ =0x004C4B40
+ adds r4, r1, #0
+ muls r4, r0, r4
+ ldr r2, _080467B0 @ =0x0000052F
+ adds r0, r3, r2
+ movs r2, #0
+ ldrsb r2, [r0, r2]
+ lsls r1, r2, #5
+ subs r1, r1, r2
+ lsls r0, r1, #6
+ subs r0, r0, r1
+ lsls r0, r0, #3
+ adds r0, r0, r2
+ lsls r0, r0, #6
+ adds r7, r4, r0
+ ldr r0, _080467D4 @ =0x00000544
+ adds r3, r3, r0
+ str r7, [r3]
+ mov r5, sp
+ ldr r4, _080467D8 @ =0x05F5E100
+ adds r0, r7, #0
+ adds r1, r4, #0
+ bl sub_556D0
+ strh r0, [r5]
+ mov r5, sp
+ adds r0, r7, #0
+ adds r1, r4, #0
+ bl sub_55768
+ ldr r4, _080467DC @ =0x00989680
+ adds r1, r4, #0
+ bl sub_556D0
+ strh r0, [r5, #2]
+ mov r5, sp
+ adds r0, r7, #0
+ adds r1, r4, #0
+ bl sub_55768
+ ldr r4, _080467E0 @ =0x000F4240
+ adds r1, r4, #0
+ bl sub_556D0
+ strh r0, [r5, #4]
+ mov r0, sp
+ movs r6, #0xa
+ strh r6, [r0, #6]
+ mov r5, sp
+ adds r0, r7, #0
+ adds r1, r4, #0
+ bl sub_55768
+ ldr r4, _080467E4 @ =0x000186A0
+ adds r1, r4, #0
+ bl sub_556D0
+ strh r0, [r5, #8]
+ mov r5, sp
+ adds r0, r7, #0
+ adds r1, r4, #0
+ bl sub_55768
+ ldr r4, _080467E8 @ =0x00002710
+ adds r1, r4, #0
+ bl sub_556D0
+ strh r0, [r5, #0xa]
+ mov r5, sp
+ adds r0, r7, #0
+ adds r1, r4, #0
+ bl sub_55768
+ movs r4, #0xfa
+ lsls r4, r4, #2
+ adds r1, r4, #0
+ bl sub_556D0
+ strh r0, [r5, #0xc]
+ mov r0, sp
+ strh r6, [r0, #0xe]
+ mov r5, sp
+ adds r0, r7, #0
+ adds r1, r4, #0
+ bl sub_55768
+ movs r1, #0x64
+ bl sub_556D0
+ strh r0, [r5, #0x10]
+ mov r4, sp
+ adds r0, r7, #0
+ movs r1, #0x64
+ bl sub_55768
+ movs r1, #0xa
+ bl sub_556D0
+ strh r0, [r4, #0x12]
+ mov r4, sp
+ adds r0, r7, #0
+ movs r1, #0xa
+ bl sub_55768
+ strh r0, [r4, #0x14]
+ movs r1, #0
+_08046636:
+ lsls r0, r1, #0x10
+ asrs r4, r0, #0x10
+ lsls r0, r4, #1
+ mov r1, sp
+ adds r5, r1, r0
+ movs r2, #0
+ ldrsh r0, [r5, r2]
+ movs r1, #0xa
+ bl sub_55768
+ lsls r0, r0, #0x10
+ cmp r0, #0
+ bne _08046660
+ movs r0, #0x14
+ strh r0, [r5]
+ adds r0, r4, #1
+ lsls r0, r0, #0x10
+ lsrs r1, r0, #0x10
+ asrs r0, r0, #0x10
+ cmp r0, #9
+ ble _08046636
+_08046660:
+ mov r0, sp
+ movs r3, #0
+ ldrsh r0, [r0, r3]
+ lsls r0, r0, #1
+ movs r2, #0xb4
+ lsls r2, r2, #2
+ adds r1, r2, #0
+ adds r0, r0, r1
+ mov r3, r8
+ strh r0, [r3]
+ mov r0, sp
+ movs r2, #2
+ ldrsh r0, [r0, r2]
+ lsls r0, r0, #1
+ adds r0, r0, r1
+ strh r0, [r3, #2]
+ mov r0, sp
+ movs r3, #4
+ ldrsh r0, [r0, r3]
+ lsls r0, r0, #1
+ adds r0, r0, r1
+ mov r2, r8
+ strh r0, [r2, #4]
+ mov r0, sp
+ movs r3, #6
+ ldrsh r0, [r0, r3]
+ lsls r0, r0, #1
+ adds r0, r0, r1
+ strh r0, [r2, #6]
+ mov r0, sp
+ movs r2, #8
+ ldrsh r0, [r0, r2]
+ lsls r0, r0, #1
+ adds r0, r0, r1
+ mov r3, r8
+ strh r0, [r3, #8]
+ mov r0, sp
+ movs r2, #0xa
+ ldrsh r0, [r0, r2]
+ lsls r0, r0, #1
+ adds r0, r0, r1
+ strh r0, [r3, #0xa]
+ mov r0, sp
+ movs r3, #0xc
+ ldrsh r0, [r0, r3]
+ lsls r0, r0, #1
+ adds r0, r0, r1
+ mov r2, r8
+ strh r0, [r2, #0xc]
+ mov r0, sp
+ movs r3, #0xe
+ ldrsh r0, [r0, r3]
+ lsls r0, r0, #1
+ adds r0, r0, r1
+ strh r0, [r2, #0xe]
+ mov r0, sp
+ movs r2, #0x10
+ ldrsh r0, [r0, r2]
+ lsls r0, r0, #1
+ adds r0, r0, r1
+ mov r3, r8
+ strh r0, [r3, #0x10]
+ mov r0, sp
+ movs r2, #0x12
+ ldrsh r0, [r0, r2]
+ lsls r0, r0, #1
+ adds r0, r0, r1
+ strh r0, [r3, #0x12]
+ mov r0, sp
+ movs r3, #0x14
+ ldrsh r0, [r0, r3]
+ lsls r0, r0, #1
+ adds r0, r0, r1
+ mov r2, r8
+ strh r0, [r2, #0x14]
+ ldr r3, _080467AC @ =0x020314E0
+ ldr r0, [r3]
+ ldr r2, _080467EC @ =0x000005F6
+ adds r0, r0, r2
+ ldrb r0, [r0]
+ lsls r0, r0, #0x18
+ asrs r0, r0, #0x18
+ adds r7, r0, #1
+ mov r0, sp
+ strh r7, [r0]
+ movs r3, #0
+ ldrsh r0, [r0, r3]
+ lsls r0, r0, #1
+ adds r0, r0, r1
+ mov r1, r8
+ strh r0, [r1, #0x16]
+ ldr r6, _080467F0 @ =0x0200BAE8
+ movs r0, #0x78
+ strh r0, [r6, #2]
+ ldr r2, _080467AC @ =0x020314E0
+ ldr r0, [r2]
+ movs r3, #0xe5
+ lsls r3, r3, #2
+ adds r0, r0, r3
+ ldrh r0, [r0]
+ adds r0, #0x3c
+ strh r0, [r6, #4]
+ movs r1, #0
+ ldr r7, _080467B8 @ =0x03005000
+ ldr r0, _080467C8 @ =0xFFFFFE00
+ mov ip, r0
+ ldr r2, _080467BC @ =0x000003FF
+ mov sl, r2
+ ldr r3, _080467C0 @ =0xFFFFFC00
+ mov sb, r3
+_0804673C:
+ lsls r4, r1, #0x10
+ asrs r4, r4, #0x10
+ lsls r0, r4, #3
+ adds r0, #8
+ adds r5, r6, r0
+ ldrh r3, [r5]
+ lsls r3, r3, #3
+ adds r3, r3, r7
+ movs r0, #2
+ ldrsh r1, [r5, r0]
+ movs r2, #2
+ ldrsh r0, [r6, r2]
+ adds r1, r1, r0
+ ldr r2, _080467C4 @ =0x000001FF
+ adds r0, r2, #0
+ ands r1, r0
+ ldrh r2, [r3, #2]
+ mov r0, ip
+ ands r0, r2
+ orrs r0, r1
+ strh r0, [r3, #2]
+ ldrh r1, [r5]
+ lsls r1, r1, #3
+ adds r1, r1, r7
+ ldrb r0, [r6, #4]
+ ldrb r3, [r5, #4]
+ adds r0, r0, r3
+ strb r0, [r1]
+ ldrh r3, [r5]
+ lsls r3, r3, #3
+ adds r3, r3, r7
+ lsls r0, r4, #1
+ add r0, r8
+ ldrh r0, [r0]
+ mov r1, sl
+ ands r1, r0
+ ldrh r2, [r3, #4]
+ mov r0, sb
+ ands r0, r2
+ orrs r0, r1
+ strh r0, [r3, #4]
+ adds r4, #1
+ lsls r4, r4, #0x10
+ lsrs r1, r4, #0x10
+ asrs r4, r4, #0x10
+ cmp r4, #0xb
+ ble _0804673C
+_0804679A:
+ add sp, #0x30
+ pop {r3, r4, r5}
+ mov r8, r3
+ mov sb, r4
+ mov sl, r5
+ pop {r4, r5, r6, r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080467AC: .4byte 0x020314E0
+_080467B0: .4byte 0x0000052F
+_080467B4: .4byte 0x0200BA30
+_080467B8: .4byte 0x03005000
+_080467BC: .4byte 0x000003FF
+_080467C0: .4byte 0xFFFFFC00
+_080467C4: .4byte 0x000001FF
+_080467C8: .4byte 0xFFFFFE00
+_080467CC: .4byte 0x0000052E
+_080467D0: .4byte 0x004C4B40
+_080467D4: .4byte 0x00000544
+_080467D8: .4byte 0x05F5E100
+_080467DC: .4byte 0x00989680
+_080467E0: .4byte 0x000F4240
+_080467E4: .4byte 0x000186A0
+_080467E8: .4byte 0x00002710
+_080467EC: .4byte 0x000005F6
+_080467F0: .4byte 0x0200BAE8
+
+ thumb_func_start sub_467F4
+sub_467F4: @ 0x080467F4
+ push {r4, r5, r6, lr}
+ mov r6, sb
+ mov r5, r8
+ push {r5, r6}
+ ldr r0, _08046824 @ =0x02031520
+ ldr r3, _08046828 @ =0x086AFD70
+ ldr r4, _0804682C @ =0x0200B0C0
+ ldrb r2, [r4, #4]
+ movs r1, #0x54
+ muls r1, r2, r1
+ adds r1, r1, r3
+ adds r0, #0x14
+ movs r2, #0x54
+ bl sub_55970
+ ldrb r0, [r4, #4]
+ cmp r0, #7
+ bls _0804681A
+ b _08046F66
+_0804681A:
+ lsls r0, r0, #2
+ ldr r1, _08046830 @ =_08046834
+ adds r0, r0, r1
+ ldr r0, [r0]
+ mov pc, r0
+ .align 2, 0
+_08046824: .4byte 0x02031520
+_08046828: .4byte 0x086AFD70
+_0804682C: .4byte 0x0200B0C0
+_08046830: .4byte _08046834
+_08046834: @ jump table
+ .4byte _08046854 @ case 0
+ .4byte _0804698C @ case 1
+ .4byte _08046AC0 @ case 2
+ .4byte _08046B9C @ case 3
+ .4byte _08046C78 @ case 4
+ .4byte _08046D40 @ case 5
+ .4byte _08046E08 @ case 6
+ .4byte _08046EE8 @ case 7
+_08046854:
+ ldr r4, _08046914 @ =0x040000D4
+ ldr r0, _08046918 @ =0x081BFEE4
+ str r0, [r4]
+ movs r0, #0xa0
+ lsls r0, r0, #0x13
+ str r0, [r4, #4]
+ ldr r0, _0804691C @ =0x80000100
+ str r0, [r4, #8]
+ ldr r0, [r4, #8]
+ ldr r0, _08046920 @ =0x08265C10
+ str r0, [r4]
+ ldr r0, _08046924 @ =0x06008000
+ mov r8, r0
+ str r0, [r4, #4]
+ ldr r1, _08046928 @ =0x80004000
+ mov sb, r1
+ str r1, [r4, #8]
+ ldr r0, [r4, #8]
+ ldr r0, _0804692C @ =0x0826DC10
+ str r0, [r4]
+ ldr r0, _08046930 @ =0x06003000
+ str r0, [r4, #4]
+ ldr r6, _08046934 @ =0x80000800
+ str r6, [r4, #8]
+ ldr r0, [r4, #8]
+ ldr r0, _08046938 @ =0x0824C1E4
+ ldr r5, _0804693C @ =0x0200FBB0
+ adds r1, r5, #0
+ bl sub_554DC
+ str r5, [r4]
+ ldr r0, _08046940 @ =0x06004000
+ str r0, [r4, #4]
+ ldr r0, _08046944 @ =0x80002000
+ str r0, [r4, #8]
+ ldr r0, [r4, #8]
+ ldr r0, _08046948 @ =0x0824DD60
+ adds r1, r5, #0
+ bl sub_554DC
+ ldr r0, _0804694C @ =0x08250934
+ ldr r1, _08046950 @ =0x020030A0
+ bl sub_554DC
+ movs r1, #0xc0
+ lsls r1, r1, #4
+ adds r0, r5, r1
+ str r0, [r4]
+ ldr r0, _08046954 @ =0x0600B400
+ str r0, [r4, #4]
+ ldr r0, _08046958 @ =0x80001200
+ str r0, [r4, #8]
+ ldr r0, [r4, #8]
+ movs r0, #0xc0
+ lsls r0, r0, #6
+ adds r5, r5, r0
+ str r5, [r4]
+ mov r1, r8
+ str r1, [r4, #4]
+ ldr r0, _0804695C @ =0x80001A00
+ str r0, [r4, #8]
+ ldr r0, [r4, #8]
+ ldr r0, _08046960 @ =0x081C08E4
+ str r0, [r4]
+ movs r0, #0xc0
+ lsls r0, r0, #0x13
+ str r0, [r4, #4]
+ str r6, [r4, #8]
+ ldr r0, [r4, #8]
+ ldr r0, _08046964 @ =0x0822E424
+ str r0, [r4]
+ ldr r0, _08046968 @ =0x06001000
+ str r0, [r4, #4]
+ str r6, [r4, #8]
+ ldr r0, [r4, #8]
+ ldr r0, _0804696C @ =0x083A8ACC
+ str r0, [r4]
+ ldr r0, _08046970 @ =0x06006800
+ str r0, [r4, #4]
+ ldr r0, _08046974 @ =0x80000200
+ str r0, [r4, #8]
+ ldr r0, [r4, #8]
+ ldr r0, _08046978 @ =0x083A826C
+ str r0, [r4]
+ ldr r0, _0804697C @ =0x06006C00
+ str r0, [r4, #4]
+ ldr r0, _08046980 @ =0x80000400
+ str r0, [r4, #8]
+ ldr r0, [r4, #8]
+ ldr r0, _08046984 @ =0x0845A48C
+ str r0, [r4]
+ ldr r0, _08046988 @ =0x06010000
+ str r0, [r4, #4]
+ mov r0, sb
+ str r0, [r4, #8]
+ b _08046F64
+ .align 2, 0
+_08046914: .4byte 0x040000D4
+_08046918: .4byte 0x081BFEE4
+_0804691C: .4byte 0x80000100
+_08046920: .4byte 0x08265C10
+_08046924: .4byte 0x06008000
+_08046928: .4byte 0x80004000
+_0804692C: .4byte 0x0826DC10
+_08046930: .4byte 0x06003000
+_08046934: .4byte 0x80000800
+_08046938: .4byte 0x0824C1E4
+_0804693C: .4byte 0x0200FBB0
+_08046940: .4byte 0x06004000
+_08046944: .4byte 0x80002000
+_08046948: .4byte 0x0824DD60
+_0804694C: .4byte 0x08250934
+_08046950: .4byte 0x020030A0
+_08046954: .4byte 0x0600B400
+_08046958: .4byte 0x80001200
+_0804695C: .4byte 0x80001A00
+_08046960: .4byte 0x081C08E4
+_08046964: .4byte 0x0822E424
+_08046968: .4byte 0x06001000
+_0804696C: .4byte 0x083A8ACC
+_08046970: .4byte 0x06006800
+_08046974: .4byte 0x80000200
+_08046978: .4byte 0x083A826C
+_0804697C: .4byte 0x06006C00
+_08046980: .4byte 0x80000400
+_08046984: .4byte 0x0845A48C
+_08046988: .4byte 0x06010000
+_0804698C:
+ ldr r4, _08046A48 @ =0x040000D4
+ ldr r0, _08046A4C @ =0x0826EC10
+ str r0, [r4]
+ movs r0, #0xa0
+ lsls r0, r0, #0x13
+ str r0, [r4, #4]
+ ldr r0, _08046A50 @ =0x80000100
+ str r0, [r4, #8]
+ ldr r0, [r4, #8]
+ ldr r0, _08046A54 @ =0x082E4EE0
+ str r0, [r4]
+ ldr r1, _08046A58 @ =0x06008000
+ mov r8, r1
+ str r1, [r4, #4]
+ ldr r0, _08046A5C @ =0x80004000
+ mov sb, r0
+ str r0, [r4, #8]
+ ldr r0, [r4, #8]
+ ldr r0, _08046A60 @ =0x082ECEE0
+ str r0, [r4]
+ ldr r0, _08046A64 @ =0x06003000
+ str r0, [r4, #4]
+ ldr r6, _08046A68 @ =0x80000800
+ str r6, [r4, #8]
+ ldr r0, [r4, #8]
+ ldr r0, _08046A6C @ =0x082D34D0
+ ldr r5, _08046A70 @ =0x0200FBB0
+ adds r1, r5, #0
+ bl sub_554DC
+ str r5, [r4]
+ ldr r0, _08046A74 @ =0x06004000
+ str r0, [r4, #4]
+ ldr r0, _08046A78 @ =0x80002000
+ str r0, [r4, #8]
+ ldr r0, [r4, #8]
+ ldr r0, _08046A7C @ =0x082D523C
+ adds r1, r5, #0
+ bl sub_554DC
+ ldr r0, _08046A80 @ =0x082D8998
+ ldr r1, _08046A84 @ =0x020030A0
+ bl sub_554DC
+ str r5, [r4]
+ ldr r0, _08046A88 @ =0x0600A800
+ str r0, [r4, #4]
+ ldr r0, _08046A8C @ =0x80001800
+ str r0, [r4, #8]
+ ldr r0, [r4, #8]
+ movs r1, #0xc0
+ lsls r1, r1, #6
+ adds r5, r5, r1
+ str r5, [r4]
+ mov r0, r8
+ str r0, [r4, #4]
+ ldr r0, _08046A90 @ =0x80001400
+ str r0, [r4, #8]
+ ldr r0, [r4, #8]
+ ldr r0, _08046A94 @ =0x0826EE10
+ str r0, [r4]
+ movs r0, #0xc0
+ lsls r0, r0, #0x13
+ str r0, [r4, #4]
+ str r6, [r4, #8]
+ ldr r0, [r4, #8]
+ ldr r0, _08046A98 @ =0x082AE6D0
+ str r0, [r4]
+ ldr r0, _08046A9C @ =0x06001000
+ str r0, [r4, #4]
+ str r6, [r4, #8]
+ ldr r0, [r4, #8]
+ ldr r0, _08046AA0 @ =0x083A8ACC
+ str r0, [r4]
+ ldr r0, _08046AA4 @ =0x06006800
+ str r0, [r4, #4]
+ ldr r0, _08046AA8 @ =0x80000200
+ str r0, [r4, #8]
+ ldr r0, [r4, #8]
+ ldr r0, _08046AAC @ =0x083A826C
+ str r0, [r4]
+ ldr r0, _08046AB0 @ =0x06006C00
+ str r0, [r4, #4]
+ ldr r0, _08046AB4 @ =0x80000400
+ str r0, [r4, #8]
+ ldr r0, [r4, #8]
+ ldr r0, _08046AB8 @ =0x0845F9EC
+ str r0, [r4]
+ ldr r0, _08046ABC @ =0x06010000
+ str r0, [r4, #4]
+ mov r1, sb
+ str r1, [r4, #8]
+ b _08046F64
+ .align 2, 0
+_08046A48: .4byte 0x040000D4
+_08046A4C: .4byte 0x0826EC10
+_08046A50: .4byte 0x80000100
+_08046A54: .4byte 0x082E4EE0
+_08046A58: .4byte 0x06008000
+_08046A5C: .4byte 0x80004000
+_08046A60: .4byte 0x082ECEE0
+_08046A64: .4byte 0x06003000
+_08046A68: .4byte 0x80000800
+_08046A6C: .4byte 0x082D34D0
+_08046A70: .4byte 0x0200FBB0
+_08046A74: .4byte 0x06004000
+_08046A78: .4byte 0x80002000
+_08046A7C: .4byte 0x082D523C
+_08046A80: .4byte 0x082D8998
+_08046A84: .4byte 0x020030A0
+_08046A88: .4byte 0x0600A800
+_08046A8C: .4byte 0x80001800
+_08046A90: .4byte 0x80001400
+_08046A94: .4byte 0x0826EE10
+_08046A98: .4byte 0x082AE6D0
+_08046A9C: .4byte 0x06001000
+_08046AA0: .4byte 0x083A8ACC
+_08046AA4: .4byte 0x06006800
+_08046AA8: .4byte 0x80000200
+_08046AAC: .4byte 0x083A826C
+_08046AB0: .4byte 0x06006C00
+_08046AB4: .4byte 0x80000400
+_08046AB8: .4byte 0x0845F9EC
+_08046ABC: .4byte 0x06010000
+_08046AC0:
+ ldr r4, _08046B44 @ =0x040000D4
+ ldr r0, _08046B48 @ =0x082EDEE0
+ str r0, [r4]
+ movs r0, #0xa0
+ lsls r0, r0, #0x13
+ str r0, [r4, #4]
+ ldr r0, _08046B4C @ =0x80000100
+ str r0, [r4, #8]
+ ldr r0, [r4, #8]
+ ldr r0, _08046B50 @ =0x08302700
+ ldr r5, _08046B54 @ =0x0200FBB0
+ adds r1, r5, #0
+ bl sub_554DC
+ str r5, [r4]
+ ldr r0, _08046B58 @ =0x06004000
+ str r0, [r4, #4]
+ ldr r0, _08046B5C @ =0x80002000
+ str r0, [r4, #8]
+ ldr r0, [r4, #8]
+ ldr r0, _08046B60 @ =0x08303928
+ adds r1, r5, #0
+ bl sub_554DC
+ str r5, [r4]
+ ldr r0, _08046B64 @ =0x06008000
+ str r0, [r4, #4]
+ ldr r2, _08046B68 @ =0x80004000
+ str r2, [r4, #8]
+ ldr r0, [r4, #8]
+ ldr r0, _08046B6C @ =0x082EE4C0
+ str r0, [r4]
+ movs r0, #0xc0
+ lsls r0, r0, #0x13
+ str r0, [r4, #4]
+ ldr r1, _08046B70 @ =0x80000400
+ str r1, [r4, #8]
+ ldr r0, [r4, #8]
+ ldr r0, _08046B74 @ =0x08301700
+ str r0, [r4]
+ ldr r0, _08046B78 @ =0x06000800
+ str r0, [r4, #4]
+ str r1, [r4, #8]
+ ldr r0, [r4, #8]
+ ldr r0, _08046B7C @ =0x08301F00
+ str r0, [r4]
+ ldr r0, _08046B80 @ =0x06001000
+ str r0, [r4, #4]
+ str r1, [r4, #8]
+ ldr r0, [r4, #8]
+ ldr r0, _08046B84 @ =0x083A8ACC
+ str r0, [r4]
+ ldr r0, _08046B88 @ =0x06006800
+ str r0, [r4, #4]
+ ldr r0, _08046B8C @ =0x80000200
+ str r0, [r4, #8]
+ ldr r0, [r4, #8]
+ ldr r0, _08046B90 @ =0x083A826C
+ str r0, [r4]
+ ldr r0, _08046B94 @ =0x06006C00
+ str r0, [r4, #4]
+ str r1, [r4, #8]
+ ldr r0, [r4, #8]
+ ldr r0, _08046B98 @ =0x08464F4C
+ b _08046F5C
+ .align 2, 0
+_08046B44: .4byte 0x040000D4
+_08046B48: .4byte 0x082EDEE0
+_08046B4C: .4byte 0x80000100
+_08046B50: .4byte 0x08302700
+_08046B54: .4byte 0x0200FBB0
+_08046B58: .4byte 0x06004000
+_08046B5C: .4byte 0x80002000
+_08046B60: .4byte 0x08303928
+_08046B64: .4byte 0x06008000
+_08046B68: .4byte 0x80004000
+_08046B6C: .4byte 0x082EE4C0
+_08046B70: .4byte 0x80000400
+_08046B74: .4byte 0x08301700
+_08046B78: .4byte 0x06000800
+_08046B7C: .4byte 0x08301F00
+_08046B80: .4byte 0x06001000
+_08046B84: .4byte 0x083A8ACC
+_08046B88: .4byte 0x06006800
+_08046B8C: .4byte 0x80000200
+_08046B90: .4byte 0x083A826C
+_08046B94: .4byte 0x06006C00
+_08046B98: .4byte 0x08464F4C
+_08046B9C:
+ ldr r4, _08046C20 @ =0x040000D4
+ ldr r0, _08046C24 @ =0x0830CBD4
+ str r0, [r4]
+ movs r0, #0xa0
+ lsls r0, r0, #0x13
+ str r0, [r4, #4]
+ ldr r0, _08046C28 @ =0x80000100
+ str r0, [r4, #8]
+ ldr r0, [r4, #8]
+ ldr r0, _08046C2C @ =0x08302700
+ ldr r5, _08046C30 @ =0x0200FBB0
+ adds r1, r5, #0
+ bl sub_554DC
+ str r5, [r4]
+ ldr r0, _08046C34 @ =0x06004000
+ str r0, [r4, #4]
+ ldr r0, _08046C38 @ =0x80002000
+ str r0, [r4, #8]
+ ldr r0, [r4, #8]
+ ldr r0, _08046C3C @ =0x0832A194
+ adds r1, r5, #0
+ bl sub_554DC
+ str r5, [r4]
+ ldr r0, _08046C40 @ =0x06008000
+ str r0, [r4, #4]
+ ldr r2, _08046C44 @ =0x80004000
+ str r2, [r4, #8]
+ ldr r0, [r4, #8]
+ ldr r0, _08046C48 @ =0x08329994
+ str r0, [r4]
+ movs r0, #0xc0
+ lsls r0, r0, #0x13
+ str r0, [r4, #4]
+ ldr r1, _08046C4C @ =0x80000400
+ str r1, [r4, #8]
+ ldr r0, [r4, #8]
+ ldr r0, _08046C50 @ =0x0830CDD4
+ str r0, [r4]
+ ldr r0, _08046C54 @ =0x06000800
+ str r0, [r4, #4]
+ str r1, [r4, #8]
+ ldr r0, [r4, #8]
+ ldr r0, _08046C58 @ =0x08327994
+ str r0, [r4]
+ ldr r0, _08046C5C @ =0x06001000
+ str r0, [r4, #4]
+ str r1, [r4, #8]
+ ldr r0, [r4, #8]
+ ldr r0, _08046C60 @ =0x083A8ACC
+ str r0, [r4]
+ ldr r0, _08046C64 @ =0x06006800
+ str r0, [r4, #4]
+ ldr r0, _08046C68 @ =0x80000200
+ str r0, [r4, #8]
+ ldr r0, [r4, #8]
+ ldr r0, _08046C6C @ =0x083A826C
+ str r0, [r4]
+ ldr r0, _08046C70 @ =0x06006C00
+ str r0, [r4, #4]
+ str r1, [r4, #8]
+ ldr r0, [r4, #8]
+ ldr r0, _08046C74 @ =0x084675EC
+ b _08046F5C
+ .align 2, 0
+_08046C20: .4byte 0x040000D4
+_08046C24: .4byte 0x0830CBD4
+_08046C28: .4byte 0x80000100
+_08046C2C: .4byte 0x08302700
+_08046C30: .4byte 0x0200FBB0
+_08046C34: .4byte 0x06004000
+_08046C38: .4byte 0x80002000
+_08046C3C: .4byte 0x0832A194
+_08046C40: .4byte 0x06008000
+_08046C44: .4byte 0x80004000
+_08046C48: .4byte 0x08329994
+_08046C4C: .4byte 0x80000400
+_08046C50: .4byte 0x0830CDD4
+_08046C54: .4byte 0x06000800
+_08046C58: .4byte 0x08327994
+_08046C5C: .4byte 0x06001000
+_08046C60: .4byte 0x083A8ACC
+_08046C64: .4byte 0x06006800
+_08046C68: .4byte 0x80000200
+_08046C6C: .4byte 0x083A826C
+_08046C70: .4byte 0x06006C00
+_08046C74: .4byte 0x084675EC
+_08046C78:
+ ldr r4, _08046CF0 @ =0x040000D4
+ ldr r0, _08046CF4 @ =0x08332E04
+ str r0, [r4]
+ movs r0, #0xa0
+ lsls r0, r0, #0x13
+ str r0, [r4, #4]
+ ldr r0, _08046CF8 @ =0x80000100
+ str r0, [r4, #8]
+ ldr r0, [r4, #8]
+ ldr r0, _08046CFC @ =0x08302700
+ ldr r5, _08046D00 @ =0x0200FBB0
+ adds r1, r5, #0
+ bl sub_554DC
+ str r5, [r4]
+ ldr r0, _08046D04 @ =0x06004000
+ str r0, [r4, #4]
+ ldr r0, _08046D08 @ =0x80002000
+ str r0, [r4, #8]
+ ldr r0, [r4, #8]
+ ldr r0, _08046D0C @ =0x0833E044
+ adds r1, r5, #0
+ bl sub_554DC
+ str r5, [r4]
+ ldr r0, _08046D10 @ =0x06008000
+ str r0, [r4, #4]
+ ldr r2, _08046D14 @ =0x80004000
+ str r2, [r4, #8]
+ ldr r0, [r4, #8]
+ ldr r0, _08046D18 @ =0x08333004
+ str r0, [r4]
+ movs r0, #0xc0
+ lsls r0, r0, #0x13
+ str r0, [r4, #4]
+ ldr r1, _08046D1C @ =0x80000400
+ str r1, [r4, #8]
+ ldr r0, [r4, #8]
+ ldr r0, _08046D20 @ =0x0833D844
+ str r0, [r4]
+ ldr r0, _08046D24 @ =0x06000800
+ str r0, [r4, #4]
+ str r1, [r4, #8]
+ ldr r0, [r4, #8]
+ ldr r0, _08046D28 @ =0x083A8ACC
+ str r0, [r4]
+ ldr r0, _08046D2C @ =0x06006800
+ str r0, [r4, #4]
+ ldr r0, _08046D30 @ =0x80000200
+ str r0, [r4, #8]
+ ldr r0, [r4, #8]
+ ldr r0, _08046D34 @ =0x083A826C
+ str r0, [r4]
+ ldr r0, _08046D38 @ =0x06006C00
+ str r0, [r4, #4]
+ str r1, [r4, #8]
+ ldr r0, [r4, #8]
+ ldr r0, _08046D3C @ =0x0846A40C
+ b _08046F5C
+ .align 2, 0
+_08046CF0: .4byte 0x040000D4
+_08046CF4: .4byte 0x08332E04
+_08046CF8: .4byte 0x80000100
+_08046CFC: .4byte 0x08302700
+_08046D00: .4byte 0x0200FBB0
+_08046D04: .4byte 0x06004000
+_08046D08: .4byte 0x80002000
+_08046D0C: .4byte 0x0833E044
+_08046D10: .4byte 0x06008000
+_08046D14: .4byte 0x80004000
+_08046D18: .4byte 0x08333004
+_08046D1C: .4byte 0x80000400
+_08046D20: .4byte 0x0833D844
+_08046D24: .4byte 0x06000800
+_08046D28: .4byte 0x083A8ACC
+_08046D2C: .4byte 0x06006800
+_08046D30: .4byte 0x80000200
+_08046D34: .4byte 0x083A826C
+_08046D38: .4byte 0x06006C00
+_08046D3C: .4byte 0x0846A40C
+_08046D40:
+ ldr r4, _08046DB8 @ =0x040000D4
+ ldr r0, _08046DBC @ =0x08352BD8
+ str r0, [r4]
+ movs r0, #0xa0
+ lsls r0, r0, #0x13
+ str r0, [r4, #4]
+ ldr r0, _08046DC0 @ =0x80000100
+ str r0, [r4, #8]
+ ldr r0, [r4, #8]
+ ldr r0, _08046DC4 @ =0x08302700
+ ldr r5, _08046DC8 @ =0x0200FBB0
+ adds r1, r5, #0
+ bl sub_554DC
+ str r5, [r4]
+ ldr r0, _08046DCC @ =0x06004000
+ str r0, [r4, #4]
+ ldr r0, _08046DD0 @ =0x80002000
+ str r0, [r4, #8]
+ ldr r0, [r4, #8]
+ ldr r0, _08046DD4 @ =0x08353DD8
+ adds r1, r5, #0
+ bl sub_554DC
+ str r5, [r4]
+ ldr r0, _08046DD8 @ =0x06008000
+ str r0, [r4, #4]
+ ldr r2, _08046DDC @ =0x80004000
+ str r2, [r4, #8]
+ ldr r0, [r4, #8]
+ ldr r0, _08046DE0 @ =0x08352DD8
+ str r0, [r4]
+ movs r0, #0xc0
+ lsls r0, r0, #0x13
+ str r0, [r4, #4]
+ ldr r1, _08046DE4 @ =0x80000400
+ str r1, [r4, #8]
+ ldr r0, [r4, #8]
+ ldr r0, _08046DE8 @ =0x083535D8
+ str r0, [r4]
+ ldr r0, _08046DEC @ =0x06000800
+ str r0, [r4, #4]
+ str r1, [r4, #8]
+ ldr r0, [r4, #8]
+ ldr r0, _08046DF0 @ =0x083A8ACC
+ str r0, [r4]
+ ldr r0, _08046DF4 @ =0x06006800
+ str r0, [r4, #4]
+ ldr r0, _08046DF8 @ =0x80000200
+ str r0, [r4, #8]
+ ldr r0, [r4, #8]
+ ldr r0, _08046DFC @ =0x083A826C
+ str r0, [r4]
+ ldr r0, _08046E00 @ =0x06006C00
+ str r0, [r4, #4]
+ str r1, [r4, #8]
+ ldr r0, [r4, #8]
+ ldr r0, _08046E04 @ =0x0846D2AC
+ b _08046F5C
+ .align 2, 0
+_08046DB8: .4byte 0x040000D4
+_08046DBC: .4byte 0x08352BD8
+_08046DC0: .4byte 0x80000100
+_08046DC4: .4byte 0x08302700
+_08046DC8: .4byte 0x0200FBB0
+_08046DCC: .4byte 0x06004000
+_08046DD0: .4byte 0x80002000
+_08046DD4: .4byte 0x08353DD8
+_08046DD8: .4byte 0x06008000
+_08046DDC: .4byte 0x80004000
+_08046DE0: .4byte 0x08352DD8
+_08046DE4: .4byte 0x80000400
+_08046DE8: .4byte 0x083535D8
+_08046DEC: .4byte 0x06000800
+_08046DF0: .4byte 0x083A8ACC
+_08046DF4: .4byte 0x06006800
+_08046DF8: .4byte 0x80000200
+_08046DFC: .4byte 0x083A826C
+_08046E00: .4byte 0x06006C00
+_08046E04: .4byte 0x0846D2AC
+_08046E08:
+ ldr r4, _08046E8C @ =0x040000D4
+ ldr r0, _08046E90 @ =0x08363EC8
+ str r0, [r4]
+ movs r0, #0xa0
+ lsls r0, r0, #0x13
+ str r0, [r4, #4]
+ ldr r0, _08046E94 @ =0x80000100
+ str r0, [r4, #8]
+ ldr r0, [r4, #8]
+ ldr r0, _08046E98 @ =0x08302700
+ ldr r5, _08046E9C @ =0x0200FBB0
+ adds r1, r5, #0
+ bl sub_554DC
+ str r5, [r4]
+ ldr r0, _08046EA0 @ =0x06004000
+ str r0, [r4, #4]
+ ldr r0, _08046EA4 @ =0x80002000
+ str r0, [r4, #8]
+ ldr r0, [r4, #8]
+ ldr r0, _08046EA8 @ =0x08370808
+ adds r1, r5, #0
+ bl sub_554DC
+ str r5, [r4]
+ ldr r0, _08046EAC @ =0x06008000
+ str r0, [r4, #4]
+ ldr r2, _08046EB0 @ =0x80004000
+ str r2, [r4, #8]
+ ldr r0, [r4, #8]
+ ldr r0, _08046EB4 @ =0x083640C8
+ str r0, [r4]
+ movs r0, #0xc0
+ lsls r0, r0, #0x13
+ str r0, [r4, #4]
+ ldr r1, _08046EB8 @ =0x80000800
+ str r1, [r4, #8]
+ ldr r0, [r4, #8]
+ ldr r0, _08046EBC @ =0x0836F808
+ str r0, [r4]
+ ldr r0, _08046EC0 @ =0x06001000
+ str r0, [r4, #4]
+ str r1, [r4, #8]
+ ldr r0, [r4, #8]
+ ldr r0, _08046EC4 @ =0x0836E808
+ str r0, [r4]
+ ldr r0, _08046EC8 @ =0x06003000
+ str r0, [r4, #4]
+ str r1, [r4, #8]
+ ldr r0, [r4, #8]
+ ldr r0, _08046ECC @ =0x083A8ACC
+ str r0, [r4]
+ ldr r0, _08046ED0 @ =0x06006800
+ str r0, [r4, #4]
+ ldr r0, _08046ED4 @ =0x80000200
+ str r0, [r4, #8]
+ ldr r0, [r4, #8]
+ ldr r0, _08046ED8 @ =0x083A826C
+ str r0, [r4]
+ ldr r0, _08046EDC @ =0x06006C00
+ str r0, [r4, #4]
+ ldr r0, _08046EE0 @ =0x80000400
+ str r0, [r4, #8]
+ ldr r0, [r4, #8]
+ ldr r0, _08046EE4 @ =0x08472A6C
+ b _08046F5C
+ .align 2, 0
+_08046E8C: .4byte 0x040000D4
+_08046E90: .4byte 0x08363EC8
+_08046E94: .4byte 0x80000100
+_08046E98: .4byte 0x08302700
+_08046E9C: .4byte 0x0200FBB0
+_08046EA0: .4byte 0x06004000
+_08046EA4: .4byte 0x80002000
+_08046EA8: .4byte 0x08370808
+_08046EAC: .4byte 0x06008000
+_08046EB0: .4byte 0x80004000
+_08046EB4: .4byte 0x083640C8
+_08046EB8: .4byte 0x80000800
+_08046EBC: .4byte 0x0836F808
+_08046EC0: .4byte 0x06001000
+_08046EC4: .4byte 0x0836E808
+_08046EC8: .4byte 0x06003000
+_08046ECC: .4byte 0x083A8ACC
+_08046ED0: .4byte 0x06006800
+_08046ED4: .4byte 0x80000200
+_08046ED8: .4byte 0x083A826C
+_08046EDC: .4byte 0x06006C00
+_08046EE0: .4byte 0x80000400
+_08046EE4: .4byte 0x08472A6C
+_08046EE8:
+ ldr r4, _08046F78 @ =0x040000D4
+ ldr r0, _08046F7C @ =0x0837A2E8
+ str r0, [r4]
+ movs r0, #0xa0
+ lsls r0, r0, #0x13
+ str r0, [r4, #4]
+ ldr r0, _08046F80 @ =0x80000100
+ str r0, [r4, #8]
+ ldr r0, [r4, #8]
+ ldr r0, _08046F84 @ =0x08302700
+ ldr r5, _08046F88 @ =0x0200FBB0
+ adds r1, r5, #0
+ bl sub_554DC
+ str r5, [r4]
+ ldr r0, _08046F8C @ =0x06004000
+ str r0, [r4, #4]
+ ldr r0, _08046F90 @ =0x80002000
+ str r0, [r4, #8]
+ ldr r0, [r4, #8]
+ ldr r0, _08046F94 @ =0x0838E828
+ adds r1, r5, #0
+ bl sub_554DC
+ str r5, [r4]
+ ldr r0, _08046F98 @ =0x06008000
+ str r0, [r4, #4]
+ ldr r2, _08046F9C @ =0x80004000
+ str r2, [r4, #8]
+ ldr r0, [r4, #8]
+ ldr r0, _08046FA0 @ =0x0837A4E8
+ str r0, [r4]
+ movs r0, #0xc0
+ lsls r0, r0, #0x13
+ str r0, [r4, #4]
+ ldr r1, _08046FA4 @ =0x80000400
+ str r1, [r4, #8]
+ ldr r0, [r4, #8]
+ ldr r0, _08046FA8 @ =0x0838E028
+ str r0, [r4]
+ ldr r0, _08046FAC @ =0x06000800
+ str r0, [r4, #4]
+ str r1, [r4, #8]
+ ldr r0, [r4, #8]
+ ldr r0, _08046FB0 @ =0x083A8ACC
+ str r0, [r4]
+ ldr r0, _08046FB4 @ =0x06006800
+ str r0, [r4, #4]
+ ldr r0, _08046FB8 @ =0x80000200
+ str r0, [r4, #8]
+ ldr r0, [r4, #8]
+ ldr r0, _08046FBC @ =0x083A826C
+ str r0, [r4]
+ ldr r0, _08046FC0 @ =0x06006C00
+ str r0, [r4, #4]
+ str r1, [r4, #8]
+ ldr r0, [r4, #8]
+ ldr r0, _08046FC4 @ =0x084779EC
+_08046F5C:
+ str r0, [r4]
+ ldr r0, _08046FC8 @ =0x06010000
+ str r0, [r4, #4]
+ str r2, [r4, #8]
+_08046F64:
+ ldr r0, [r4, #8]
+_08046F66:
+ ldr r1, _08046FCC @ =0x02031520
+ ldr r0, _08046FD0 @ =0x0816C3E4
+ str r0, [r1, #0x68]
+ pop {r3, r4}
+ mov r8, r3
+ mov sb, r4
+ pop {r4, r5, r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08046F78: .4byte 0x040000D4
+_08046F7C: .4byte 0x0837A2E8
+_08046F80: .4byte 0x80000100
+_08046F84: .4byte 0x08302700
+_08046F88: .4byte 0x0200FBB0
+_08046F8C: .4byte 0x06004000
+_08046F90: .4byte 0x80002000
+_08046F94: .4byte 0x0838E828
+_08046F98: .4byte 0x06008000
+_08046F9C: .4byte 0x80004000
+_08046FA0: .4byte 0x0837A4E8
+_08046FA4: .4byte 0x80000400
+_08046FA8: .4byte 0x0838E028
+_08046FAC: .4byte 0x06000800
+_08046FB0: .4byte 0x083A8ACC
+_08046FB4: .4byte 0x06006800
+_08046FB8: .4byte 0x80000200
+_08046FBC: .4byte 0x083A826C
+_08046FC0: .4byte 0x06006C00
+_08046FC4: .4byte 0x084779EC
+_08046FC8: .4byte 0x06010000
+_08046FCC: .4byte 0x02031520
+_08046FD0: .4byte 0x0816C3E4
+
+ thumb_func_start sub_46FD4
+sub_46FD4: @ 0x08046FD4
+ push {r4, r5, lr}
+ ldr r5, _08047024 @ =0x02031520
+ ldr r4, _08047028 @ =0x086AFCB0
+ lsls r0, r0, #0x10
+ asrs r0, r0, #0x10
+ lsls r2, r0, #1
+ adds r2, r2, r0
+ lsls r2, r2, #4
+ ldr r3, _0804702C @ =0x0200B0C0
+ ldrb r1, [r3, #4]
+ lsls r0, r1, #1
+ adds r0, r0, r1
+ lsls r0, r0, #5
+ adds r0, r2, r0
+ adds r0, r0, r4
+ ldr r0, [r0]
+ str r0, [r5, #0x38]
+ ldrb r1, [r3, #4]
+ lsls r0, r1, #1
+ adds r0, r0, r1
+ lsls r0, r0, #5
+ adds r0, r2, r0
+ adds r1, r4, #0
+ adds r1, #0x10
+ adds r0, r0, r1
+ ldr r0, [r0]
+ str r0, [r5, #0x48]
+ ldrb r1, [r3, #4]
+ lsls r0, r1, #1
+ adds r0, r0, r1
+ lsls r0, r0, #5
+ adds r2, r2, r0
+ adds r4, #0x20
+ adds r2, r2, r4
+ ldr r0, [r2]
+ str r0, [r5, #0x58]
+ pop {r4, r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08047024: .4byte 0x02031520
+_08047028: .4byte 0x086AFCB0
+_0804702C: .4byte 0x0200B0C0
+
+ thumb_func_start sub_47030
+sub_47030: @ 0x08047030
+ push {r4, r5, lr}
+ ldr r0, _08047074 @ =0x0200B0C0
+ ldr r1, _08047078 @ =0x000002F6
+ adds r0, r0, r1
+ ldrh r0, [r0]
+ lsrs r4, r0, #3
+ adds r2, r4, #0
+ lsls r1, r2, #3
+ ldr r0, _0804707C @ =0x086B0010
+ adds r3, r1, r0
+ ldr r1, _08047080 @ =0x020314E0
+ ldr r0, [r1]
+ adds r0, #0x64
+ movs r5, #0
+ ldrsh r0, [r0, r5]
+ adds r5, r1, #0
+ cmp r2, r0
+ beq _080470EA
+ cmp r2, r0
+ ble _080470A8
+ movs r1, #0
+ ldrsh r0, [r3, r1]
+ cmp r0, #0x1f
+ ble _0804708C
+ ldr r2, _08047084 @ =0x040000D4
+ subs r0, #0x20
+ lsls r0, r0, #0xa
+ ldr r1, _08047088 @ =0x020030A0
+ adds r0, r0, r1
+ str r0, [r2]
+ movs r1, #2
+ ldrsh r0, [r3, r1]
+ b _080470D6
+ .align 2, 0
+_08047074: .4byte 0x0200B0C0
+_08047078: .4byte 0x000002F6
+_0804707C: .4byte 0x086B0010
+_08047080: .4byte 0x020314E0
+_08047084: .4byte 0x040000D4
+_08047088: .4byte 0x020030A0
+_0804708C:
+ ldr r2, _080470A0 @ =0x040000D4
+ movs r1, #0
+ ldrsh r0, [r3, r1]
+ lsls r0, r0, #0xa
+ ldr r1, _080470A4 @ =0x0200FBB0
+ adds r0, r0, r1
+ str r0, [r2]
+ movs r1, #2
+ ldrsh r0, [r3, r1]
+ b _080470D6
+ .align 2, 0
+_080470A0: .4byte 0x040000D4
+_080470A4: .4byte 0x0200FBB0
+_080470A8:
+ movs r1, #4
+ ldrsh r0, [r3, r1]
+ cmp r0, #0x1f
+ ble _080470C4
+ ldr r2, _080470BC @ =0x040000D4
+ subs r0, #0x20
+ lsls r0, r0, #0xa
+ ldr r1, _080470C0 @ =0x020030A0
+ b _080470CE
+ .align 2, 0
+_080470BC: .4byte 0x040000D4
+_080470C0: .4byte 0x020030A0
+_080470C4:
+ ldr r2, _080470F0 @ =0x040000D4
+ movs r1, #4
+ ldrsh r0, [r3, r1]
+ lsls r0, r0, #0xa
+ ldr r1, _080470F4 @ =0x0200FBB0
+_080470CE:
+ adds r0, r0, r1
+ str r0, [r2]
+ movs r1, #6
+ ldrsh r0, [r3, r1]
+_080470D6:
+ lsls r0, r0, #0xa
+ ldr r1, _080470F8 @ =0x06008000
+ adds r0, r0, r1
+ str r0, [r2, #4]
+ ldr r0, _080470FC @ =0x80000200
+ str r0, [r2, #8]
+ ldr r0, [r2, #8]
+ ldr r0, [r5]
+ adds r0, #0x64
+ strh r4, [r0]
+_080470EA:
+ pop {r4, r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080470F0: .4byte 0x040000D4
+_080470F4: .4byte 0x0200FBB0
+_080470F8: .4byte 0x06008000
+_080470FC: .4byte 0x80000200
+
+ thumb_func_start sub_47100
+sub_47100: @ 0x08047100
+ ldr r0, _0804710C @ =0x020314E0
+ ldr r0, [r0]
+ adds r0, #0xfc
+ movs r1, #0x80
+ strh r1, [r0]
+ bx lr
+ .align 2, 0
+_0804710C: .4byte 0x020314E0
+
+ thumb_func_start sub_47110
+sub_47110: @ 0x08047110
+ push {r4, r5, lr}
+ movs r0, #0
+ ldr r5, _08047148 @ =0x03005C00
+ adds r4, r5, #0
+ ldr r3, _0804714C @ =0x000001FF
+ ldr r2, _08047150 @ =0x000007FF
+_0804711C:
+ lsls r1, r0, #0x10
+ asrs r1, r1, #0x10
+ lsls r0, r1, #1
+ adds r0, r0, r4
+ strh r3, [r0]
+ adds r1, #1
+ lsls r1, r1, #0x10
+ lsrs r0, r1, #0x10
+ asrs r1, r1, #0x10
+ cmp r1, r2
+ ble _0804711C
+ ldr r1, _08047154 @ =0x040000D4
+ str r5, [r1]
+ ldr r0, _08047158 @ =0x06002000
+ str r0, [r1, #4]
+ ldr r0, _0804715C @ =0x80000800
+ str r0, [r1, #8]
+ ldr r0, [r1, #8]
+ pop {r4, r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08047148: .4byte 0x03005C00
+_0804714C: .4byte 0x000001FF
+_08047150: .4byte 0x000007FF
+_08047154: .4byte 0x040000D4
+_08047158: .4byte 0x06002000
+_0804715C: .4byte 0x80000800
+
+ thumb_func_start sub_47160
+sub_47160: @ 0x08047160
+ push {r4, r5, lr}
+ ldr r2, _0804719C @ =0x0200B0C0
+ ldrh r1, [r2, #0x18]
+ movs r0, #8
+ ands r0, r1
+ cmp r0, #0
+ beq _080471B6
+ ldrb r0, [r2, #2]
+ cmp r0, #3
+ beq _080471B6
+ ldr r0, _080471A0 @ =0x020314E0
+ ldr r0, [r0]
+ movs r1, #0x88
+ lsls r1, r1, #5
+ adds r0, r0, r1
+ ldrb r0, [r0]
+ cmp r0, #0
+ bne _080471B6
+ ldrb r1, [r2, #0xf]
+ movs r0, #2
+ ands r0, r1
+ cmp r0, #0
+ beq _080471A4
+ movs r0, #0xfd
+ ands r0, r1
+ strb r0, [r2, #0xf]
+ bl sub_497BC
+ b _080471B6
+ .align 2, 0
+_0804719C: .4byte 0x0200B0C0
+_080471A0: .4byte 0x020314E0
+_080471A4:
+ movs r0, #0x20
+ ands r0, r1
+ cmp r0, #0
+ bne _080471B6
+ movs r0, #2
+ orrs r0, r1
+ strb r0, [r2, #0xf]
+ bl sub_495A0
+_080471B6:
+ ldr r4, _080472B0 @ =0x0200B0C0
+ ldrb r1, [r4, #0xf]
+ movs r5, #2
+ adds r0, r5, #0
+ ands r0, r1
+ cmp r0, #0
+ beq _08047274
+ ldrh r1, [r4, #0x18]
+ movs r0, #0x40
+ ands r0, r1
+ cmp r0, #0
+ beq _080471E4
+ ldr r0, _080472B4 @ =0x020314E0
+ ldr r1, [r0]
+ ldr r0, _080472B8 @ =0x00001104
+ adds r1, r1, r0
+ ldrb r0, [r1]
+ movs r2, #1
+ eors r0, r2
+ strb r0, [r1]
+ movs r0, #0xa3
+ bl sub_53DA8
+_080471E4:
+ ldrh r1, [r4, #0x18]
+ movs r0, #0x80
+ ands r0, r1
+ cmp r0, #0
+ beq _08047204
+ ldr r0, _080472B4 @ =0x020314E0
+ ldr r1, [r0]
+ ldr r0, _080472B8 @ =0x00001104
+ adds r1, r1, r0
+ ldrb r0, [r1]
+ movs r2, #1
+ eors r0, r2
+ strb r0, [r1]
+ movs r0, #0xa3
+ bl sub_53DA8
+_08047204:
+ ldrh r1, [r4, #0x18]
+ movs r0, #1
+ ands r0, r1
+ cmp r0, #0
+ beq _08047244
+ ldrh r1, [r4, #0x1c]
+ movs r0, #0xe
+ ands r0, r1
+ cmp r0, #0
+ bne _08047244
+ ldr r0, _080472B4 @ =0x020314E0
+ ldr r0, [r0]
+ ldr r1, _080472B8 @ =0x00001104
+ adds r0, r0, r1
+ ldrb r0, [r0]
+ lsls r0, r0, #0x18
+ asrs r0, r0, #0x18
+ cmp r0, #0
+ bne _08047230
+ strb r5, [r4, #0xe]
+ bl sub_49850
+_08047230:
+ ldrb r1, [r4, #0xf]
+ movs r0, #0xfd
+ ands r0, r1
+ strb r0, [r4, #0xf]
+ bl sub_497BC
+ ldrh r1, [r4, #0x18]
+ ldr r0, _080472BC @ =0x0000FFFE
+ ands r0, r1
+ strh r0, [r4, #0x18]
+_08047244:
+ ldr r4, _080472B0 @ =0x0200B0C0
+ ldrh r1, [r4, #0x18]
+ movs r5, #2
+ adds r0, r5, #0
+ ands r0, r1
+ cmp r0, #0
+ beq _08047266
+ ldrb r1, [r4, #0xf]
+ movs r0, #0xfd
+ ands r0, r1
+ strb r0, [r4, #0xf]
+ bl sub_497BC
+ ldrh r1, [r4, #0x18]
+ ldr r0, _080472C0 @ =0x0000FFFD
+ ands r0, r1
+ strh r0, [r4, #0x18]
+_08047266:
+ ldrb r1, [r4, #0xf]
+ adds r0, r5, #0
+ ands r0, r1
+ cmp r0, #0
+ beq _08047274
+ bl sub_49A34
+_08047274:
+ ldr r0, _080472B0 @ =0x0200B0C0
+ ldrb r1, [r0, #0xf]
+ adds r2, r0, #0
+ cmp r1, #0
+ bne _080472DC
+ ldr r3, _080472B4 @ =0x020314E0
+ ldr r0, [r3]
+ movs r4, #0xe8
+ lsls r4, r4, #3
+ adds r0, r0, r4
+ strb r1, [r0]
+ ldrh r0, [r2, #0x14]
+ cmp r0, #0
+ beq _080472DC
+ subs r0, #1
+ strh r0, [r2, #0x14]
+ lsls r0, r0, #0x10
+ lsrs r0, r0, #0x10
+ cmp r0, #1
+ bne _080472D2
+ ldr r0, [r3]
+ adds r1, r0, #0
+ adds r1, #0xe4
+ ldrb r0, [r1]
+ cmp r0, #0
+ beq _080472C4
+ movs r0, #0xa
+ strh r0, [r2, #0x14]
+ b _080472D2
+ .align 2, 0
+_080472B0: .4byte 0x0200B0C0
+_080472B4: .4byte 0x020314E0
+_080472B8: .4byte 0x00001104
+_080472BC: .4byte 0x0000FFFE
+_080472C0: .4byte 0x0000FFFD
+_080472C4:
+ ldrb r0, [r2, #0x11]
+ cmp r0, #8
+ bne _080472CE
+ movs r0, #0x13
+ b _080472D0
+_080472CE:
+ movs r0, #0x14
+_080472D0:
+ strb r0, [r1]
+_080472D2:
+ ldrh r0, [r2, #0x14]
+ cmp r0, #0
+ bne _080472DC
+ ldrb r0, [r2, #0x11]
+ strb r0, [r2, #0xf]
+_080472DC:
+ pop {r4, r5}
+ pop {r0}
+ bx r0
+
+ thumb_func_start sub_472E4
+sub_472E4: @ 0x080472E4
+ push {r4, lr}
+ ldr r4, _080472FC @ =0x0200B0C0
+ ldrb r1, [r4, #0xf]
+ cmp r1, #0
+ beq _08047338
+ movs r0, #8
+ ands r0, r1
+ cmp r0, #0
+ beq _08047300
+ bl sub_478D8
+ b _08047338
+ .align 2, 0
+_080472FC: .4byte 0x0200B0C0
+_08047300:
+ movs r0, #0x10
+ ands r0, r1
+ cmp r0, #0
+ beq _0804730E
+ bl sub_47670
+ b _08047338
+_0804730E:
+ movs r0, #0x20
+ ands r0, r1
+ cmp r0, #0
+ beq _0804731C
+ bl sub_474F4
+ b _08047338
+_0804731C:
+ movs r0, #4
+ ands r0, r1
+ cmp r0, #0
+ beq _08047338
+ bl sub_47344
+ ldr r0, _08047340 @ =0x020314E0
+ ldr r1, [r0]
+ ldrb r0, [r4, #0x10]
+ adds r0, #1
+ movs r2, #0xe8
+ lsls r2, r2, #3
+ adds r1, r1, r2
+ strb r0, [r1]
+_08047338:
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08047340: .4byte 0x020314E0
+
+ thumb_func_start sub_47344
+sub_47344: @ 0x08047344
+ push {r4, r5, r6, r7, lr}
+ mov r7, sb
+ mov r6, r8
+ push {r6, r7}
+ sub sp, #0x44
+ ldr r1, _08047448 @ =0x08137DBE
+ mov r0, sp
+ movs r2, #0x2a
+ bl sub_55970
+ add r4, sp, #0x2c
+ ldr r1, _0804744C @ =0x08137DE8
+ adds r0, r4, #0
+ movs r2, #0x18
+ bl sub_55970
+ mov sb, r4
+ mov r1, sp
+ adds r1, #0x2d
+ mov r6, sp
+ adds r6, #0x31
+ mov r7, sp
+ adds r7, #0x39
+ add r0, sp, #0x38
+ mov r8, r0
+ ldr r0, _08047450 @ =0x03005C00
+ movs r3, #0
+ movs r2, #0xd0
+ lsls r2, r2, #3
+ adds r0, r0, r2
+ movs r2, #0x40
+_08047382:
+ strh r3, [r0]
+ adds r0, #2
+ subs r2, #1
+ cmp r2, #0
+ bne _08047382
+ ldr r5, _08047454 @ =0x020314E0
+ ldr r0, [r5]
+ ldr r4, _08047458 @ =0x0000132C
+ adds r0, r0, r4
+ ldr r0, [r0]
+ movs r2, #0x10
+ ldrsh r0, [r0, r2]
+ movs r2, #3
+ movs r3, #1
+ bl sub_6CC
+ ldr r0, [r5]
+ adds r0, r0, r4
+ ldr r0, [r0]
+ movs r1, #0x12
+ ldrsh r0, [r0, r1]
+ adds r1, r6, #0
+ movs r2, #3
+ movs r3, #1
+ bl sub_6CC
+ mov r0, sb
+ movs r1, #0x1a
+ movs r2, #9
+ bl sub_678
+ ldr r0, [r5]
+ adds r0, #0x68
+ movs r2, #0
+ ldrsh r0, [r0, r2]
+ adds r1, r7, #0
+ movs r2, #3
+ movs r3, #1
+ bl sub_6CC
+ mov r0, r8
+ movs r1, #0x1a
+ movs r2, #0x12
+ bl sub_678
+ mov r0, sp
+ movs r1, #0x1a
+ movs r2, #0
+ bl sub_678
+ ldr r4, _0804745C @ =0x0200B0C0
+ ldrh r1, [r4, #0x1c]
+ movs r0, #2
+ ands r0, r1
+ cmp r0, #0
+ beq _08047464
+ ldr r0, [r4, #0x4c]
+ movs r1, #8
+ ands r0, r1
+ cmp r0, #0
+ beq _08047408
+ ldr r0, _08047460 @ =0x08137E00
+ ldrb r1, [r4, #0x10]
+ adds r1, #0x1a
+ movs r2, #0
+ bl sub_678
+_08047408:
+ ldrh r1, [r4, #0x18]
+ movs r0, #0x40
+ ands r0, r1
+ cmp r0, #0
+ beq _0804741C
+ ldrb r0, [r4, #0x10]
+ cmp r0, #0
+ beq _0804741C
+ subs r0, #1
+ strb r0, [r4, #0x10]
+_0804741C:
+ ldr r2, _0804745C @ =0x0200B0C0
+ ldrh r1, [r2, #0x18]
+ movs r0, #0x80
+ ands r0, r1
+ cmp r0, #0
+ beq _08047432
+ ldrb r0, [r2, #0x10]
+ cmp r0, #0
+ bne _08047432
+ adds r0, #1
+ strb r0, [r2, #0x10]
+_08047432:
+ ldr r0, _08047454 @ =0x020314E0
+ ldr r0, [r0]
+ movs r6, #0xe8
+ lsls r6, r6, #3
+ adds r0, r0, r6
+ ldrb r0, [r0]
+ cmp r0, #2
+ bne _08047490
+ bl sub_48124
+ b _08047490
+ .align 2, 0
+_08047448: .4byte 0x08137DBE
+_0804744C: .4byte 0x08137DE8
+_08047450: .4byte 0x03005C00
+_08047454: .4byte 0x020314E0
+_08047458: .4byte 0x0000132C
+_0804745C: .4byte 0x0200B0C0
+_08047460: .4byte 0x08137E00
+_08047464:
+ ldr r0, [r5]
+ movs r1, #0xe8
+ lsls r1, r1, #3
+ adds r0, r0, r1
+ ldrb r0, [r0]
+ cmp r0, #1
+ beq _08047478
+ cmp r0, #2
+ beq _0804747E
+ b _08047482
+_08047478:
+ bl sub_47FF8
+ b _08047482
+_0804747E:
+ bl sub_48124
+_08047482:
+ ldr r0, _080474DC @ =0x08137E00
+ ldr r1, _080474E0 @ =0x0200B0C0
+ ldrb r1, [r1, #0x10]
+ adds r1, #0x1a
+ movs r2, #0
+ bl sub_678
+_08047490:
+ ldr r4, _080474E4 @ =0x03005C00
+ ldr r5, _080474E0 @ =0x0200B0C0
+ movs r2, #0xc1
+ lsls r2, r2, #8
+ adds r3, r2, #0
+ movs r6, #0xd0
+ lsls r6, r6, #3
+ adds r1, r4, r6
+ movs r2, #0x40
+_080474A2:
+ ldrh r6, [r1]
+ adds r0, r3, r6
+ strh r0, [r1]
+ adds r1, #2
+ subs r2, #1
+ cmp r2, #0
+ bne _080474A2
+ ldr r1, _080474E8 @ =0x040000D4
+ str r4, [r1]
+ ldr r0, _080474EC @ =0x06002000
+ str r0, [r1, #4]
+ ldr r0, _080474F0 @ =0x80000400
+ str r0, [r1, #8]
+ ldr r0, [r1, #8]
+ ldrh r1, [r5, #0x1c]
+ movs r0, #1
+ ands r0, r1
+ cmp r0, #0
+ beq _080474CC
+ bl sub_47FBC
+_080474CC:
+ add sp, #0x44
+ pop {r3, r4}
+ mov r8, r3
+ mov sb, r4
+ pop {r4, r5, r6, r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080474DC: .4byte 0x08137E00
+_080474E0: .4byte 0x0200B0C0
+_080474E4: .4byte 0x03005C00
+_080474E8: .4byte 0x040000D4
+_080474EC: .4byte 0x06002000
+_080474F0: .4byte 0x80000400
+
+ thumb_func_start sub_474F4
+sub_474F4: @ 0x080474F4
+ push {r4, r5, r6, r7, lr}
+ mov r7, sb
+ mov r6, r8
+ push {r6, r7}
+ ldr r0, _08047638 @ =0x0200B0C0
+ ldr r1, [r0, #0x44]
+ adds r1, #0xa8
+ ldr r5, [r1]
+ ldrh r1, [r5]
+ mov sb, r0
+ cmp r1, #0
+ beq _08047558
+ movs r0, #0x3f
+ strh r0, [r5, #2]
+ movs r0, #0x34
+ strh r0, [r5, #4]
+ ldr r7, _0804763C @ =0x03005000
+ ldr r0, _08047640 @ =0xFFFFFE00
+ mov ip, r0
+ adds r4, r5, #0
+ adds r4, #8
+ ldr r1, _08047644 @ =0x000001FF
+ mov r8, r1
+ movs r6, #7
+_08047524:
+ ldrh r3, [r4]
+ lsls r3, r3, #3
+ adds r3, r3, r7
+ movs r2, #2
+ ldrsh r1, [r4, r2]
+ movs r2, #2
+ ldrsh r0, [r5, r2]
+ adds r1, r1, r0
+ mov r0, r8
+ ands r1, r0
+ ldrh r2, [r3, #2]
+ mov r0, ip
+ ands r0, r2
+ orrs r0, r1
+ strh r0, [r3, #2]
+ ldrh r1, [r4]
+ lsls r1, r1, #3
+ adds r1, r1, r7
+ ldrb r0, [r5, #4]
+ ldrb r2, [r4, #4]
+ adds r0, r0, r2
+ strb r0, [r1]
+ adds r4, #8
+ subs r6, #1
+ cmp r6, #0
+ bge _08047524
+_08047558:
+ mov r1, sb
+ ldr r0, [r1, #0x4c]
+ lsls r0, r0, #0x1c
+ lsrs r7, r0, #0x10
+ movs r6, #0
+_08047562:
+ adds r0, r7, #0
+ bl sub_C74
+ ldr r4, _08047648 @ =0x02031500
+ lsls r2, r6, #1
+ adds r4, r2, r4
+ ldr r1, _0804764C @ =0x02030750
+ adds r5, r2, r1
+ movs r2, #0
+ ldrsh r1, [r5, r2]
+ lsls r0, r0, #0x10
+ asrs r0, r0, #0x10
+ muls r0, r1, r0
+ movs r1, #0xc8
+ bl sub_556D0
+ strh r0, [r4]
+ ldr r0, _08047638 @ =0x0200B0C0
+ ldr r1, [r0, #0x4c]
+ movs r0, #1
+ ands r1, r0
+ cmp r1, #0
+ bne _0804759E
+ ldrh r0, [r5]
+ adds r0, #1
+ strh r0, [r5]
+ lsls r0, r0, #0x10
+ cmp r0, #0
+ blt _0804759E
+ strh r1, [r5]
+_0804759E:
+ adds r6, #1
+ cmp r6, #7
+ ble _08047562
+ ldr r2, _08047638 @ =0x0200B0C0
+ ldrh r1, [r2, #0x12]
+ movs r0, #0xe1
+ lsls r0, r0, #4
+ cmp r1, r0
+ bne _080475FA
+ ldr r1, _08047650 @ =0x040000D4
+ ldr r0, _08047654 @ =0x08509F4C
+ str r0, [r1]
+ ldr r0, _08047658 @ =0x06015800
+ str r0, [r1, #4]
+ ldr r0, _0804765C @ =0x80000200
+ str r0, [r1, #8]
+ ldr r0, [r1, #8]
+ ldr r0, [r2, #0x44]
+ adds r0, #0xa8
+ ldr r1, [r0]
+ movs r0, #1
+ strh r0, [r1]
+ movs r6, #0
+ mov r8, r6
+ ldr r5, _08047648 @ =0x02031500
+ ldr r7, _08047660 @ =0x0000E0C0
+_080475D2:
+ lsls r4, r6, #1
+ strh r7, [r5]
+ ldr r0, _08047664 @ =0x020306C0
+ adds r0, r4, r0
+ mov r1, r8
+ strh r1, [r0]
+ bl sub_C00
+ ldr r1, _0804764C @ =0x02030750
+ adds r4, r4, r1
+ movs r1, #0x1e
+ bl sub_558B0
+ ldr r2, _08047668 @ =0x0000FFCE
+ adds r0, r0, r2
+ strh r0, [r4]
+ adds r5, #2
+ adds r6, #1
+ cmp r6, #7
+ ble _080475D2
+_080475FA:
+ ldr r0, _08047638 @ =0x0200B0C0
+ ldrh r1, [r0, #0x12]
+ mov sb, r0
+ cmp r1, #0
+ beq _08047618
+ subs r0, r1, #1
+ mov r1, sb
+ strh r0, [r1, #0x12]
+ lsls r0, r0, #0x10
+ cmp r0, #0
+ bne _08047618
+ ldr r0, _0804766C @ =0x020314E0
+ ldr r1, [r0]
+ movs r0, #2
+ strb r0, [r1, #0x1d]
+_08047618:
+ mov r2, sb
+ ldrh r1, [r2, #0x18]
+ movs r0, #1
+ ands r0, r1
+ cmp r0, #0
+ beq _0804762C
+ ldr r0, _0804766C @ =0x020314E0
+ ldr r1, [r0]
+ movs r0, #2
+ strb r0, [r1, #0x1d]
+_0804762C:
+ pop {r3, r4}
+ mov r8, r3
+ mov sb, r4
+ pop {r4, r5, r6, r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08047638: .4byte 0x0200B0C0
+_0804763C: .4byte 0x03005000
+_08047640: .4byte 0xFFFFFE00
+_08047644: .4byte 0x000001FF
+_08047648: .4byte 0x02031500
+_0804764C: .4byte 0x02030750
+_08047650: .4byte 0x040000D4
+_08047654: .4byte 0x08509F4C
+_08047658: .4byte 0x06015800
+_0804765C: .4byte 0x80000200
+_08047660: .4byte 0x0000E0C0
+_08047664: .4byte 0x020306C0
+_08047668: .4byte 0x0000FFCE
+_0804766C: .4byte 0x020314E0
+
+ thumb_func_start sub_47670
+sub_47670: @ 0x08047670
+ push {r4, r5, r6, r7, lr}
+ ldr r4, _080476A4 @ =0x0200B0C0
+ ldrh r0, [r4, #0x12]
+ cmp r0, #0
+ bne _0804767C
+ b _080477C4
+_0804767C:
+ cmp r0, #0x14
+ bhi _080476AC
+ cmp r0, #0x14
+ bne _0804768A
+ movs r0, #0xa4
+ bl sub_53DA8
+_0804768A:
+ ldr r0, _080476A8 @ =0x020314E0
+ ldr r0, [r0]
+ adds r1, r0, #0
+ adds r1, #0xfc
+ ldrh r2, [r1]
+ movs r3, #0
+ ldrsh r0, [r1, r3]
+ cmp r0, #0x7f
+ bgt _080476C4
+ adds r0, r2, #0
+ adds r0, #8
+ b _080476C2
+ .align 2, 0
+_080476A4: .4byte 0x0200B0C0
+_080476A8: .4byte 0x020314E0
+_080476AC:
+ ldr r0, _0804771C @ =0x020314E0
+ ldr r0, [r0]
+ adds r1, r0, #0
+ adds r1, #0xfc
+ ldrh r2, [r1]
+ movs r3, #0
+ ldrsh r0, [r1, r3]
+ cmp r0, #0
+ ble _080476C4
+ adds r0, r2, #0
+ subs r0, #8
+_080476C2:
+ strh r0, [r1]
+_080476C4:
+ bl sub_48190
+ ldr r2, _08047720 @ =0x0200B0C0
+ ldrh r0, [r2, #0x12]
+ subs r0, #1
+ movs r1, #0
+ strh r0, [r2, #0x12]
+ lsls r0, r0, #0x10
+ lsrs r0, r0, #0x10
+ cmp r0, #0xc7
+ bne _080477A0
+ ldr r0, _0804771C @ =0x020314E0
+ ldr r0, [r0]
+ adds r0, #0xfc
+ movs r1, #0x80
+ strh r1, [r0]
+ movs r1, #0x97
+ lsls r1, r1, #4
+ adds r0, r2, r1
+ movs r1, #1
+ strh r1, [r0]
+ movs r3, #0xe9
+ lsls r3, r3, #3
+ adds r0, r2, r3
+ strh r1, [r0]
+ adds r3, #0xb8
+ adds r0, r2, r3
+ strh r1, [r0]
+ adds r3, #0xb8
+ adds r0, r2, r3
+ strh r1, [r0]
+ ldr r1, _08047724 @ =0x040000D4
+ ldr r0, _08047728 @ =0x0850398C
+ str r0, [r1]
+ ldr r0, _0804772C @ =0x06015800
+ str r0, [r1, #4]
+ ldr r0, _08047730 @ =0x80001400
+ str r0, [r1, #8]
+ ldr r0, [r1, #8]
+ ldrb r0, [r2, #4]
+ cmp r0, #0
+ bne _08047738
+ ldr r0, _08047734 @ =0x08521FAC
+ b _0804773A
+ .align 2, 0
+_0804771C: .4byte 0x020314E0
+_08047720: .4byte 0x0200B0C0
+_08047724: .4byte 0x040000D4
+_08047728: .4byte 0x0850398C
+_0804772C: .4byte 0x06015800
+_08047730: .4byte 0x80001400
+_08047734: .4byte 0x08521FAC
+_08047738:
+ ldr r0, _0804778C @ =0x08521FCC
+_0804773A:
+ str r0, [r1]
+ ldr r0, _08047790 @ =0x050003C0
+ str r0, [r1, #4]
+ ldr r0, _08047794 @ =0x80000010
+ str r0, [r1, #8]
+ ldr r0, [r1, #8]
+ movs r0, #0xa4
+ bl sub_53DA8
+ movs r1, #0
+ ldr r7, _08047798 @ =0x020314E0
+ ldr r6, _0804779C @ =0x0000063C
+ movs r5, #0
+_08047754:
+ movs r2, #0
+ lsls r4, r1, #0x10
+ asrs r1, r4, #0x10
+ lsls r0, r1, #2
+ adds r0, r0, r1
+ lsls r3, r0, #2
+_08047760:
+ ldr r0, [r7]
+ lsls r1, r2, #0x10
+ asrs r1, r1, #0x10
+ adds r2, r1, r3
+ adds r0, r0, r6
+ adds r0, r0, r2
+ strb r5, [r0]
+ adds r1, #1
+ lsls r1, r1, #0x10
+ lsrs r2, r1, #0x10
+ asrs r1, r1, #0x10
+ cmp r1, #0x13
+ ble _08047760
+ movs r1, #0x80
+ lsls r1, r1, #9
+ adds r0, r4, r1
+ lsrs r1, r0, #0x10
+ asrs r0, r0, #0x10
+ cmp r0, #2
+ ble _08047754
+ b _080478D0
+ .align 2, 0
+_0804778C: .4byte 0x08521FCC
+_08047790: .4byte 0x050003C0
+_08047794: .4byte 0x80000010
+_08047798: .4byte 0x020314E0
+_0804779C: .4byte 0x0000063C
+_080477A0:
+ cmp r0, #1
+ beq _080477A6
+ b _080478D0
+_080477A6:
+ movs r3, #0x97
+ lsls r3, r3, #4
+ adds r0, r2, r3
+ strh r1, [r0]
+ movs r3, #0xe9
+ lsls r3, r3, #3
+ adds r0, r2, r3
+ strh r1, [r0]
+ adds r3, #0xb8
+ adds r0, r2, r3
+ strh r1, [r0]
+ adds r3, #0xb8
+ adds r0, r2, r3
+ strh r1, [r0]
+ b _080478D0
+_080477C4:
+ ldrb r0, [r4, #0xf]
+ movs r1, #0xef
+ ands r1, r0
+ strb r1, [r4, #0xf]
+ bl sub_47FBC
+ ldr r5, _08047860 @ =0x020314E0
+ ldr r1, [r5]
+ adds r2, r1, #0
+ adds r2, #0x30
+ movs r0, #0
+ ldrsb r0, [r2, r0]
+ cmp r0, #0
+ ble _080478BC
+ ldr r0, _08047864 @ =0x00000724
+ adds r1, r1, r0
+ movs r4, #0
+ subs r0, #0x1c
+ strh r0, [r1]
+ ldrb r0, [r2]
+ subs r0, #1
+ strb r0, [r2]
+ ldr r0, [r5]
+ movs r1, #0x3c
+ strh r1, [r0, #0x26]
+ ldr r1, _08047868 @ =0x0000062A
+ adds r0, r0, r1
+ strb r4, [r0]
+ ldr r0, [r5]
+ ldr r2, _0804786C @ =0x0000062B
+ adds r0, r0, r2
+ strb r4, [r0]
+ ldr r0, [r5]
+ ldr r3, _08047870 @ =0x0000062C
+ adds r0, r0, r3
+ strb r4, [r0]
+ ldr r0, [r5]
+ adds r1, #3
+ adds r0, r0, r1
+ strb r4, [r0]
+ ldr r0, [r5]
+ adds r2, #3
+ adds r0, r0, r2
+ strb r4, [r0]
+ ldr r0, [r5]
+ adds r3, #3
+ adds r0, r0, r3
+ strb r4, [r0]
+ movs r0, #0
+ bl sub_11C14
+ movs r0, #0
+ bl sub_46FD4
+ ldr r0, [r5]
+ ldr r1, _08047874 @ =0x0000029E
+ adds r0, r0, r1
+ strb r4, [r0]
+ ldr r1, [r5]
+ movs r0, #0x13
+ ldrsb r0, [r1, r0]
+ cmp r0, #3
+ bne _080478A4
+ ldr r2, _08047878 @ =0x00000283
+ adds r0, r1, r2
+ ldrb r0, [r0]
+ movs r1, #5
+ bl sub_558B0
+ lsls r0, r0, #0x18
+ lsrs r0, r0, #0x18
+ cmp r0, #4
+ bhi _080478AA
+ lsls r0, r0, #2
+ ldr r1, _0804787C @ =_08047880
+ adds r0, r0, r1
+ ldr r0, [r0]
+ mov pc, r0
+ .align 2, 0
+_08047860: .4byte 0x020314E0
+_08047864: .4byte 0x00000724
+_08047868: .4byte 0x0000062A
+_0804786C: .4byte 0x0000062B
+_08047870: .4byte 0x0000062C
+_08047874: .4byte 0x0000029E
+_08047878: .4byte 0x00000283
+_0804787C: .4byte _08047880
+_08047880: @ jump table
+ .4byte _08047894 @ case 0
+ .4byte _0804789C @ case 1
+ .4byte _08047894 @ case 2
+ .4byte _0804789C @ case 3
+ .4byte _0804789C @ case 4
+_08047894:
+ movs r0, #0xe
+ bl sub_53DA8
+ b _080478AA
+_0804789C:
+ movs r0, #0xf
+ bl sub_53DA8
+ b _080478AA
+_080478A4:
+ movs r0, #1
+ bl sub_19B64
+_080478AA:
+ ldr r0, _080478B8 @ =0x020314E0
+ ldr r0, [r0]
+ adds r0, #0xe4
+ movs r1, #0
+ strb r1, [r0]
+ b _080478D0
+ .align 2, 0
+_080478B8: .4byte 0x020314E0
+_080478BC:
+ ldrb r0, [r4, #0xf]
+ movs r1, #0x20
+ orrs r0, r1
+ strb r0, [r4, #0xf]
+ movs r0, #0xe1
+ lsls r0, r0, #4
+ strh r0, [r4, #0x12]
+ movs r0, #0xc
+ bl sub_53DA8
+_080478D0:
+ pop {r4, r5, r6, r7}
+ pop {r0}
+ bx r0
+
+ thumb_func_start sub_478D8
+sub_478D8: @ 0x080478D8
+ push {r4, r5, r6, r7, lr}
+ mov r7, sl
+ mov r6, sb
+ mov r5, r8
+ push {r5, r6, r7}
+ sub sp, #4
+ ldr r7, _08047AEC @ =0x0200B0C0
+ ldrh r0, [r7, #0x12]
+ cmp r0, #0
+ bne _080478EE
+ b _08047F2E
+_080478EE:
+ movs r0, #0xd2
+ lsls r0, r0, #3
+ adds r6, r7, r0
+ ldrh r0, [r6]
+ movs r1, #0xbb
+ lsls r1, r1, #3
+ adds r1, r1, r7
+ mov r8, r1
+ cmp r0, #0
+ beq _08047984
+ movs r0, #0x58
+ strh r0, [r6, #2]
+ ldr r0, _08047AF0 @ =0x020314E0
+ ldr r0, [r0]
+ adds r0, #0xfe
+ ldrh r0, [r0]
+ adds r0, #0x14
+ strh r0, [r6, #4]
+ movs r0, #0
+ ldr r7, _08047AF4 @ =0x03005000
+ ldr r2, _08047AF8 @ =0xFFFFFE00
+ mov sl, r2
+ movs r3, #0xf
+ rsbs r3, r3, #0
+ mov sb, r3
+_08047920:
+ lsls r4, r0, #0x10
+ asrs r4, r4, #0x10
+ lsls r0, r4, #3
+ adds r0, #8
+ adds r5, r6, r0
+ ldrh r3, [r5]
+ lsls r3, r3, #3
+ adds r3, r3, r7
+ movs r0, #2
+ ldrsh r1, [r5, r0]
+ movs r2, #2
+ ldrsh r0, [r6, r2]
+ adds r1, r1, r0
+ ldr r2, _08047AFC @ =0x000001FF
+ adds r0, r2, #0
+ ands r1, r0
+ ldrh r2, [r3, #2]
+ mov r0, sl
+ ands r0, r2
+ orrs r0, r1
+ strh r0, [r3, #2]
+ ldrh r1, [r5]
+ lsls r1, r1, #3
+ adds r1, r1, r7
+ ldrb r0, [r6, #4]
+ ldrb r3, [r5, #4]
+ adds r0, r0, r3
+ strb r0, [r1]
+ ldrh r2, [r5]
+ lsls r2, r2, #3
+ adds r2, r2, r7
+ ldrb r0, [r2, #1]
+ movs r1, #3
+ orrs r0, r1
+ strb r0, [r2, #1]
+ ldrh r2, [r5]
+ lsls r2, r2, #3
+ adds r2, r2, r7
+ ldrb r1, [r2, #3]
+ mov r0, sb
+ ands r0, r1
+ movs r1, #6
+ orrs r0, r1
+ strb r0, [r2, #3]
+ adds r4, #1
+ lsls r4, r4, #0x10
+ lsrs r0, r4, #0x10
+ asrs r4, r4, #0x10
+ cmp r4, #1
+ ble _08047920
+_08047984:
+ mov r6, r8
+ ldrh r0, [r6]
+ cmp r0, #0
+ beq _08047A14
+ ldr r4, _08047AF0 @ =0x020314E0
+ ldr r0, [r4]
+ movs r5, #0x80
+ lsls r5, r5, #1
+ adds r0, r0, r5
+ ldr r0, [r0]
+ movs r1, #0x64
+ bl sub_556D0
+ adds r0, #0x18
+ strh r0, [r6, #2]
+ ldr r0, [r4]
+ adds r4, r0, #0
+ adds r4, #0xfe
+ movs r1, #0x82
+ lsls r1, r1, #1
+ adds r0, r0, r1
+ ldr r0, [r0]
+ movs r1, #0x64
+ bl sub_556D0
+ adds r0, #0x14
+ ldrh r4, [r4]
+ adds r0, r0, r4
+ strh r0, [r6, #4]
+ adds r5, r6, #0
+ adds r5, #8
+ ldr r4, _08047AF4 @ =0x03005000
+ ldrh r2, [r6, #8]
+ lsls r2, r2, #3
+ adds r2, r2, r4
+ movs r3, #2
+ ldrsh r1, [r5, r3]
+ movs r3, #2
+ ldrsh r0, [r6, r3]
+ adds r1, r1, r0
+ ldr r3, _08047AFC @ =0x000001FF
+ adds r0, r3, #0
+ ands r1, r0
+ ldrh r3, [r2, #2]
+ ldr r0, _08047AF8 @ =0xFFFFFE00
+ ands r0, r3
+ orrs r0, r1
+ strh r0, [r2, #2]
+ ldrh r1, [r6, #8]
+ lsls r1, r1, #3
+ adds r1, r1, r4
+ ldrb r0, [r6, #4]
+ ldrb r5, [r5, #4]
+ adds r0, r0, r5
+ strb r0, [r1]
+ ldrh r1, [r6, #8]
+ lsls r1, r1, #3
+ adds r1, r1, r4
+ ldrb r0, [r1, #1]
+ movs r2, #3
+ orrs r0, r2
+ strb r0, [r1, #1]
+ ldrh r2, [r6, #8]
+ lsls r2, r2, #3
+ adds r2, r2, r4
+ ldrb r1, [r2, #3]
+ movs r0, #0xf
+ rsbs r0, r0, #0
+ ands r0, r1
+ movs r1, #8
+ orrs r0, r1
+ strb r0, [r2, #3]
+_08047A14:
+ subs r6, #0xb8
+ ldrh r0, [r6]
+ cmp r0, #0
+ beq _08047A9A
+ ldr r4, _08047AF0 @ =0x020314E0
+ ldr r0, [r4]
+ movs r5, #0x80
+ lsls r5, r5, #1
+ adds r0, r0, r5
+ ldr r0, [r0]
+ movs r1, #0x64
+ bl sub_556D0
+ adds r0, #0x38
+ strh r0, [r6, #2]
+ ldr r0, [r4]
+ adds r4, r0, #0
+ adds r4, #0xfe
+ movs r1, #0x82
+ lsls r1, r1, #1
+ adds r0, r0, r1
+ ldr r0, [r0]
+ movs r1, #0x64
+ bl sub_556D0
+ adds r0, #0x34
+ ldrh r4, [r4]
+ adds r0, r0, r4
+ strh r0, [r6, #4]
+ movs r0, #0
+ ldr r7, _08047AF4 @ =0x03005000
+ ldr r2, _08047AF8 @ =0xFFFFFE00
+ mov r8, r2
+_08047A56:
+ lsls r4, r0, #0x10
+ asrs r4, r4, #0x10
+ lsls r0, r4, #3
+ adds r0, #8
+ adds r5, r6, r0
+ ldrh r3, [r5]
+ lsls r3, r3, #3
+ adds r3, r3, r7
+ movs r0, #2
+ ldrsh r1, [r5, r0]
+ movs r2, #2
+ ldrsh r0, [r6, r2]
+ adds r1, r1, r0
+ ldr r2, _08047AFC @ =0x000001FF
+ adds r0, r2, #0
+ ands r1, r0
+ ldrh r2, [r3, #2]
+ mov r0, r8
+ ands r0, r2
+ orrs r0, r1
+ strh r0, [r3, #2]
+ ldrh r1, [r5]
+ lsls r1, r1, #3
+ adds r1, r1, r7
+ ldrb r0, [r6, #4]
+ ldrb r5, [r5, #4]
+ adds r0, r0, r5
+ strb r0, [r1]
+ adds r4, #1
+ lsls r4, r4, #0x10
+ lsrs r0, r4, #0x10
+ asrs r4, r4, #0x10
+ cmp r4, #1
+ ble _08047A56
+_08047A9A:
+ ldr r1, _08047AEC @ =0x0200B0C0
+ ldrh r0, [r1, #0x12]
+ subs r0, #1
+ strh r0, [r1, #0x12]
+ lsls r0, r0, #0x10
+ lsrs r0, r0, #0x10
+ cmp r0, #0x46
+ bls _08047B00
+ ldrh r1, [r1, #0x12]
+ adds r2, r1, #0
+ adds r2, #0x14
+ adds r0, r2, #0
+ asrs r0, r0, #6
+ lsls r0, r0, #6
+ subs r0, r2, r0
+ lsls r0, r0, #0x1a
+ lsrs r0, r0, #0x10
+ bl sub_C24
+ ldr r1, _08047AF0 @ =0x020314E0
+ ldr r5, [r1]
+ movs r3, #0x82
+ lsls r3, r3, #1
+ adds r4, r5, r3
+ lsls r0, r0, #0x10
+ asrs r0, r0, #0x10
+ movs r1, #0x28
+ bl sub_556D0
+ str r0, [r4]
+ movs r4, #0x84
+ lsls r4, r4, #1
+ adds r1, r5, r4
+ movs r0, #0xa
+ strh r0, [r1]
+ movs r0, #0x85
+ lsls r0, r0, #1
+ adds r1, r5, r0
+ adds r0, #0x86
+ strh r0, [r1]
+ b _08047B3C
+ .align 2, 0
+_08047AEC: .4byte 0x0200B0C0
+_08047AF0: .4byte 0x020314E0
+_08047AF4: .4byte 0x03005000
+_08047AF8: .4byte 0xFFFFFE00
+_08047AFC: .4byte 0x000001FF
+_08047B00:
+ ldr r0, _08047B6C @ =0x020314E0
+ ldr r4, [r0]
+ movs r2, #0x84
+ lsls r2, r2, #1
+ adds r1, r4, r2
+ movs r0, #0xc8
+ lsls r0, r0, #1
+ strh r0, [r1]
+ movs r5, #0x85
+ lsls r5, r5, #1
+ adds r3, r4, r5
+ ldrh r0, [r3]
+ subs r0, #0x23
+ strh r0, [r3]
+ movs r0, #0x80
+ lsls r0, r0, #1
+ adds r2, r4, r0
+ movs r5, #0
+ ldrsh r1, [r1, r5]
+ ldr r0, [r2]
+ adds r0, r0, r1
+ str r0, [r2]
+ movs r0, #0x82
+ lsls r0, r0, #1
+ adds r2, r4, r0
+ movs r4, #0
+ ldrsh r1, [r3, r4]
+ ldr r0, [r2]
+ adds r0, r0, r1
+ str r0, [r2]
+_08047B3C:
+ ldr r1, _08047B70 @ =0x0200B0C0
+ ldrh r2, [r1, #0x12]
+ adds r0, r2, #0
+ subs r0, #0x1e
+ lsls r0, r0, #0x10
+ lsrs r0, r0, #0x10
+ adds r6, r1, #0
+ cmp r0, #0x1d
+ bhi _08047B74
+ ldrh r1, [r6, #0x12]
+ movs r0, #0x3c
+ subs r0, r0, r1
+ lsls r0, r0, #8
+ movs r1, #0x1e
+ bl sub_556D0
+ movs r5, #0x80
+ lsls r5, r5, #1
+ adds r0, r0, r5
+ lsls r0, r0, #0x10
+ lsrs r0, r0, #0x10
+ str r0, [sp]
+ b _08047B8C
+ .align 2, 0
+_08047B6C: .4byte 0x020314E0
+_08047B70: .4byte 0x0200B0C0
+_08047B74:
+ movs r0, #0x80
+ lsls r0, r0, #1
+ str r0, [sp]
+ lsls r0, r2, #0x10
+ lsrs r0, r0, #0x10
+ cmp r0, #0x1d
+ bhi _08047B8C
+ movs r2, #0xbb
+ lsls r2, r2, #3
+ adds r1, r6, r2
+ movs r0, #0
+ strh r0, [r1]
+_08047B8C:
+ ldrh r0, [r6, #0x12]
+ cmp r0, #0x1e
+ bhi _08047BBE
+ cmp r0, #0xa
+ bls _08047BAE
+ adds r1, r0, #0
+ subs r1, #0xa
+ lsls r0, r1, #5
+ subs r0, r0, r1
+ lsls r0, r0, #3
+ movs r1, #0x14
+ bl sub_556D0
+ adds r0, #8
+ lsls r0, r0, #0x10
+ lsrs r0, r0, #0x10
+ b _08047BE4
+_08047BAE:
+ movs r3, #8
+ mov sl, r3
+ movs r4, #0xd2
+ lsls r4, r4, #3
+ adds r1, r6, r4
+ movs r0, #0
+ strh r0, [r1]
+ b _08047BE6
+_08047BBE:
+ ldr r0, _08047C48 @ =0x020314E0
+ ldr r0, [r0]
+ adds r1, r0, #0
+ adds r1, #0xfe
+ ldrh r2, [r1]
+ movs r5, #0
+ ldrsh r0, [r1, r5]
+ cmp r0, #0
+ ble _08047BE0
+ adds r0, r2, #0
+ subs r0, #8
+ strh r0, [r1]
+ lsls r0, r0, #0x10
+ cmp r0, #0
+ bge _08047BE0
+ movs r0, #0
+ strh r0, [r1]
+_08047BE0:
+ movs r0, #0x80
+ lsls r0, r0, #1
+_08047BE4:
+ mov sl, r0
+_08047BE6:
+ adds r3, r6, #0
+ ldrh r0, [r3, #0x12]
+ cmp r0, #0xca
+ bls _08047BF0
+ b _08047DBA
+_08047BF0:
+ cmp r0, #0x37
+ bls _08047C50
+ ldr r7, _08047C48 @ =0x020314E0
+ ldr r2, [r7]
+ movs r1, #0x84
+ lsls r1, r1, #1
+ adds r0, r2, r1
+ ldrh r1, [r0]
+ movs r4, #0x86
+ lsls r4, r4, #1
+ adds r0, r2, r4
+ strh r1, [r0]
+ movs r5, #0x85
+ lsls r5, r5, #1
+ adds r0, r2, r5
+ ldrh r0, [r0]
+ subs r0, #0x5a
+ adds r4, #2
+ adds r1, r2, r4
+ strh r0, [r1]
+ adds r5, #6
+ mov r8, r5
+ adds r1, r2, r5
+ subs r4, #0xe
+ adds r0, r2, r4
+ ldr r0, [r0]
+ str r0, [r1]
+ adds r5, #4
+ mov sb, r5
+ adds r1, r2, r5
+ adds r4, #4
+ adds r0, r2, r4
+ ldr r0, [r0]
+ str r0, [r1]
+ ldrh r0, [r3, #0x12]
+ cmp r0, #0x38
+ bne _08047C40
+ movs r0, #0x95
+ bl sub_53DA8
+_08047C40:
+ ldr r5, [r7]
+ ldr r0, _08047C4C @ =0x0000132C
+ adds r4, r5, r0
+ b _08047CBC
+ .align 2, 0
+_08047C48: .4byte 0x020314E0
+_08047C4C: .4byte 0x0000132C
+_08047C50:
+ cmp r0, #0x1f
+ bls _08047D00
+ ldr r7, _08047CF4 @ =0x020314E0
+ ldr r5, [r7]
+ movs r0, #0x87
+ lsls r0, r0, #1
+ adds r4, r5, r0
+ ldrh r0, [r4]
+ adds r0, #6
+ movs r1, #0
+ mov ip, r1
+ strh r0, [r4]
+ movs r2, #0x88
+ lsls r2, r2, #1
+ mov r8, r2
+ adds r2, r5, r2
+ movs r3, #0x86
+ lsls r3, r3, #1
+ adds r0, r5, r3
+ movs r3, #0
+ ldrsh r1, [r0, r3]
+ ldr r0, [r2]
+ adds r0, r0, r1
+ str r0, [r2]
+ movs r0, #0x8a
+ lsls r0, r0, #1
+ mov sb, r0
+ adds r2, r5, r0
+ movs r3, #0
+ ldrsh r1, [r4, r3]
+ ldr r0, [r2]
+ adds r0, r0, r1
+ str r0, [r2]
+ movs r4, #0xa4
+ lsls r4, r4, #3
+ adds r0, r6, r4
+ mov r1, ip
+ strh r1, [r0]
+ ldrh r0, [r6, #0x12]
+ cmp r0, #0x20
+ bne _08047CB6
+ ldr r2, _08047CF8 @ =0x000005FA
+ adds r1, r5, r2
+ movs r0, #0
+ strb r0, [r1]
+ movs r0, #0x96
+ bl sub_53DA8
+ movs r0, #6
+ bl sub_11B0
+_08047CB6:
+ ldr r5, [r7]
+ ldr r3, _08047CFC @ =0x0000132C
+ adds r4, r5, r3
+_08047CBC:
+ ldr r6, [r4]
+ mov r1, r8
+ adds r0, r5, r1
+ ldr r0, [r0]
+ movs r1, #0x64
+ bl sub_556D0
+ adds r0, #0x56
+ lsls r0, r0, #8
+ str r0, [r6, #0x34]
+ ldr r6, [r4]
+ adds r0, r5, #0
+ adds r0, #0xfe
+ movs r2, #0
+ ldrsh r4, [r0, r2]
+ add r5, sb
+ ldr r0, [r5]
+ movs r1, #0x64
+ bl sub_556D0
+ movs r3, #0xba
+ lsls r3, r3, #1
+ adds r0, r0, r3
+ adds r4, r4, r0
+ lsls r4, r4, #8
+ str r4, [r6, #0x38]
+ adds r2, r7, #0
+ b _08047D80
+ .align 2, 0
+_08047CF4: .4byte 0x020314E0
+_08047CF8: .4byte 0x000005FA
+_08047CFC: .4byte 0x0000132C
+_08047D00:
+ ldr r4, _08047E68 @ =0x020314E0
+ mov sb, r4
+ ldr r7, [r4]
+ movs r5, #0x86
+ lsls r5, r5, #1
+ adds r1, r7, r5
+ movs r0, #0
+ strh r0, [r1]
+ movs r0, #0x87
+ lsls r0, r0, #1
+ adds r3, r7, r0
+ ldrh r0, [r3]
+ adds r0, #0x14
+ strh r0, [r3]
+ movs r4, #0x88
+ lsls r4, r4, #1
+ adds r2, r7, r4
+ movs r5, #0
+ ldrsh r1, [r1, r5]
+ ldr r0, [r2]
+ adds r0, r0, r1
+ str r0, [r2]
+ movs r0, #0x8a
+ lsls r0, r0, #1
+ adds r5, r7, r0
+ movs r4, #0
+ ldrsh r1, [r3, r4]
+ ldr r0, [r5]
+ adds r0, r0, r1
+ str r0, [r5]
+ ldr r0, _08047E6C @ =0x0000132C
+ adds r6, r7, r0
+ ldr r4, [r6]
+ ldr r0, [r2]
+ movs r1, #0x64
+ bl sub_556D0
+ adds r0, #0x56
+ lsls r0, r0, #8
+ str r0, [r4, #0x34]
+ ldr r1, [r6]
+ mov r8, r1
+ adds r0, r7, #0
+ adds r0, #0xfe
+ movs r2, #0
+ ldrsh r4, [r0, r2]
+ ldr r0, [r5]
+ movs r1, #0x64
+ bl sub_556D0
+ movs r3, #0xba
+ lsls r3, r3, #1
+ adds r0, r0, r3
+ adds r4, r4, r0
+ lsls r4, r4, #8
+ mov r5, r8
+ str r4, [r5, #0x38]
+ ldr r6, [r6]
+ ldr r0, [r6, #0x38]
+ ldr r1, _08047E70 @ =0x00017100
+ mov r2, sb
+ cmp r0, r1
+ ble _08047D80
+ str r1, [r6, #0x38]
+_08047D80:
+ ldr r0, [r2]
+ ldr r1, _08047E6C @ =0x0000132C
+ adds r0, r0, r1
+ ldr r0, [r0]
+ movs r3, #0
+ strb r3, [r0, #1]
+ ldr r0, [r2]
+ adds r2, r0, r1
+ ldr r1, [r2]
+ ldr r0, [r1, #0x28]
+ str r0, [r1, #0x2c]
+ ldr r1, [r2]
+ ldr r0, [r1, #0x34]
+ cmp r0, #0
+ bge _08047DA0
+ adds r0, #0x7f
+_08047DA0:
+ asrs r0, r0, #7
+ strh r0, [r1, #0x28]
+ ldr r1, [r2]
+ ldr r0, [r1, #0x38]
+ cmp r0, #0
+ bge _08047DAE
+ adds r0, #0x7f
+_08047DAE:
+ asrs r0, r0, #7
+ strh r0, [r1, #0x2a]
+ ldr r0, [r2]
+ strh r3, [r0, #0x30]
+ ldr r0, [r2]
+ strh r3, [r0, #0x32]
+_08047DBA:
+ movs r0, #0x80
+ lsls r0, r0, #1
+ mov r2, sl
+ lsls r1, r2, #0x10
+ asrs r1, r1, #0x10
+ movs r2, #3
+ bl sub_7C0
+ ldr r3, [sp]
+ lsls r1, r3, #0x10
+ asrs r1, r1, #0x10
+ adds r0, r1, #0
+ movs r2, #4
+ bl sub_7C0
+ ldr r4, _08047E74 @ =0x0200B0C0
+ ldrh r1, [r4, #0x12]
+ cmp r1, #0xcb
+ beq _08047DE2
+ b _08047F18
+_08047DE2:
+ ldr r2, _08047E68 @ =0x020314E0
+ ldr r3, [r2]
+ movs r5, #0x80
+ lsls r5, r5, #1
+ adds r0, r3, r5
+ movs r1, #0
+ str r1, [r0]
+ adds r5, #4
+ adds r0, r3, r5
+ str r1, [r0]
+ adds r5, #4
+ adds r0, r3, r5
+ strh r1, [r0]
+ adds r5, #2
+ adds r0, r3, r5
+ strh r1, [r0]
+ adds r1, r3, #0
+ adds r1, #0xfe
+ movs r0, #0x64
+ strh r0, [r1]
+ movs r1, #0xd2
+ lsls r1, r1, #3
+ adds r0, r4, r1
+ movs r1, #1
+ strh r1, [r0]
+ movs r3, #0xbb
+ lsls r3, r3, #3
+ adds r0, r4, r3
+ strh r1, [r0]
+ movs r5, #0xa4
+ lsls r5, r5, #3
+ adds r0, r4, r5
+ strh r1, [r0]
+ ldrb r0, [r4, #4]
+ cmp r0, #0
+ bne _08047EAC
+ ldr r0, _08047E78 @ =0x040000D4
+ ldr r1, _08047E7C @ =0x0850100C
+ str r1, [r0]
+ ldr r1, _08047E80 @ =0x06015800
+ str r1, [r0, #4]
+ ldr r1, _08047E84 @ =0x80001200
+ str r1, [r0, #8]
+ ldr r1, [r0, #8]
+ ldr r1, _08047E88 @ =0x085028CC
+ str r1, [r0]
+ ldr r1, _08047E8C @ =0x06016800
+ str r1, [r0, #4]
+ ldr r1, _08047E90 @ =0x80000400
+ str r1, [r0, #8]
+ ldr r1, [r0, #8]
+ ldr r1, _08047E94 @ =0x085038CC
+ str r1, [r0]
+ ldr r1, _08047E98 @ =0x06017000
+ str r1, [r0, #4]
+ ldr r1, _08047E9C @ =0x80000060
+ str r1, [r0, #8]
+ ldr r1, [r0, #8]
+ ldr r1, _08047EA0 @ =0x08514F4C
+ str r1, [r0]
+ ldr r1, _08047EA4 @ =0x050003C0
+ str r1, [r0, #4]
+ ldr r1, _08047EA8 @ =0x80000010
+ str r1, [r0, #8]
+ ldr r0, [r0, #8]
+ b _08047ECA
+ .align 2, 0
+_08047E68: .4byte 0x020314E0
+_08047E6C: .4byte 0x0000132C
+_08047E70: .4byte 0x00017100
+_08047E74: .4byte 0x0200B0C0
+_08047E78: .4byte 0x040000D4
+_08047E7C: .4byte 0x0850100C
+_08047E80: .4byte 0x06015800
+_08047E84: .4byte 0x80001200
+_08047E88: .4byte 0x085028CC
+_08047E8C: .4byte 0x06016800
+_08047E90: .4byte 0x80000400
+_08047E94: .4byte 0x085038CC
+_08047E98: .4byte 0x06017000
+_08047E9C: .4byte 0x80000060
+_08047EA0: .4byte 0x08514F4C
+_08047EA4: .4byte 0x050003C0
+_08047EA8: .4byte 0x80000010
+_08047EAC:
+ ldr r1, _08047EF4 @ =0x040000D4
+ ldr r0, _08047EF8 @ =0x0850100C
+ str r0, [r1]
+ ldr r0, _08047EFC @ =0x06015800
+ str r0, [r1, #4]
+ ldr r0, _08047F00 @ =0x80001200
+ str r0, [r1, #8]
+ ldr r0, [r1, #8]
+ ldr r0, _08047F04 @ =0x08514F6C
+ str r0, [r1]
+ ldr r0, _08047F08 @ =0x050003C0
+ str r0, [r1, #4]
+ ldr r0, _08047F0C @ =0x80000010
+ str r0, [r1, #8]
+ ldr r0, [r1, #8]
+_08047ECA:
+ ldr r1, [r2]
+ movs r0, #2
+ strb r0, [r1, #0x1f]
+ ldr r0, [r2]
+ ldr r1, _08047F10 @ =0x000005FA
+ adds r0, r0, r1
+ movs r1, #1
+ strb r1, [r0]
+ ldr r0, [r2]
+ ldr r3, _08047F14 @ =0x000005F7
+ adds r0, r0, r3
+ strb r1, [r0]
+ ldr r0, [r2]
+ movs r4, #0x88
+ lsls r4, r4, #5
+ adds r0, r0, r4
+ strb r1, [r0]
+ movs r0, #0x94
+ bl sub_53DA8
+ b _08047FA0
+ .align 2, 0
+_08047EF4: .4byte 0x040000D4
+_08047EF8: .4byte 0x0850100C
+_08047EFC: .4byte 0x06015800
+_08047F00: .4byte 0x80001200
+_08047F04: .4byte 0x08514F6C
+_08047F08: .4byte 0x050003C0
+_08047F0C: .4byte 0x80000010
+_08047F10: .4byte 0x000005FA
+_08047F14: .4byte 0x000005F7
+_08047F18:
+ cmp r1, #0
+ bne _08047FA0
+ movs r5, #0xd2
+ lsls r5, r5, #3
+ adds r0, r4, r5
+ strh r1, [r0]
+ movs r2, #0xbb
+ lsls r2, r2, #3
+ adds r0, r4, r2
+ strh r1, [r0]
+ b _08047FA0
+_08047F2E:
+ ldrb r1, [r7, #0xf]
+ movs r0, #0xf7
+ ands r0, r1
+ strb r0, [r7, #0xf]
+ ldr r5, _08047F6C @ =0x020314E0
+ ldr r1, [r5]
+ movs r4, #0
+ movs r0, #0x3c
+ strh r0, [r1, #0x26]
+ movs r0, #0
+ bl sub_11C14
+ ldr r0, [r5]
+ strb r4, [r0, #0x1f]
+ movs r0, #0
+ bl sub_46FD4
+ ldr r0, [r5]
+ ldr r3, _08047F70 @ =0x0000029E
+ adds r0, r0, r3
+ strb r4, [r0]
+ ldrb r0, [r7, #4]
+ cmp r0, #0
+ bne _08047F78
+ ldr r0, [r5]
+ ldr r4, _08047F74 @ =0x0000132C
+ adds r0, r0, r4
+ ldr r1, [r0]
+ movs r0, #3
+ b _08047F82
+ .align 2, 0
+_08047F6C: .4byte 0x020314E0
+_08047F70: .4byte 0x0000029E
+_08047F74: .4byte 0x0000132C
+_08047F78:
+ ldr r0, [r5]
+ ldr r5, _08047FB0 @ =0x0000132C
+ adds r0, r0, r5
+ ldr r1, [r0]
+ movs r0, #1
+_08047F82:
+ strb r0, [r1, #1]
+ ldr r2, _08047FB4 @ =0x020314E0
+ ldr r0, [r2]
+ ldr r1, _08047FB8 @ =0x000005F7
+ adds r0, r0, r1
+ movs r1, #0
+ strb r1, [r0]
+ ldr r0, [r2]
+ adds r0, #0xe4
+ strb r1, [r0]
+ ldr r0, [r2]
+ movs r2, #0x88
+ lsls r2, r2, #5
+ adds r0, r0, r2
+ strb r1, [r0]
+_08047FA0:
+ add sp, #4
+ pop {r3, r4, r5}
+ mov r8, r3
+ mov sb, r4
+ mov sl, r5
+ pop {r4, r5, r6, r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08047FB0: .4byte 0x0000132C
+_08047FB4: .4byte 0x020314E0
+_08047FB8: .4byte 0x000005F7
+
+ thumb_func_start sub_47FBC
+sub_47FBC: @ 0x08047FBC
+ ldr r3, _08047FE4 @ =0x03005C00
+ ldr r2, _08047FE8 @ =0x000001FF
+ movs r0, #0xd0
+ lsls r0, r0, #3
+ adds r1, r3, r0
+ movs r0, #0x40
+_08047FC8:
+ strh r2, [r1]
+ adds r1, #2
+ subs r0, #1
+ cmp r0, #0
+ bne _08047FC8
+ ldr r1, _08047FEC @ =0x040000D4
+ str r3, [r1]
+ ldr r0, _08047FF0 @ =0x06002000
+ str r0, [r1, #4]
+ ldr r0, _08047FF4 @ =0x80000400
+ str r0, [r1, #8]
+ ldr r0, [r1, #8]
+ bx lr
+ .align 2, 0
+_08047FE4: .4byte 0x03005C00
+_08047FE8: .4byte 0x000001FF
+_08047FEC: .4byte 0x040000D4
+_08047FF0: .4byte 0x06002000
+_08047FF4: .4byte 0x80000400
+
+ thumb_func_start sub_47FF8
+sub_47FF8: @ 0x08047FF8
+ push {r4, lr}
+ ldr r2, _08048068 @ =0x0200B0C0
+ ldrh r1, [r2, #0x1c]
+ movs r0, #1
+ ands r0, r1
+ cmp r0, #0
+ beq _08048074
+ movs r0, #0x40
+ ands r0, r1
+ ldr r3, _0804806C @ =0x020314E0
+ cmp r0, #0
+ beq _0804801E
+ ldr r0, [r3]
+ ldr r1, _08048070 @ =0x0000132C
+ adds r0, r0, r1
+ ldr r1, [r0]
+ ldr r0, [r1, #0x38]
+ subs r0, #0x80
+ str r0, [r1, #0x38]
+_0804801E:
+ ldrh r1, [r2, #0x1c]
+ movs r0, #0x80
+ ands r0, r1
+ cmp r0, #0
+ beq _08048036
+ ldr r0, [r3]
+ ldr r4, _08048070 @ =0x0000132C
+ adds r0, r0, r4
+ ldr r1, [r0]
+ ldr r0, [r1, #0x38]
+ adds r0, #0x80
+ str r0, [r1, #0x38]
+_08048036:
+ ldrh r1, [r2, #0x1c]
+ movs r0, #0x20
+ ands r0, r1
+ cmp r0, #0
+ beq _0804804E
+ ldr r0, [r3]
+ ldr r1, _08048070 @ =0x0000132C
+ adds r0, r0, r1
+ ldr r1, [r0]
+ ldr r0, [r1, #0x34]
+ subs r0, #0x80
+ str r0, [r1, #0x34]
+_0804804E:
+ ldrh r1, [r2, #0x1c]
+ movs r0, #0x10
+ ands r0, r1
+ cmp r0, #0
+ beq _080480E0
+ ldr r0, [r3]
+ ldr r2, _08048070 @ =0x0000132C
+ adds r0, r0, r2
+ ldr r1, [r0]
+ ldr r0, [r1, #0x34]
+ adds r0, #0x80
+ b _080480DE
+ .align 2, 0
+_08048068: .4byte 0x0200B0C0
+_0804806C: .4byte 0x020314E0
+_08048070: .4byte 0x0000132C
+_08048074:
+ movs r0, #0x40
+ ands r0, r1
+ ldr r3, _08048118 @ =0x020314E0
+ cmp r0, #0
+ beq _0804808E
+ ldr r0, [r3]
+ ldr r4, _0804811C @ =0x0000132C
+ adds r0, r0, r4
+ ldr r1, [r0]
+ ldr r0, [r1, #0x38]
+ ldr r4, _08048120 @ =0xFFFFFE00
+ adds r0, r0, r4
+ str r0, [r1, #0x38]
+_0804808E:
+ ldrh r1, [r2, #0x1c]
+ movs r0, #0x80
+ ands r0, r1
+ cmp r0, #0
+ beq _080480AA
+ ldr r0, [r3]
+ ldr r1, _0804811C @ =0x0000132C
+ adds r0, r0, r1
+ ldr r1, [r0]
+ ldr r0, [r1, #0x38]
+ movs r4, #0x80
+ lsls r4, r4, #2
+ adds r0, r0, r4
+ str r0, [r1, #0x38]
+_080480AA:
+ ldrh r1, [r2, #0x1c]
+ movs r0, #0x20
+ ands r0, r1
+ cmp r0, #0
+ beq _080480C4
+ ldr r0, [r3]
+ ldr r1, _0804811C @ =0x0000132C
+ adds r0, r0, r1
+ ldr r1, [r0]
+ ldr r0, [r1, #0x34]
+ ldr r4, _08048120 @ =0xFFFFFE00
+ adds r0, r0, r4
+ str r0, [r1, #0x34]
+_080480C4:
+ ldrh r1, [r2, #0x1c]
+ movs r0, #0x10
+ ands r0, r1
+ cmp r0, #0
+ beq _080480E0
+ ldr r0, [r3]
+ ldr r1, _0804811C @ =0x0000132C
+ adds r0, r0, r1
+ ldr r1, [r0]
+ ldr r0, [r1, #0x34]
+ movs r2, #0x80
+ lsls r2, r2, #2
+ adds r0, r0, r2
+_080480DE:
+ str r0, [r1, #0x34]
+_080480E0:
+ ldr r0, [r3]
+ ldr r4, _0804811C @ =0x0000132C
+ adds r2, r0, r4
+ ldr r1, [r2]
+ ldr r0, [r1, #0x28]
+ str r0, [r1, #0x2c]
+ ldr r1, [r2]
+ ldr r0, [r1, #0x34]
+ cmp r0, #0
+ bge _080480F6
+ adds r0, #0x7f
+_080480F6:
+ asrs r0, r0, #7
+ movs r3, #0
+ strh r0, [r1, #0x28]
+ ldr r1, [r2]
+ ldr r0, [r1, #0x38]
+ cmp r0, #0
+ bge _08048106
+ adds r0, #0x7f
+_08048106:
+ asrs r0, r0, #7
+ strh r0, [r1, #0x2a]
+ ldr r0, [r2]
+ strh r3, [r0, #0x30]
+ ldr r0, [r2]
+ strh r3, [r0, #0x32]
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08048118: .4byte 0x020314E0
+_0804811C: .4byte 0x0000132C
+_08048120: .4byte 0xFFFFFE00
+
+ thumb_func_start sub_48124
+sub_48124: @ 0x08048124
+ ldr r3, _08048188 @ =0x0200B0C0
+ ldrh r1, [r3, #0x18]
+ movs r0, #0x40
+ ands r0, r1
+ cmp r0, #0
+ beq _0804813E
+ ldr r0, _0804818C @ =0x020314E0
+ ldr r1, [r0]
+ adds r1, #0x31
+ ldrb r0, [r1]
+ movs r2, #1
+ eors r0, r2
+ strb r0, [r1]
+_0804813E:
+ ldrh r1, [r3, #0x18]
+ movs r0, #0x80
+ ands r0, r1
+ cmp r0, #0
+ beq _08048156
+ ldr r0, _0804818C @ =0x020314E0
+ ldr r1, [r0]
+ adds r1, #0x31
+ ldrb r0, [r1]
+ movs r2, #1
+ eors r0, r2
+ strb r0, [r1]
+_08048156:
+ ldrh r1, [r3, #0x18]
+ movs r0, #0x10
+ ands r0, r1
+ cmp r0, #0
+ beq _0804816E
+ ldr r0, _0804818C @ =0x020314E0
+ ldr r1, [r0]
+ adds r1, #0x31
+ ldrb r0, [r1]
+ movs r2, #1
+ eors r0, r2
+ strb r0, [r1]
+_0804816E:
+ ldrh r1, [r3, #0x18]
+ movs r0, #0x20
+ ands r0, r1
+ cmp r0, #0
+ beq _08048186
+ ldr r0, _0804818C @ =0x020314E0
+ ldr r1, [r0]
+ adds r1, #0x31
+ ldrb r0, [r1]
+ movs r2, #1
+ eors r0, r2
+ strb r0, [r1]
+_08048186:
+ bx lr
+ .align 2, 0
+_08048188: .4byte 0x0200B0C0
+_0804818C: .4byte 0x020314E0
+
+ thumb_func_start sub_48190
+sub_48190: @ 0x08048190
+ push {r4, r5, r6, r7, lr}
+ mov r7, sl
+ mov r6, sb
+ mov r5, r8
+ push {r5, r6, r7}
+ sub sp, #0x28
+ ldr r2, _080481F8 @ =0x020314E0
+ ldr r3, [r2]
+ ldr r1, _080481FC @ =0x0000063A
+ adds r0, r3, r1
+ ldrh r1, [r0]
+ movs r0, #0xd4
+ subs r0, r0, r1
+ lsls r0, r0, #0x10
+ lsrs r0, r0, #0x10
+ mov sl, r0
+ movs r4, #0
+ str r4, [sp, #0x10]
+ movs r7, #0
+ str r7, [sp, #0x14]
+ movs r0, #0
+ str r0, [sp, #0x18]
+ adds r1, r2, #0
+ mov r8, r1
+ ldr r6, _08048200 @ =0x040000D4
+ movs r2, #0xcf
+ lsls r2, r2, #3
+ adds r3, r3, r2
+ ldr r7, _08048204 @ =0x80000010
+ mov sb, r7
+_080481CC:
+ lsls r0, r4, #2
+ adds r1, r4, #1
+ mov ip, r1
+ adds r0, r0, r4
+ movs r1, #0x16
+ muls r1, r4, r1
+ lsls r4, r0, #2
+ movs r5, #0x13
+ lsls r1, r1, #5
+ ldr r7, _08048208 @ =0x06017400
+ adds r2, r1, r7
+_080481E2:
+ adds r0, r3, r4
+ ldrb r0, [r0]
+ lsls r0, r0, #0x18
+ asrs r0, r0, #0x18
+ lsls r0, r0, #0x10
+ lsrs r1, r0, #0x10
+ asrs r0, r0, #0x10
+ cmp r0, #0x5f
+ bne _0804820C
+ movs r1, #0x30
+ b _0804821E
+ .align 2, 0
+_080481F8: .4byte 0x020314E0
+_080481FC: .4byte 0x0000063A
+_08048200: .4byte 0x040000D4
+_08048204: .4byte 0x80000010
+_08048208: .4byte 0x06017400
+_0804820C:
+ cmp r0, #0x5e
+ bne _08048214
+ movs r1, #0x2f
+ b _0804821E
+_08048214:
+ cmp r0, #0x2e
+ ble _0804821E
+ subs r0, #0x41
+ lsls r0, r0, #0x10
+ lsrs r1, r0, #0x10
+_0804821E:
+ mov r7, r8
+ ldr r0, [r7]
+ ldr r7, _08048244 @ =0x0000063C
+ adds r0, r0, r7
+ adds r0, r0, r4
+ ldrb r0, [r0]
+ lsls r0, r0, #0x18
+ asrs r0, r0, #0x18
+ cmp r0, #0
+ beq _0804824C
+ lsls r0, r1, #0x10
+ asrs r0, r0, #0xb
+ ldr r1, _08048248 @ =0x0850558C
+ adds r0, r0, r1
+ str r0, [r6]
+ str r2, [r6, #4]
+ mov r0, sb
+ str r0, [r6, #8]
+ b _08048256
+ .align 2, 0
+_08048244: .4byte 0x0000063C
+_08048248: .4byte 0x0850558C
+_0804824C:
+ ldr r0, _080483A0 @ =0x08505B8C
+ str r0, [r6]
+ str r2, [r6, #4]
+ mov r1, sb
+ str r1, [r6, #8]
+_08048256:
+ ldr r0, [r6, #8]
+ adds r2, #0x20
+ adds r4, #1
+ subs r5, #1
+ cmp r5, #0
+ bge _080481E2
+ mov r4, ip
+ cmp r4, #2
+ ble _080481CC
+ ldr r2, _080483A4 @ =0x0200B0C0
+ ldrh r0, [r2, #0x12]
+ cmp r0, #0xb3
+ bls _08048272
+ b _08048412
+_08048272:
+ cmp r0, #0x32
+ bhi _08048278
+ b _08048412
+_08048278:
+ ldrh r1, [r2, #0x18]
+ movs r2, #1
+ adds r0, r2, #0
+ ands r0, r1
+ cmp r0, #0
+ bne _08048286
+ b _08048412
+_08048286:
+ ldr r4, _080483A8 @ =0x020314E0
+ ldr r3, [r4]
+ ldr r7, _080483AC @ =0x00000639
+ adds r0, r3, r7
+ movs r6, #0
+ ldrsb r6, [r0, r6]
+ cmp r6, #0
+ beq _08048298
+ b _080483CC
+_08048298:
+ ldr r0, _080483B0 @ =0x0000063A
+ adds r1, r3, r0
+ movs r0, #0x64
+ strh r0, [r1]
+ mov sl, r0
+ movs r2, #0xc7
+ lsls r2, r2, #3
+ adds r1, r3, r2
+ movs r0, #6
+ strb r0, [r1]
+ ldr r4, [r4]
+ movs r3, #0xc6
+ lsls r3, r3, #3
+ adds r5, r4, r3
+ subs r7, #0xf
+ adds r0, r4, r7
+ ldrb r1, [r0]
+ lsls r0, r1, #5
+ subs r0, r0, r1
+ lsls r2, r0, #6
+ subs r2, r2, r0
+ lsls r2, r2, #3
+ adds r2, r2, r1
+ lsls r2, r2, #5
+ ldr r1, _080483B4 @ =0x0000062B
+ adds r0, r4, r1
+ ldrb r1, [r0]
+ ldr r0, _080483B8 @ =0x000B71B0
+ muls r0, r1, r0
+ adds r2, r2, r0
+ subs r3, #4
+ adds r0, r4, r3
+ ldrb r3, [r0]
+ lsls r1, r3, #5
+ subs r1, r1, r3
+ lsls r0, r1, #6
+ subs r0, r0, r1
+ lsls r0, r0, #3
+ adds r0, r0, r3
+ lsls r0, r0, #5
+ adds r2, r2, r0
+ adds r7, #3
+ adds r0, r4, r7
+ ldrb r0, [r0]
+ ldr r1, _080483BC @ =0x000186A0
+ muls r0, r1, r0
+ adds r2, r2, r0
+ ldr r3, _080483C0 @ =0x0000062E
+ adds r0, r4, r3
+ ldrb r0, [r0]
+ muls r0, r1, r0
+ adds r2, r2, r0
+ str r2, [r5]
+ adds r7, #7
+ adds r4, r4, r7
+ str r6, [r4]
+ movs r0, #0x96
+ ldr r1, _080483A4 @ =0x0200B0C0
+ strh r0, [r1, #0x12]
+ movs r5, #0
+ ldr r2, _080483A8 @ =0x020314E0
+ adds r7, #8
+ movs r3, #1
+_08048316:
+ ldr r0, [r2]
+ adds r0, r0, r7
+ adds r0, r0, r5
+ strb r3, [r0]
+ adds r5, #1
+ cmp r5, #0x13
+ ble _08048316
+ movs r5, #0
+ ldr r3, _080483A8 @ =0x020314E0
+ movs r2, #0xca
+ lsls r2, r2, #3
+ movs r1, #1
+_0804832E:
+ ldr r0, [r3]
+ adds r0, r0, r2
+ adds r0, r0, r5
+ strb r1, [r0]
+ adds r5, #1
+ cmp r5, #0x13
+ ble _0804832E
+ movs r5, #0
+ ldr r3, _080483A8 @ =0x020314E0
+ ldr r2, _080483C4 @ =0x00000664
+ movs r1, #1
+_08048344:
+ ldr r0, [r3]
+ adds r0, r0, r2
+ adds r0, r0, r5
+ strb r1, [r0]
+ adds r5, #1
+ cmp r5, #0x13
+ ble _08048344
+ movs r4, #0
+ ldr r2, _080483A8 @ =0x020314E0
+ mov sb, r2
+ ldr r3, _080483C8 @ =0x086B0128
+ mov r8, r3
+ movs r7, #0xcf
+ lsls r7, r7, #3
+ movs r6, #0xc7
+ lsls r6, r6, #3
+_08048364:
+ movs r5, #0
+ lsls r0, r4, #2
+ adds r1, r4, #1
+ mov ip, r1
+ adds r0, r0, r4
+ lsls r4, r0, #2
+_08048370:
+ mov r2, sb
+ ldr r0, [r2]
+ adds r2, r5, r4
+ adds r3, r0, r7
+ adds r3, r3, r2
+ adds r0, r0, r6
+ movs r1, #0
+ ldrsb r1, [r0, r1]
+ lsls r0, r1, #4
+ subs r0, r0, r1
+ lsls r0, r0, #2
+ adds r2, r2, r0
+ add r2, r8
+ ldrb r0, [r2]
+ strb r0, [r3]
+ adds r5, #1
+ cmp r5, #0x13
+ ble _08048370
+ mov r4, ip
+ cmp r4, #2
+ ble _08048364
+ movs r3, #1
+ str r3, [sp, #0x14]
+ b _08048412
+ .align 2, 0
+_080483A0: .4byte 0x08505B8C
+_080483A4: .4byte 0x0200B0C0
+_080483A8: .4byte 0x020314E0
+_080483AC: .4byte 0x00000639
+_080483B0: .4byte 0x0000063A
+_080483B4: .4byte 0x0000062B
+_080483B8: .4byte 0x000B71B0
+_080483BC: .4byte 0x000186A0
+_080483C0: .4byte 0x0000062E
+_080483C4: .4byte 0x00000664
+_080483C8: .4byte 0x086B0128
+_080483CC:
+ ldr r4, _08048560 @ =0x0000063A
+ adds r0, r3, r4
+ movs r5, #0
+ strh r2, [r0]
+ movs r0, #0x33
+ ldr r7, _08048564 @ =0x0200B0C0
+ strh r0, [r7, #0x12]
+ movs r0, #0x64
+ mov sl, r0
+ ldr r1, _08048568 @ =0x000006B4
+ adds r4, r3, r1
+ ldr r1, [r4]
+ cmp r1, #0
+ bne _080483F4
+ movs r2, #0xd7
+ lsls r2, r2, #3
+ adds r0, r3, r2
+ ldr r0, [r0]
+ cmp r0, #0
+ beq _08048412
+_080483F4:
+ ldr r0, [r3, #0x44]
+ adds r0, r0, r1
+ str r0, [r3, #0x44]
+ movs r7, #0xd7
+ lsls r7, r7, #3
+ adds r2, r3, r7
+ ldr r0, [r3, #0x48]
+ ldr r1, [r2]
+ adds r0, r0, r1
+ str r0, [r3, #0x48]
+ str r5, [r4]
+ str r5, [r2]
+ movs r0, #0x91
+ bl sub_53DA8
+_08048412:
+ ldr r0, _08048564 @ =0x0200B0C0
+ ldrh r1, [r0, #0x12]
+ mov r0, sl
+ lsls r0, r0, #0x10
+ str r0, [sp, #0x1c]
+ cmp r1, #0xb9
+ bne _08048496
+ ldr r1, _0804856C @ =0x020314E0
+ ldr r0, [r1]
+ ldr r2, _08048570 @ =0x00000639
+ adds r0, r0, r2
+ movs r3, #0
+ strb r3, [r0]
+ ldr r1, [r1]
+ ldr r4, _08048560 @ =0x0000063A
+ adds r2, r1, r4
+ movs r4, #0
+ movs r0, #0xd4
+ strh r0, [r2]
+ movs r2, #0xc7
+ lsls r2, r2, #3
+ adds r1, r1, r2
+ strb r4, [r1]
+ ldr r7, _0804856C @ =0x020314E0
+ ldr r0, [r7]
+ movs r4, #0xc6
+ lsls r4, r4, #3
+ adds r1, r0, r4
+ str r3, [r1]
+ ldr r7, _08048574 @ =0x00000634
+ adds r0, r0, r7
+ str r3, [r0]
+ movs r4, #0
+ ldr r0, _0804856C @ =0x020314E0
+ mov sb, r0
+ ldr r1, _08048578 @ =0x086B0128
+ mov r8, r1
+ adds r7, #0x44
+ adds r6, r2, #0
+_08048460:
+ movs r5, #0
+ lsls r0, r4, #2
+ adds r2, r4, #1
+ mov ip, r2
+ adds r0, r0, r4
+ lsls r4, r0, #2
+_0804846C:
+ mov r3, sb
+ ldr r0, [r3]
+ adds r2, r5, r4
+ adds r3, r0, r7
+ adds r3, r3, r2
+ adds r0, r0, r6
+ movs r1, #0
+ ldrsb r1, [r0, r1]
+ lsls r0, r1, #4
+ subs r0, r0, r1
+ lsls r0, r0, #2
+ adds r2, r2, r0
+ add r2, r8
+ ldrb r0, [r2]
+ strb r0, [r3]
+ adds r5, #1
+ cmp r5, #0x13
+ ble _0804846C
+ mov r4, ip
+ cmp r4, #2
+ ble _08048460
+_08048496:
+ ldr r4, _0804856C @ =0x020314E0
+ ldr r0, [r4]
+ ldr r4, _08048560 @ =0x0000063A
+ adds r0, r0, r4
+ ldrh r0, [r0]
+ cmp r0, #0
+ bne _080484A6
+ b _080487B2
+_080484A6:
+ ldr r7, _08048564 @ =0x0200B0C0
+ ldrh r0, [r7, #0x12]
+ cmp r0, #0x95
+ bhi _080484B2
+ adds r0, #1
+ strh r0, [r7, #0x12]
+_080484B2:
+ ldr r0, _0804856C @ =0x020314E0
+ ldr r1, [r0]
+ movs r2, #0xc7
+ lsls r2, r2, #3
+ adds r3, r1, r2
+ movs r0, #0
+ ldrsb r0, [r3, r0]
+ cmp r0, #4
+ ble _080484C6
+ b _08048650
+_080484C6:
+ ldr r3, [sp, #0x1c]
+ asrs r0, r3, #0x10
+ cmp r0, #0x58
+ bgt _08048580
+ movs r1, #0x18
+ bl sub_556D0
+ lsls r0, r0, #0x10
+ asrs r7, r0, #0x10
+ cmp r7, #2
+ ble _080484DE
+ movs r7, #2
+_080484DE:
+ movs r4, #0
+ cmp r4, r7
+ bgt _080485D4
+ movs r6, #0
+ movs r3, #0
+_080484E8:
+ ldr r1, [sp, #0x1c]
+ asrs r0, r1, #0x10
+ subs r0, r0, r3
+ movs r1, #0x28
+ str r3, [sp, #0x24]
+ bl sub_55768
+ lsrs r1, r0, #0x1f
+ adds r0, r0, r1
+ asrs r5, r0, #1
+ ldr r2, _0804856C @ =0x020314E0
+ ldr r1, [r2]
+ movs r2, #0xc7
+ lsls r2, r2, #3
+ adds r0, r1, r2
+ ldrb r0, [r0]
+ lsls r0, r0, #0x18
+ asrs r0, r0, #0x18
+ ldr r3, [sp, #0x24]
+ cmp r0, #0
+ beq _08048516
+ cmp r4, #2
+ beq _08048542
+_08048516:
+ adds r2, r5, r6
+ ldr r0, _0804857C @ =0x0000063C
+ adds r0, r0, r1
+ mov r8, r0
+ add r8, r2
+ mov r0, r8
+ ldrb r0, [r0]
+ lsls r0, r0, #0x18
+ asrs r0, r0, #0x18
+ cmp r0, #0
+ bne _08048542
+ movs r0, #0xcf
+ lsls r0, r0, #3
+ adds r1, r1, r0
+ adds r0, r1, r2
+ ldrb r0, [r0]
+ lsls r0, r0, #0x18
+ asrs r0, r0, #0x18
+ cmp r0, #0x5f
+ beq _08048542
+ movs r1, #1
+ str r1, [sp, #0x18]
+_08048542:
+ ldr r2, _0804856C @ =0x020314E0
+ ldr r0, [r2]
+ adds r1, r5, r6
+ ldr r2, _0804857C @ =0x0000063C
+ adds r0, r0, r2
+ adds r0, r0, r1
+ movs r1, #1
+ strb r1, [r0]
+ adds r6, #0x14
+ adds r3, #0x18
+ adds r4, #1
+ cmp r4, r7
+ ble _080484E8
+ b _080485D4
+ .align 2, 0
+_08048560: .4byte 0x0000063A
+_08048564: .4byte 0x0200B0C0
+_08048568: .4byte 0x000006B4
+_0804856C: .4byte 0x020314E0
+_08048570: .4byte 0x00000639
+_08048574: .4byte 0x00000634
+_08048578: .4byte 0x086B0128
+_0804857C: .4byte 0x0000063C
+_08048580:
+ cmp r0, #0x93
+ ble _080485D4
+ subs r0, #0x94
+ lsls r4, r0, #0x10
+ asrs r5, r4, #0x10
+ adds r0, r5, #0
+ movs r1, #0x18
+ bl sub_556D0
+ lsls r0, r0, #0x10
+ asrs r7, r0, #0x10
+ cmp r7, #1
+ ble _0804859C
+ movs r7, #1
+_0804859C:
+ str r4, [sp, #0x1c]
+ cmp r7, #0
+ blt _080485D4
+ movs r2, #0
+ adds r6, r5, #0
+ adds r4, r7, #1
+_080485A8:
+ adds r0, r6, #0
+ movs r1, #0x28
+ str r2, [sp, #0x20]
+ bl sub_55768
+ lsrs r1, r0, #0x1f
+ adds r0, r0, r1
+ asrs r5, r0, #1
+ ldr r3, _08048640 @ =0x020314E0
+ ldr r1, [r3]
+ ldr r2, [sp, #0x20]
+ adds r0, r5, r2
+ ldr r7, _08048644 @ =0x0000063C
+ adds r1, r1, r7
+ adds r1, r1, r0
+ movs r0, #0
+ strb r0, [r1]
+ adds r2, #0x14
+ subs r6, #0x18
+ subs r4, #1
+ cmp r4, #0
+ bne _080485A8
+_080485D4:
+ ldr r0, _08048640 @ =0x020314E0
+ ldr r1, [r0]
+ ldr r3, _08048648 @ =0x0000063A
+ adds r2, r1, r3
+ ldrh r0, [r2]
+ cmp r0, #1
+ beq _080485E4
+ b _080487A6
+_080485E4:
+ movs r0, #0xd4
+ strh r0, [r2]
+ movs r2, #0xc7
+ lsls r2, r2, #3
+ adds r1, r1, r2
+ ldrb r0, [r1]
+ adds r0, #1
+ strb r0, [r1]
+ movs r4, #0
+ ldr r7, _08048640 @ =0x020314E0
+ mov sl, r7
+ ldr r0, _0804864C @ =0x086B0128
+ mov sb, r0
+ movs r1, #0xcf
+ lsls r1, r1, #3
+ mov r8, r1
+ adds r6, r2, #0
+_08048606:
+ movs r5, #0
+ lsls r0, r4, #2
+ adds r2, r4, #1
+ mov ip, r2
+ adds r0, r0, r4
+ lsls r7, r0, #2
+_08048612:
+ mov r3, sl
+ ldr r0, [r3]
+ adds r2, r5, r7
+ mov r4, r8
+ adds r3, r0, r4
+ adds r3, r3, r2
+ adds r0, r0, r6
+ movs r1, #0
+ ldrsb r1, [r0, r1]
+ lsls r0, r1, #4
+ subs r0, r0, r1
+ lsls r0, r0, #2
+ adds r2, r2, r0
+ add r2, sb
+ ldrb r0, [r2]
+ strb r0, [r3]
+ adds r5, #1
+ cmp r5, #0x13
+ ble _08048612
+ mov r4, ip
+ cmp r4, #2
+ ble _08048606
+ b _080487A6
+ .align 2, 0
+_08048640: .4byte 0x020314E0
+_08048644: .4byte 0x0000063C
+_08048648: .4byte 0x0000063A
+_0804864C: .4byte 0x086B0128
+_08048650:
+ cmp r0, #5
+ bne _08048720
+ ldr r7, [sp, #0x1c]
+ asrs r2, r7, #0x10
+ cmp r2, #0x10
+ bgt _08048672
+ rsbs r0, r2, #0
+ lsls r0, r0, #0x11
+ lsrs r0, r0, #0x10
+ str r0, [sp, #0x10]
+ cmp r2, #2
+ beq _0804866A
+ b _080487A6
+_0804866A:
+ movs r0, #0xa2
+ bl sub_53DA8
+ b _080487A6
+_08048672:
+ movs r0, #0
+ str r0, [sp, #0x10]
+ adds r1, r1, r4
+ movs r0, #0xd4
+ strh r0, [r1]
+ ldrb r0, [r3]
+ adds r0, #1
+ strb r0, [r3]
+ movs r5, #0
+ ldr r2, _08048710 @ =0x020314E0
+ ldr r7, _08048714 @ =0x0000063C
+ movs r3, #1
+_0804868A:
+ ldr r0, [r2]
+ adds r0, r0, r7
+ adds r0, r0, r5
+ strb r3, [r0]
+ adds r5, #1
+ cmp r5, #0x13
+ ble _0804868A
+ movs r5, #0
+ ldr r3, _08048710 @ =0x020314E0
+ movs r2, #0xca
+ lsls r2, r2, #3
+ movs r1, #0
+_080486A2:
+ ldr r0, [r3]
+ adds r0, r0, r2
+ adds r0, r0, r5
+ strb r1, [r0]
+ adds r5, #1
+ cmp r5, #0x13
+ ble _080486A2
+ movs r5, #0
+ ldr r3, _08048710 @ =0x020314E0
+ ldr r2, _08048718 @ =0x00000664
+ movs r1, #0
+_080486B8:
+ ldr r0, [r3]
+ adds r0, r0, r2
+ adds r0, r0, r5
+ strb r1, [r0]
+ adds r5, #1
+ cmp r5, #0x13
+ ble _080486B8
+ movs r4, #0
+ ldr r1, _08048710 @ =0x020314E0
+ mov sb, r1
+ ldr r2, _0804871C @ =0x086B0128
+ mov r8, r2
+ movs r7, #0xcf
+ lsls r7, r7, #3
+ movs r6, #0xc7
+ lsls r6, r6, #3
+_080486D8:
+ movs r5, #0
+ lsls r0, r4, #2
+ adds r3, r4, #1
+ mov ip, r3
+ adds r0, r0, r4
+ lsls r4, r0, #2
+_080486E4:
+ mov r1, sb
+ ldr r0, [r1]
+ adds r2, r5, r4
+ adds r3, r0, r7
+ adds r3, r3, r2
+ adds r0, r0, r6
+ movs r1, #0
+ ldrsb r1, [r0, r1]
+ lsls r0, r1, #4
+ subs r0, r0, r1
+ lsls r0, r0, #2
+ adds r2, r2, r0
+ add r2, r8
+ ldrb r0, [r2]
+ strb r0, [r3]
+ adds r5, #1
+ cmp r5, #0x13
+ ble _080486E4
+ mov r4, ip
+ cmp r4, #2
+ ble _080486D8
+ b _080487A6
+ .align 2, 0
+_08048710: .4byte 0x020314E0
+_08048714: .4byte 0x0000063C
+_08048718: .4byte 0x00000664
+_0804871C: .4byte 0x086B0128
+_08048720:
+ ldr r2, [sp, #0x1c]
+ asrs r0, r2, #0x10
+ cmp r0, #0x58
+ bgt _080487A6
+ movs r1, #0x18
+ bl sub_556D0
+ lsls r0, r0, #0x10
+ asrs r7, r0, #0x10
+ cmp r7, #2
+ ble _08048738
+ movs r7, #2
+_08048738:
+ movs r4, #0
+ cmp r4, r7
+ bgt _080487A6
+ movs r6, #0
+ movs r3, #0
+_08048742:
+ ldr r1, [sp, #0x1c]
+ asrs r0, r1, #0x10
+ subs r0, r0, r3
+ movs r1, #0x28
+ str r3, [sp, #0x24]
+ bl sub_55768
+ lsrs r1, r0, #0x1f
+ adds r0, r0, r1
+ asrs r5, r0, #1
+ ldr r3, [sp, #0x24]
+ cmp r4, #0
+ beq _0804878C
+ ldr r2, _080487E8 @ =0x020314E0
+ ldr r1, [r2]
+ adds r2, r5, r6
+ ldr r0, _080487EC @ =0x0000063C
+ adds r0, r0, r1
+ mov r8, r0
+ add r8, r2
+ mov r0, r8
+ ldrb r0, [r0]
+ lsls r0, r0, #0x18
+ asrs r0, r0, #0x18
+ cmp r0, #0
+ bne _0804878C
+ movs r0, #0xcf
+ lsls r0, r0, #3
+ adds r1, r1, r0
+ adds r0, r1, r2
+ ldrb r0, [r0]
+ lsls r0, r0, #0x18
+ asrs r0, r0, #0x18
+ cmp r0, #0x5f
+ beq _0804878C
+ movs r1, #1
+ str r1, [sp, #0x18]
+_0804878C:
+ ldr r2, _080487E8 @ =0x020314E0
+ ldr r0, [r2]
+ adds r1, r5, r6
+ ldr r2, _080487EC @ =0x0000063C
+ adds r0, r0, r2
+ adds r0, r0, r1
+ movs r1, #1
+ strb r1, [r0]
+ adds r6, #0x14
+ adds r3, #0x18
+ adds r4, #1
+ cmp r4, r7
+ ble _08048742
+_080487A6:
+ ldr r3, [sp, #0x18]
+ cmp r3, #0
+ beq _080487B2
+ movs r0, #0xa1
+ bl sub_53DA8
+_080487B2:
+ movs r7, #0
+ movs r3, #0
+ ldr r0, _080487E8 @ =0x020314E0
+ ldr r5, [r0]
+ ldr r4, _080487F0 @ =0x0000063A
+ adds r1, r5, r4
+ ldrh r1, [r1]
+ cmp r1, #0xd4
+ beq _080487CE
+ ldr r0, [sp, #0x14]
+ cmp r0, #0
+ bne _080487CE
+ bl _0804908E
+_080487CE:
+ movs r1, #0xc7
+ lsls r1, r1, #3
+ adds r0, r5, r1
+ ldrb r0, [r0]
+ lsls r0, r0, #0x18
+ asrs r0, r0, #0x18
+ cmp r0, #6
+ bhi _08048894
+ lsls r0, r0, #2
+ ldr r1, _080487F4 @ =_080487F8
+ adds r0, r0, r1
+ ldr r0, [r0]
+ mov pc, r0
+ .align 2, 0
+_080487E8: .4byte 0x020314E0
+_080487EC: .4byte 0x0000063C
+_080487F0: .4byte 0x0000063A
+_080487F4: .4byte _080487F8
+_080487F8: @ jump table
+ .4byte _08048814 @ case 0
+ .4byte _08048828 @ case 1
+ .4byte _08048844 @ case 2
+ .4byte _08048860 @ case 3
+ .4byte _08048874 @ case 4
+ .4byte _08048890 @ case 5
+ .4byte _08048894 @ case 6
+_08048814:
+ ldr r2, _08048820 @ =0x020314E0
+ ldr r0, [r2]
+ ldr r3, _08048824 @ =0x0000062A
+ adds r0, r0, r3
+ b _0804884C
+ .align 2, 0
+_08048820: .4byte 0x020314E0
+_08048824: .4byte 0x0000062A
+_08048828:
+ ldr r4, _08048838 @ =0x020314E0
+ ldr r0, [r4]
+ ldr r7, _0804883C @ =0x0000062B
+ adds r0, r0, r7
+ ldrb r7, [r0]
+ ldr r3, _08048840 @ =0x000B71B0
+ b _08048894
+ .align 2, 0
+_08048838: .4byte 0x020314E0
+_0804883C: .4byte 0x0000062B
+_08048840: .4byte 0x000B71B0
+_08048844:
+ ldr r1, _08048854 @ =0x020314E0
+ ldr r0, [r1]
+ ldr r2, _08048858 @ =0x0000062C
+ adds r0, r0, r2
+_0804884C:
+ ldrb r7, [r0]
+ ldr r3, _0804885C @ =0x0007A120
+ b _08048894
+ .align 2, 0
+_08048854: .4byte 0x020314E0
+_08048858: .4byte 0x0000062C
+_0804885C: .4byte 0x0007A120
+_08048860:
+ ldr r3, _0804886C @ =0x020314E0
+ ldr r0, [r3]
+ ldr r4, _08048870 @ =0x0000062D
+ adds r0, r0, r4
+ b _0804887C
+ .align 2, 0
+_0804886C: .4byte 0x020314E0
+_08048870: .4byte 0x0000062D
+_08048874:
+ ldr r7, _08048884 @ =0x020314E0
+ ldr r0, [r7]
+ ldr r1, _08048888 @ =0x0000062E
+ adds r0, r0, r1
+_0804887C:
+ ldrb r7, [r0]
+ ldr r3, _0804888C @ =0x000186A0
+ b _08048894
+ .align 2, 0
+_08048884: .4byte 0x020314E0
+_08048888: .4byte 0x0000062E
+_0804888C: .4byte 0x000186A0
+_08048890:
+ movs r7, #0
+ movs r3, #0
+_08048894:
+ ldr r2, _08048900 @ =0x020314E0
+ ldr r0, [r2]
+ movs r4, #0xc7
+ lsls r4, r4, #3
+ adds r0, r0, r4
+ ldrb r0, [r0]
+ lsls r0, r0, #0x18
+ asrs r0, r0, #0x18
+ cmp r0, #4
+ ble _080488AA
+ b _08048B80
+_080488AA:
+ mov r5, sp
+ adds r5, #2
+ adds r0, r7, #0
+ muls r0, r3, r0
+ mov r8, r0
+ movs r1, #7
+ add r1, sp
+ mov sl, r1
+ add r2, sp, #8
+ mov sb, r2
+ movs r1, #0
+ mov r0, sp
+ adds r0, #9
+_080488C4:
+ strb r1, [r0]
+ subs r0, #1
+ cmp r0, sp
+ bge _080488C4
+ mov r4, sp
+ adds r0, r7, #0
+ movs r1, #0x64
+ bl sub_556D0
+ strb r0, [r4, #2]
+ mov r4, sp
+ adds r0, r7, #0
+ movs r1, #0x64
+ bl sub_55768
+ movs r1, #0xa
+ bl sub_556D0
+ strb r0, [r4, #1]
+ mov r4, sp
+ adds r0, r7, #0
+ movs r1, #0xa
+ bl sub_55768
+ strb r0, [r4]
+ movs r4, #2
+ movs r0, #0
+ ldrsb r0, [r5, r0]
+ b _08048914
+ .align 2, 0
+_08048900: .4byte 0x020314E0
+_08048904:
+ subs r4, #1
+ cmp r4, #0
+ ble _0804891C
+ mov r3, sp
+ adds r0, r3, r4
+ ldrb r0, [r0]
+ lsls r0, r0, #0x18
+ asrs r0, r0, #0x18
+_08048914:
+ cmp r0, #0
+ ble _08048904
+ cmp r0, #0xa
+ beq _08048904
+_0804891C:
+ movs r5, #0
+ cmp r5, r4
+ bgt _08048942
+ ldr r6, _080489FC @ =0x020314E0
+ movs r3, #0x13
+ movs r2, #0xcf
+ lsls r2, r2, #3
+_0804892A:
+ ldr r1, [r6]
+ subs r0, r3, r5
+ adds r1, r1, r2
+ adds r1, r1, r0
+ mov r7, sp
+ adds r0, r7, r5
+ ldrb r0, [r0]
+ adds r0, #0x1b
+ strb r0, [r1]
+ adds r5, #1
+ cmp r5, r4
+ ble _0804892A
+_08048942:
+ movs r1, #0
+ mov r0, sp
+ adds r0, #9
+_08048948:
+ strb r1, [r0]
+ subs r0, #1
+ cmp r0, sp
+ bge _08048948
+ mov r7, r8
+ ldr r1, _080489FC @ =0x020314E0
+ ldr r0, [r1]
+ ldr r2, _08048A00 @ =0x00000634
+ adds r0, r0, r2
+ str r7, [r0]
+ mov r5, sp
+ ldr r4, _08048A04 @ =0x00989680
+ adds r0, r7, #0
+ adds r1, r4, #0
+ bl sub_556D0
+ strb r0, [r5, #7]
+ mov r5, sp
+ adds r0, r7, #0
+ adds r1, r4, #0
+ bl sub_55768
+ ldr r4, _08048A08 @ =0x000F4240
+ adds r1, r4, #0
+ bl sub_556D0
+ adds r0, #0xa
+ strb r0, [r5, #6]
+ mov r5, sp
+ adds r0, r7, #0
+ adds r1, r4, #0
+ bl sub_55768
+ ldr r4, _08048A0C @ =0x000186A0
+ adds r1, r4, #0
+ bl sub_556D0
+ strb r0, [r5, #5]
+ mov r5, sp
+ adds r0, r7, #0
+ adds r1, r4, #0
+ bl sub_55768
+ ldr r4, _08048A10 @ =0x00002710
+ adds r1, r4, #0
+ bl sub_556D0
+ strb r0, [r5, #4]
+ mov r5, sp
+ adds r0, r7, #0
+ adds r1, r4, #0
+ bl sub_55768
+ movs r4, #0xfa
+ lsls r4, r4, #2
+ adds r1, r4, #0
+ bl sub_556D0
+ adds r0, #0xa
+ strb r0, [r5, #3]
+ mov r5, sp
+ adds r0, r7, #0
+ adds r1, r4, #0
+ bl sub_55768
+ movs r1, #0x64
+ bl sub_556D0
+ strb r0, [r5, #2]
+ mov r4, sp
+ adds r0, r7, #0
+ movs r1, #0x64
+ bl sub_55768
+ movs r1, #0xa
+ bl sub_556D0
+ strb r0, [r4, #1]
+ mov r4, sp
+ adds r0, r7, #0
+ movs r1, #0xa
+ bl sub_55768
+ strb r0, [r4]
+ movs r4, #7
+ mov r3, sl
+ movs r0, #0
+ ldrsb r0, [r3, r0]
+ b _08048A24
+ .align 2, 0
+_080489FC: .4byte 0x020314E0
+_08048A00: .4byte 0x00000634
+_08048A04: .4byte 0x00989680
+_08048A08: .4byte 0x000F4240
+_08048A0C: .4byte 0x000186A0
+_08048A10: .4byte 0x00002710
+_08048A14:
+ subs r4, #1
+ cmp r4, #0
+ ble _08048A2C
+ mov r7, sp
+ adds r0, r7, r4
+ ldrb r0, [r0]
+ lsls r0, r0, #0x18
+ asrs r0, r0, #0x18
+_08048A24:
+ cmp r0, #0
+ ble _08048A14
+ cmp r0, #0xa
+ beq _08048A14
+_08048A2C:
+ movs r5, #0
+ cmp r5, r4
+ bgt _08048A50
+ ldr r6, _08048B1C @ =0x020314E0
+ movs r3, #0x13
+ ldr r2, _08048B20 @ =0x0000068C
+_08048A38:
+ ldr r1, [r6]
+ subs r0, r3, r5
+ adds r1, r1, r2
+ adds r1, r1, r0
+ mov r7, sp
+ adds r0, r7, r5
+ ldrb r0, [r0]
+ adds r0, #0x1b
+ strb r0, [r1]
+ adds r5, #1
+ cmp r5, r4
+ ble _08048A38
+_08048A50:
+ movs r1, #0
+ mov r0, sp
+ adds r0, #9
+_08048A56:
+ strb r1, [r0]
+ subs r0, #1
+ cmp r0, sp
+ bge _08048A56
+ ldr r1, _08048B1C @ =0x020314E0
+ ldr r0, [r1]
+ movs r2, #0xc6
+ lsls r2, r2, #3
+ adds r0, r0, r2
+ ldr r7, [r0]
+ mov r5, sp
+ ldr r4, _08048B24 @ =0x05F5E100
+ adds r0, r7, #0
+ adds r1, r4, #0
+ bl sub_556D0
+ strb r0, [r5, #8]
+ mov r5, sp
+ adds r0, r7, #0
+ adds r1, r4, #0
+ bl sub_55768
+ ldr r4, _08048B28 @ =0x00989680
+ adds r1, r4, #0
+ bl sub_556D0
+ strb r0, [r5, #7]
+ mov r5, sp
+ adds r0, r7, #0
+ adds r1, r4, #0
+ bl sub_55768
+ ldr r4, _08048B2C @ =0x000F4240
+ adds r1, r4, #0
+ bl sub_556D0
+ adds r0, #0xa
+ strb r0, [r5, #6]
+ mov r5, sp
+ adds r0, r7, #0
+ adds r1, r4, #0
+ bl sub_55768
+ ldr r4, _08048B30 @ =0x000186A0
+ adds r1, r4, #0
+ bl sub_556D0
+ strb r0, [r5, #5]
+ mov r5, sp
+ adds r0, r7, #0
+ adds r1, r4, #0
+ bl sub_55768
+ ldr r4, _08048B34 @ =0x00002710
+ adds r1, r4, #0
+ bl sub_556D0
+ strb r0, [r5, #4]
+ mov r5, sp
+ adds r0, r7, #0
+ adds r1, r4, #0
+ bl sub_55768
+ movs r4, #0xfa
+ lsls r4, r4, #2
+ adds r1, r4, #0
+ bl sub_556D0
+ adds r0, #0xa
+ strb r0, [r5, #3]
+ mov r5, sp
+ adds r0, r7, #0
+ adds r1, r4, #0
+ bl sub_55768
+ movs r1, #0x64
+ bl sub_556D0
+ strb r0, [r5, #2]
+ mov r4, sp
+ adds r0, r7, #0
+ movs r1, #0x64
+ bl sub_55768
+ movs r1, #0xa
+ bl sub_556D0
+ strb r0, [r4, #1]
+ mov r4, sp
+ adds r0, r7, #0
+ movs r1, #0xa
+ bl sub_55768
+ strb r0, [r4]
+ movs r4, #8
+ mov r3, sb
+ movs r0, #0
+ ldrsb r0, [r3, r0]
+ b _08048B48
+ .align 2, 0
+_08048B1C: .4byte 0x020314E0
+_08048B20: .4byte 0x0000068C
+_08048B24: .4byte 0x05F5E100
+_08048B28: .4byte 0x00989680
+_08048B2C: .4byte 0x000F4240
+_08048B30: .4byte 0x000186A0
+_08048B34: .4byte 0x00002710
+_08048B38:
+ subs r4, #1
+ cmp r4, #0
+ ble _08048B50
+ mov r7, sp
+ adds r0, r7, r4
+ ldrb r0, [r0]
+ lsls r0, r0, #0x18
+ asrs r0, r0, #0x18
+_08048B48:
+ cmp r0, #0
+ ble _08048B38
+ cmp r0, #0xa
+ beq _08048B38
+_08048B50:
+ movs r5, #0
+ cmp r5, r4
+ ble _08048B58
+ b _0804908E
+_08048B58:
+ ldr r6, _08048B7C @ =0x020314E0
+ movs r3, #0x13
+ movs r2, #0xd4
+ lsls r2, r2, #3
+_08048B60:
+ ldr r1, [r6]
+ subs r0, r3, r5
+ adds r1, r1, r2
+ adds r1, r1, r0
+ mov r7, sp
+ adds r0, r7, r5
+ ldrb r0, [r0]
+ adds r0, #0x1b
+ strb r0, [r1]
+ adds r5, #1
+ cmp r5, r4
+ ble _08048B60
+ b _0804908E
+ .align 2, 0
+_08048B7C: .4byte 0x020314E0
+_08048B80:
+ cmp r0, #5
+ beq _08048B86
+ b _08048CB8
+_08048B86:
+ add r0, sp, #8
+ mov sb, r0
+ movs r1, #0
+ mov r0, sp
+ adds r0, #9
+_08048B90:
+ strb r1, [r0]
+ subs r0, #1
+ cmp r0, sp
+ bge _08048B90
+ ldr r1, _08048C58 @ =0x020314E0
+ ldr r0, [r1]
+ movs r2, #0xc6
+ lsls r2, r2, #3
+ adds r0, r0, r2
+ ldr r7, [r0]
+ mov r5, sp
+ ldr r4, _08048C5C @ =0x05F5E100
+ adds r0, r7, #0
+ adds r1, r4, #0
+ bl sub_556D0
+ strb r0, [r5, #8]
+ mov r5, sp
+ adds r0, r7, #0
+ adds r1, r4, #0
+ bl sub_55768
+ ldr r4, _08048C60 @ =0x00989680
+ adds r1, r4, #0
+ bl sub_556D0
+ strb r0, [r5, #7]
+ mov r5, sp
+ adds r0, r7, #0
+ adds r1, r4, #0
+ bl sub_55768
+ ldr r4, _08048C64 @ =0x000F4240
+ adds r1, r4, #0
+ bl sub_556D0
+ adds r0, #0xa
+ strb r0, [r5, #6]
+ mov r5, sp
+ adds r0, r7, #0
+ adds r1, r4, #0
+ bl sub_55768
+ ldr r4, _08048C68 @ =0x000186A0
+ adds r1, r4, #0
+ bl sub_556D0
+ strb r0, [r5, #5]
+ mov r5, sp
+ adds r0, r7, #0
+ adds r1, r4, #0
+ bl sub_55768
+ ldr r4, _08048C6C @ =0x00002710
+ adds r1, r4, #0
+ bl sub_556D0
+ strb r0, [r5, #4]
+ mov r5, sp
+ adds r0, r7, #0
+ adds r1, r4, #0
+ bl sub_55768
+ movs r4, #0xfa
+ lsls r4, r4, #2
+ adds r1, r4, #0
+ bl sub_556D0
+ adds r0, #0xa
+ strb r0, [r5, #3]
+ mov r5, sp
+ adds r0, r7, #0
+ adds r1, r4, #0
+ bl sub_55768
+ movs r1, #0x64
+ bl sub_556D0
+ strb r0, [r5, #2]
+ mov r4, sp
+ adds r0, r7, #0
+ movs r1, #0x64
+ bl sub_55768
+ movs r1, #0xa
+ bl sub_556D0
+ strb r0, [r4, #1]
+ mov r4, sp
+ adds r0, r7, #0
+ movs r1, #0xa
+ bl sub_55768
+ strb r0, [r4]
+ movs r4, #8
+ mov r3, sb
+ movs r0, #0
+ ldrsb r0, [r3, r0]
+ b _08048C80
+ .align 2, 0
+_08048C58: .4byte 0x020314E0
+_08048C5C: .4byte 0x05F5E100
+_08048C60: .4byte 0x00989680
+_08048C64: .4byte 0x000F4240
+_08048C68: .4byte 0x000186A0
+_08048C6C: .4byte 0x00002710
+_08048C70:
+ subs r4, #1
+ cmp r4, #0
+ ble _08048C88
+ mov r7, sp
+ adds r0, r7, r4
+ ldrb r0, [r0]
+ lsls r0, r0, #0x18
+ asrs r0, r0, #0x18
+_08048C80:
+ cmp r0, #0
+ ble _08048C70
+ cmp r0, #0xa
+ beq _08048C70
+_08048C88:
+ movs r5, #0
+ cmp r5, r4
+ ble _08048C90
+ b _0804908E
+_08048C90:
+ ldr r6, _08048CB4 @ =0x020314E0
+ movs r3, #0x13
+ movs r2, #0xd4
+ lsls r2, r2, #3
+_08048C98:
+ ldr r1, [r6]
+ subs r0, r3, r5
+ adds r1, r1, r2
+ adds r1, r1, r0
+ mov r7, sp
+ adds r0, r7, r5
+ ldrb r0, [r0]
+ adds r0, #0x1b
+ strb r0, [r1]
+ adds r5, #1
+ cmp r5, r4
+ ble _08048C98
+ b _0804908E
+ .align 2, 0
+_08048CB4: .4byte 0x020314E0
+_08048CB8:
+ add r0, sp, #8
+ mov sb, r0
+ movs r1, #5
+ add r1, sp
+ mov r8, r1
+ movs r2, #0xa
+ add r2, sp
+ mov sl, r2
+ movs r1, #0
+ mov r0, sp
+ adds r0, #9
+_08048CCE:
+ strb r1, [r0]
+ subs r0, #1
+ cmp r0, sp
+ bge _08048CCE
+ ldr r3, _08048D94 @ =0x020314E0
+ ldr r0, [r3]
+ movs r4, #0xc6
+ lsls r4, r4, #3
+ adds r0, r0, r4
+ ldr r7, [r0]
+ mov r5, sp
+ ldr r4, _08048D98 @ =0x05F5E100
+ adds r0, r7, #0
+ adds r1, r4, #0
+ bl sub_556D0
+ strb r0, [r5, #8]
+ mov r5, sp
+ adds r0, r7, #0
+ adds r1, r4, #0
+ bl sub_55768
+ ldr r4, _08048D9C @ =0x00989680
+ adds r1, r4, #0
+ bl sub_556D0
+ strb r0, [r5, #7]
+ mov r5, sp
+ adds r0, r7, #0
+ adds r1, r4, #0
+ bl sub_55768
+ ldr r4, _08048DA0 @ =0x000F4240
+ adds r1, r4, #0
+ bl sub_556D0
+ adds r0, #0xa
+ strb r0, [r5, #6]
+ mov r5, sp
+ adds r0, r7, #0
+ adds r1, r4, #0
+ bl sub_55768
+ ldr r4, _08048DA4 @ =0x000186A0
+ adds r1, r4, #0
+ bl sub_556D0
+ strb r0, [r5, #5]
+ mov r5, sp
+ adds r0, r7, #0
+ adds r1, r4, #0
+ bl sub_55768
+ ldr r4, _08048DA8 @ =0x00002710
+ adds r1, r4, #0
+ bl sub_556D0
+ strb r0, [r5, #4]
+ mov r5, sp
+ adds r0, r7, #0
+ adds r1, r4, #0
+ bl sub_55768
+ movs r4, #0xfa
+ lsls r4, r4, #2
+ adds r1, r4, #0
+ bl sub_556D0
+ adds r0, #0xa
+ strb r0, [r5, #3]
+ mov r5, sp
+ adds r0, r7, #0
+ adds r1, r4, #0
+ bl sub_55768
+ movs r1, #0x64
+ bl sub_556D0
+ strb r0, [r5, #2]
+ mov r4, sp
+ adds r0, r7, #0
+ movs r1, #0x64
+ bl sub_55768
+ movs r1, #0xa
+ bl sub_556D0
+ strb r0, [r4, #1]
+ mov r4, sp
+ adds r0, r7, #0
+ movs r1, #0xa
+ bl sub_55768
+ strb r0, [r4]
+ movs r4, #8
+ mov r7, sb
+ movs r0, #0
+ ldrsb r0, [r7, r0]
+ b _08048DBC
+ .align 2, 0
+_08048D94: .4byte 0x020314E0
+_08048D98: .4byte 0x05F5E100
+_08048D9C: .4byte 0x00989680
+_08048DA0: .4byte 0x000F4240
+_08048DA4: .4byte 0x000186A0
+_08048DA8: .4byte 0x00002710
+_08048DAC:
+ subs r4, #1
+ cmp r4, #0
+ ble _08048DC4
+ mov r1, sp
+ adds r0, r1, r4
+ ldrb r0, [r0]
+ lsls r0, r0, #0x18
+ asrs r0, r0, #0x18
+_08048DBC:
+ cmp r0, #0
+ ble _08048DAC
+ cmp r0, #0xa
+ beq _08048DAC
+_08048DC4:
+ movs r5, #0
+ cmp r5, r4
+ bgt _08048DEA
+ ldr r6, _08048E7C @ =0x020314E0
+ movs r3, #0x13
+ movs r2, #0xcf
+ lsls r2, r2, #3
+_08048DD2:
+ ldr r1, [r6]
+ subs r0, r3, r5
+ adds r1, r1, r2
+ adds r1, r1, r0
+ mov r7, sp
+ adds r0, r7, r5
+ ldrb r0, [r0]
+ adds r0, #0x1b
+ strb r0, [r1]
+ adds r5, #1
+ cmp r5, r4
+ ble _08048DD2
+_08048DEA:
+ movs r1, #0
+ mov r0, sp
+ adds r0, #9
+_08048DF0:
+ strb r1, [r0]
+ subs r0, #1
+ cmp r0, sp
+ bge _08048DF0
+ ldr r1, _08048E7C @ =0x020314E0
+ ldr r0, [r1]
+ ldr r2, _08048E80 @ =0x0000062F
+ adds r0, r0, r2
+ ldrb r7, [r0]
+ mov r5, sp
+ ldr r1, _08048E84 @ =0x000F4240
+ adds r0, r7, #0
+ bl sub_55768
+ ldr r4, _08048E88 @ =0x000186A0
+ adds r1, r4, #0
+ bl sub_556D0
+ strb r0, [r5, #5]
+ mov r5, sp
+ adds r0, r7, #0
+ adds r1, r4, #0
+ bl sub_55768
+ ldr r4, _08048E8C @ =0x00002710
+ adds r1, r4, #0
+ bl sub_556D0
+ strb r0, [r5, #4]
+ mov r5, sp
+ adds r0, r7, #0
+ adds r1, r4, #0
+ bl sub_55768
+ movs r4, #0xfa
+ lsls r4, r4, #2
+ adds r1, r4, #0
+ bl sub_556D0
+ adds r0, #0xa
+ strb r0, [r5, #3]
+ mov r5, sp
+ adds r0, r7, #0
+ adds r1, r4, #0
+ bl sub_55768
+ movs r1, #0x64
+ bl sub_556D0
+ strb r0, [r5, #2]
+ mov r4, sp
+ adds r0, r7, #0
+ movs r1, #0x64
+ bl sub_55768
+ movs r1, #0xa
+ bl sub_556D0
+ strb r0, [r4, #1]
+ mov r4, sp
+ adds r0, r7, #0
+ movs r1, #0xa
+ bl sub_55768
+ strb r0, [r4]
+ movs r4, #5
+ mov r3, r8
+ movs r0, #0
+ ldrsb r0, [r3, r0]
+ b _08048EA0
+ .align 2, 0
+_08048E7C: .4byte 0x020314E0
+_08048E80: .4byte 0x0000062F
+_08048E84: .4byte 0x000F4240
+_08048E88: .4byte 0x000186A0
+_08048E8C: .4byte 0x00002710
+_08048E90:
+ subs r4, #1
+ cmp r4, #0
+ ble _08048EA8
+ mov r7, sp
+ adds r0, r7, r4
+ ldrb r0, [r0]
+ lsls r0, r0, #0x18
+ asrs r0, r0, #0x18
+_08048EA0:
+ cmp r0, #0
+ ble _08048E90
+ cmp r0, #0xa
+ beq _08048E90
+_08048EA8:
+ movs r5, #0
+ cmp r5, r4
+ bgt _08048ECC
+ ldr r6, _08049020 @ =0x020314E0
+ movs r3, #0x13
+ ldr r2, _08049024 @ =0x0000068C
+_08048EB4:
+ ldr r1, [r6]
+ subs r0, r3, r5
+ adds r1, r1, r2
+ adds r1, r1, r0
+ mov r7, sp
+ adds r0, r7, r5
+ ldrb r0, [r0]
+ adds r0, #0x1b
+ strb r0, [r1]
+ adds r5, #1
+ cmp r5, r4
+ ble _08048EB4
+_08048ECC:
+ movs r1, #0
+ mov r0, sp
+ adds r0, #0xa
+_08048ED2:
+ strb r1, [r0]
+ subs r0, #1
+ cmp r0, sp
+ bge _08048ED2
+ movs r7, #0
+ movs r5, #0
+ ldr r1, _08049020 @ =0x020314E0
+ ldr r0, [r1]
+ ldr r1, _08049028 @ =0x0000062F
+ adds r0, r0, r1
+ ldrb r0, [r0]
+ cmp r0, #0
+ beq _08048F24
+ ldr r2, _08049020 @ =0x020314E0
+ adds r6, r1, #0
+_08048EF0:
+ ldr r4, [r2]
+ movs r3, #0xc6
+ lsls r3, r3, #3
+ adds r0, r4, r3
+ ldr r0, [r0]
+ adds r7, r7, r0
+ adds r0, r7, #0
+ ldr r1, _0804902C @ =0x0BEBC200
+ str r2, [sp, #0x20]
+ bl sub_556D0
+ ldr r2, [sp, #0x20]
+ cmp r0, #0
+ ble _08048F12
+ ldr r0, _08049030 @ =0xF4143E00
+ adds r7, r7, r0
+ adds r5, #2
+_08048F12:
+ adds r1, r4, r6
+ ldrb r0, [r1]
+ subs r0, #1
+ strb r0, [r1]
+ ldr r0, [r2]
+ adds r0, r0, r6
+ ldrb r0, [r0]
+ cmp r0, #0
+ bne _08048EF0
+_08048F24:
+ ldr r1, _08049034 @ =0x05F5E100
+ mov r8, r1
+ adds r0, r7, #0
+ bl sub_556D0
+ cmp r0, #0
+ ble _08048F38
+ ldr r2, _08049038 @ =0xFA0A1F00
+ adds r7, r7, r2
+ adds r5, #1
+_08048F38:
+ ldr r3, _08049020 @ =0x020314E0
+ ldr r0, [r3]
+ movs r4, #0xd7
+ lsls r4, r4, #3
+ adds r1, r0, r4
+ str r5, [r1]
+ ldr r1, _0804903C @ =0x000006B4
+ adds r0, r0, r1
+ str r7, [r0]
+ mov r4, sp
+ movs r6, #0xfa
+ lsls r6, r6, #2
+ adds r0, r5, #0
+ adds r1, r6, #0
+ bl sub_55768
+ movs r1, #0x64
+ bl sub_556D0
+ strb r0, [r4, #0xa]
+ mov r4, sp
+ adds r0, r5, #0
+ movs r1, #0x64
+ bl sub_55768
+ movs r1, #0xa
+ bl sub_556D0
+ adds r0, #0xa
+ strb r0, [r4, #9]
+ mov r4, sp
+ adds r0, r5, #0
+ movs r1, #0xa
+ bl sub_55768
+ strb r0, [r4, #8]
+ mov r5, sp
+ adds r0, r7, #0
+ mov r1, r8
+ bl sub_55768
+ ldr r4, _08049040 @ =0x00989680
+ adds r1, r4, #0
+ bl sub_556D0
+ strb r0, [r5, #7]
+ mov r5, sp
+ adds r0, r7, #0
+ adds r1, r4, #0
+ bl sub_55768
+ ldr r4, _08049044 @ =0x000F4240
+ adds r1, r4, #0
+ bl sub_556D0
+ adds r0, #0xa
+ strb r0, [r5, #6]
+ mov r5, sp
+ adds r0, r7, #0
+ adds r1, r4, #0
+ bl sub_55768
+ ldr r4, _08049048 @ =0x000186A0
+ adds r1, r4, #0
+ bl sub_556D0
+ strb r0, [r5, #5]
+ mov r5, sp
+ adds r0, r7, #0
+ adds r1, r4, #0
+ bl sub_55768
+ ldr r4, _0804904C @ =0x00002710
+ adds r1, r4, #0
+ bl sub_556D0
+ strb r0, [r5, #4]
+ mov r5, sp
+ adds r0, r7, #0
+ adds r1, r4, #0
+ bl sub_55768
+ adds r1, r6, #0
+ bl sub_556D0
+ adds r0, #0xa
+ strb r0, [r5, #3]
+ mov r4, sp
+ adds r0, r7, #0
+ adds r1, r6, #0
+ bl sub_55768
+ movs r1, #0x64
+ bl sub_556D0
+ strb r0, [r4, #2]
+ mov r4, sp
+ adds r0, r7, #0
+ movs r1, #0x64
+ bl sub_55768
+ movs r1, #0xa
+ bl sub_556D0
+ strb r0, [r4, #1]
+ mov r4, sp
+ adds r0, r7, #0
+ movs r1, #0xa
+ bl sub_55768
+ strb r0, [r4]
+ movs r4, #0xa
+ mov r2, sl
+ movs r0, #0
+ ldrsb r0, [r2, r0]
+ b _08049060
+ .align 2, 0
+_08049020: .4byte 0x020314E0
+_08049024: .4byte 0x0000068C
+_08049028: .4byte 0x0000062F
+_0804902C: .4byte 0x0BEBC200
+_08049030: .4byte 0xF4143E00
+_08049034: .4byte 0x05F5E100
+_08049038: .4byte 0xFA0A1F00
+_0804903C: .4byte 0x000006B4
+_08049040: .4byte 0x00989680
+_08049044: .4byte 0x000F4240
+_08049048: .4byte 0x000186A0
+_0804904C: .4byte 0x00002710
+_08049050:
+ subs r4, #1
+ cmp r4, #0
+ ble _08049068
+ mov r3, sp
+ adds r0, r3, r4
+ ldrb r0, [r0]
+ lsls r0, r0, #0x18
+ asrs r0, r0, #0x18
+_08049060:
+ cmp r0, #0
+ ble _08049050
+ cmp r0, #0xa
+ beq _08049050
+_08049068:
+ movs r5, #0
+ cmp r5, r4
+ bgt _0804908E
+ ldr r6, _080490FC @ =0x020314E0
+ movs r3, #0x13
+ movs r2, #0xd4
+ lsls r2, r2, #3
+_08049076:
+ ldr r1, [r6]
+ subs r0, r3, r5
+ adds r1, r1, r2
+ adds r1, r1, r0
+ mov r7, sp
+ adds r0, r7, r5
+ ldrb r0, [r0]
+ adds r0, #0x1b
+ strb r0, [r1]
+ adds r5, #1
+ cmp r5, r4
+ ble _08049076
+_0804908E:
+ ldr r1, [sp, #0x1c]
+ ldr r2, _08049100 @ =0xFFA60000
+ adds r0, r1, r2
+ lsrs r0, r0, #0x10
+ cmp r0, #0x32
+ bls _0804909C
+ b _0804948A
+_0804909C:
+ ldr r3, _080490FC @ =0x020314E0
+ ldr r1, [r3]
+ movs r4, #0xc7
+ lsls r4, r4, #3
+ adds r0, r1, r4
+ ldrb r0, [r0]
+ lsls r0, r0, #0x18
+ asrs r0, r0, #0x18
+ cmp r0, #4
+ ble _080490B2
+ b _08049250
+_080490B2:
+ ldr r3, _08049104 @ =0x00000634
+ adds r0, r1, r3
+ ldr r0, [r0]
+ cmp r0, #0
+ beq _080490C4
+ ldr r7, _08049108 @ =0x0000063A
+ adds r1, r1, r7
+ movs r0, #0x64
+ strh r0, [r1]
+_080490C4:
+ ldr r0, _0804910C @ =0x0200B0C0
+ ldr r2, [r0, #0x4c]
+ movs r0, #1
+ ands r2, r0
+ cmp r2, #0
+ bne _08049134
+ ldr r0, _080490FC @ =0x020314E0
+ ldr r1, [r0]
+ adds r4, r1, r3
+ ldr r3, [r4]
+ ldr r0, _08049110 @ =0x00030D3F
+ cmp r3, r0
+ bls _0804911C
+ ldr r2, _08049114 @ =0xFFFCF2C0
+ adds r0, r3, r2
+ str r0, [r4]
+ movs r3, #0xc6
+ lsls r3, r3, #3
+ adds r1, r1, r3
+ ldr r0, [r1]
+ ldr r4, _08049118 @ =0x00030D40
+ adds r0, r0, r4
+ str r0, [r1]
+ movs r0, #0x91
+ bl sub_53DA8
+ b _08049134
+ .align 2, 0
+_080490FC: .4byte 0x020314E0
+_08049100: .4byte 0xFFA60000
+_08049104: .4byte 0x00000634
+_08049108: .4byte 0x0000063A
+_0804910C: .4byte 0x0200B0C0
+_08049110: .4byte 0x00030D3F
+_08049114: .4byte 0xFFFCF2C0
+_08049118: .4byte 0x00030D40
+_0804911C:
+ cmp r3, #0
+ beq _08049134
+ movs r7, #0xc6
+ lsls r7, r7, #3
+ adds r1, r1, r7
+ ldr r0, [r1]
+ adds r0, r0, r3
+ str r0, [r1]
+ str r2, [r4]
+ movs r0, #0x91
+ bl sub_53DA8
+_08049134:
+ ldr r6, _080491F0 @ =0x020314E0
+ ldr r0, [r6]
+ movs r1, #0xc6
+ lsls r1, r1, #3
+ adds r0, r0, r1
+ ldr r7, [r0]
+ mov r5, sp
+ ldr r4, _080491F4 @ =0x05F5E100
+ adds r0, r7, #0
+ adds r1, r4, #0
+ bl sub_556D0
+ strb r0, [r5, #8]
+ mov r5, sp
+ adds r0, r7, #0
+ adds r1, r4, #0
+ bl sub_55768
+ ldr r4, _080491F8 @ =0x00989680
+ adds r1, r4, #0
+ bl sub_556D0
+ strb r0, [r5, #7]
+ mov r5, sp
+ adds r0, r7, #0
+ adds r1, r4, #0
+ bl sub_55768
+ ldr r4, _080491FC @ =0x000F4240
+ adds r1, r4, #0
+ bl sub_556D0
+ adds r0, #0xa
+ strb r0, [r5, #6]
+ mov r5, sp
+ adds r0, r7, #0
+ adds r1, r4, #0
+ bl sub_55768
+ ldr r4, _08049200 @ =0x000186A0
+ adds r1, r4, #0
+ bl sub_556D0
+ strb r0, [r5, #5]
+ mov r5, sp
+ adds r0, r7, #0
+ adds r1, r4, #0
+ bl sub_55768
+ ldr r4, _08049204 @ =0x00002710
+ adds r1, r4, #0
+ bl sub_556D0
+ strb r0, [r5, #4]
+ mov r5, sp
+ adds r0, r7, #0
+ adds r1, r4, #0
+ bl sub_55768
+ movs r4, #0xfa
+ lsls r4, r4, #2
+ adds r1, r4, #0
+ bl sub_556D0
+ adds r0, #0xa
+ strb r0, [r5, #3]
+ mov r5, sp
+ adds r0, r7, #0
+ adds r1, r4, #0
+ bl sub_55768
+ movs r1, #0x64
+ bl sub_556D0
+ strb r0, [r5, #2]
+ mov r4, sp
+ adds r0, r7, #0
+ movs r1, #0x64
+ bl sub_55768
+ movs r1, #0xa
+ bl sub_556D0
+ strb r0, [r4, #1]
+ mov r4, sp
+ adds r0, r7, #0
+ movs r1, #0xa
+ bl sub_55768
+ strb r0, [r4]
+ movs r4, #8
+ add r0, sp, #8
+ b _08049212
+ .align 2, 0
+_080491F0: .4byte 0x020314E0
+_080491F4: .4byte 0x05F5E100
+_080491F8: .4byte 0x00989680
+_080491FC: .4byte 0x000F4240
+_08049200: .4byte 0x000186A0
+_08049204: .4byte 0x00002710
+_08049208:
+ subs r4, #1
+ cmp r4, #0
+ ble _08049220
+ mov r2, sp
+ adds r0, r2, r4
+_08049212:
+ ldrb r0, [r0]
+ lsls r0, r0, #0x18
+ asrs r0, r0, #0x18
+ cmp r0, #0
+ ble _08049208
+ cmp r0, #0xa
+ beq _08049208
+_08049220:
+ movs r5, #0
+ cmp r5, r4
+ ble _08049228
+ b _0804948A
+_08049228:
+ ldr r6, _0804924C @ =0x020314E0
+ movs r3, #0x13
+ movs r2, #0xd4
+ lsls r2, r2, #3
+_08049230:
+ ldr r1, [r6]
+ subs r0, r3, r5
+ adds r1, r1, r2
+ adds r1, r1, r0
+ mov r7, sp
+ adds r0, r7, r5
+ ldrb r0, [r0]
+ adds r0, #0x1b
+ strb r0, [r1]
+ adds r5, #1
+ cmp r5, r4
+ ble _08049230
+ b _0804948A
+ .align 2, 0
+_0804924C: .4byte 0x020314E0
+_08049250:
+ cmp r0, #6
+ beq _08049256
+ b _0804948A
+_08049256:
+ ldr r0, _080492A4 @ =0x00000639
+ adds r1, r1, r0
+ movs r0, #1
+ strb r0, [r1]
+ ldr r2, _080492A8 @ =0x020314E0
+ ldr r1, [r2]
+ ldr r3, _080492AC @ =0x000006B4
+ adds r0, r1, r3
+ ldr r0, [r0]
+ cmp r0, #0
+ bne _08049278
+ movs r4, #0xd7
+ lsls r4, r4, #3
+ adds r0, r1, r4
+ ldr r0, [r0]
+ cmp r0, #0
+ beq _08049280
+_08049278:
+ ldr r7, _080492B0 @ =0x0000063A
+ adds r1, r1, r7
+ movs r0, #0x64
+ strh r0, [r1]
+_08049280:
+ ldr r0, _080492B4 @ =0x0200B0C0
+ ldr r0, [r0, #0x4c]
+ movs r1, #1
+ ands r0, r1
+ cmp r0, #0
+ bne _08049302
+ ldr r0, _080492A8 @ =0x020314E0
+ ldr r2, [r0]
+ ldr r0, _080492AC @ =0x000006B4
+ adds r5, r2, r0
+ ldr r3, [r5]
+ ldr r0, _080492B8 @ =0x00030D3F
+ cmp r3, r0
+ bls _080492C0
+ ldr r1, _080492BC @ =0xFFFCF2C0
+ adds r0, r3, r1
+ b _080492D6
+ .align 2, 0
+_080492A4: .4byte 0x00000639
+_080492A8: .4byte 0x020314E0
+_080492AC: .4byte 0x000006B4
+_080492B0: .4byte 0x0000063A
+_080492B4: .4byte 0x0200B0C0
+_080492B8: .4byte 0x00030D3F
+_080492BC: .4byte 0xFFFCF2C0
+_080492C0:
+ movs r7, #0xd7
+ lsls r7, r7, #3
+ adds r4, r2, r7
+ ldr r1, [r4]
+ cmp r1, #0
+ beq _080492F0
+ subs r0, r1, #1
+ str r0, [r4]
+ ldr r0, [r5]
+ ldr r1, _080492E8 @ =0x05F2D3C0
+ adds r0, r0, r1
+_080492D6:
+ str r0, [r5]
+ ldr r0, [r2, #0x44]
+ ldr r3, _080492EC @ =0x00030D40
+ adds r0, r0, r3
+ str r0, [r2, #0x44]
+ movs r0, #0x91
+ bl sub_53DA8
+ b _08049302
+ .align 2, 0
+_080492E8: .4byte 0x05F2D3C0
+_080492EC: .4byte 0x00030D40
+_080492F0:
+ cmp r3, #0
+ beq _08049302
+ ldr r0, [r2, #0x44]
+ adds r0, r0, r3
+ str r0, [r2, #0x44]
+ str r1, [r5]
+ movs r0, #0x91
+ bl sub_53DA8
+_08049302:
+ movs r4, #0xa
+ add r4, sp
+ mov sl, r4
+ movs r1, #0
+ mov r0, sl
+_0804930C:
+ strb r1, [r0]
+ subs r0, #1
+ cmp r0, sp
+ bge _0804930C
+ movs r5, #0
+ ldr r7, _0804942C @ =0x020314E0
+ movs r6, #0xd4
+ lsls r6, r6, #3
+ ldr r4, _08049430 @ =0x086B0150
+ movs r3, #0xc7
+ lsls r3, r3, #3
+_08049322:
+ ldr r0, [r7]
+ adds r2, r0, r6
+ adds r2, r2, r5
+ adds r0, r0, r3
+ movs r1, #0
+ ldrsb r1, [r0, r1]
+ lsls r0, r1, #4
+ subs r0, r0, r1
+ lsls r0, r0, #2
+ adds r0, r5, r0
+ adds r0, r0, r4
+ ldrb r0, [r0]
+ strb r0, [r2]
+ adds r5, #1
+ cmp r5, #0x13
+ ble _08049322
+ ldr r7, _0804942C @ =0x020314E0
+ ldr r0, [r7]
+ movs r2, #0xd7
+ lsls r2, r2, #3
+ adds r1, r0, r2
+ ldr r5, [r1]
+ ldr r3, _08049434 @ =0x000006B4
+ adds r0, r0, r3
+ ldr r7, [r0]
+ mov r4, sp
+ movs r6, #0xfa
+ lsls r6, r6, #2
+ adds r0, r5, #0
+ adds r1, r6, #0
+ bl sub_55768
+ movs r1, #0x64
+ bl sub_556D0
+ strb r0, [r4, #0xa]
+ mov r4, sp
+ adds r0, r5, #0
+ movs r1, #0x64
+ bl sub_55768
+ movs r1, #0xa
+ bl sub_556D0
+ adds r0, #0xa
+ strb r0, [r4, #9]
+ mov r4, sp
+ adds r0, r5, #0
+ movs r1, #0xa
+ bl sub_55768
+ strb r0, [r4, #8]
+ mov r5, sp
+ ldr r1, _08049438 @ =0x05F5E100
+ adds r0, r7, #0
+ bl sub_55768
+ ldr r4, _0804943C @ =0x00989680
+ adds r1, r4, #0
+ bl sub_556D0
+ strb r0, [r5, #7]
+ mov r5, sp
+ adds r0, r7, #0
+ adds r1, r4, #0
+ bl sub_55768
+ ldr r4, _08049440 @ =0x000F4240
+ adds r1, r4, #0
+ bl sub_556D0
+ adds r0, #0xa
+ strb r0, [r5, #6]
+ mov r5, sp
+ adds r0, r7, #0
+ adds r1, r4, #0
+ bl sub_55768
+ ldr r4, _08049444 @ =0x000186A0
+ adds r1, r4, #0
+ bl sub_556D0
+ strb r0, [r5, #5]
+ mov r5, sp
+ adds r0, r7, #0
+ adds r1, r4, #0
+ bl sub_55768
+ ldr r4, _08049448 @ =0x00002710
+ adds r1, r4, #0
+ bl sub_556D0
+ strb r0, [r5, #4]
+ mov r5, sp
+ adds r0, r7, #0
+ adds r1, r4, #0
+ bl sub_55768
+ adds r1, r6, #0
+ bl sub_556D0
+ adds r0, #0xa
+ strb r0, [r5, #3]
+ mov r4, sp
+ adds r0, r7, #0
+ adds r1, r6, #0
+ bl sub_55768
+ movs r1, #0x64
+ bl sub_556D0
+ strb r0, [r4, #2]
+ mov r4, sp
+ adds r0, r7, #0
+ movs r1, #0x64
+ bl sub_55768
+ movs r1, #0xa
+ bl sub_556D0
+ strb r0, [r4, #1]
+ mov r4, sp
+ adds r0, r7, #0
+ movs r1, #0xa
+ bl sub_55768
+ strb r0, [r4]
+ movs r4, #0xa
+ mov r7, sl
+ movs r0, #0
+ ldrsb r0, [r7, r0]
+ b _0804945C
+ .align 2, 0
+_0804942C: .4byte 0x020314E0
+_08049430: .4byte 0x086B0150
+_08049434: .4byte 0x000006B4
+_08049438: .4byte 0x05F5E100
+_0804943C: .4byte 0x00989680
+_08049440: .4byte 0x000F4240
+_08049444: .4byte 0x000186A0
+_08049448: .4byte 0x00002710
+_0804944C:
+ subs r4, #1
+ cmp r4, #0
+ ble _08049464
+ mov r1, sp
+ adds r0, r1, r4
+ ldrb r0, [r0]
+ lsls r0, r0, #0x18
+ asrs r0, r0, #0x18
+_0804945C:
+ cmp r0, #0
+ ble _0804944C
+ cmp r0, #0xa
+ beq _0804944C
+_08049464:
+ movs r5, #0
+ cmp r5, r4
+ bgt _0804948A
+ ldr r6, _08049584 @ =0x020314E0
+ movs r3, #0x13
+ movs r2, #0xd4
+ lsls r2, r2, #3
+_08049472:
+ ldr r1, [r6]
+ subs r0, r3, r5
+ adds r1, r1, r2
+ adds r1, r1, r0
+ mov r7, sp
+ adds r0, r7, r5
+ ldrb r0, [r0]
+ adds r0, #0x1b
+ strb r0, [r1]
+ adds r5, #1
+ cmp r5, r4
+ ble _08049472
+_0804948A:
+ ldr r1, _08049584 @ =0x020314E0
+ ldr r0, [r1]
+ ldr r2, _08049588 @ =0x0000063A
+ adds r1, r0, r2
+ ldrh r0, [r1]
+ cmp r0, #0
+ beq _0804949C
+ subs r0, #1
+ strh r0, [r1]
+_0804949C:
+ ldr r6, _0804958C @ =0x0200BA30
+ ldrh r0, [r6]
+ cmp r0, #0
+ beq _08049572
+ movs r0, #0x78
+ strh r0, [r6, #2]
+ ldr r3, _08049584 @ =0x020314E0
+ ldr r0, [r3]
+ adds r0, #0xfc
+ ldrh r0, [r0]
+ adds r0, #0x26
+ strh r0, [r6, #4]
+ ldr r4, [sp, #0x10]
+ lsls r4, r4, #0x10
+ mov r8, r4
+ ldr r7, _08049590 @ =0x03005000
+ ldr r0, _08049594 @ =0xFFFFFE00
+ mov sl, r0
+ adds r4, r6, #0
+ adds r4, #8
+ ldr r1, _08049598 @ =0x000001FF
+ mov sb, r1
+ movs r5, #0xd
+_080494CA:
+ ldrh r3, [r4]
+ lsls r3, r3, #3
+ adds r3, r3, r7
+ movs r2, #2
+ ldrsh r1, [r4, r2]
+ movs r2, #2
+ ldrsh r0, [r6, r2]
+ adds r1, r1, r0
+ mov r0, sb
+ ands r1, r0
+ ldrh r2, [r3, #2]
+ mov r0, sl
+ ands r0, r2
+ orrs r0, r1
+ strh r0, [r3, #2]
+ ldrh r1, [r4]
+ lsls r1, r1, #3
+ adds r1, r1, r7
+ ldrb r0, [r6, #4]
+ ldrb r2, [r4, #4]
+ adds r0, r0, r2
+ strb r0, [r1]
+ adds r4, #8
+ subs r5, #1
+ cmp r5, #0
+ bge _080494CA
+ movs r4, #0
+ mov r3, r8
+ asrs r3, r3, #0x10
+ mov sl, r3
+ ldr r7, _08049590 @ =0x03005000
+ ldr r0, _08049594 @ =0xFFFFFE00
+ mov sb, r0
+ ldr r1, _08049598 @ =0x000001FF
+ mov r8, r1
+_08049510:
+ movs r0, #0xb8
+ muls r0, r4, r0
+ ldr r2, _0804959C @ =0x0200B808
+ adds r6, r0, r2
+ movs r0, #0x68
+ strh r0, [r6, #2]
+ lsls r1, r4, #4
+ ldr r3, _08049584 @ =0x020314E0
+ ldr r0, [r3]
+ adds r0, #0xfc
+ ldrh r0, [r0]
+ adds r0, #0x40
+ adds r1, r1, r0
+ add r1, sl
+ strh r1, [r6, #4]
+ adds r4, #1
+ mov ip, r4
+ adds r4, r6, #0
+ adds r4, #8
+ movs r5, #4
+_08049538:
+ ldrh r2, [r4]
+ lsls r2, r2, #3
+ adds r2, r2, r7
+ movs r0, #2
+ ldrsh r1, [r4, r0]
+ movs r3, #2
+ ldrsh r0, [r6, r3]
+ adds r1, r1, r0
+ mov r0, r8
+ ands r1, r0
+ ldrh r3, [r2, #2]
+ mov r0, sb
+ ands r0, r3
+ orrs r0, r1
+ strh r0, [r2, #2]
+ ldrh r1, [r4]
+ lsls r1, r1, #3
+ adds r1, r1, r7
+ ldrb r0, [r6, #4]
+ ldrb r2, [r4, #4]
+ adds r0, r0, r2
+ strb r0, [r1]
+ adds r4, #8
+ subs r5, #1
+ cmp r5, #0
+ bge _08049538
+ mov r4, ip
+ cmp r4, #2
+ ble _08049510
+_08049572:
+ add sp, #0x28
+ pop {r3, r4, r5}
+ mov r8, r3
+ mov sb, r4
+ mov sl, r5
+ pop {r4, r5, r6, r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08049584: .4byte 0x020314E0
+_08049588: .4byte 0x0000063A
+_0804958C: .4byte 0x0200BA30
+_08049590: .4byte 0x03005000
+_08049594: .4byte 0xFFFFFE00
+_08049598: .4byte 0x000001FF
+_0804959C: .4byte 0x0200B808
+
+ thumb_func_start sub_495A0
+sub_495A0: @ 0x080495A0
+ push {r4, r5, r6, r7, lr}
+ mov r7, sl
+ mov r6, sb
+ mov r5, r8
+ push {r5, r6, r7}
+ ldr r4, _080495DC @ =0xFFFFFDFC
+ add sp, r4
+ ldr r2, _080495E0 @ =0x020314E0
+ ldr r0, [r2]
+ ldr r1, _080495E4 @ =0x00001104
+ adds r0, r0, r1
+ movs r3, #0
+ movs r1, #1
+ strb r1, [r0]
+ ldr r1, [r2]
+ ldr r2, _080495E8 @ =0x0000131C
+ adds r0, r1, r2
+ str r3, [r0]
+ ldr r2, _080495EC @ =0x02032EE0
+ ldr r0, [r2, #4]
+ cmp r0, #0
+ blt _080495F4
+ ldr r5, _080495F0 @ =0x00000F4C
+ adds r1, r1, r5
+ ldr r0, [r2]
+ str r0, [r1]
+ adds r0, r2, #0
+ bl sub_545F0
+ b _080495FA
+ .align 2, 0
+_080495DC: .4byte 0xFFFFFDFC
+_080495E0: .4byte 0x020314E0
+_080495E4: .4byte 0x00001104
+_080495E8: .4byte 0x0000131C
+_080495EC: .4byte 0x02032EE0
+_080495F0: .4byte 0x00000F4C
+_080495F4:
+ ldr r2, _08049628 @ =0x00000F4C
+ adds r0, r1, r2
+ str r3, [r0]
+_080495FA:
+ bl sub_53EDC
+ movs r0, #0xa5
+ bl sub_53DA8
+ ldr r2, _0804962C @ =0x0200B0C0
+ ldrb r0, [r2, #4]
+ cmp r0, #1
+ bhi _0804963C
+ ldr r0, _08049630 @ =0x020314E0
+ ldr r0, [r0]
+ adds r1, r0, #0
+ adds r1, #0x68
+ ldrh r1, [r1]
+ adds r0, #0x6a
+ strh r1, [r0]
+ ldrb r0, [r2, #4]
+ cmp r0, #0
+ bne _08049634
+ bl sub_4E814
+ b _0804963C
+ .align 2, 0
+_08049628: .4byte 0x00000F4C
+_0804962C: .4byte 0x0200B0C0
+_08049630: .4byte 0x020314E0
+_08049634:
+ cmp r0, #1
+ bne _0804963C
+ bl sub_4F814
+_0804963C:
+ ldr r4, _08049708 @ =0x020314E0
+ ldr r2, [r4]
+ ldr r3, _0804970C @ =0x0200B0C0
+ ldrh r1, [r3, #0x38]
+ ldr r5, _08049710 @ =0x00001106
+ adds r0, r2, r5
+ ldrh r5, [r0]
+ strh r1, [r0]
+ ldrh r1, [r3, #0x3a]
+ ldr r5, _08049714 @ =0x00001108
+ adds r0, r2, r5
+ ldrh r5, [r0]
+ strh r1, [r0]
+ ldrh r1, [r3, #0x3c]
+ ldr r5, _08049718 @ =0x0000110A
+ adds r0, r2, r5
+ ldrh r5, [r0]
+ strh r1, [r0]
+ ldrh r1, [r3, #0x2c]
+ ldr r5, _0804971C @ =0x0000110C
+ adds r0, r2, r5
+ strh r1, [r0]
+ ldrh r1, [r3, #0x26]
+ adds r5, #2
+ adds r0, r2, r5
+ strh r1, [r0]
+ ldr r1, _08049720 @ =0x040000D4
+ ldr r0, _08049724 @ =0x05000200
+ str r0, [r1]
+ ldr r0, _08049728 @ =0x0000111A
+ adds r2, r2, r0
+ str r2, [r1, #4]
+ ldr r0, _0804972C @ =0x80000100
+ str r0, [r1, #8]
+ ldr r0, [r1, #8]
+ movs r1, #0
+ add r6, sp, #0x200
+ movs r2, #0x9c
+ lsls r2, r2, #1
+ add r2, sp
+ mov sl, r2
+_0804968E:
+ movs r5, #0
+ lsls r1, r1, #0x10
+ mov sb, r1
+ mov r0, sb
+ asrs r0, r0, #0x10
+ mov r8, r0
+_0804969A:
+ lsls r7, r5, #0x10
+ mov r1, r8
+ cmp r1, #9
+ bne _080496A8
+ asrs r0, r7, #0x10
+ cmp r0, #0xc
+ beq _08049730
+_080496A8:
+ ldr r2, _08049708 @ =0x020314E0
+ ldr r4, [r2]
+ asrs r5, r7, #0xf
+ mov r1, r8
+ lsls r0, r1, #5
+ adds r5, r5, r0
+ ldr r2, _08049728 @ =0x0000111A
+ adds r4, r4, r2
+ adds r4, r4, r5
+ ldrh r1, [r4]
+ movs r0, #0x1f
+ ands r0, r1
+ lsls r0, r0, #1
+ movs r1, #5
+ bl sub_556D0
+ strb r0, [r6]
+ ldrh r0, [r4]
+ movs r2, #0xf8
+ lsls r2, r2, #2
+ adds r1, r2, #0
+ ands r0, r1
+ lsrs r0, r0, #4
+ movs r1, #5
+ bl sub_556D0
+ strb r0, [r6, #1]
+ ldrh r0, [r4]
+ movs r2, #0xf8
+ lsls r2, r2, #7
+ adds r1, r2, #0
+ ands r0, r1
+ lsrs r0, r0, #9
+ movs r1, #5
+ bl sub_556D0
+ strb r0, [r6, #2]
+ mov r0, sp
+ adds r2, r0, r5
+ ldrb r1, [r6]
+ ldrb r0, [r6, #1]
+ lsls r0, r0, #5
+ orrs r1, r0
+ ldrb r0, [r6, #2]
+ lsls r0, r0, #0xa
+ orrs r1, r0
+ strh r1, [r2]
+ b _08049736
+ .align 2, 0
+_08049708: .4byte 0x020314E0
+_0804970C: .4byte 0x0200B0C0
+_08049710: .4byte 0x00001106
+_08049714: .4byte 0x00001108
+_08049718: .4byte 0x0000110A
+_0804971C: .4byte 0x0000110C
+_08049720: .4byte 0x040000D4
+_08049724: .4byte 0x05000200
+_08049728: .4byte 0x0000111A
+_0804972C: .4byte 0x80000100
+_08049730:
+ ldr r0, _08049770 @ =0x00007FFF
+ mov r1, sl
+ strh r0, [r1]
+_08049736:
+ movs r2, #0x80
+ lsls r2, r2, #9
+ adds r0, r7, r2
+ lsrs r5, r0, #0x10
+ asrs r0, r0, #0x10
+ cmp r0, #0xf
+ ble _0804969A
+ adds r0, r2, #0
+ add r0, sb
+ lsrs r1, r0, #0x10
+ asrs r0, r0, #0x10
+ cmp r0, #0xf
+ ble _0804968E
+ ldr r1, _08049774 @ =0x040000D4
+ mov r5, sp
+ str r5, [r1]
+ ldr r0, _08049778 @ =0x05000200
+ str r0, [r1, #4]
+ ldr r0, _0804977C @ =0x80000100
+ str r0, [r1, #8]
+ ldr r0, [r1, #8]
+ ldr r0, _08049780 @ =0x0200B0C0
+ ldrb r3, [r0, #4]
+ cmp r3, #1
+ bhi _08049784
+ bl sub_1D4D0
+ b _080497A0
+ .align 2, 0
+_08049770: .4byte 0x00007FFF
+_08049774: .4byte 0x040000D4
+_08049778: .4byte 0x05000200
+_0804977C: .4byte 0x80000100
+_08049780: .4byte 0x0200B0C0
+_08049784:
+ cmp r3, #2
+ bne _0804978E
+ bl sub_356A0
+ b _080497A0
+_0804978E:
+ cmp r3, #4
+ bne _08049798
+ bl sub_3ADA0
+ b _080497A0
+_08049798:
+ cmp r3, #5
+ bne _080497A0
+ bl sub_3E5D0
+_080497A0:
+ movs r0, #1
+ bl sub_11F0
+ movs r3, #0x81
+ lsls r3, r3, #2
+ add sp, r3
+ pop {r3, r4, r5}
+ mov r8, r3
+ mov sb, r4
+ mov sl, r5
+ pop {r4, r5, r6, r7}
+ pop {r0}
+ bx r0
+
+ thumb_func_start sub_497BC
+sub_497BC: @ 0x080497BC
+ push {lr}
+ ldr r1, _08049824 @ =0x0200B0C0
+ ldr r0, _08049828 @ =0x020314E0
+ ldr r2, [r0]
+ ldr r3, _0804982C @ =0x00001106
+ adds r0, r2, r3
+ ldrh r0, [r0]
+ ldrh r3, [r1, #0x38]
+ strh r0, [r1, #0x38]
+ ldr r3, _08049830 @ =0x00001108
+ adds r0, r2, r3
+ ldrh r0, [r0]
+ ldrh r3, [r1, #0x3a]
+ strh r0, [r1, #0x3a]
+ ldr r3, _08049834 @ =0x0000110A
+ adds r0, r2, r3
+ ldrh r0, [r0]
+ ldrh r3, [r1, #0x3c]
+ strh r0, [r1, #0x3c]
+ ldr r3, _08049838 @ =0x0000110C
+ adds r0, r2, r3
+ ldrh r0, [r0]
+ strh r0, [r1, #0x2c]
+ adds r3, #2
+ adds r0, r2, r3
+ ldrh r0, [r0]
+ strh r0, [r1, #0x26]
+ ldr r1, _0804983C @ =0x040000D4
+ adds r3, #0xc
+ adds r0, r2, r3
+ str r0, [r1]
+ ldr r0, _08049840 @ =0x05000200
+ str r0, [r1, #4]
+ ldr r0, _08049844 @ =0x80000100
+ str r0, [r1, #8]
+ ldr r0, [r1, #8]
+ ldr r0, _08049848 @ =0x00000F4C
+ adds r2, r2, r0
+ ldr r0, [r2]
+ cmp r0, #0
+ beq _08049814
+ ldr r0, _0804984C @ =0x02032EE0
+ bl sub_53F20
+_08049814:
+ movs r0, #0xa6
+ bl sub_53DA8
+ movs r0, #0
+ bl sub_11F0
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08049824: .4byte 0x0200B0C0
+_08049828: .4byte 0x020314E0
+_0804982C: .4byte 0x00001106
+_08049830: .4byte 0x00001108
+_08049834: .4byte 0x0000110A
+_08049838: .4byte 0x0000110C
+_0804983C: .4byte 0x040000D4
+_08049840: .4byte 0x05000200
+_08049844: .4byte 0x80000100
+_08049848: .4byte 0x00000F4C
+_0804984C: .4byte 0x02032EE0
+
+ thumb_func_start sub_49850
+sub_49850: @ 0x08049850
+ push {r4, r5, r6, r7, lr}
+ mov r7, sl
+ mov r6, sb
+ mov r5, r8
+ push {r5, r6, r7}
+ ldr r0, _08049A20 @ =0x0200B3B8
+ mov ip, r0
+ mov r5, ip
+ adds r5, #8
+ ldr r4, _08049A24 @ =0x03005000
+ mov r3, ip
+ ldrh r1, [r3, #8]
+ lsls r1, r1, #3
+ adds r1, r1, r4
+ movs r0, #2
+ ldrsh r2, [r5, r0]
+ ldr r3, _08049A28 @ =0x000001FF
+ adds r0, r3, #0
+ ands r2, r0
+ ldrh r3, [r1, #2]
+ ldr r6, _08049A2C @ =0xFFFFFE00
+ adds r0, r6, #0
+ ands r0, r3
+ orrs r0, r2
+ strh r0, [r1, #2]
+ mov r1, ip
+ ldrh r0, [r1, #8]
+ lsls r0, r0, #3
+ adds r0, r0, r4
+ ldrh r1, [r5, #4]
+ strb r1, [r0]
+ mov r3, ip
+ ldrh r1, [r3, #8]
+ lsls r1, r1, #3
+ adds r1, r1, r4
+ ldrb r2, [r1, #1]
+ movs r5, #4
+ rsbs r5, r5, #0
+ adds r0, r5, #0
+ ands r0, r2
+ strb r0, [r1, #1]
+ ldrh r1, [r3, #8]
+ lsls r1, r1, #3
+ adds r1, r1, r4
+ ldrb r2, [r1, #3]
+ movs r3, #0xf
+ rsbs r3, r3, #0
+ adds r0, r3, #0
+ ands r0, r2
+ strb r0, [r1, #3]
+ movs r0, #1
+ movs r1, #0xb8
+ add r1, ip
+ mov sl, r1
+ adds r7, r4, #0
+ mov sb, r6
+ mov r8, r5
+ adds r6, r3, #0
+_080498C4:
+ lsls r4, r0, #0x10
+ asrs r4, r4, #0x10
+ lsls r0, r4, #3
+ adds r0, #8
+ mov r3, ip
+ adds r5, r3, r0
+ ldrh r1, [r5]
+ lsls r1, r1, #3
+ adds r1, r1, r7
+ movs r0, #2
+ ldrsh r2, [r5, r0]
+ ldr r3, _08049A28 @ =0x000001FF
+ adds r0, r3, #0
+ ands r2, r0
+ ldrh r3, [r1, #2]
+ mov r0, sb
+ ands r0, r3
+ orrs r0, r2
+ strh r0, [r1, #2]
+ ldrh r0, [r5]
+ lsls r0, r0, #3
+ adds r0, r0, r7
+ ldrh r1, [r5, #4]
+ strb r1, [r0]
+ ldrh r1, [r5]
+ lsls r1, r1, #3
+ adds r1, r1, r7
+ ldrb r2, [r1, #1]
+ mov r0, r8
+ ands r0, r2
+ strb r0, [r1, #1]
+ ldrh r1, [r5]
+ lsls r1, r1, #3
+ adds r1, r1, r7
+ ldrb r2, [r1, #3]
+ adds r0, r6, #0
+ ands r0, r2
+ strb r0, [r1, #3]
+ adds r4, #1
+ lsls r4, r4, #0x10
+ lsrs r0, r4, #0x10
+ asrs r4, r4, #0x10
+ cmp r4, #4
+ ble _080498C4
+ movs r0, #5
+ ldr r6, _08049A24 @ =0x03005000
+ ldr r1, _08049A2C @ =0xFFFFFE00
+ mov sb, r1
+ movs r3, #4
+ rsbs r3, r3, #0
+ mov r8, r3
+ movs r7, #0xf
+ rsbs r7, r7, #0
+_0804992E:
+ lsls r4, r0, #0x10
+ asrs r4, r4, #0x10
+ lsls r0, r4, #3
+ adds r0, #8
+ mov r1, ip
+ adds r5, r1, r0
+ ldrh r1, [r5]
+ lsls r1, r1, #3
+ adds r1, r1, r6
+ movs r3, #2
+ ldrsh r2, [r5, r3]
+ ldr r3, _08049A28 @ =0x000001FF
+ adds r0, r3, #0
+ ands r2, r0
+ ldrh r3, [r1, #2]
+ mov r0, sb
+ ands r0, r3
+ orrs r0, r2
+ strh r0, [r1, #2]
+ ldrh r0, [r5]
+ lsls r0, r0, #3
+ adds r0, r0, r6
+ ldrh r1, [r5, #4]
+ strb r1, [r0]
+ ldrh r1, [r5]
+ lsls r1, r1, #3
+ adds r1, r1, r6
+ ldrb r2, [r1, #1]
+ mov r0, r8
+ ands r0, r2
+ strb r0, [r1, #1]
+ ldrh r1, [r5]
+ lsls r1, r1, #3
+ adds r1, r1, r6
+ ldrb r2, [r1, #3]
+ adds r0, r7, #0
+ ands r0, r2
+ strb r0, [r1, #3]
+ adds r4, #1
+ lsls r4, r4, #0x10
+ lsrs r0, r4, #0x10
+ asrs r4, r4, #0x10
+ cmp r4, #0xa
+ ble _0804992E
+ mov ip, sl
+ movs r0, #0
+ ldr r6, _08049A24 @ =0x03005000
+ ldr r7, _08049A2C @ =0xFFFFFE00
+_0804998E:
+ lsls r4, r0, #0x10
+ asrs r4, r4, #0x10
+ lsls r0, r4, #3
+ adds r0, #8
+ mov r1, ip
+ adds r5, r1, r0
+ ldrh r1, [r5]
+ lsls r1, r1, #3
+ adds r1, r1, r6
+ movs r3, #2
+ ldrsh r2, [r5, r3]
+ ldr r3, _08049A28 @ =0x000001FF
+ adds r0, r3, #0
+ ands r2, r0
+ ldrh r3, [r1, #2]
+ adds r0, r7, #0
+ ands r0, r3
+ orrs r0, r2
+ strh r0, [r1, #2]
+ ldrh r0, [r5]
+ lsls r0, r0, #3
+ adds r0, r0, r6
+ ldrh r1, [r5, #4]
+ strb r1, [r0]
+ adds r4, #1
+ lsls r4, r4, #0x10
+ lsrs r0, r4, #0x10
+ asrs r4, r4, #0x10
+ cmp r4, #1
+ ble _0804998E
+ ldr r0, _08049A30 @ =0x0200B528
+ mov ip, r0
+ movs r0, #0
+ ldr r6, _08049A24 @ =0x03005000
+ ldr r7, _08049A2C @ =0xFFFFFE00
+_080499D4:
+ lsls r4, r0, #0x10
+ asrs r4, r4, #0x10
+ lsls r0, r4, #3
+ adds r0, #8
+ mov r1, ip
+ adds r5, r1, r0
+ ldrh r1, [r5]
+ lsls r1, r1, #3
+ adds r1, r1, r6
+ movs r3, #2
+ ldrsh r2, [r5, r3]
+ ldr r3, _08049A28 @ =0x000001FF
+ adds r0, r3, #0
+ ands r2, r0
+ ldrh r3, [r1, #2]
+ adds r0, r7, #0
+ ands r0, r3
+ orrs r0, r2
+ strh r0, [r1, #2]
+ ldrh r0, [r5]
+ lsls r0, r0, #3
+ adds r0, r0, r6
+ ldrh r1, [r5, #4]
+ strb r1, [r0]
+ adds r4, #1
+ lsls r4, r4, #0x10
+ lsrs r0, r4, #0x10
+ asrs r4, r4, #0x10
+ cmp r4, #2
+ ble _080499D4
+ pop {r3, r4, r5}
+ mov r8, r3
+ mov sb, r4
+ mov sl, r5
+ pop {r4, r5, r6, r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08049A20: .4byte 0x0200B3B8
+_08049A24: .4byte 0x03005000
+_08049A28: .4byte 0x000001FF
+_08049A2C: .4byte 0xFFFFFE00
+_08049A30: .4byte 0x0200B528
+
+ thumb_func_start sub_49A34
+sub_49A34: @ 0x08049A34
+ push {r4, r5, r6, r7, lr}
+ mov r7, sl
+ mov r6, sb
+ mov r5, r8
+ push {r5, r6, r7}
+ sub sp, #0x14
+ movs r0, #8
+ mov r8, r0
+ ldr r1, _08049A94 @ =0x020314E0
+ ldr r0, [r1]
+ ldr r3, _08049A98 @ =0x0000131C
+ adds r0, r0, r3
+ ldr r2, [r0]
+ mov ip, r1
+ cmp r2, #0
+ bne _08049A68
+ ldr r1, _08049A9C @ =0x0200B0C0
+ ldrh r0, [r1, #0x38]
+ movs r0, #0xcf
+ strh r0, [r1, #0x38]
+ ldrh r0, [r1, #0x3c]
+ movs r0, #0xa
+ strh r0, [r1, #0x3c]
+ strh r2, [r1, #0x2c]
+ movs r0, #0x90
+ strh r0, [r1, #0x26]
+_08049A68:
+ mov r1, ip
+ ldr r0, [r1]
+ adds r0, r0, r3
+ ldr r2, [r0]
+ cmp r2, #0xf
+ bhi _08049AA4
+ lsls r1, r2, #2
+ adds r1, r1, r2
+ lsls r1, r1, #1
+ movs r0, #0xa0
+ subs r0, r0, r1
+ lsls r0, r0, #0x10
+ lsrs r0, r0, #0x10
+ str r0, [sp]
+ movs r2, #0x18
+ str r2, [sp, #4]
+ ldr r3, _08049AA0 @ =0x0000FFFF
+ mov sb, r3
+ mov r0, sb
+ movs r5, #0x10
+ mov r8, r5
+ b _08049B48
+ .align 2, 0
+_08049A94: .4byte 0x020314E0
+_08049A98: .4byte 0x0000131C
+_08049A9C: .4byte 0x0200B0C0
+_08049AA0: .4byte 0x0000FFFF
+_08049AA4:
+ cmp r2, #0x17
+ bhi _08049B34
+ movs r0, #0
+ str r0, [sp]
+ adds r0, r2, #0
+ subs r0, #0xf
+ lsls r1, r0, #1
+ adds r1, r1, r0
+ movs r0, #0x18
+ subs r0, r0, r1
+ lsls r0, r0, #0x10
+ lsrs r0, r0, #0x10
+ str r0, [sp, #4]
+ cmp r2, #0x11
+ bhi _08049AD0
+ ldr r1, _08049ACC @ =0x0000FFFF
+ mov sb, r1
+ mov r0, sb
+ b _08049B48
+ .align 2, 0
+_08049ACC: .4byte 0x0000FFFF
+_08049AD0:
+ cmp r2, #0x12
+ bne _08049AE4
+ movs r0, #9
+ ldr r2, _08049AE0 @ =0x0000FFF6
+ mov sb, r2
+ movs r3, #0x10
+ mov r8, r3
+ b _08049B48
+ .align 2, 0
+_08049AE0: .4byte 0x0000FFF6
+_08049AE4:
+ cmp r2, #0x13
+ bne _08049AF8
+ movs r0, #9
+ ldr r5, _08049AF4 @ =0x0000FFF7
+ mov sb, r5
+ movs r1, #0x80
+ b _08049B46
+ .align 2, 0
+_08049AF4: .4byte 0x0000FFF7
+_08049AF8:
+ cmp r2, #0x14
+ bne _08049B0C
+ movs r0, #7
+ ldr r2, _08049B08 @ =0x0000FFF8
+ mov sb, r2
+ movs r3, #0xa0
+ mov r8, r3
+ b _08049B48
+ .align 2, 0
+_08049B08: .4byte 0x0000FFF8
+_08049B0C:
+ cmp r2, #0x15
+ bne _08049B20
+ movs r0, #6
+ ldr r5, _08049B1C @ =0x0000FFF9
+ mov sb, r5
+ movs r1, #0xc0
+ b _08049B46
+ .align 2, 0
+_08049B1C: .4byte 0x0000FFF9
+_08049B20:
+ cmp r2, #0x16
+ bne _08049B3C
+ movs r0, #4
+ ldr r2, _08049B30 @ =0x0000FFFB
+ mov sb, r2
+ movs r3, #0xe0
+ mov r8, r3
+ b _08049B48
+ .align 2, 0
+_08049B30: .4byte 0x0000FFFB
+_08049B34:
+ movs r2, #0
+ str r2, [sp]
+ movs r3, #0
+ str r3, [sp, #4]
+_08049B3C:
+ movs r0, #4
+ ldr r5, _08049C18 @ =0x0000FFFC
+ mov sb, r5
+ movs r1, #0x80
+ lsls r1, r1, #1
+_08049B46:
+ mov r8, r1
+_08049B48:
+ ldr r6, _08049C1C @ =0x0200B3B8
+ lsls r0, r0, #0x10
+ asrs r1, r0, #0x10
+ str r0, [sp, #0xc]
+ mov r2, r8
+ lsls r2, r2, #0x10
+ str r2, [sp, #0x10]
+ ldr r3, [sp]
+ lsls r3, r3, #0x10
+ mov sl, r3
+ ldr r5, [sp, #4]
+ lsls r5, r5, #0x10
+ str r5, [sp, #8]
+ cmp r1, #0
+ bge _08049B68
+ b _08049D92
+_08049B68:
+ movs r0, #0x64
+ strh r0, [r6, #2]
+ adds r0, r1, #0
+ adds r0, #0x50
+ strh r0, [r6, #4]
+ adds r7, r6, #0
+ adds r7, #8
+ ldr r4, _08049C20 @ =0x03005000
+ ldrh r2, [r6, #8]
+ lsls r2, r2, #3
+ adds r2, r2, r4
+ movs r0, #2
+ ldrsh r1, [r7, r0]
+ adds r1, #0x64
+ ldr r3, _08049C24 @ =0x08137D78
+ mov sl, r3
+ movs r5, #0
+ ldrsh r0, [r3, r5]
+ adds r1, r1, r0
+ ldr r3, _08049C28 @ =0x000001FF
+ adds r0, r3, #0
+ ands r1, r0
+ ldrh r3, [r2, #2]
+ ldr r0, _08049C2C @ =0xFFFFFE00
+ ands r0, r3
+ orrs r0, r1
+ strh r0, [r2, #2]
+ ldrh r3, [r6, #8]
+ lsls r3, r3, #3
+ adds r3, r3, r4
+ ldrb r0, [r6, #4]
+ ldrb r7, [r7, #4]
+ adds r0, r0, r7
+ mov r5, sl
+ ldrb r2, [r5, #2]
+ adds r2, r2, r0
+ mov r1, ip
+ ldr r0, [r1]
+ ldr r5, _08049C30 @ =0x00001104
+ adds r0, r0, r5
+ movs r1, #0
+ ldrsb r1, [r0, r1]
+ lsls r0, r1, #1
+ adds r0, r0, r1
+ lsls r0, r0, #2
+ adds r2, r2, r0
+ strb r2, [r3]
+ ldrh r1, [r6, #8]
+ lsls r1, r1, #3
+ adds r1, r1, r4
+ ldrb r0, [r1, #1]
+ movs r2, #3
+ orrs r0, r2
+ strb r0, [r1, #1]
+ ldrh r2, [r6, #8]
+ lsls r2, r2, #3
+ adds r2, r2, r4
+ ldrb r1, [r2, #3]
+ movs r0, #0xf
+ rsbs r0, r0, #0
+ ands r0, r1
+ movs r1, #0xa
+ orrs r0, r1
+ strb r0, [r2, #3]
+ ldr r5, _08049C34 @ =0x08137DA4
+ ldr r0, _08049C38 @ =0xFFFFFD08
+ adds r4, r6, r0
+ ldr r0, [r4, #0x4c]
+ movs r1, #0x41
+ bl sub_558B0
+ movs r1, #5
+ bl sub_55838
+ lsls r0, r0, #1
+ adds r0, r0, r5
+ ldrh r1, [r0]
+ ldrb r0, [r4, #4]
+ cmp r0, #1
+ bhi _08049C48
+ ldr r2, _08049C3C @ =0x040000D4
+ lsls r0, r1, #0x10
+ asrs r0, r0, #0xb
+ ldr r1, _08049C40 @ =0x08510CAC
+ adds r0, r0, r1
+ str r0, [r2]
+ ldr r0, _08049C44 @ =0x060118C0
+ b _08049C56
+ .align 2, 0
+_08049C18: .4byte 0x0000FFFC
+_08049C1C: .4byte 0x0200B3B8
+_08049C20: .4byte 0x03005000
+_08049C24: .4byte 0x08137D78
+_08049C28: .4byte 0x000001FF
+_08049C2C: .4byte 0xFFFFFE00
+_08049C30: .4byte 0x00001104
+_08049C34: .4byte 0x08137DA4
+_08049C38: .4byte 0xFFFFFD08
+_08049C3C: .4byte 0x040000D4
+_08049C40: .4byte 0x08510CAC
+_08049C44: .4byte 0x060118C0
+_08049C48:
+ ldr r2, _08049E84 @ =0x040000D4
+ lsls r0, r1, #0x10
+ asrs r0, r0, #0xb
+ ldr r1, _08049E88 @ =0x08510CAC
+ adds r0, r0, r1
+ str r0, [r2]
+ ldr r0, _08049E8C @ =0x06010480
+_08049C56:
+ str r0, [r2, #4]
+ ldr r0, _08049E90 @ =0x80000010
+ str r0, [r2, #8]
+ ldr r0, [r2, #8]
+ movs r0, #0x64
+ strh r0, [r6, #2]
+ ldr r1, [sp, #0xc]
+ asrs r0, r1, #0x10
+ adds r0, #0x50
+ strh r0, [r6, #4]
+ movs r0, #1
+ mov r2, sb
+ lsls r2, r2, #0x10
+ mov sb, r2
+ mov r3, r8
+ lsls r3, r3, #0x10
+ str r3, [sp, #0x10]
+ ldr r5, [sp]
+ lsls r5, r5, #0x10
+ mov sl, r5
+ ldr r1, [sp, #4]
+ lsls r1, r1, #0x10
+ str r1, [sp, #8]
+ ldr r2, _08049E94 @ =0x03005000
+ mov ip, r2
+ movs r3, #0xf
+ rsbs r3, r3, #0
+ mov r8, r3
+_08049C8E:
+ lsls r4, r0, #0x10
+ asrs r4, r4, #0x10
+ lsls r0, r4, #3
+ adds r0, #8
+ adds r7, r6, r0
+ ldrh r3, [r7]
+ lsls r3, r3, #3
+ add r3, ip
+ movs r5, #2
+ ldrsh r1, [r7, r5]
+ movs r2, #2
+ ldrsh r0, [r6, r2]
+ adds r1, r1, r0
+ lsls r5, r4, #2
+ ldr r0, _08049E98 @ =0x08137D78
+ adds r5, r5, r0
+ movs r2, #0
+ ldrsh r0, [r5, r2]
+ adds r1, r1, r0
+ ldr r2, _08049E9C @ =0x000001FF
+ adds r0, r2, #0
+ ands r1, r0
+ ldrh r2, [r3, #2]
+ ldr r0, _08049EA0 @ =0xFFFFFE00
+ ands r0, r2
+ orrs r0, r1
+ strh r0, [r3, #2]
+ ldrh r2, [r7]
+ lsls r2, r2, #3
+ add r2, ip
+ ldrb r1, [r6, #4]
+ ldrb r3, [r7, #4]
+ adds r1, r1, r3
+ ldrb r0, [r5, #2]
+ adds r0, r0, r1
+ strb r0, [r2]
+ ldrh r2, [r7]
+ lsls r2, r2, #3
+ add r2, ip
+ ldrb r0, [r2, #1]
+ movs r1, #3
+ orrs r0, r1
+ strb r0, [r2, #1]
+ ldrh r2, [r7]
+ lsls r2, r2, #3
+ add r2, ip
+ ldrb r1, [r2, #3]
+ mov r0, r8
+ ands r0, r1
+ movs r1, #0xa
+ orrs r0, r1
+ strb r0, [r2, #3]
+ adds r4, #1
+ lsls r4, r4, #0x10
+ lsrs r0, r4, #0x10
+ asrs r4, r4, #0x10
+ cmp r4, #4
+ ble _08049C8E
+ movs r0, #0x64
+ strh r0, [r6, #2]
+ mov r5, sb
+ asrs r0, r5, #0x10
+ adds r0, #0x58
+ strh r0, [r6, #4]
+ movs r0, #5
+ ldr r1, _08049E94 @ =0x03005000
+ mov ip, r1
+ ldr r2, _08049EA0 @ =0xFFFFFE00
+ mov sb, r2
+ movs r3, #0xf
+ rsbs r3, r3, #0
+ mov r8, r3
+_08049D1E:
+ lsls r4, r0, #0x10
+ asrs r4, r4, #0x10
+ lsls r0, r4, #3
+ adds r0, #8
+ adds r7, r6, r0
+ ldrh r3, [r7]
+ lsls r3, r3, #3
+ add r3, ip
+ movs r5, #2
+ ldrsh r1, [r7, r5]
+ movs r2, #2
+ ldrsh r0, [r6, r2]
+ adds r1, r1, r0
+ lsls r5, r4, #2
+ ldr r0, _08049E98 @ =0x08137D78
+ adds r5, r5, r0
+ movs r2, #0
+ ldrsh r0, [r5, r2]
+ adds r1, r1, r0
+ ldr r2, _08049E9C @ =0x000001FF
+ adds r0, r2, #0
+ ands r1, r0
+ ldrh r2, [r3, #2]
+ mov r0, sb
+ ands r0, r2
+ orrs r0, r1
+ strh r0, [r3, #2]
+ ldrh r2, [r7]
+ lsls r2, r2, #3
+ add r2, ip
+ ldrb r1, [r6, #4]
+ ldrb r3, [r7, #4]
+ adds r1, r1, r3
+ ldrb r0, [r5, #2]
+ adds r0, r0, r1
+ strb r0, [r2]
+ ldrh r2, [r7]
+ lsls r2, r2, #3
+ add r2, ip
+ ldrb r0, [r2, #1]
+ movs r1, #3
+ orrs r0, r1
+ strb r0, [r2, #1]
+ ldrh r2, [r7]
+ lsls r2, r2, #3
+ add r2, ip
+ ldrb r1, [r2, #3]
+ mov r0, r8
+ ands r0, r1
+ movs r1, #0xa
+ orrs r0, r1
+ strb r0, [r2, #3]
+ adds r4, #1
+ lsls r4, r4, #0x10
+ lsrs r0, r4, #0x10
+ asrs r4, r4, #0x10
+ cmp r4, #0xa
+ ble _08049D1E
+_08049D92:
+ movs r0, #0x80
+ lsls r0, r0, #1
+ ldr r5, [sp, #0x10]
+ asrs r1, r5, #0x10
+ movs r2, #5
+ bl sub_7C0
+ ldr r6, _08049EA4 @ =0x0200B470
+ movs r0, #0x64
+ mov r2, sl
+ asrs r1, r2, #0x10
+ subs r0, r0, r1
+ strh r0, [r6, #2]
+ ldr r3, [sp, #8]
+ asrs r0, r3, #0x10
+ adds r0, #0x50
+ strh r0, [r6, #4]
+ movs r0, #0
+ ldr r5, _08049E94 @ =0x03005000
+ ldr r1, _08049EA0 @ =0xFFFFFE00
+ mov r8, r1
+_08049DBC:
+ lsls r4, r0, #0x10
+ asrs r4, r4, #0x10
+ lsls r0, r4, #3
+ adds r0, #8
+ adds r7, r6, r0
+ ldrh r3, [r7]
+ lsls r3, r3, #3
+ adds r3, r3, r5
+ movs r2, #2
+ ldrsh r1, [r7, r2]
+ movs r2, #2
+ ldrsh r0, [r6, r2]
+ adds r1, r1, r0
+ ldr r2, _08049E9C @ =0x000001FF
+ adds r0, r2, #0
+ ands r1, r0
+ ldrh r2, [r3, #2]
+ mov r0, r8
+ ands r0, r2
+ orrs r0, r1
+ strh r0, [r3, #2]
+ ldrh r1, [r7]
+ lsls r1, r1, #3
+ adds r1, r1, r5
+ ldrb r0, [r6, #4]
+ ldrb r7, [r7, #4]
+ adds r0, r0, r7
+ strb r0, [r1]
+ adds r4, #1
+ lsls r4, r4, #0x10
+ lsrs r0, r4, #0x10
+ asrs r4, r4, #0x10
+ cmp r4, #1
+ ble _08049DBC
+ ldr r6, _08049EA8 @ =0x0200B528
+ mov r3, sl
+ asrs r0, r3, #0x10
+ adds r0, #0x44
+ strh r0, [r6, #2]
+ movs r0, #0x6c
+ ldr r5, [sp, #8]
+ asrs r1, r5, #0x10
+ subs r0, r0, r1
+ strh r0, [r6, #4]
+ movs r0, #0
+ ldr r1, _08049EAC @ =0x020314E0
+ mov ip, r1
+ ldr r5, _08049E94 @ =0x03005000
+ ldr r2, _08049EA0 @ =0xFFFFFE00
+ mov r8, r2
+_08049E20:
+ lsls r4, r0, #0x10
+ asrs r4, r4, #0x10
+ lsls r0, r4, #3
+ adds r0, #8
+ adds r7, r6, r0
+ ldrh r3, [r7]
+ lsls r3, r3, #3
+ adds r3, r3, r5
+ movs r0, #2
+ ldrsh r1, [r7, r0]
+ movs r2, #2
+ ldrsh r0, [r6, r2]
+ adds r1, r1, r0
+ ldr r2, _08049E9C @ =0x000001FF
+ adds r0, r2, #0
+ ands r1, r0
+ ldrh r2, [r3, #2]
+ mov r0, r8
+ ands r0, r2
+ orrs r0, r1
+ strh r0, [r3, #2]
+ ldrh r1, [r7]
+ lsls r1, r1, #3
+ adds r1, r1, r5
+ ldrb r0, [r6, #4]
+ ldrb r7, [r7, #4]
+ adds r0, r0, r7
+ strb r0, [r1]
+ adds r4, #1
+ lsls r4, r4, #0x10
+ lsrs r0, r4, #0x10
+ asrs r4, r4, #0x10
+ cmp r4, #2
+ ble _08049E20
+ mov r3, ip
+ ldr r1, [r3]
+ ldr r5, _08049EB0 @ =0x0000131C
+ adds r1, r1, r5
+ ldr r0, [r1]
+ adds r0, #1
+ str r0, [r1]
+ add sp, #0x14
+ pop {r3, r4, r5}
+ mov r8, r3
+ mov sb, r4
+ mov sl, r5
+ pop {r4, r5, r6, r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08049E84: .4byte 0x040000D4
+_08049E88: .4byte 0x08510CAC
+_08049E8C: .4byte 0x06010480
+_08049E90: .4byte 0x80000010
+_08049E94: .4byte 0x03005000
+_08049E98: .4byte 0x08137D78
+_08049E9C: .4byte 0x000001FF
+_08049EA0: .4byte 0xFFFFFE00
+_08049EA4: .4byte 0x0200B470
+_08049EA8: .4byte 0x0200B528
+_08049EAC: .4byte 0x020314E0
+_08049EB0: .4byte 0x0000131C
+
+ thumb_func_start sub_49EB4
+sub_49EB4: @ 0x08049EB4
+ push {lr}
+ ldr r1, _08049ECC @ =0x08137E04
+ ldr r0, _08049ED0 @ =0x0200B0C0
+ ldrb r0, [r0, #3]
+ lsls r0, r0, #2
+ adds r0, r0, r1
+ ldr r0, [r0]
+ bl sub_55694
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08049ECC: .4byte 0x08137E04
+_08049ED0: .4byte 0x0200B0C0
+
+ thumb_func_start sub_49ED4
+sub_49ED4: @ 0x08049ED4
+ push {r4, r5, r6, r7, lr}
+ ldr r0, _08049F18 @ =0x0200B0C0
+ ldr r1, [r0, #0x4c]
+ movs r0, #0xf
+ movs r5, #0
+ ands r1, r0
+ cmp r5, r1
+ bge _08049EFA
+ adds r4, r1, #0
+_08049EE6:
+ bl sub_C00
+ lsls r0, r5, #0x10
+ movs r1, #0x80
+ lsls r1, r1, #9
+ adds r0, r0, r1
+ lsrs r5, r0, #0x10
+ asrs r0, r0, #0x10
+ cmp r0, r4
+ blt _08049EE6
+_08049EFA:
+ bl sub_10C0
+ ldr r1, _08049F1C @ =0x020314E0
+ ldr r0, _08049F20 @ =0x02000000
+ str r0, [r1]
+ bl sub_438
+ ldr r1, _08049F18 @ =0x0200B0C0
+ movs r0, #0
+ strb r0, [r1, #0xe]
+ ldrb r0, [r1, #0xd]
+ cmp r0, #0
+ beq _08049F24
+ movs r1, #0
+ b _08049F36
+ .align 2, 0
+_08049F18: .4byte 0x0200B0C0
+_08049F1C: .4byte 0x020314E0
+_08049F20: .4byte 0x02000000
+_08049F24:
+ ldrb r0, [r1, #5]
+ ldrb r2, [r1, #4]
+ movs r1, #1
+ cmp r0, r2
+ beq _08049F36
+ movs r1, #3
+ cmp r2, #1
+ bhi _08049F36
+ movs r1, #2
+_08049F36:
+ lsls r0, r1, #0x10
+ asrs r1, r0, #0x10
+ adds r7, r0, #0
+ cmp r1, #1
+ bne _08049F42
+ b _0804A064
+_08049F42:
+ cmp r1, #1
+ bgt _08049F4C
+ cmp r1, #0
+ beq _08049F5A
+ b _0804A19C
+_08049F4C:
+ cmp r1, #2
+ bne _08049F52
+ b _0804A104
+_08049F52:
+ cmp r1, #3
+ bne _08049F58
+ b _0804A158
+_08049F58:
+ b _0804A19C
+_08049F5A:
+ bl sub_4A270
+ bl sub_4A518
+ bl sub_467F4
+ ldr r2, _08049FE4 @ =0x040000D4
+ ldr r0, _08049FE8 @ =0x02031520
+ ldr r0, [r0, #0x2c]
+ str r0, [r2]
+ ldr r0, _08049FEC @ =0x05000200
+ str r0, [r2, #4]
+ ldr r0, _08049FF0 @ =0x80000100
+ str r0, [r2, #8]
+ ldr r0, [r2, #8]
+ ldr r0, _08049FF4 @ =0x0200B0C0
+ ldrb r0, [r0, #9]
+ lsls r0, r0, #0x18
+ asrs r0, r0, #0x18
+ cmp r0, #0
+ beq _08049FA4
+ ldr r0, _08049FF8 @ =0x020314E0
+ ldr r0, [r0]
+ ldr r1, _08049FFC @ =0x000005F6
+ adds r0, r0, r1
+ ldrb r0, [r0]
+ lsls r0, r0, #0x18
+ asrs r0, r0, #0x18
+ lsls r0, r0, #5
+ ldr r1, _0804A000 @ =0x08137E14
+ adds r0, r0, r1
+ str r0, [r2]
+ ldr r0, _0804A004 @ =0x05000220
+ str r0, [r2, #4]
+ ldr r0, _0804A008 @ =0x80000010
+ str r0, [r2, #8]
+ ldr r0, [r2, #8]
+_08049FA4:
+ bl sub_4A90C
+ movs r5, #0
+ ldr r6, _0804A00C @ =0x020028D8
+_08049FAC:
+ lsls r4, r5, #0x10
+ asrs r4, r4, #0x10
+ lsls r0, r4, #3
+ adds r0, r0, r6
+ ldr r0, [r0]
+ bl sub_55694
+ adds r4, #1
+ lsls r4, r4, #0x10
+ lsrs r5, r4, #0x10
+ asrs r4, r4, #0x10
+ cmp r4, #8
+ ble _08049FAC
+ bl sub_53EDC
+ bl sub_47110
+ bl sub_4A518
+ ldr r0, _08049FF4 @ =0x0200B0C0
+ ldrb r0, [r0, #2]
+ cmp r0, #3
+ bne _0804A010
+ movs r0, #2
+ bl sub_4B678
+ b _0804A016
+ .align 2, 0
+_08049FE4: .4byte 0x040000D4
+_08049FE8: .4byte 0x02031520
+_08049FEC: .4byte 0x05000200
+_08049FF0: .4byte 0x80000100
+_08049FF4: .4byte 0x0200B0C0
+_08049FF8: .4byte 0x020314E0
+_08049FFC: .4byte 0x000005F6
+_0804A000: .4byte 0x08137E14
+_0804A004: .4byte 0x05000220
+_0804A008: .4byte 0x80000010
+_0804A00C: .4byte 0x020028D8
+_0804A010:
+ movs r0, #1
+ bl sub_4B678
+_0804A016:
+ bl sub_4A270
+ bl sub_4A90C
+ ldr r1, _0804A03C @ =0x086B085C
+ ldr r4, _0804A040 @ =0x0200B0C0
+ ldrb r0, [r4, #6]
+ lsls r0, r0, #2
+ adds r0, r0, r1
+ ldr r0, [r0]
+ bl sub_55694
+ ldrb r0, [r4, #4]
+ cmp r0, #1
+ bhi _0804A044
+ bl sub_1D4D0
+ b _0804A19C
+ .align 2, 0
+_0804A03C: .4byte 0x086B085C
+_0804A040: .4byte 0x0200B0C0
+_0804A044:
+ cmp r0, #2
+ bne _0804A04E
+ bl sub_356A0
+ b _0804A19C
+_0804A04E:
+ cmp r0, #4
+ bne _0804A058
+ bl sub_3ADA0
+ b _0804A19C
+_0804A058:
+ cmp r0, #5
+ beq _0804A05E
+ b _0804A19C
+_0804A05E:
+ bl sub_3E5D0
+ b _0804A19C
+_0804A064:
+ bl sub_4A270
+ bl sub_4A518
+ bl sub_467F4
+ ldr r2, _0804A0D8 @ =0x040000D4
+ ldr r0, _0804A0DC @ =0x02031520
+ ldr r0, [r0, #0x2c]
+ str r0, [r2]
+ ldr r0, _0804A0E0 @ =0x05000200
+ str r0, [r2, #4]
+ ldr r0, _0804A0E4 @ =0x80000100
+ str r0, [r2, #8]
+ ldr r0, [r2, #8]
+ ldr r0, _0804A0E8 @ =0x0200B0C0
+ ldrb r0, [r0, #9]
+ lsls r0, r0, #0x18
+ asrs r0, r0, #0x18
+ cmp r0, #0
+ beq _0804A0AE
+ ldr r0, _0804A0EC @ =0x020314E0
+ ldr r0, [r0]
+ ldr r1, _0804A0F0 @ =0x000005F6
+ adds r0, r0, r1
+ ldrb r0, [r0]
+ lsls r0, r0, #0x18
+ asrs r0, r0, #0x18
+ lsls r0, r0, #5
+ ldr r1, _0804A0F4 @ =0x08137E14
+ adds r0, r0, r1
+ str r0, [r2]
+ ldr r0, _0804A0F8 @ =0x05000220
+ str r0, [r2, #4]
+ ldr r0, _0804A0FC @ =0x80000010
+ str r0, [r2, #8]
+ ldr r0, [r2, #8]
+_0804A0AE:
+ bl sub_4A90C
+ movs r5, #0
+ ldr r6, _0804A100 @ =0x020028D8
+_0804A0B6:
+ lsls r4, r5, #0x10
+ asrs r4, r4, #0x10
+ lsls r0, r4, #3
+ adds r0, r0, r6
+ ldr r0, [r0]
+ bl sub_55694
+ adds r4, #1
+ lsls r4, r4, #0x10
+ lsrs r5, r4, #0x10
+ asrs r4, r4, #0x10
+ cmp r4, #8
+ ble _0804A0B6
+ bl sub_47110
+ b _0804A19C
+ .align 2, 0
+_0804A0D8: .4byte 0x040000D4
+_0804A0DC: .4byte 0x02031520
+_0804A0E0: .4byte 0x05000200
+_0804A0E4: .4byte 0x80000100
+_0804A0E8: .4byte 0x0200B0C0
+_0804A0EC: .4byte 0x020314E0
+_0804A0F0: .4byte 0x000005F6
+_0804A0F4: .4byte 0x08137E14
+_0804A0F8: .4byte 0x05000220
+_0804A0FC: .4byte 0x80000010
+_0804A100: .4byte 0x020028D8
+_0804A104:
+ bl sub_4A270
+ bl sub_4A6A0
+ movs r0, #0
+ bl sub_4B678
+ bl sub_4A90C
+ ldr r1, _0804A148 @ =0x086B085C
+ ldr r4, _0804A14C @ =0x0200B0C0
+ ldrb r0, [r4, #6]
+ lsls r0, r0, #2
+ adds r0, r0, r1
+ ldr r0, [r0]
+ bl sub_55694
+ ldrb r0, [r4, #4]
+ cmp r0, #0
+ bne _0804A132
+ movs r0, #1
+ bl sub_46FD4
+_0804A132:
+ movs r0, #0
+ movs r1, #0
+ bl sub_1C7F4
+ ldr r0, _0804A150 @ =0x020314E0
+ ldr r0, [r0]
+ ldr r1, _0804A154 @ =0x000006C4
+ adds r0, r0, r1
+ movs r1, #0
+ strb r1, [r0]
+ b _0804A19C
+ .align 2, 0
+_0804A148: .4byte 0x086B085C
+_0804A14C: .4byte 0x0200B0C0
+_0804A150: .4byte 0x020314E0
+_0804A154: .4byte 0x000006C4
+_0804A158:
+ bl sub_4A270
+ bl sub_4A518
+ bl sub_467F4
+ ldr r1, _0804A22C @ =0x040000D4
+ ldr r0, _0804A230 @ =0x02031520
+ ldr r0, [r0, #0x2c]
+ str r0, [r1]
+ ldr r0, _0804A234 @ =0x05000200
+ str r0, [r1, #4]
+ ldr r0, _0804A238 @ =0x80000100
+ str r0, [r1, #8]
+ ldr r0, [r1, #8]
+ bl sub_4A90C
+ movs r5, #0
+ ldr r6, _0804A23C @ =0x020028D8
+_0804A17E:
+ lsls r4, r5, #0x10
+ asrs r4, r4, #0x10
+ lsls r0, r4, #3
+ adds r0, r0, r6
+ ldr r0, [r0]
+ bl sub_55694
+ adds r4, #1
+ lsls r4, r4, #0x10
+ lsrs r5, r4, #0x10
+ asrs r4, r4, #0x10
+ cmp r4, #8
+ ble _0804A17E
+ bl sub_47110
+_0804A19C:
+ ldr r1, _0804A230 @ =0x02031520
+ movs r0, #0
+ strh r0, [r1, #8]
+ movs r2, #0
+ ldr r3, _0804A240 @ =0x0200B134
+_0804A1A6:
+ lsls r0, r2, #0x10
+ asrs r2, r0, #0x10
+ adds r0, r2, r3
+ ldrb r0, [r0]
+ cmp r0, #3
+ bls _0804A1B8
+ ldrh r0, [r1, #8]
+ adds r0, #1
+ strh r0, [r1, #8]
+_0804A1B8:
+ adds r0, r2, #1
+ lsls r0, r0, #0x10
+ lsrs r2, r0, #0x10
+ asrs r0, r0, #0x10
+ cmp r0, #0xcc
+ ble _0804A1A6
+ bl sub_CBC
+ bl sub_24C
+ ldr r4, _0804A244 @ =0x020314E0
+ ldr r0, [r4]
+ movs r1, #0x88
+ lsls r1, r1, #5
+ adds r0, r0, r1
+ movs r3, #0
+ strb r3, [r0]
+ ldr r1, _0804A248 @ =0x0200B0C0
+ adds r2, r1, #0
+ adds r2, #0x36
+ movs r0, #1
+ strb r0, [r2]
+ asrs r0, r7, #0x10
+ cmp r0, #2
+ bgt _0804A25E
+ cmp r0, #1
+ bge _0804A254
+ cmp r0, #0
+ bne _0804A25E
+ ldrb r0, [r1, #2]
+ cmp r0, #3
+ beq _0804A212
+ ldr r0, [r4]
+ ldr r1, _0804A24C @ =0x00000F4C
+ adds r0, r0, r1
+ ldr r1, [r0]
+ cmp r1, #0
+ beq _0804A212
+ ldr r2, _0804A250 @ =0x02032EE0
+ ldr r0, [r2, #4]
+ cmp r0, #0
+ bge _0804A212
+ adds r0, r2, #0
+ bl sub_5450C
+_0804A212:
+ ldr r0, _0804A248 @ =0x0200B0C0
+ ldrb r0, [r0, #4]
+ cmp r0, #1
+ bhi _0804A25E
+ ldr r0, _0804A244 @ =0x020314E0
+ ldr r0, [r0]
+ adds r0, #0x6f
+ ldrb r0, [r0]
+ lsls r0, r0, #0x18
+ asrs r0, r0, #0x18
+ bl sub_31BE8
+ b _0804A25E
+ .align 2, 0
+_0804A22C: .4byte 0x040000D4
+_0804A230: .4byte 0x02031520
+_0804A234: .4byte 0x05000200
+_0804A238: .4byte 0x80000100
+_0804A23C: .4byte 0x020028D8
+_0804A240: .4byte 0x0200B134
+_0804A244: .4byte 0x020314E0
+_0804A248: .4byte 0x0200B0C0
+_0804A24C: .4byte 0x00000F4C
+_0804A250: .4byte 0x02032EE0
+_0804A254:
+ ldrh r0, [r1, #0x38]
+ movs r0, #0xce
+ strh r0, [r1, #0x38]
+ ldrh r0, [r1, #0x3c]
+ strh r3, [r1, #0x3c]
+_0804A25E:
+ ldr r1, _0804A26C @ =0x0200B0C0
+ ldrb r0, [r1, #3]
+ adds r0, #1
+ strb r0, [r1, #3]
+ pop {r4, r5, r6, r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0804A26C: .4byte 0x0200B0C0
+
+ thumb_func_start sub_4A270
+sub_4A270: @ 0x0804A270
+ push {r4, lr}
+ movs r0, #0x80
+ lsls r0, r0, #0x13
+ movs r2, #0x86
+ lsls r2, r2, #5
+ adds r1, r2, #0
+ strh r1, [r0]
+ ldr r0, _0804A294 @ =0x0200B0C0
+ ldrb r1, [r0, #4]
+ adds r3, r0, #0
+ cmp r1, #7
+ bls _0804A28A
+ b _0804A4E8
+_0804A28A:
+ lsls r0, r1, #2
+ ldr r1, _0804A298 @ =_0804A29C
+ adds r0, r0, r1
+ ldr r0, [r0]
+ mov pc, r0
+ .align 2, 0
+_0804A294: .4byte 0x0200B0C0
+_0804A298: .4byte _0804A29C
+_0804A29C: @ jump table
+ .4byte _0804A2BC @ case 0
+ .4byte _0804A308 @ case 1
+ .4byte _0804A354 @ case 2
+ .4byte _0804A39C @ case 3
+ .4byte _0804A3E8 @ case 4
+ .4byte _0804A418 @ case 5
+ .4byte _0804A448 @ case 6
+ .4byte _0804A494 @ case 7
+_0804A2BC:
+ ldr r1, _0804A2F0 @ =0x0400000E
+ ldr r4, _0804A2F4 @ =0x0000804B
+ adds r0, r4, #0
+ strh r0, [r1]
+ movs r2, #0x80
+ lsls r2, r2, #0x13
+ ldrh r0, [r2]
+ movs r4, #0x80
+ lsls r4, r4, #4
+ adds r1, r4, #0
+ orrs r0, r1
+ strh r0, [r2]
+ ldr r1, _0804A2F8 @ =0x0400000C
+ ldr r4, _0804A2FC @ =0x00008246
+ adds r0, r4, #0
+ strh r0, [r1]
+ ldrh r0, [r2]
+ movs r4, #0x80
+ lsls r4, r4, #3
+ adds r1, r4, #0
+ orrs r0, r1
+ strh r0, [r2]
+ ldr r1, _0804A300 @ =0x0400000A
+ ldr r4, _0804A304 @ =0x00008649
+ b _0804A4C4
+ .align 2, 0
+_0804A2F0: .4byte 0x0400000E
+_0804A2F4: .4byte 0x0000804B
+_0804A2F8: .4byte 0x0400000C
+_0804A2FC: .4byte 0x00008246
+_0804A300: .4byte 0x0400000A
+_0804A304: .4byte 0x00008649
+_0804A308:
+ ldr r1, _0804A33C @ =0x0400000E
+ ldr r2, _0804A340 @ =0x0000804B
+ adds r0, r2, #0
+ strh r0, [r1]
+ movs r2, #0x80
+ lsls r2, r2, #0x13
+ ldrh r0, [r2]
+ movs r4, #0x80
+ lsls r4, r4, #4
+ adds r1, r4, #0
+ orrs r0, r1
+ strh r0, [r2]
+ ldr r1, _0804A344 @ =0x0400000C
+ ldr r4, _0804A348 @ =0x00008246
+ adds r0, r4, #0
+ strh r0, [r1]
+ ldrh r0, [r2]
+ movs r4, #0x80
+ lsls r4, r4, #3
+ adds r1, r4, #0
+ orrs r0, r1
+ strh r0, [r2]
+ ldr r1, _0804A34C @ =0x0400000A
+ ldr r4, _0804A350 @ =0x00008649
+ b _0804A4C4
+ .align 2, 0
+_0804A33C: .4byte 0x0400000E
+_0804A340: .4byte 0x0000804B
+_0804A344: .4byte 0x0400000C
+_0804A348: .4byte 0x00008246
+_0804A34C: .4byte 0x0400000A
+_0804A350: .4byte 0x00008649
+_0804A354:
+ ldr r1, _0804A390 @ =0x0400000E
+ movs r0, #0xb
+ strh r0, [r1]
+ movs r2, #0x80
+ lsls r2, r2, #0x13
+ ldrh r0, [r2]
+ movs r4, #0x80
+ lsls r4, r4, #4
+ adds r1, r4, #0
+ orrs r0, r1
+ strh r0, [r2]
+ ldr r1, _0804A394 @ =0x0400000C
+ movs r4, #0x85
+ lsls r4, r4, #1
+ adds r0, r4, #0
+ strh r0, [r1]
+ ldrh r0, [r2]
+ movs r4, #0x80
+ lsls r4, r4, #3
+ adds r1, r4, #0
+ orrs r0, r1
+ strh r0, [r2]
+ ldr r1, _0804A398 @ =0x0400000A
+ movs r4, #0x82
+ lsls r4, r4, #2
+ adds r0, r4, #0
+ strh r0, [r1]
+ ldrh r0, [r2]
+ subs r4, #8
+ b _0804A4CE
+ .align 2, 0
+_0804A390: .4byte 0x0400000E
+_0804A394: .4byte 0x0400000C
+_0804A398: .4byte 0x0400000A
+_0804A39C:
+ ldr r1, _0804A3D8 @ =0x0400000E
+ movs r0, #0xb
+ strh r0, [r1]
+ movs r2, #0x80
+ lsls r2, r2, #0x13
+ ldrh r0, [r2]
+ movs r4, #0x80
+ lsls r4, r4, #4
+ adds r1, r4, #0
+ orrs r0, r1
+ strh r0, [r2]
+ ldr r1, _0804A3DC @ =0x0400000C
+ movs r4, #0x85
+ lsls r4, r4, #1
+ adds r0, r4, #0
+ strh r0, [r1]
+ ldrh r0, [r2]
+ movs r4, #0x80
+ lsls r4, r4, #3
+ adds r1, r4, #0
+ orrs r0, r1
+ strh r0, [r2]
+ ldr r1, _0804A3E0 @ =0x0400000A
+ ldr r4, _0804A3E4 @ =0x00000209
+ adds r0, r4, #0
+ strh r0, [r1]
+ ldrh r0, [r2]
+ subs r4, #9
+ b _0804A4CE
+ .align 2, 0
+_0804A3D8: .4byte 0x0400000E
+_0804A3DC: .4byte 0x0400000C
+_0804A3E0: .4byte 0x0400000A
+_0804A3E4: .4byte 0x00000209
+_0804A3E8:
+ ldr r1, _0804A410 @ =0x0400000E
+ movs r0, #0xb
+ strh r0, [r1]
+ movs r2, #0x80
+ lsls r2, r2, #0x13
+ ldrh r0, [r2]
+ movs r4, #0x80
+ lsls r4, r4, #4
+ adds r1, r4, #0
+ orrs r0, r1
+ strh r0, [r2]
+ ldr r1, _0804A414 @ =0x0400000C
+ movs r4, #0x85
+ lsls r4, r4, #1
+ adds r0, r4, #0
+ strh r0, [r1]
+ ldrh r0, [r2]
+ movs r4, #0x80
+ lsls r4, r4, #3
+ b _0804A4CE
+ .align 2, 0
+_0804A410: .4byte 0x0400000E
+_0804A414: .4byte 0x0400000C
+_0804A418:
+ ldr r1, _0804A440 @ =0x0400000E
+ movs r0, #0xb
+ strh r0, [r1]
+ movs r2, #0x80
+ lsls r2, r2, #0x13
+ ldrh r0, [r2]
+ movs r4, #0x80
+ lsls r4, r4, #4
+ adds r1, r4, #0
+ orrs r0, r1
+ strh r0, [r2]
+ ldr r1, _0804A444 @ =0x0400000C
+ movs r4, #0x85
+ lsls r4, r4, #1
+ adds r0, r4, #0
+ strh r0, [r1]
+ ldrh r0, [r2]
+ movs r4, #0x80
+ lsls r4, r4, #3
+ b _0804A4CE
+ .align 2, 0
+_0804A440: .4byte 0x0400000E
+_0804A444: .4byte 0x0400000C
+_0804A448:
+ ldr r1, _0804A47C @ =0x0400000E
+ ldr r2, _0804A480 @ =0x0000800B
+ adds r0, r2, #0
+ strh r0, [r1]
+ movs r2, #0x80
+ lsls r2, r2, #0x13
+ ldrh r0, [r2]
+ movs r4, #0x80
+ lsls r4, r4, #4
+ adds r1, r4, #0
+ orrs r0, r1
+ strh r0, [r2]
+ ldr r1, _0804A484 @ =0x0400000C
+ ldr r4, _0804A488 @ =0x0000820A
+ adds r0, r4, #0
+ strh r0, [r1]
+ ldrh r0, [r2]
+ movs r4, #0x80
+ lsls r4, r4, #3
+ adds r1, r4, #0
+ orrs r0, r1
+ strh r0, [r2]
+ ldr r1, _0804A48C @ =0x0400000A
+ ldr r4, _0804A490 @ =0x00008609
+ b _0804A4C4
+ .align 2, 0
+_0804A47C: .4byte 0x0400000E
+_0804A480: .4byte 0x0000800B
+_0804A484: .4byte 0x0400000C
+_0804A488: .4byte 0x0000820A
+_0804A48C: .4byte 0x0400000A
+_0804A490: .4byte 0x00008609
+_0804A494:
+ ldr r1, _0804A4FC @ =0x0400000E
+ movs r0, #0xb
+ strh r0, [r1]
+ movs r2, #0x80
+ lsls r2, r2, #0x13
+ ldrh r0, [r2]
+ movs r4, #0x80
+ lsls r4, r4, #4
+ adds r1, r4, #0
+ orrs r0, r1
+ strh r0, [r2]
+ ldr r1, _0804A500 @ =0x0400000C
+ movs r4, #0x85
+ lsls r4, r4, #1
+ adds r0, r4, #0
+ strh r0, [r1]
+ ldrh r0, [r2]
+ movs r4, #0x80
+ lsls r4, r4, #3
+ adds r1, r4, #0
+ orrs r0, r1
+ strh r0, [r2]
+ ldr r1, _0804A504 @ =0x0400000A
+ ldr r4, _0804A508 @ =0x00008208
+_0804A4C4:
+ adds r0, r4, #0
+ strh r0, [r1]
+ ldrh r0, [r2]
+ movs r4, #0x80
+ lsls r4, r4, #2
+_0804A4CE:
+ adds r1, r4, #0
+ orrs r0, r1
+ strh r0, [r2]
+ ldr r1, _0804A50C @ =0x04000008
+ ldr r4, _0804A510 @ =0x00008404
+ adds r0, r4, #0
+ strh r0, [r1]
+ ldrh r0, [r2]
+ movs r4, #0x80
+ lsls r4, r4, #1
+ adds r1, r4, #0
+ orrs r0, r1
+ strh r0, [r2]
+_0804A4E8:
+ movs r0, #0x80
+ lsls r0, r0, #0x13
+ ldrh r0, [r0]
+ movs r1, #0
+ strh r0, [r3, #0x16]
+ ldr r0, _0804A514 @ =0x0400004C
+ strh r1, [r0]
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0804A4FC: .4byte 0x0400000E
+_0804A500: .4byte 0x0400000C
+_0804A504: .4byte 0x0400000A
+_0804A508: .4byte 0x00008208
+_0804A50C: .4byte 0x04000008
+_0804A510: .4byte 0x00008404
+_0804A514: .4byte 0x0400004C
+
+ thumb_func_start sub_4A518
+sub_4A518: @ 0x0804A518
+ push {r4, r5, r6, r7, lr}
+ sub sp, #4
+ ldr r0, _0804A60C @ =0x0200B0C0
+ movs r3, #0
+ strb r3, [r0, #0xf]
+ strb r3, [r0, #0x10]
+ str r3, [r0, #0x50]
+ strb r3, [r0, #0x11]
+ movs r7, #0
+ strh r3, [r0, #0x12]
+ strh r3, [r0, #0x14]
+ movs r1, #0x90
+ strh r1, [r0, #0x26]
+ strh r3, [r0, #0x28]
+ strh r3, [r0, #0x2a]
+ adds r1, r0, #0
+ adds r1, #0x36
+ strb r7, [r1]
+ ldrh r1, [r0, #0x38]
+ strh r3, [r0, #0x38]
+ ldrh r1, [r0, #0x3a]
+ strh r3, [r0, #0x3a]
+ ldrh r1, [r0, #0x3c]
+ strh r3, [r0, #0x3c]
+ ldrb r1, [r0, #5]
+ adds r6, r0, #0
+ ldr r5, _0804A610 @ =0x020314E0
+ ldrb r0, [r6, #4]
+ cmp r1, r0
+ beq _0804A556
+ b _0804A652
+_0804A556:
+ mov r0, sp
+ strh r3, [r0]
+ ldr r4, _0804A614 @ =0x040000D4
+ str r0, [r4]
+ ldr r0, [r5]
+ str r0, [r4, #4]
+ ldr r0, _0804A618 @ =0x81000A08
+ str r0, [r4, #8]
+ ldr r0, [r4, #8]
+ movs r2, #9
+ ldrsb r2, [r6, r2]
+ cmp r2, #0
+ beq _0804A62C
+ ldr r2, [r5]
+ movs r1, #0xe3
+ lsls r1, r1, #1
+ adds r0, r2, r1
+ movs r1, #0xa8
+ strh r1, [r0]
+ movs r7, #0xe4
+ lsls r7, r7, #1
+ adds r0, r2, r7
+ strh r1, [r0]
+ movs r1, #0xe6
+ lsls r1, r1, #1
+ adds r0, r2, r1
+ movs r1, #0xd
+ strh r1, [r0]
+ adds r7, #2
+ adds r0, r2, r7
+ strh r1, [r0]
+ movs r1, #0xe8
+ lsls r1, r1, #1
+ adds r0, r2, r1
+ strh r3, [r0]
+ adds r7, #0xa
+ adds r0, r2, r7
+ strh r3, [r0]
+ movs r0, #0xeb
+ lsls r0, r0, #1
+ adds r1, r2, r0
+ movs r0, #0x78
+ strh r0, [r1]
+ adds r7, #8
+ adds r1, r2, r7
+ movs r0, #0x3c
+ strh r0, [r1]
+ ldr r0, _0804A61C @ =0x084C0C6C
+ str r0, [r4]
+ ldr r0, _0804A620 @ =0x06010600
+ str r0, [r4, #4]
+ ldr r0, _0804A624 @ =0x800000C0
+ str r0, [r4, #8]
+ ldr r0, [r4, #8]
+ ldr r0, [r5]
+ movs r2, #0xf1
+ lsls r2, r2, #1
+ adds r1, r0, r2
+ movs r0, #2
+ strb r0, [r1]
+ ldr r0, [r6, #0x44]
+ adds r0, #0xa4
+ ldr r0, [r0]
+ strh r3, [r0]
+ ldr r1, [r5]
+ movs r3, #0xe0
+ lsls r3, r3, #1
+ adds r2, r1, r3
+ movs r0, #1
+ strh r0, [r2]
+ ldr r4, _0804A628 @ =0x000005F6
+ adds r1, r1, r4
+ movs r0, #3
+ strb r0, [r1]
+ ldr r1, [r5]
+ movs r7, #0xbf
+ lsls r7, r7, #3
+ adds r2, r1, r7
+ movs r0, #0xe1
+ lsls r0, r0, #4
+ strh r0, [r2]
+ adds r1, #0x30
+ movs r0, #9
+ strb r0, [r1]
+ ldr r0, [r5]
+ movs r2, #0xc9
+ lsls r2, r2, #1
+ adds r1, r0, r2
+ movs r0, #0x63
+ b _0804A650
+ .align 2, 0
+_0804A60C: .4byte 0x0200B0C0
+_0804A610: .4byte 0x020314E0
+_0804A614: .4byte 0x040000D4
+_0804A618: .4byte 0x81000A08
+_0804A61C: .4byte 0x084C0C6C
+_0804A620: .4byte 0x06010600
+_0804A624: .4byte 0x800000C0
+_0804A628: .4byte 0x000005F6
+_0804A62C:
+ ldr r1, [r5]
+ movs r3, #0xea
+ lsls r3, r3, #1
+ adds r0, r1, r3
+ strh r2, [r0]
+ movs r4, #0xeb
+ lsls r4, r4, #1
+ adds r2, r1, r4
+ ldr r0, _0804A690 @ =0x0000FFFC
+ strh r0, [r2]
+ adds r1, #0x30
+ movs r0, #2
+ strb r0, [r1]
+ ldr r0, [r5]
+ movs r7, #0xc9
+ lsls r7, r7, #1
+ adds r1, r0, r7
+ movs r0, #0xa
+_0804A650:
+ strb r0, [r1]
+_0804A652:
+ ldrb r0, [r6, #2]
+ cmp r0, #3
+ beq _0804A666
+ ldr r0, [r5]
+ movs r2, #0xa1
+ lsls r2, r2, #1
+ adds r1, r6, r2
+ ldrb r1, [r1]
+ adds r0, #0x31
+ strb r1, [r0]
+_0804A666:
+ ldr r1, [r5]
+ ldr r0, _0804A694 @ =0x00009C40
+ str r0, [r1, #0x38]
+ movs r3, #0
+ strb r3, [r1, #0x1d]
+ ldr r0, [r5]
+ ldr r4, _0804A698 @ =0x0000132C
+ adds r1, r0, r4
+ ldr r7, _0804A69C @ =0x00001334
+ adds r2, r0, r7
+ str r2, [r1]
+ adds r4, #4
+ adds r1, r0, r4
+ str r2, [r1]
+ adds r0, #0x66
+ strh r3, [r0]
+ add sp, #4
+ pop {r4, r5, r6, r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0804A690: .4byte 0x0000FFFC
+_0804A694: .4byte 0x00009C40
+_0804A698: .4byte 0x0000132C
+_0804A69C: .4byte 0x00001334
+
+ thumb_func_start sub_4A6A0
+sub_4A6A0: @ 0x0804A6A0
+ push {r4, r5, r6, r7, lr}
+ ldr r1, _0804A6C0 @ =0x020314E0
+ ldr r2, [r1]
+ ldr r3, _0804A6C4 @ =0x00000282
+ adds r0, r2, r3
+ movs r5, #0
+ ldrsb r5, [r0, r5]
+ adds r6, r1, #0
+ cmp r5, #1
+ beq _0804A760
+ cmp r5, #1
+ bgt _0804A6C8
+ cmp r5, #0
+ beq _0804A6D0
+ b _0804A83C
+ .align 2, 0
+_0804A6C0: .4byte 0x020314E0
+_0804A6C4: .4byte 0x00000282
+_0804A6C8:
+ cmp r5, #2
+ bne _0804A6CE
+ b _0804A7D0
+_0804A6CE:
+ b _0804A83C
+_0804A6D0:
+ ldr r4, _0804A738 @ =0x0000132C
+ adds r1, r2, r4
+ ldr r2, [r1]
+ movs r3, #0
+ movs r0, #0x77
+ strh r0, [r2, #0x10]
+ ldr r2, [r1]
+ adds r0, #0xa0
+ strh r0, [r2, #0x12]
+ ldr r0, [r1]
+ strh r5, [r0, #0x30]
+ ldr r0, [r1]
+ strh r5, [r0, #0x32]
+ ldr r0, [r1]
+ strh r5, [r0, #6]
+ ldr r2, [r1]
+ movs r5, #0x10
+ ldrsh r0, [r2, r5]
+ lsls r0, r0, #8
+ str r0, [r2, #0x34]
+ ldr r2, [r1]
+ movs r7, #0x12
+ ldrsh r0, [r2, r7]
+ lsls r0, r0, #8
+ str r0, [r2, #0x38]
+ ldr r2, [r1]
+ movs r0, #0x80
+ strh r0, [r2, #0xe]
+ ldr r0, [r1]
+ movs r1, #1
+ strb r1, [r0]
+ ldr r0, [r6]
+ strb r1, [r0, #0x1f]
+ ldr r0, [r6]
+ movs r1, #0xe6
+ lsls r1, r1, #3
+ adds r0, r0, r1
+ strb r3, [r0]
+ ldr r0, [r6]
+ movs r1, #0x78
+ strh r1, [r0, #0x28]
+ adds r0, #0x25
+ movs r1, #4
+ strb r1, [r0]
+ ldr r0, _0804A73C @ =0x0200B0C0
+ ldrb r0, [r0, #4]
+ cmp r0, #0
+ bne _0804A740
+ bl sub_1A9E8
+ b _0804A744
+ .align 2, 0
+_0804A738: .4byte 0x0000132C
+_0804A73C: .4byte 0x0200B0C0
+_0804A740:
+ bl sub_32968
+_0804A744:
+ ldr r3, _0804A75C @ =0x020314E0
+ ldr r1, [r3]
+ adds r2, r1, #0
+ adds r2, #0x4c
+ movs r0, #0
+ strh r0, [r2]
+ adds r1, #0x4e
+ movs r0, #0xd7
+ strh r0, [r1]
+ adds r6, r3, #0
+ b _0804A83C
+ .align 2, 0
+_0804A75C: .4byte 0x020314E0
+_0804A760:
+ ldr r3, _0804A7C8 @ =0x0000132C
+ adds r1, r2, r3
+ ldr r2, [r1]
+ movs r4, #0
+ movs r3, #0
+ movs r0, #0x8c
+ strh r0, [r2, #0x10]
+ ldr r2, [r1]
+ movs r0, #0xb7
+ strh r0, [r2, #0x12]
+ ldr r0, [r1]
+ strh r3, [r0, #0x30]
+ ldr r0, [r1]
+ strh r3, [r0, #0x32]
+ ldr r0, [r1]
+ strh r3, [r0, #6]
+ ldr r2, [r1]
+ movs r7, #0x10
+ ldrsh r0, [r2, r7]
+ lsls r0, r0, #8
+ str r0, [r2, #0x34]
+ ldr r2, [r1]
+ movs r7, #0x12
+ ldrsh r0, [r2, r7]
+ lsls r0, r0, #8
+ str r0, [r2, #0x38]
+ ldr r2, [r1]
+ movs r0, #0x80
+ strh r0, [r2, #0xe]
+ ldr r0, [r1]
+ strb r5, [r0]
+ ldr r0, [r6]
+ strb r5, [r0, #0x1f]
+ ldr r0, [r6]
+ movs r1, #0xe6
+ lsls r1, r1, #3
+ adds r0, r0, r1
+ strb r4, [r0]
+ ldr r0, [r6]
+ ldr r2, _0804A7CC @ =0x000002A2
+ adds r0, r0, r2
+ movs r1, #5
+ strb r1, [r0]
+ ldr r0, [r6]
+ adds r1, r0, #0
+ adds r1, #0x4c
+ strh r3, [r1]
+ adds r0, #0x4e
+ movs r1, #0x76
+ strh r1, [r0]
+ b _0804A83C
+ .align 2, 0
+_0804A7C8: .4byte 0x0000132C
+_0804A7CC: .4byte 0x000002A2
+_0804A7D0:
+ ldr r3, _0804A8E4 @ =0x0000132C
+ adds r1, r2, r3
+ ldr r2, [r1]
+ movs r4, #0
+ movs r3, #0
+ ldr r0, _0804A8E8 @ =0x0000FFE4
+ strh r0, [r2, #0x10]
+ ldr r2, [r1]
+ adds r0, #0x12
+ strh r0, [r2, #0x12]
+ ldr r0, [r1]
+ strh r3, [r0, #0x30]
+ ldr r0, [r1]
+ strh r3, [r0, #0x32]
+ ldr r0, [r1]
+ strh r3, [r0, #6]
+ ldr r2, [r1]
+ movs r5, #0x10
+ ldrsh r0, [r2, r5]
+ lsls r0, r0, #8
+ str r0, [r2, #0x34]
+ ldr r2, [r1]
+ movs r7, #0x12
+ ldrsh r0, [r2, r7]
+ lsls r0, r0, #8
+ str r0, [r2, #0x38]
+ ldr r2, [r1]
+ movs r0, #0x80
+ strh r0, [r2, #0xe]
+ ldr r0, [r1]
+ movs r1, #1
+ strb r1, [r0]
+ ldr r0, [r6]
+ strb r1, [r0, #0x1f]
+ ldr r0, [r6]
+ movs r1, #0xe6
+ lsls r1, r1, #3
+ adds r0, r0, r1
+ strb r4, [r0]
+ ldr r0, [r6]
+ movs r2, #0xc3
+ lsls r2, r2, #2
+ adds r1, r0, r2
+ strh r3, [r1]
+ ldr r4, _0804A8EC @ =0x00000306
+ adds r0, r0, r4
+ movs r1, #7
+ strb r1, [r0]
+ ldr r0, [r6]
+ adds r1, r0, #0
+ adds r1, #0x4c
+ strh r3, [r1]
+ adds r0, #0x4e
+ strh r3, [r0]
+_0804A83C:
+ ldr r1, [r6]
+ ldr r3, _0804A8F0 @ =0x000005FC
+ adds r0, r1, r3
+ movs r4, #0
+ movs r2, #0
+ strh r2, [r0]
+ ldr r5, _0804A8F4 @ =0x000005FE
+ adds r0, r1, r5
+ strh r2, [r0]
+ ldr r7, _0804A8F8 @ =0x000005FB
+ adds r1, r1, r7
+ strb r4, [r1]
+ ldr r2, [r6]
+ adds r5, r2, #0
+ adds r5, #0x4e
+ movs r1, #0
+ ldrsh r0, [r5, r1]
+ lsls r0, r0, #8
+ str r0, [r2, #0x54]
+ adds r4, r2, #0
+ adds r4, #0x4c
+ ldrh r1, [r4]
+ adds r0, r2, #0
+ adds r0, #0x58
+ strh r1, [r0]
+ adds r3, r2, r3
+ ldrh r0, [r3]
+ ldrh r5, [r5]
+ adds r0, r0, r5
+ adds r1, r2, #0
+ adds r1, #0x5a
+ strh r0, [r1]
+ ldr r2, _0804A8FC @ =0x0200B0C0
+ ldrh r1, [r4]
+ movs r3, #0xbc
+ lsls r3, r3, #2
+ adds r0, r2, r3
+ strh r1, [r0]
+ ldr r0, [r6]
+ adds r0, #0x4e
+ ldrh r1, [r0]
+ ldr r4, _0804A900 @ =0x000002F2
+ adds r0, r2, r4
+ strh r1, [r0]
+ ldr r0, [r6]
+ adds r0, #0x4c
+ ldrh r1, [r0]
+ movs r5, #0xbd
+ lsls r5, r5, #2
+ adds r0, r2, r5
+ strh r1, [r0]
+ ldr r0, [r6]
+ adds r0, #0x4e
+ ldrh r3, [r0]
+ ldr r7, _0804A904 @ =0x000002F6
+ adds r4, r2, r7
+ strh r3, [r4]
+ ldr r0, [r6]
+ adds r0, #0x4c
+ ldrh r1, [r0]
+ subs r5, #8
+ adds r0, r2, r5
+ strh r1, [r0]
+ ldr r0, [r6]
+ adds r0, #0x4e
+ ldrh r1, [r0]
+ subs r7, #8
+ adds r0, r2, r7
+ strh r1, [r0]
+ ldr r0, _0804A908 @ =0x000002EA
+ adds r2, r2, r0
+ movs r0, #0x50
+ strh r0, [r2]
+ ldr r1, [r6]
+ adds r0, r1, #0
+ adds r0, #0xcc
+ strh r3, [r0]
+ ldrh r0, [r4]
+ lsrs r0, r0, #3
+ adds r1, #0x64
+ strh r0, [r1]
+ pop {r4, r5, r6, r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0804A8E4: .4byte 0x0000132C
+_0804A8E8: .4byte 0x0000FFE4
+_0804A8EC: .4byte 0x00000306
+_0804A8F0: .4byte 0x000005FC
+_0804A8F4: .4byte 0x000005FE
+_0804A8F8: .4byte 0x000005FB
+_0804A8FC: .4byte 0x0200B0C0
+_0804A900: .4byte 0x000002F2
+_0804A904: .4byte 0x000002F6
+_0804A908: .4byte 0x000002EA
+
+ thumb_func_start sub_4A90C
+sub_4A90C: @ 0x0804A90C
+ push {r4, lr}
+ ldr r2, _0804A944 @ =0x020028D8
+ ldr r3, _0804A948 @ =0x086B077C
+ ldr r0, [r3]
+ ldr r1, [r3, #4]
+ str r0, [r2, #8]
+ str r1, [r2, #0xc]
+ adds r0, r3, #0
+ adds r0, #0x90
+ ldr r1, [r0, #4]
+ ldr r0, [r0]
+ str r0, [r2, #0x40]
+ str r1, [r2, #0x44]
+ ldr r0, [r3, #0x78]
+ ldr r1, [r3, #0x7c]
+ str r0, [r2, #0x30]
+ str r1, [r2, #0x34]
+ ldr r0, _0804A94C @ =0x0200B0C0
+ ldrb r1, [r0, #4]
+ adds r4, r0, #0
+ cmp r1, #7
+ bls _0804A93A
+ b _0804AACC
+_0804A93A:
+ lsls r0, r1, #2
+ ldr r1, _0804A950 @ =_0804A954
+ adds r0, r0, r1
+ ldr r0, [r0]
+ mov pc, r0
+ .align 2, 0
+_0804A944: .4byte 0x020028D8
+_0804A948: .4byte 0x086B077C
+_0804A94C: .4byte 0x0200B0C0
+_0804A950: .4byte _0804A954
+_0804A954: @ jump table
+ .4byte _0804A974 @ case 0
+ .4byte _0804A9BC @ case 1
+ .4byte _0804AA04 @ case 2
+ .4byte _0804AA1E @ case 3
+ .4byte _0804AA38 @ case 4
+ .4byte _0804AA52 @ case 5
+ .4byte _0804AA6C @ case 6
+ .4byte _0804AA86 @ case 7
+_0804A974:
+ ldr r0, [r3, #0x18]
+ ldr r1, [r3, #0x1c]
+ str r0, [r2, #0x18]
+ str r1, [r2, #0x1c]
+ adds r0, r3, #0
+ adds r0, #0x80
+ ldr r1, [r0, #4]
+ ldr r0, [r0]
+ str r0, [r2, #0x38]
+ str r1, [r2, #0x3c]
+ adds r0, r3, #0
+ adds r0, #0x98
+ ldr r1, [r0, #4]
+ ldr r0, [r0]
+ str r0, [r2]
+ str r1, [r2, #4]
+ ldr r0, [r3, #0x58]
+ ldr r1, [r3, #0x5c]
+ str r0, [r2, #0x20]
+ str r1, [r2, #0x24]
+ ldr r0, [r3, #8]
+ ldr r1, [r3, #0xc]
+ str r0, [r2, #0x10]
+ str r1, [r2, #0x14]
+ ldr r0, [r3, #0x68]
+ ldr r1, [r3, #0x6c]
+ str r0, [r2, #0x28]
+ str r1, [r2, #0x2c]
+ ldrb r1, [r4, #4]
+ lsls r0, r1, #4
+ subs r0, r0, r1
+ lsls r0, r0, #4
+ ldr r1, _0804A9B8 @ =0x086B02CC
+ b _0804AAC8
+ .align 2, 0
+_0804A9B8: .4byte 0x086B02CC
+_0804A9BC:
+ ldr r0, [r3, #0x20]
+ ldr r1, [r3, #0x24]
+ str r0, [r2, #0x18]
+ str r1, [r2, #0x1c]
+ adds r0, r3, #0
+ adds r0, #0x80
+ ldr r1, [r0, #4]
+ ldr r0, [r0]
+ str r0, [r2, #0x38]
+ str r1, [r2, #0x3c]
+ adds r0, r3, #0
+ adds r0, #0xa0
+ ldr r1, [r0, #4]
+ ldr r0, [r0]
+ str r0, [r2]
+ str r1, [r2, #4]
+ ldr r0, [r3, #0x58]
+ ldr r1, [r3, #0x5c]
+ str r0, [r2, #0x20]
+ str r1, [r2, #0x24]
+ ldr r0, [r3, #8]
+ ldr r1, [r3, #0xc]
+ str r0, [r2, #0x10]
+ str r1, [r2, #0x14]
+ ldr r0, [r3, #0x68]
+ ldr r1, [r3, #0x6c]
+ str r0, [r2, #0x28]
+ str r1, [r2, #0x2c]
+ ldrb r1, [r4, #4]
+ lsls r0, r1, #4
+ subs r0, r0, r1
+ lsls r0, r0, #4
+ ldr r1, _0804AA00 @ =0x086B02CC
+ b _0804AAC8
+ .align 2, 0
+_0804AA00: .4byte 0x086B02CC
+_0804AA04:
+ ldr r0, [r3, #0x28]
+ ldr r1, [r3, #0x2c]
+ str r0, [r2, #0x18]
+ str r1, [r2, #0x1c]
+ adds r0, r3, #0
+ adds r0, #0x88
+ ldr r1, [r0, #4]
+ ldr r0, [r0]
+ str r0, [r2, #0x38]
+ str r1, [r2, #0x3c]
+ adds r0, r3, #0
+ adds r0, #0xa8
+ b _0804AA9E
+_0804AA1E:
+ ldr r0, [r3, #0x30]
+ ldr r1, [r3, #0x34]
+ str r0, [r2, #0x18]
+ str r1, [r2, #0x1c]
+ adds r0, r3, #0
+ adds r0, #0x88
+ ldr r1, [r0, #4]
+ ldr r0, [r0]
+ str r0, [r2, #0x38]
+ str r1, [r2, #0x3c]
+ adds r0, r3, #0
+ adds r0, #0xb0
+ b _0804AA9E
+_0804AA38:
+ ldr r0, [r3, #0x38]
+ ldr r1, [r3, #0x3c]
+ str r0, [r2, #0x18]
+ str r1, [r2, #0x1c]
+ adds r0, r3, #0
+ adds r0, #0x88
+ ldr r1, [r0, #4]
+ ldr r0, [r0]
+ str r0, [r2, #0x38]
+ str r1, [r2, #0x3c]
+ adds r0, r3, #0
+ adds r0, #0xb8
+ b _0804AA9E
+_0804AA52:
+ ldr r0, [r3, #0x40]
+ ldr r1, [r3, #0x44]
+ str r0, [r2, #0x18]
+ str r1, [r2, #0x1c]
+ adds r0, r3, #0
+ adds r0, #0x88
+ ldr r1, [r0, #4]
+ ldr r0, [r0]
+ str r0, [r2, #0x38]
+ str r1, [r2, #0x3c]
+ adds r0, r3, #0
+ adds r0, #0xc0
+ b _0804AA9E
+_0804AA6C:
+ ldr r0, [r3, #0x48]
+ ldr r1, [r3, #0x4c]
+ str r0, [r2, #0x18]
+ str r1, [r2, #0x1c]
+ adds r0, r3, #0
+ adds r0, #0x88
+ ldr r1, [r0, #4]
+ ldr r0, [r0]
+ str r0, [r2, #0x38]
+ str r1, [r2, #0x3c]
+ adds r0, r3, #0
+ adds r0, #0xc8
+ b _0804AA9E
+_0804AA86:
+ ldr r0, [r3, #0x50]
+ ldr r1, [r3, #0x54]
+ str r0, [r2, #0x18]
+ str r1, [r2, #0x1c]
+ adds r0, r3, #0
+ adds r0, #0x88
+ ldr r1, [r0, #4]
+ ldr r0, [r0]
+ str r0, [r2, #0x38]
+ str r1, [r2, #0x3c]
+ adds r0, r3, #0
+ adds r0, #0xd0
+_0804AA9E:
+ ldr r1, [r0, #4]
+ ldr r0, [r0]
+ str r0, [r2]
+ str r1, [r2, #4]
+ ldr r0, [r3, #0x60]
+ ldr r1, [r3, #0x64]
+ str r0, [r2, #0x20]
+ str r1, [r2, #0x24]
+ ldr r0, [r3, #0x10]
+ ldr r1, [r3, #0x14]
+ str r0, [r2, #0x10]
+ str r1, [r2, #0x14]
+ ldr r0, [r3, #0x70]
+ ldr r1, [r3, #0x74]
+ str r0, [r2, #0x28]
+ str r1, [r2, #0x2c]
+ ldrb r1, [r4, #4]
+ lsls r0, r1, #4
+ subs r0, r0, r1
+ lsls r0, r0, #3
+ ldr r1, _0804AAD4 @ =0x086B03BC
+_0804AAC8:
+ adds r0, r0, r1
+ str r0, [r4, #0x44]
+_0804AACC:
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0804AAD4: .4byte 0x086B03BC
+
+ thumb_func_start sub_4AAD8
+sub_4AAD8: @ 0x0804AAD8
+ push {r4, r5, lr}
+ ldr r0, _0804AAF0 @ =0x020314E0
+ ldr r1, [r0]
+ ldrb r4, [r1, #0x1d]
+ cmp r4, #1
+ beq _0804AB08
+ cmp r4, #1
+ bgt _0804AAF4
+ cmp r4, #0
+ beq _0804AAFA
+ b _0804ABB8
+ .align 2, 0
+_0804AAF0: .4byte 0x020314E0
+_0804AAF4:
+ cmp r4, #2
+ beq _0804ABB0
+ b _0804ABB8
+_0804AAFA:
+ movs r0, #1
+ strb r0, [r1, #0x1d]
+ ldr r0, _0804AB04 @ =0x0200B0C0
+ strb r4, [r0, #0xe]
+ b _0804ABB8
+ .align 2, 0
+_0804AB04: .4byte 0x0200B0C0
+_0804AB08:
+ ldr r1, _0804AB3C @ =0x086B085C
+ ldr r5, _0804AB40 @ =0x0200B0C0
+ ldrb r0, [r5, #6]
+ lsls r0, r0, #2
+ adds r0, r0, r1
+ ldr r0, [r0]
+ bl sub_55694
+ ldrh r1, [r5, #0x1c]
+ movs r0, #0xf
+ ands r0, r1
+ cmp r0, #0xf
+ bne _0804AB24
+ strb r4, [r5, #0xe]
+_0804AB24:
+ ldrb r0, [r5, #0xe]
+ cmp r0, #0
+ beq _0804ABB8
+ ldrb r0, [r5, #4]
+ cmp r0, #1
+ bhi _0804AB44
+ bl sub_1D4D0
+ movs r0, #0
+ bl sub_31BE8
+ b _0804AB60
+ .align 2, 0
+_0804AB3C: .4byte 0x086B085C
+_0804AB40: .4byte 0x0200B0C0
+_0804AB44:
+ cmp r0, #2
+ bne _0804AB4E
+ bl sub_356A0
+ b _0804AB60
+_0804AB4E:
+ cmp r0, #4
+ bne _0804AB58
+ bl sub_3ADA0
+ b _0804AB60
+_0804AB58:
+ cmp r0, #5
+ bne _0804AB60
+ bl sub_3E5D0
+_0804AB60:
+ ldr r4, _0804AB98 @ =0x0200B0C0
+ ldrb r1, [r4, #0xf]
+ movs r3, #2
+ adds r0, r3, #0
+ ands r0, r1
+ ldr r2, _0804AB9C @ =0x020314E0
+ cmp r0, #0
+ beq _0804AB84
+ ldr r1, _0804ABA0 @ =0x040000D4
+ ldr r0, [r2]
+ ldr r5, _0804ABA4 @ =0x0000111A
+ adds r0, r0, r5
+ str r0, [r1]
+ ldr r0, _0804ABA8 @ =0x05000200
+ str r0, [r1, #4]
+ ldr r0, _0804ABAC @ =0x80000100
+ str r0, [r1, #8]
+ ldr r0, [r1, #8]
+_0804AB84:
+ ldr r0, [r2]
+ strb r3, [r0, #0x1d]
+ ldrb r0, [r4, #0xe]
+ cmp r0, #2
+ bne _0804ABB8
+ movs r0, #1
+ bl sub_4B408
+ b _0804ABB8
+ .align 2, 0
+_0804AB98: .4byte 0x0200B0C0
+_0804AB9C: .4byte 0x020314E0
+_0804ABA0: .4byte 0x040000D4
+_0804ABA4: .4byte 0x0000111A
+_0804ABA8: .4byte 0x05000200
+_0804ABAC: .4byte 0x80000100
+_0804ABB0:
+ ldr r1, _0804ABC4 @ =0x0200B0C0
+ ldrb r0, [r1, #3]
+ adds r0, #1
+ strb r0, [r1, #3]
+_0804ABB8:
+ bl sub_11FC
+ pop {r4, r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0804ABC4: .4byte 0x0200B0C0
+
+ thumb_func_start sub_4ABC8
+sub_4ABC8: @ 0x0804ABC8
+ push {lr}
+ bl sub_111C
+ bl sub_1170
+ cmp r0, #0
+ beq _0804ABE2
+ bl sub_1198
+ ldr r1, _0804ABE8 @ =0x0200B0C0
+ ldrb r0, [r1, #3]
+ adds r0, #1
+ strb r0, [r1, #3]
+_0804ABE2:
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0804ABE8: .4byte 0x0200B0C0
+
+ thumb_func_start sub_4ABEC
+sub_4ABEC: @ 0x0804ABEC
+ push {r4, r5, lr}
+ bl sub_4B280
+ ldr r5, _0804AC50 @ =0x020028D8
+ ldr r0, [r5, #0xc]
+ bl sub_55694
+ ldr r4, _0804AC54 @ =0x0200B0C0
+ ldrh r1, [r4, #0xe]
+ ldr r0, _0804AC58 @ =0x000002FF
+ ands r0, r1
+ cmp r0, #0
+ bne _0804ACDE
+ ldr r0, [r5, #0x14]
+ bl sub_55694
+ ldr r0, [r5, #4]
+ bl sub_55694
+ ldr r0, [r5, #0x1c]
+ bl sub_55694
+ ldr r0, [r5, #0x24]
+ bl sub_55694
+ ldrb r0, [r4, #0xf]
+ cmp r0, #0
+ beq _0804AC60
+ ldr r0, _0804AC5C @ =0x020314E0
+ ldr r0, [r0]
+ ldrb r0, [r0, #0x1f]
+ cmp r0, #0
+ bne _0804ACD0
+ movs r4, #0
+_0804AC30:
+ ldr r0, _0804AC5C @ =0x020314E0
+ ldr r0, [r0]
+ strb r4, [r0, #0x1e]
+ ldr r0, _0804AC50 @ =0x020028D8
+ ldr r0, [r0, #0x34]
+ bl sub_55694
+ lsls r0, r4, #0x10
+ movs r1, #0x80
+ lsls r1, r1, #9
+ adds r0, r0, r1
+ lsrs r4, r0, #0x10
+ asrs r0, r0, #0x10
+ cmp r0, #3
+ ble _0804AC30
+ b _0804ACD0
+ .align 2, 0
+_0804AC50: .4byte 0x020028D8
+_0804AC54: .4byte 0x0200B0C0
+_0804AC58: .4byte 0x000002FF
+_0804AC5C: .4byte 0x020314E0
+_0804AC60:
+ ldr r0, [r4, #0x50]
+ adds r0, #1
+ str r0, [r4, #0x50]
+ ldr r0, _0804ACA4 @ =0x020314E0
+ ldr r2, [r0]
+ movs r0, #0xa4
+ lsls r0, r0, #2
+ adds r1, r2, r0
+ ldr r0, [r1]
+ adds r0, #1
+ str r0, [r1]
+ ldrb r0, [r2, #0x1f]
+ cmp r0, #0
+ beq _0804ACAC
+ cmp r0, #2
+ beq _0804ACD0
+ movs r4, #0
+_0804AC82:
+ ldr r0, _0804ACA4 @ =0x020314E0
+ ldr r0, [r0]
+ strb r4, [r0, #0x1e]
+ ldr r0, _0804ACA8 @ =0x020028D8
+ ldr r0, [r0, #0x2c]
+ bl sub_55694
+ lsls r0, r4, #0x10
+ movs r1, #0x80
+ lsls r1, r1, #9
+ adds r0, r0, r1
+ lsrs r4, r0, #0x10
+ asrs r0, r0, #0x10
+ cmp r0, #3
+ ble _0804AC82
+ b _0804ACD0
+ .align 2, 0
+_0804ACA4: .4byte 0x020314E0
+_0804ACA8: .4byte 0x020028D8
+_0804ACAC:
+ movs r4, #0
+_0804ACAE:
+ ldr r0, _0804ACE8 @ =0x020314E0
+ ldr r0, [r0]
+ strb r4, [r0, #0x1e]
+ ldr r0, [r5, #0x2c]
+ bl sub_55694
+ ldr r0, [r5, #0x34]
+ bl sub_55694
+ lsls r0, r4, #0x10
+ movs r1, #0x80
+ lsls r1, r1, #9
+ adds r0, r0, r1
+ lsrs r4, r0, #0x10
+ asrs r0, r0, #0x10
+ cmp r0, #3
+ ble _0804ACAE
+_0804ACD0:
+ ldr r4, _0804ACEC @ =0x020028D8
+ ldr r0, [r4, #0x3c]
+ bl sub_55694
+ ldr r0, [r4, #0x44]
+ bl sub_55694
+_0804ACDE:
+ bl sub_47030
+ pop {r4, r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0804ACE8: .4byte 0x020314E0
+_0804ACEC: .4byte 0x020028D8
+
+ thumb_func_start sub_4ACF0
+sub_4ACF0: @ 0x0804ACF0
+ push {r4, r5, r6, r7, lr}
+ bl sub_4B334
+ ldr r5, _0804AD54 @ =0x020028D8
+ ldr r0, [r5, #0xc]
+ bl sub_55694
+ ldr r4, _0804AD58 @ =0x0200B0C0
+ ldrb r1, [r4, #0xf]
+ movs r0, #2
+ ands r0, r1
+ cmp r0, #0
+ bne _0804ADDE
+ ldr r0, [r5, #0x14]
+ bl sub_55694
+ ldr r0, [r5, #4]
+ bl sub_55694
+ ldr r0, [r5, #0x1c]
+ bl sub_55694
+ ldr r0, [r5, #0x24]
+ bl sub_55694
+ ldrb r0, [r4, #0xf]
+ cmp r0, #0
+ beq _0804AD60
+ ldr r0, _0804AD5C @ =0x020314E0
+ ldr r0, [r0]
+ ldrb r0, [r0, #0x1f]
+ cmp r0, #0
+ bne _0804ADD0
+ movs r4, #0
+_0804AD34:
+ ldr r0, _0804AD5C @ =0x020314E0
+ ldr r0, [r0]
+ strb r4, [r0, #0x1e]
+ ldr r0, _0804AD54 @ =0x020028D8
+ ldr r0, [r0, #0x34]
+ bl sub_55694
+ lsls r0, r4, #0x10
+ movs r1, #0x80
+ lsls r1, r1, #9
+ adds r0, r0, r1
+ lsrs r4, r0, #0x10
+ asrs r0, r0, #0x10
+ cmp r0, #3
+ ble _0804AD34
+ b _0804ADD0
+ .align 2, 0
+_0804AD54: .4byte 0x020028D8
+_0804AD58: .4byte 0x0200B0C0
+_0804AD5C: .4byte 0x020314E0
+_0804AD60:
+ ldr r0, [r4, #0x50]
+ adds r0, #1
+ str r0, [r4, #0x50]
+ ldr r0, _0804ADA4 @ =0x020314E0
+ ldr r2, [r0]
+ movs r0, #0xa4
+ lsls r0, r0, #2
+ adds r1, r2, r0
+ ldr r0, [r1]
+ adds r0, #1
+ str r0, [r1]
+ ldrb r0, [r2, #0x1f]
+ cmp r0, #0
+ beq _0804ADAC
+ cmp r0, #2
+ beq _0804ADD0
+ movs r4, #0
+_0804AD82:
+ ldr r0, _0804ADA4 @ =0x020314E0
+ ldr r0, [r0]
+ strb r4, [r0, #0x1e]
+ ldr r0, _0804ADA8 @ =0x020028D8
+ ldr r0, [r0, #0x2c]
+ bl sub_55694
+ lsls r0, r4, #0x10
+ movs r1, #0x80
+ lsls r1, r1, #9
+ adds r0, r0, r1
+ lsrs r4, r0, #0x10
+ asrs r0, r0, #0x10
+ cmp r0, #3
+ ble _0804AD82
+ b _0804ADD0
+ .align 2, 0
+_0804ADA4: .4byte 0x020314E0
+_0804ADA8: .4byte 0x020028D8
+_0804ADAC:
+ movs r4, #0
+_0804ADAE:
+ ldr r0, _0804AE1C @ =0x020314E0
+ ldr r0, [r0]
+ strb r4, [r0, #0x1e]
+ ldr r0, [r5, #0x2c]
+ bl sub_55694
+ ldr r0, [r5, #0x34]
+ bl sub_55694
+ lsls r0, r4, #0x10
+ movs r1, #0x80
+ lsls r1, r1, #9
+ adds r0, r0, r1
+ lsrs r4, r0, #0x10
+ asrs r0, r0, #0x10
+ cmp r0, #3
+ ble _0804ADAE
+_0804ADD0:
+ ldr r4, _0804AE20 @ =0x020028D8
+ ldr r0, [r4, #0x3c]
+ bl sub_55694
+ ldr r0, [r4, #0x44]
+ bl sub_55694
+_0804ADDE:
+ bl sub_47030
+ ldr r0, _0804AE24 @ =0x0200B0C0
+ ldr r0, [r0, #0x4c]
+ movs r1, #0x1f
+ ands r0, r1
+ lsrs r0, r0, #4
+ cmp r0, #0
+ beq _0804AE38
+ movs r4, #0
+ ldr r7, _0804AE28 @ =0x03006280
+ ldr r0, _0804AE2C @ =0xFFFFF980
+ adds r6, r7, r0
+ ldr r5, _0804AE30 @ =0x0000034A
+ ldr r1, _0804AE34 @ =0xFFFFC156
+ adds r3, r1, #0
+_0804ADFE:
+ lsls r0, r4, #0x10
+ asrs r0, r0, #0x10
+ adds r1, r0, r5
+ lsls r1, r1, #1
+ adds r1, r1, r6
+ adds r2, r0, r3
+ strh r2, [r1]
+ adds r0, #1
+ lsls r0, r0, #0x10
+ lsrs r4, r0, #0x10
+ asrs r0, r0, #0x10
+ cmp r0, #9
+ ble _0804ADFE
+ b _0804AE5C
+ .align 2, 0
+_0804AE1C: .4byte 0x020314E0
+_0804AE20: .4byte 0x020028D8
+_0804AE24: .4byte 0x0200B0C0
+_0804AE28: .4byte 0x03006280
+_0804AE2C: .4byte 0xFFFFF980
+_0804AE30: .4byte 0x0000034A
+_0804AE34: .4byte 0xFFFFC156
+_0804AE38:
+ movs r4, #0
+ ldr r7, _0804AE70 @ =0x03006280
+ ldr r0, _0804AE74 @ =0xFFFFF980
+ adds r5, r7, r0
+ ldr r3, _0804AE78 @ =0x0000034A
+ ldr r2, _0804AE7C @ =0x000001FF
+_0804AE44:
+ lsls r1, r4, #0x10
+ asrs r1, r1, #0x10
+ adds r0, r1, r3
+ lsls r0, r0, #1
+ adds r0, r0, r5
+ strh r2, [r0]
+ adds r1, #1
+ lsls r1, r1, #0x10
+ lsrs r4, r1, #0x10
+ asrs r1, r1, #0x10
+ cmp r1, #9
+ ble _0804AE44
+_0804AE5C:
+ ldr r1, _0804AE80 @ =0x040000D4
+ str r7, [r1]
+ ldr r0, _0804AE84 @ =0x06002680
+ str r0, [r1, #4]
+ ldr r0, _0804AE88 @ =0x80000020
+ str r0, [r1, #8]
+ ldr r0, [r1, #8]
+ pop {r4, r5, r6, r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0804AE70: .4byte 0x03006280
+_0804AE74: .4byte 0xFFFFF980
+_0804AE78: .4byte 0x0000034A
+_0804AE7C: .4byte 0x000001FF
+_0804AE80: .4byte 0x040000D4
+_0804AE84: .4byte 0x06002680
+_0804AE88: .4byte 0x80000020
+
+ thumb_func_start sub_4AE8C
+sub_4AE8C: @ 0x0804AE8C
+ push {r4, r5, r6, lr}
+ bl sub_4B280
+ ldr r6, _0804AF0C @ =0x020028D8
+ ldr r0, [r6, #0xc]
+ bl sub_55694
+ ldr r5, _0804AF10 @ =0x0200B0C0
+ ldrb r1, [r5, #0xf]
+ movs r0, #2
+ ands r0, r1
+ cmp r0, #0
+ beq _0804AEA8
+ b _0804AFEA
+_0804AEA8:
+ ldr r0, [r6, #4]
+ bl sub_55694
+ ldr r0, [r6, #0x14]
+ bl sub_55694
+ ldr r0, [r6, #0x1c]
+ bl sub_55694
+ ldr r0, [r6, #0x24]
+ bl sub_55694
+ ldrb r4, [r5, #0xf]
+ movs r0, #0x41
+ rsbs r0, r0, #0
+ ands r4, r0
+ cmp r4, #0
+ beq _0804AF20
+ ldr r0, _0804AF14 @ =0x020314E0
+ ldr r0, [r0]
+ ldrb r0, [r0, #0x1f]
+ cmp r0, #0
+ beq _0804AED8
+ b _0804AFDC
+_0804AED8:
+ movs r4, #0
+_0804AEDA:
+ ldr r0, _0804AF14 @ =0x020314E0
+ ldr r1, [r0]
+ adds r2, r1, #0
+ adds r2, #0x66
+ movs r0, #0
+ strh r0, [r2]
+ ldr r0, _0804AF18 @ =0x0000132C
+ adds r2, r1, r0
+ ldr r3, _0804AF1C @ =0x00001334
+ adds r0, r1, r3
+ str r0, [r2]
+ strb r4, [r1, #0x1e]
+ ldr r0, _0804AF0C @ =0x020028D8
+ ldr r0, [r0, #0x34]
+ bl sub_55694
+ lsls r0, r4, #0x10
+ movs r4, #0x80
+ lsls r4, r4, #9
+ adds r0, r0, r4
+ lsrs r4, r0, #0x10
+ asrs r0, r0, #0x10
+ cmp r0, #3
+ ble _0804AEDA
+ b _0804AFDC
+ .align 2, 0
+_0804AF0C: .4byte 0x020028D8
+_0804AF10: .4byte 0x0200B0C0
+_0804AF14: .4byte 0x020314E0
+_0804AF18: .4byte 0x0000132C
+_0804AF1C: .4byte 0x00001334
+_0804AF20:
+ ldr r0, [r5, #0x50]
+ adds r0, #1
+ str r0, [r5, #0x50]
+ ldr r0, _0804AF58 @ =0x020314E0
+ ldr r3, [r0]
+ movs r0, #0xa4
+ lsls r0, r0, #2
+ adds r1, r3, r0
+ ldr r0, [r1]
+ adds r0, #1
+ str r0, [r1]
+ ldrb r0, [r3, #0x1f]
+ cmp r0, #0
+ beq _0804AFA4
+ cmp r0, #2
+ bne _0804AF60
+ adds r0, r3, #0
+ adds r0, #0x66
+ movs r2, #0
+ strh r4, [r0]
+ ldr r4, _0804AF5C @ =0x0000132C
+ adds r1, r3, r4
+ adds r4, #8
+ adds r0, r3, r4
+ str r0, [r1]
+ strb r2, [r3, #0x1e]
+ b _0804AFDC
+ .align 2, 0
+_0804AF58: .4byte 0x020314E0
+_0804AF5C: .4byte 0x0000132C
+_0804AF60:
+ movs r4, #0
+_0804AF62:
+ ldr r0, _0804AF94 @ =0x020314E0
+ ldr r1, [r0]
+ adds r2, r1, #0
+ adds r2, #0x66
+ movs r0, #0
+ strh r0, [r2]
+ ldr r0, _0804AF98 @ =0x0000132C
+ adds r2, r1, r0
+ ldr r3, _0804AF9C @ =0x00001334
+ adds r0, r1, r3
+ str r0, [r2]
+ strb r4, [r1, #0x1e]
+ ldr r0, _0804AFA0 @ =0x020028D8
+ ldr r0, [r0, #0x2c]
+ bl sub_55694
+ lsls r0, r4, #0x10
+ movs r4, #0x80
+ lsls r4, r4, #9
+ adds r0, r0, r4
+ lsrs r4, r0, #0x10
+ asrs r0, r0, #0x10
+ cmp r0, #3
+ ble _0804AF62
+ b _0804AFDC
+ .align 2, 0
+_0804AF94: .4byte 0x020314E0
+_0804AF98: .4byte 0x0000132C
+_0804AF9C: .4byte 0x00001334
+_0804AFA0: .4byte 0x020028D8
+_0804AFA4:
+ movs r4, #0
+ adds r5, r6, #0
+_0804AFA8:
+ ldr r0, _0804AFF0 @ =0x020314E0
+ ldr r1, [r0]
+ adds r2, r1, #0
+ adds r2, #0x66
+ movs r0, #0
+ strh r0, [r2]
+ ldr r0, _0804AFF4 @ =0x0000132C
+ adds r2, r1, r0
+ ldr r3, _0804AFF8 @ =0x00001334
+ adds r0, r1, r3
+ str r0, [r2]
+ strb r4, [r1, #0x1e]
+ ldr r0, [r5, #0x2c]
+ bl sub_55694
+ ldr r0, [r5, #0x34]
+ bl sub_55694
+ lsls r0, r4, #0x10
+ movs r4, #0x80
+ lsls r4, r4, #9
+ adds r0, r0, r4
+ lsrs r4, r0, #0x10
+ asrs r0, r0, #0x10
+ cmp r0, #3
+ ble _0804AFA8
+_0804AFDC:
+ ldr r4, _0804AFFC @ =0x020028D8
+ ldr r0, [r4, #0x3c]
+ bl sub_55694
+ ldr r0, [r4, #0x44]
+ bl sub_55694
+_0804AFEA:
+ pop {r4, r5, r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0804AFF0: .4byte 0x020314E0
+_0804AFF4: .4byte 0x0000132C
+_0804AFF8: .4byte 0x00001334
+_0804AFFC: .4byte 0x020028D8
+
+ thumb_func_start sub_4B000
+sub_4B000: @ 0x0804B000
+ push {r4, r5, r6, r7, lr}
+ bl sub_4B334
+ ldr r5, _0804B07C @ =0x0200B0C0
+ ldrb r1, [r5, #0xf]
+ movs r0, #2
+ ands r0, r1
+ cmp r0, #0
+ beq _0804B014
+ b _0804B15A
+_0804B014:
+ ldr r6, _0804B080 @ =0x020028D8
+ ldr r0, [r6, #4]
+ bl sub_55694
+ ldr r0, [r6, #0x14]
+ bl sub_55694
+ ldr r0, [r6, #0x1c]
+ bl sub_55694
+ ldr r0, [r6, #0x24]
+ bl sub_55694
+ ldrb r4, [r5, #0xf]
+ movs r0, #0x41
+ rsbs r0, r0, #0
+ ands r4, r0
+ cmp r4, #0
+ beq _0804B090
+ ldr r0, _0804B084 @ =0x020314E0
+ ldr r0, [r0]
+ ldrb r0, [r0, #0x1f]
+ cmp r0, #0
+ beq _0804B046
+ b _0804B14C
+_0804B046:
+ movs r4, #0
+_0804B048:
+ ldr r0, _0804B084 @ =0x020314E0
+ ldr r1, [r0]
+ adds r2, r1, #0
+ adds r2, #0x66
+ movs r0, #0
+ strh r0, [r2]
+ ldr r0, _0804B088 @ =0x0000132C
+ adds r2, r1, r0
+ ldr r3, _0804B08C @ =0x00001334
+ adds r0, r1, r3
+ str r0, [r2]
+ strb r4, [r1, #0x1e]
+ ldr r0, _0804B080 @ =0x020028D8
+ ldr r0, [r0, #0x34]
+ bl sub_55694
+ lsls r0, r4, #0x10
+ movs r4, #0x80
+ lsls r4, r4, #9
+ adds r0, r0, r4
+ lsrs r4, r0, #0x10
+ asrs r0, r0, #0x10
+ cmp r0, #3
+ ble _0804B048
+ b _0804B14C
+ .align 2, 0
+_0804B07C: .4byte 0x0200B0C0
+_0804B080: .4byte 0x020028D8
+_0804B084: .4byte 0x020314E0
+_0804B088: .4byte 0x0000132C
+_0804B08C: .4byte 0x00001334
+_0804B090:
+ ldr r0, [r5, #0x50]
+ adds r0, #1
+ str r0, [r5, #0x50]
+ ldr r0, _0804B0C8 @ =0x020314E0
+ ldr r3, [r0]
+ movs r0, #0xa4
+ lsls r0, r0, #2
+ adds r1, r3, r0
+ ldr r0, [r1]
+ adds r0, #1
+ str r0, [r1]
+ ldrb r0, [r3, #0x1f]
+ cmp r0, #0
+ beq _0804B114
+ cmp r0, #2
+ bne _0804B0D0
+ adds r0, r3, #0
+ adds r0, #0x66
+ movs r2, #0
+ strh r4, [r0]
+ ldr r4, _0804B0CC @ =0x0000132C
+ adds r1, r3, r4
+ adds r4, #8
+ adds r0, r3, r4
+ str r0, [r1]
+ strb r2, [r3, #0x1e]
+ b _0804B14C
+ .align 2, 0
+_0804B0C8: .4byte 0x020314E0
+_0804B0CC: .4byte 0x0000132C
+_0804B0D0:
+ movs r4, #0
+_0804B0D2:
+ ldr r0, _0804B104 @ =0x020314E0
+ ldr r1, [r0]
+ adds r2, r1, #0
+ adds r2, #0x66
+ movs r0, #0
+ strh r0, [r2]
+ ldr r0, _0804B108 @ =0x0000132C
+ adds r2, r1, r0
+ ldr r3, _0804B10C @ =0x00001334
+ adds r0, r1, r3
+ str r0, [r2]
+ strb r4, [r1, #0x1e]
+ ldr r0, _0804B110 @ =0x020028D8
+ ldr r0, [r0, #0x2c]
+ bl sub_55694
+ lsls r0, r4, #0x10
+ movs r4, #0x80
+ lsls r4, r4, #9
+ adds r0, r0, r4
+ lsrs r4, r0, #0x10
+ asrs r0, r0, #0x10
+ cmp r0, #3
+ ble _0804B0D2
+ b _0804B14C
+ .align 2, 0
+_0804B104: .4byte 0x020314E0
+_0804B108: .4byte 0x0000132C
+_0804B10C: .4byte 0x00001334
+_0804B110: .4byte 0x020028D8
+_0804B114:
+ movs r4, #0
+ adds r5, r6, #0
+_0804B118:
+ ldr r0, _0804B194 @ =0x020314E0
+ ldr r1, [r0]
+ adds r2, r1, #0
+ adds r2, #0x66
+ movs r0, #0
+ strh r0, [r2]
+ ldr r0, _0804B198 @ =0x0000132C
+ adds r2, r1, r0
+ ldr r3, _0804B19C @ =0x00001334
+ adds r0, r1, r3
+ str r0, [r2]
+ strb r4, [r1, #0x1e]
+ ldr r0, [r5, #0x2c]
+ bl sub_55694
+ ldr r0, [r5, #0x34]
+ bl sub_55694
+ lsls r0, r4, #0x10
+ movs r4, #0x80
+ lsls r4, r4, #9
+ adds r0, r0, r4
+ lsrs r4, r0, #0x10
+ asrs r0, r0, #0x10
+ cmp r0, #3
+ ble _0804B118
+_0804B14C:
+ ldr r4, _0804B1A0 @ =0x020028D8
+ ldr r0, [r4, #0x3c]
+ bl sub_55694
+ ldr r0, [r4, #0x44]
+ bl sub_55694
+_0804B15A:
+ ldr r0, _0804B1A4 @ =0x0200B0C0
+ ldr r0, [r0, #0x4c]
+ movs r1, #0x1f
+ ands r0, r1
+ lsrs r0, r0, #4
+ cmp r0, #0
+ beq _0804B1B8
+ movs r4, #0
+ ldr r7, _0804B1A8 @ =0x03006240
+ ldr r0, _0804B1AC @ =0xFFFFF9C0
+ adds r6, r7, r0
+ ldr r5, _0804B1B0 @ =0x0000032B
+ ldr r1, _0804B1B4 @ =0xFFFFC156
+ adds r3, r1, #0
+_0804B176:
+ lsls r0, r4, #0x10
+ asrs r0, r0, #0x10
+ adds r1, r0, r5
+ lsls r1, r1, #1
+ adds r1, r1, r6
+ adds r2, r0, r3
+ strh r2, [r1]
+ adds r0, #1
+ lsls r0, r0, #0x10
+ lsrs r4, r0, #0x10
+ asrs r0, r0, #0x10
+ cmp r0, #8
+ ble _0804B176
+ b _0804B1DC
+ .align 2, 0
+_0804B194: .4byte 0x020314E0
+_0804B198: .4byte 0x0000132C
+_0804B19C: .4byte 0x00001334
+_0804B1A0: .4byte 0x020028D8
+_0804B1A4: .4byte 0x0200B0C0
+_0804B1A8: .4byte 0x03006240
+_0804B1AC: .4byte 0xFFFFF9C0
+_0804B1B0: .4byte 0x0000032B
+_0804B1B4: .4byte 0xFFFFC156
+_0804B1B8:
+ movs r4, #0
+ ldr r7, _0804B1F0 @ =0x03006240
+ ldr r3, _0804B1F4 @ =0xFFFFF9C0
+ adds r5, r7, r3
+ ldr r3, _0804B1F8 @ =0x0000032B
+ ldr r2, _0804B1FC @ =0x000001FF
+_0804B1C4:
+ lsls r1, r4, #0x10
+ asrs r1, r1, #0x10
+ adds r0, r1, r3
+ lsls r0, r0, #1
+ adds r0, r0, r5
+ strh r2, [r0]
+ adds r1, #1
+ lsls r1, r1, #0x10
+ lsrs r4, r1, #0x10
+ asrs r1, r1, #0x10
+ cmp r1, #8
+ ble _0804B1C4
+_0804B1DC:
+ ldr r1, _0804B200 @ =0x040000D4
+ str r7, [r1]
+ ldr r0, _0804B204 @ =0x06002640
+ str r0, [r1, #4]
+ ldr r0, _0804B208 @ =0x80000020
+ str r0, [r1, #8]
+ ldr r0, [r1, #8]
+ pop {r4, r5, r6, r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0804B1F0: .4byte 0x03006240
+_0804B1F4: .4byte 0xFFFFF9C0
+_0804B1F8: .4byte 0x0000032B
+_0804B1FC: .4byte 0x000001FF
+_0804B200: .4byte 0x040000D4
+_0804B204: .4byte 0x06002640
+_0804B208: .4byte 0x80000020
+
+ thumb_func_start sub_4B20C
+sub_4B20C: @ 0x0804B20C
+ push {r4, lr}
+ ldr r4, _0804B250 @ =0x0200B0C0
+ adds r1, r4, #0
+ adds r1, #0x36
+ movs r0, #0
+ strb r0, [r1]
+ bl sub_2B4
+ bl sub_53EDC
+ bl sub_D10
+ ldr r0, _0804B254 @ =0x020314E0
+ ldr r1, [r0]
+ ldr r0, [r1, #0x44]
+ str r0, [r4, #0x58]
+ ldr r0, [r1, #0x48]
+ str r0, [r4, #0x5c]
+ ldrb r0, [r4, #0xe]
+ cmp r0, #2
+ bne _0804B23A
+ bl sub_4B654
+_0804B23A:
+ ldrb r0, [r4, #0xe]
+ cmp r0, #0
+ bne _0804B262
+ ldrb r0, [r4, #4]
+ cmp r0, #1
+ bls _0804B258
+ movs r0, #0xb
+ bl sub_23C
+ b _0804B276
+ .align 2, 0
+_0804B250: .4byte 0x0200B0C0
+_0804B254: .4byte 0x020314E0
+_0804B258:
+ ldr r0, [r4, #8]
+ ldr r1, _0804B26C @ =0x00FFFF00
+ ands r0, r1
+ cmp r0, #0
+ beq _0804B270
+_0804B262:
+ movs r0, #0
+ bl sub_23C
+ b _0804B276
+ .align 2, 0
+_0804B26C: .4byte 0x00FFFF00
+_0804B270:
+ movs r0, #8
+ bl sub_23C
+_0804B276:
+ pop {r4}
+ pop {r0}
+ bx r0
+
+ thumb_func_start nullsub_19
+nullsub_19: @ 0x0804B27C
+ bx lr
+
+ thumb_func_start sub_4B280
+sub_4B280: @ 0x0804B280
+ push {r4, r5, lr}
+ movs r3, #0
+ ldr r4, _0804B2F8 @ =0x020314E0
+ ldr r0, _0804B2FC @ =0x0200B0C0
+ mov ip, r0
+ adds r2, r4, #0
+ movs r1, #0
+_0804B28E:
+ ldr r0, [r2]
+ adds r0, #4
+ adds r0, r0, r3
+ strb r1, [r0]
+ ldr r0, [r2]
+ adds r0, #9
+ adds r0, r0, r3
+ strb r1, [r0]
+ adds r0, r3, #1
+ lsls r0, r0, #0x10
+ lsrs r3, r0, #0x10
+ cmp r3, #4
+ bls _0804B28E
+ mov r1, ip
+ ldrb r0, [r1, #0xf]
+ cmp r0, #0
+ bne _0804B32E
+ movs r3, #0
+ movs r5, #1
+_0804B2B4:
+ lsls r2, r3, #2
+ mov r1, ip
+ adds r1, #0x60
+ adds r1, r2, r1
+ mov r0, ip
+ adds r0, #0x62
+ adds r2, r2, r0
+ ldrh r1, [r1]
+ ldrh r0, [r2]
+ orrs r1, r0
+ ldr r2, _0804B300 @ =0x000003FF
+ adds r0, r2, #0
+ ands r1, r0
+ mov r2, ip
+ ldrh r0, [r2, #0x1c]
+ ands r0, r1
+ cmp r1, r0
+ bne _0804B304
+ ldr r1, [r4]
+ adds r0, r1, #0
+ adds r0, #0xe
+ adds r0, r0, r3
+ ldrb r0, [r0]
+ cmp r0, #0
+ bne _0804B2EC
+ adds r0, r1, #4
+ adds r0, r0, r3
+ strb r5, [r0]
+_0804B2EC:
+ ldr r0, [r4]
+ adds r0, #0xe
+ adds r0, r0, r3
+ strb r5, [r0]
+ b _0804B324
+ .align 2, 0
+_0804B2F8: .4byte 0x020314E0
+_0804B2FC: .4byte 0x0200B0C0
+_0804B300: .4byte 0x000003FF
+_0804B304:
+ ldr r1, [r4]
+ adds r0, r1, #0
+ adds r0, #0xe
+ adds r0, r0, r3
+ ldrb r0, [r0]
+ cmp r0, #0
+ beq _0804B31A
+ adds r0, r1, #0
+ adds r0, #9
+ adds r0, r0, r3
+ strb r5, [r0]
+_0804B31A:
+ ldr r0, [r4]
+ adds r0, #0xe
+ adds r0, r0, r3
+ movs r1, #0
+ strb r1, [r0]
+_0804B324:
+ adds r0, r3, #1
+ lsls r0, r0, #0x10
+ lsrs r3, r0, #0x10
+ cmp r3, #4
+ bls _0804B2B4
+_0804B32E:
+ pop {r4, r5}
+ pop {r0}
+ bx r0
+
+ thumb_func_start sub_4B334
+sub_4B334: @ 0x0804B334
+ push {r4, r5, r6, r7, lr}
+ mov r7, sb
+ mov r6, r8
+ push {r6, r7}
+ movs r3, #0
+ ldr r0, _0804B3F4 @ =0x020314E0
+ mov r8, r0
+ ldr r1, _0804B3F8 @ =0x0200B0C0
+ mov sb, r1
+ mov r2, r8
+ movs r1, #0
+_0804B34A:
+ ldr r0, [r2]
+ adds r0, #4
+ adds r0, r0, r3
+ strb r1, [r0]
+ ldr r0, [r2]
+ adds r0, #9
+ adds r0, r0, r3
+ strb r1, [r0]
+ adds r0, r3, #1
+ lsls r0, r0, #0x10
+ lsrs r3, r0, #0x10
+ cmp r3, #4
+ bls _0804B34A
+ mov r1, sb
+ ldrb r0, [r1, #0xf]
+ cmp r0, #0
+ bne _0804B3E6
+ ldr r0, _0804B3FC @ =0x02031510
+ ldr r2, [r0]
+ ldr r1, _0804B400 @ =0x00000E0F
+ mov ip, r0
+ cmp r2, r1
+ bhi _0804B3D6
+ movs r3, #0
+ ldr r7, _0804B3F4 @ =0x020314E0
+ ldr r6, _0804B404 @ =0x02031520
+ mov r5, ip
+ movs r4, #1
+_0804B382:
+ ldr r2, [r7]
+ adds r2, #4
+ adds r2, r2, r3
+ ldr r0, [r5]
+ ldr r1, [r6, #0x10]
+ lsls r0, r0, #2
+ adds r0, r0, r1
+ ldrb r0, [r0]
+ asrs r0, r3
+ ands r0, r4
+ strb r0, [r2]
+ ldr r2, [r7]
+ adds r2, #9
+ adds r2, r2, r3
+ ldr r0, [r5]
+ ldr r1, [r6, #0x10]
+ lsls r0, r0, #2
+ adds r0, r0, r1
+ ldrb r0, [r0, #1]
+ asrs r0, r3
+ ands r0, r4
+ strb r0, [r2]
+ ldr r2, [r7]
+ adds r2, #0xe
+ adds r2, r2, r3
+ ldr r0, [r5]
+ ldr r1, [r6, #0x10]
+ lsls r0, r0, #2
+ adds r0, r0, r1
+ ldrb r0, [r0, #2]
+ asrs r0, r3
+ ands r0, r4
+ strb r0, [r2]
+ adds r0, r3, #1
+ lsls r0, r0, #0x10
+ lsrs r3, r0, #0x10
+ cmp r3, #4
+ bls _0804B382
+ mov r1, ip
+ ldr r0, [r1]
+ adds r0, #1
+ str r0, [r1]
+_0804B3D6:
+ mov r1, r8
+ ldr r0, [r1]
+ ldrb r0, [r0, #5]
+ cmp r0, #0
+ beq _0804B3E6
+ movs r0, #1
+ mov r1, sb
+ strh r0, [r1, #0x18]
+_0804B3E6:
+ pop {r3, r4}
+ mov r8, r3
+ mov sb, r4
+ pop {r4, r5, r6, r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0804B3F4: .4byte 0x020314E0
+_0804B3F8: .4byte 0x0200B0C0
+_0804B3FC: .4byte 0x02031510
+_0804B400: .4byte 0x00000E0F
+_0804B404: .4byte 0x02031520
+
+ thumb_func_start sub_4B408
+sub_4B408: @ 0x0804B408
+ push {r4, r5, r6, r7, lr}
+ mov r7, r8
+ push {r7}
+ lsls r0, r0, #0x10
+ lsrs r4, r0, #0x10
+ ldr r2, _0804B430 @ =0x02032EE0
+ ldr r0, [r2, #4]
+ cmp r0, #0
+ blt _0804B43C
+ ldr r0, _0804B434 @ =0x020314E0
+ ldr r0, [r0]
+ ldr r1, _0804B438 @ =0x00000F4C
+ adds r0, r0, r1
+ ldr r1, [r2]
+ str r1, [r0]
+ adds r0, r2, #0
+ bl sub_545F0
+ b _0804B448
+ .align 2, 0
+_0804B430: .4byte 0x02032EE0
+_0804B434: .4byte 0x020314E0
+_0804B438: .4byte 0x00000F4C
+_0804B43C:
+ ldr r0, _0804B5EC @ =0x020314E0
+ ldr r0, [r0]
+ ldr r2, _0804B5F0 @ =0x00000F4C
+ adds r0, r0, r2
+ movs r1, #0
+ str r1, [r0]
+_0804B448:
+ movs r3, #0
+ ldr r6, _0804B5EC @ =0x020314E0
+ ldr r0, _0804B5F4 @ =0x0200B0C0
+ mov ip, r0
+ lsls r4, r4, #0x10
+ mov r8, r4
+ mov r5, ip
+ adds r7, r6, #0
+_0804B458:
+ ldr r4, [r7]
+ lsls r1, r3, #0x10
+ asrs r1, r1, #0x10
+ lsls r2, r1, #1
+ ldrb r3, [r5, #6]
+ movs r0, #0xc8
+ muls r0, r3, r0
+ adds r2, r2, r0
+ ldr r3, _0804B5F8 @ =0x00000F68
+ adds r4, r4, r3
+ adds r4, r4, r2
+ movs r0, #0xb8
+ muls r0, r1, r0
+ adds r0, r0, r5
+ movs r2, #0xbe
+ lsls r2, r2, #2
+ adds r0, r0, r2
+ ldrh r0, [r0]
+ strh r0, [r4]
+ adds r1, #1
+ lsls r1, r1, #0x10
+ lsrs r3, r1, #0x10
+ asrs r1, r1, #0x10
+ cmp r1, #0x63
+ ble _0804B458
+ ldr r2, _0804B5FC @ =0x040000D4
+ ldr r0, _0804B600 @ =0x05000200
+ str r0, [r2]
+ mov r3, ip
+ ldrb r1, [r3, #6]
+ lsls r1, r1, #9
+ ldr r0, _0804B604 @ =0x0000074C
+ adds r1, r1, r0
+ ldr r0, [r6]
+ adds r0, r0, r1
+ str r0, [r2, #4]
+ ldr r3, _0804B608 @ =0x80000100
+ str r3, [r2, #8]
+ ldr r0, [r2, #8]
+ movs r0, #0xa0
+ lsls r0, r0, #0x13
+ str r0, [r2]
+ mov r0, ip
+ ldrb r1, [r0, #6]
+ lsls r1, r1, #9
+ ldr r0, _0804B60C @ =0x00000B4C
+ adds r1, r1, r0
+ ldr r0, [r6]
+ adds r0, r0, r1
+ str r0, [r2, #4]
+ str r3, [r2, #8]
+ ldr r0, [r2, #8]
+ mov r1, r8
+ cmp r1, #0
+ bne _0804B4C8
+ b _0804B5E0
+_0804B4C8:
+ ldr r1, [r6]
+ ldr r3, _0804B610 @ =0x00000F58
+ adds r2, r1, r3
+ movs r0, #0xba
+ lsls r0, r0, #2
+ add r0, ip
+ ldr r0, [r0]
+ str r0, [r2]
+ ldr r0, _0804B614 @ =0x00000F5C
+ adds r2, r1, r0
+ movs r0, #0xbb
+ lsls r0, r0, #2
+ add r0, ip
+ ldr r0, [r0]
+ str r0, [r2]
+ adds r3, #8
+ adds r2, r1, r3
+ movs r0, #0xbc
+ lsls r0, r0, #2
+ add r0, ip
+ ldr r0, [r0]
+ str r0, [r2]
+ ldr r0, _0804B618 @ =0x00000F64
+ adds r2, r1, r0
+ movs r0, #0xbd
+ lsls r0, r0, #2
+ add r0, ip
+ ldr r0, [r0]
+ str r0, [r2]
+ mov r2, ip
+ ldrb r0, [r2, #4]
+ ldr r3, _0804B61C @ =0x000010FD
+ adds r1, r1, r3
+ strb r0, [r1]
+ ldr r0, [r6]
+ ldrb r1, [r2, #5]
+ ldr r2, _0804B620 @ =0x000010FE
+ adds r0, r0, r2
+ strb r1, [r0]
+ ldr r0, [r6]
+ mov r3, ip
+ ldrb r1, [r3, #6]
+ adds r2, #1
+ adds r0, r0, r2
+ strb r1, [r0]
+ ldr r0, [r6]
+ ldrb r1, [r3, #0xf]
+ ldr r3, _0804B624 @ =0x00001101
+ adds r0, r0, r3
+ strb r1, [r0]
+ ldr r0, [r6]
+ mov r2, ip
+ ldrb r1, [r2, #0x10]
+ adds r3, #1
+ adds r0, r0, r3
+ strb r1, [r0]
+ ldr r0, [r6]
+ ldrb r1, [r2, #0x11]
+ ldr r2, _0804B628 @ =0x00001103
+ adds r0, r0, r2
+ strb r1, [r0]
+ ldr r1, [r6]
+ mov r3, ip
+ ldrh r2, [r3, #0x12]
+ movs r3, #0x99
+ lsls r3, r3, #5
+ adds r0, r1, r3
+ strh r2, [r0]
+ mov r0, ip
+ ldrh r2, [r0, #0x14]
+ adds r3, #2
+ adds r0, r1, r3
+ strh r2, [r0]
+ mov r0, ip
+ ldrh r2, [r0, #0x28]
+ adds r3, #2
+ adds r0, r1, r3
+ strh r2, [r0]
+ mov r0, ip
+ ldrh r2, [r0, #0x2a]
+ adds r3, #2
+ adds r0, r1, r3
+ strh r2, [r0]
+ ldr r2, _0804B62C @ =0x00001106
+ adds r0, r1, r2
+ ldrh r2, [r0]
+ ldr r3, _0804B630 @ =0x00001110
+ adds r0, r1, r3
+ ldrh r3, [r0]
+ strh r2, [r0]
+ ldr r2, _0804B634 @ =0x00001108
+ adds r0, r1, r2
+ ldrh r2, [r0]
+ ldr r3, _0804B638 @ =0x00001112
+ adds r0, r1, r3
+ ldrh r3, [r0]
+ strh r2, [r0]
+ ldr r2, _0804B63C @ =0x0000110A
+ adds r0, r1, r2
+ ldrh r2, [r0]
+ ldr r3, _0804B640 @ =0x00001114
+ adds r0, r1, r3
+ ldrh r3, [r0]
+ strh r2, [r0]
+ ldr r2, _0804B644 @ =0x0000110C
+ adds r0, r1, r2
+ ldrh r2, [r0]
+ ldr r3, _0804B648 @ =0x00001116
+ adds r0, r1, r3
+ strh r2, [r0]
+ ldr r2, _0804B64C @ =0x0000110E
+ adds r0, r1, r2
+ ldrh r2, [r0]
+ adds r3, #2
+ adds r0, r1, r3
+ strh r2, [r0]
+ movs r0, #0xa1
+ lsls r0, r0, #1
+ add r0, ip
+ ldrb r0, [r0]
+ adds r1, #0x31
+ strb r0, [r1]
+ movs r3, #0
+ ldr r5, _0804B650 @ =0x000010F8
+ mov r4, ip
+ adds r4, #7
+_0804B5C4:
+ ldr r2, [r6]
+ lsls r0, r3, #0x10
+ asrs r0, r0, #0x10
+ adds r2, r2, r5
+ adds r2, r2, r0
+ adds r1, r0, r4
+ ldrb r1, [r1]
+ strb r1, [r2]
+ adds r0, #1
+ lsls r0, r0, #0x10
+ lsrs r3, r0, #0x10
+ asrs r0, r0, #0x10
+ cmp r0, #4
+ ble _0804B5C4
+_0804B5E0:
+ pop {r3}
+ mov r8, r3
+ pop {r4, r5, r6, r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0804B5EC: .4byte 0x020314E0
+_0804B5F0: .4byte 0x00000F4C
+_0804B5F4: .4byte 0x0200B0C0
+_0804B5F8: .4byte 0x00000F68
+_0804B5FC: .4byte 0x040000D4
+_0804B600: .4byte 0x05000200
+_0804B604: .4byte 0x0000074C
+_0804B608: .4byte 0x80000100
+_0804B60C: .4byte 0x00000B4C
+_0804B610: .4byte 0x00000F58
+_0804B614: .4byte 0x00000F5C
+_0804B618: .4byte 0x00000F64
+_0804B61C: .4byte 0x000010FD
+_0804B620: .4byte 0x000010FE
+_0804B624: .4byte 0x00001101
+_0804B628: .4byte 0x00001103
+_0804B62C: .4byte 0x00001106
+_0804B630: .4byte 0x00001110
+_0804B634: .4byte 0x00001108
+_0804B638: .4byte 0x00001112
+_0804B63C: .4byte 0x0000110A
+_0804B640: .4byte 0x00001114
+_0804B644: .4byte 0x0000110C
+_0804B648: .4byte 0x00001116
+_0804B64C: .4byte 0x0000110E
+_0804B650: .4byte 0x000010F8
+
+ thumb_func_start sub_4B654
+sub_4B654: @ 0x0804B654
+ push {lr}
+ ldr r0, _0804B66C @ =0x020314E0
+ ldr r0, [r0]
+ movs r1, #1
+ str r1, [r0]
+ ldr r1, _0804B670 @ =0x0E000544
+ ldr r2, _0804B674 @ =0x00001410
+ bl sub_55654
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0804B66C: .4byte 0x020314E0
+_0804B670: .4byte 0x0E000544
+_0804B674: .4byte 0x00001410
+
+ thumb_func_start sub_4B678
+sub_4B678: @ 0x0804B678
+ push {r4, r5, r6, r7, lr}
+ mov r7, sl
+ mov r6, sb
+ mov r5, r8
+ push {r5, r6, r7}
+ lsls r0, r0, #0x10
+ lsrs r0, r0, #0x10
+ mov r8, r0
+ cmp r0, #1
+ bne _0804B6B0
+ ldr r3, _0804B6A0 @ =0x02032FF0
+ ldr r0, _0804B6A4 @ =0x0E000544
+ ldr r1, _0804B6A8 @ =0x020314E0
+ ldr r1, [r1]
+ ldr r2, _0804B6AC @ =0x00001410
+ ldr r3, [r3]
+ bl sub_556A0
+ b _0804B746
+ .align 2, 0
+_0804B6A0: .4byte 0x02032FF0
+_0804B6A4: .4byte 0x0E000544
+_0804B6A8: .4byte 0x020314E0
+_0804B6AC: .4byte 0x00001410
+_0804B6B0:
+ mov r0, r8
+ cmp r0, #2
+ bne _0804B746
+ ldr r1, _0804B87C @ =0x040000D4
+ ldr r0, _0804B880 @ =0x02031520
+ ldr r0, [r0, #0xc]
+ str r0, [r1]
+ ldr r4, _0804B884 @ =0x020314E0
+ ldr r3, [r4]
+ str r3, [r1, #4]
+ ldr r0, _0804B888 @ =0x80000A08
+ str r0, [r1, #8]
+ ldr r0, [r1, #8]
+ ldr r1, _0804B88C @ =0x0000132C
+ adds r0, r3, r1
+ ldr r2, _0804B890 @ =0x00001334
+ adds r1, r3, r2
+ str r1, [r0]
+ ldr r5, _0804B894 @ =0x00001330
+ adds r0, r3, r5
+ str r1, [r0]
+ ldr r0, _0804B898 @ =0x0200B0C0
+ ldrh r0, [r0, #0x30]
+ movs r1, #3
+ ands r0, r1
+ cmp r0, #1
+ bne _0804B746
+ ldr r1, _0804B89C @ =0x00000614
+ adds r0, r3, r1
+ movs r2, #0
+ movs r1, #0
+ strh r1, [r0]
+ movs r5, #0x82
+ lsls r5, r5, #2
+ adds r0, r3, r5
+ strh r1, [r0]
+ adds r5, #2
+ adds r0, r3, r5
+ strb r2, [r0]
+ ldr r3, [r4]
+ movs r2, #0xe3
+ lsls r2, r2, #1
+ adds r0, r3, r2
+ strh r1, [r0]
+ movs r4, #0xe4
+ lsls r4, r4, #1
+ adds r0, r3, r4
+ strh r1, [r0]
+ subs r5, #0x3e
+ adds r0, r3, r5
+ strh r1, [r0]
+ adds r2, #4
+ adds r0, r3, r2
+ strh r1, [r0]
+ adds r4, #0xc
+ adds r0, r3, r4
+ strh r1, [r0]
+ adds r5, #0xa
+ adds r2, r3, r5
+ ldr r0, _0804B8A0 @ =0x0000FFFC
+ strh r0, [r2]
+ movs r2, #0xec
+ lsls r2, r2, #1
+ adds r0, r3, r2
+ subs r2, #0xd8
+ strh r2, [r0]
+ adds r4, #6
+ adds r0, r3, r4
+ strh r2, [r0]
+ subs r5, #8
+ adds r0, r3, r5
+ strh r1, [r0]
+ adds r2, #0xd0
+ adds r0, r3, r2
+ strh r1, [r0]
+_0804B746:
+ mov r3, r8
+ cmp r3, #0
+ bne _0804B74E
+ b _0804B8CC
+_0804B74E:
+ ldr r4, _0804B898 @ =0x0200B0C0
+ ldr r3, _0804B884 @ =0x020314E0
+ ldr r1, [r3]
+ ldr r5, _0804B8A4 @ =0x000010FD
+ adds r0, r1, r5
+ ldrb r0, [r0]
+ strb r0, [r4, #4]
+ ldr r2, _0804B8A8 @ =0x000010FE
+ adds r0, r1, r2
+ ldrb r0, [r0]
+ strb r0, [r4, #5]
+ adds r5, #2
+ adds r0, r1, r5
+ ldrb r0, [r0]
+ strb r0, [r4, #6]
+ adds r2, #3
+ adds r0, r1, r2
+ ldrb r0, [r0]
+ strb r0, [r4, #0xf]
+ adds r5, #3
+ adds r0, r1, r5
+ ldrb r0, [r0]
+ strb r0, [r4, #0x10]
+ adds r2, #2
+ adds r0, r1, r2
+ ldrb r0, [r0]
+ strb r0, [r4, #0x11]
+ movs r5, #0x99
+ lsls r5, r5, #5
+ adds r0, r1, r5
+ ldrh r0, [r0]
+ strh r0, [r4, #0x12]
+ ldr r2, _0804B8AC @ =0x00001322
+ adds r0, r1, r2
+ ldrh r0, [r0]
+ strh r0, [r4, #0x14]
+ adds r5, #4
+ adds r0, r1, r5
+ ldrh r0, [r0]
+ strh r0, [r4, #0x28]
+ adds r2, #4
+ adds r0, r1, r2
+ ldrh r0, [r0]
+ strh r0, [r4, #0x2a]
+ ldr r5, _0804B8B0 @ =0x00001110
+ adds r0, r1, r5
+ ldrh r0, [r0]
+ ldrh r2, [r4, #0x38]
+ strh r0, [r4, #0x38]
+ ldr r2, _0804B8B4 @ =0x00001112
+ adds r0, r1, r2
+ ldrh r0, [r0]
+ ldrh r2, [r4, #0x3a]
+ strh r0, [r4, #0x3a]
+ adds r5, #4
+ adds r0, r1, r5
+ ldrh r0, [r0]
+ ldrh r2, [r4, #0x3c]
+ strh r0, [r4, #0x3c]
+ ldr r2, _0804B8B8 @ =0x00001116
+ adds r0, r1, r2
+ ldrh r0, [r0]
+ strh r0, [r4, #0x2c]
+ adds r5, #4
+ adds r0, r1, r5
+ ldrh r0, [r0]
+ strh r0, [r4, #0x26]
+ movs r0, #0xba
+ lsls r0, r0, #2
+ adds r2, r4, r0
+ ldr r5, _0804B8BC @ =0x00000F58
+ adds r0, r1, r5
+ ldr r0, [r0]
+ str r0, [r2]
+ movs r0, #0xbb
+ lsls r0, r0, #2
+ adds r2, r4, r0
+ adds r5, #4
+ adds r0, r1, r5
+ ldr r0, [r0]
+ str r0, [r2]
+ movs r0, #0xbc
+ lsls r0, r0, #2
+ adds r2, r4, r0
+ adds r5, #4
+ adds r0, r1, r5
+ ldr r0, [r0]
+ str r0, [r2]
+ movs r0, #0xbd
+ lsls r0, r0, #2
+ adds r2, r4, r0
+ adds r5, #4
+ adds r1, r1, r5
+ ldr r0, [r1]
+ str r0, [r2]
+ movs r5, #0
+ mov sl, r3
+ adds r7, r4, #0
+ adds r6, r7, #7
+ mov r4, sl
+ ldr r3, _0804B8C0 @ =0x000010F8
+_0804B818:
+ lsls r1, r5, #0x10
+ asrs r1, r1, #0x10
+ adds r2, r1, r6
+ ldr r0, [r4]
+ adds r0, r0, r3
+ adds r0, r0, r1
+ ldrb r0, [r0]
+ strb r0, [r2]
+ adds r1, #1
+ lsls r1, r1, #0x10
+ lsrs r5, r1, #0x10
+ asrs r1, r1, #0x10
+ cmp r1, #4
+ ble _0804B818
+ mov r1, sl
+ ldr r0, [r1]
+ movs r2, #0x88
+ lsls r2, r2, #5
+ adds r0, r0, r2
+ movs r1, #1
+ strb r1, [r0]
+ mov r3, r8
+ cmp r3, #1
+ bne _0804B8DA
+ ldrb r0, [r7, #4]
+ cmp r0, #1
+ bhi _0804B8DA
+ mov r4, sl
+ ldr r3, [r4]
+ adds r2, r3, #0
+ adds r2, #0x4e
+ ldr r5, _0804B8C4 @ =0x00000121
+ adds r0, r3, r5
+ movs r1, #0
+ ldrsb r1, [r0, r1]
+ ldrh r2, [r2]
+ adds r1, r1, r2
+ ldr r2, _0804B8C8 @ =0x000005FC
+ adds r0, r3, r2
+ ldrh r0, [r0]
+ adds r2, r3, #0
+ adds r2, #0xe6
+ adds r0, r0, r1
+ ldrh r2, [r2]
+ adds r0, r0, r2
+ adds r1, r3, #0
+ adds r1, #0x68
+ strh r0, [r1]
+ b _0804B8DA
+ .align 2, 0
+_0804B87C: .4byte 0x040000D4
+_0804B880: .4byte 0x02031520
+_0804B884: .4byte 0x020314E0
+_0804B888: .4byte 0x80000A08
+_0804B88C: .4byte 0x0000132C
+_0804B890: .4byte 0x00001334
+_0804B894: .4byte 0x00001330
+_0804B898: .4byte 0x0200B0C0
+_0804B89C: .4byte 0x00000614
+_0804B8A0: .4byte 0x0000FFFC
+_0804B8A4: .4byte 0x000010FD
+_0804B8A8: .4byte 0x000010FE
+_0804B8AC: .4byte 0x00001322
+_0804B8B0: .4byte 0x00001110
+_0804B8B4: .4byte 0x00001112
+_0804B8B8: .4byte 0x00001116
+_0804B8BC: .4byte 0x00000F58
+_0804B8C0: .4byte 0x000010F8
+_0804B8C4: .4byte 0x00000121
+_0804B8C8: .4byte 0x000005FC
+_0804B8CC:
+ ldr r0, _0804B958 @ =0x020314E0
+ ldr r0, [r0]
+ adds r1, r0, #0
+ adds r1, #0x6a
+ ldrh r1, [r1]
+ adds r0, #0x68
+ strh r1, [r0]
+_0804B8DA:
+ ldr r5, _0804B958 @ =0x020314E0
+ ldr r0, [r5]
+ movs r1, #0
+ strb r1, [r0, #0x1d]
+ ldr r4, _0804B95C @ =0x0200B0C0
+ strb r1, [r4, #0xd]
+ bl sub_467F4
+ ldrb r0, [r4, #4]
+ cmp r0, #0
+ bne _0804B902
+ ldr r0, [r5]
+ ldr r3, _0804B960 @ =0x0000029E
+ adds r0, r0, r3
+ ldrb r0, [r0]
+ cmp r0, #0
+ beq _0804B902
+ movs r0, #1
+ bl sub_46FD4
+_0804B902:
+ ldr r0, _0804B95C @ =0x0200B0C0
+ ldrb r1, [r0, #4]
+ ldr r4, _0804B958 @ =0x020314E0
+ mov sl, r4
+ adds r7, r0, #0
+ ldr r5, _0804B964 @ =0x03005C00
+ mov sb, r5
+ cmp r1, #1
+ bhi _0804B9A0
+ movs r5, #0
+ ldr r6, _0804B968 @ =0x040000D4
+_0804B918:
+ mov r0, sl
+ ldr r2, [r0]
+ adds r2, #0x64
+ ldrh r1, [r2]
+ lsls r0, r5, #0x10
+ asrs r0, r0, #0x10
+ adds r1, r0, r1
+ lsls r1, r1, #0x10
+ lsrs r4, r1, #0x10
+ movs r3, #0
+ ldrsh r1, [r2, r3]
+ adds r1, #0xa
+ adds r0, r0, r1
+ movs r1, #0x16
+ bl sub_55768
+ lsls r0, r0, #0x10
+ lsrs r2, r0, #0x10
+ lsls r0, r4, #0x10
+ asrs r0, r0, #0x10
+ cmp r0, #0x1f
+ bgt _0804B974
+ lsls r0, r0, #0xa
+ ldr r1, _0804B96C @ =0x0200FBB0
+ adds r0, r0, r1
+ str r0, [r6]
+ lsls r0, r2, #0x10
+ asrs r0, r0, #6
+ ldr r4, _0804B970 @ =0x06008000
+ adds r0, r0, r4
+ b _0804B988
+ .align 2, 0
+_0804B958: .4byte 0x020314E0
+_0804B95C: .4byte 0x0200B0C0
+_0804B960: .4byte 0x0000029E
+_0804B964: .4byte 0x03005C00
+_0804B968: .4byte 0x040000D4
+_0804B96C: .4byte 0x0200FBB0
+_0804B970: .4byte 0x06008000
+_0804B974:
+ subs r0, #0x20
+ lsls r0, r0, #0x10
+ asrs r0, r0, #6
+ ldr r1, _0804BA38 @ =0x020030A0
+ adds r0, r0, r1
+ str r0, [r6]
+ lsls r0, r2, #0x10
+ asrs r0, r0, #6
+ ldr r1, _0804BA3C @ =0x06008000
+ adds r0, r0, r1
+_0804B988:
+ str r0, [r6, #4]
+ ldr r0, _0804BA40 @ =0x80000200
+ str r0, [r6, #8]
+ ldr r0, [r6, #8]
+ lsls r0, r5, #0x10
+ movs r2, #0x80
+ lsls r2, r2, #9
+ adds r0, r0, r2
+ lsrs r5, r0, #0x10
+ asrs r0, r0, #0x10
+ cmp r0, #0x15
+ ble _0804B918
+_0804B9A0:
+ movs r5, #0
+ ldr r4, _0804BA44 @ =0x03005C00
+ ldr r3, _0804BA48 @ =0x000001FF
+ ldr r2, _0804BA4C @ =0x000007FF
+_0804B9A8:
+ lsls r1, r5, #0x10
+ asrs r1, r1, #0x10
+ lsls r0, r1, #1
+ adds r0, r0, r4
+ strh r3, [r0]
+ adds r1, #1
+ lsls r1, r1, #0x10
+ lsrs r5, r1, #0x10
+ asrs r1, r1, #0x10
+ cmp r1, r2
+ ble _0804B9A8
+ ldr r1, _0804BA50 @ =0x040000D4
+ mov r3, sb
+ str r3, [r1]
+ ldr r0, _0804BA54 @ =0x06002000
+ str r0, [r1, #4]
+ ldr r0, _0804BA58 @ =0x80000800
+ str r0, [r1, #8]
+ ldr r0, [r1, #8]
+ movs r4, #0x2c
+ ldrsh r0, [r7, r4]
+ cmp r0, #0
+ beq _0804BABE
+ mov r5, sl
+ ldr r1, [r5]
+ movs r0, #0x13
+ ldrsb r0, [r1, r0]
+ cmp r0, #6
+ bne _0804BA5C
+ movs r2, #0
+ movs r3, #0xa6
+ lsls r3, r3, #2
+ adds r0, r1, r3
+ ldrh r0, [r0]
+ cmp r2, r0
+ bgt _0804BAAE
+ mov r6, sb
+ movs r4, #0xc1
+ lsls r4, r4, #8
+_0804B9F6:
+ movs r5, #2
+ lsls r2, r2, #0x10
+ asrs r3, r2, #0x10
+_0804B9FC:
+ lsls r1, r5, #0x10
+ asrs r1, r1, #0x10
+ adds r0, r1, #0
+ adds r0, #0xf
+ lsls r0, r0, #5
+ adds r0, r0, r3
+ lsls r0, r0, #1
+ adds r0, r0, r6
+ strh r4, [r0]
+ adds r1, #1
+ lsls r1, r1, #0x10
+ lsrs r5, r1, #0x10
+ asrs r1, r1, #0x10
+ cmp r1, #0xb
+ ble _0804B9FC
+ movs r5, #0x80
+ lsls r5, r5, #9
+ adds r1, r2, r5
+ lsrs r2, r1, #0x10
+ asrs r1, r1, #0x10
+ mov r3, sl
+ ldr r0, [r3]
+ movs r5, #0xa6
+ lsls r5, r5, #2
+ adds r0, r0, r5
+ ldrh r0, [r0]
+ cmp r1, r0
+ ble _0804B9F6
+ b _0804BAAE
+ .align 2, 0
+_0804BA38: .4byte 0x020030A0
+_0804BA3C: .4byte 0x06008000
+_0804BA40: .4byte 0x80000200
+_0804BA44: .4byte 0x03005C00
+_0804BA48: .4byte 0x000001FF
+_0804BA4C: .4byte 0x000007FF
+_0804BA50: .4byte 0x040000D4
+_0804BA54: .4byte 0x06002000
+_0804BA58: .4byte 0x80000800
+_0804BA5C:
+ movs r2, #0
+ movs r3, #0xa6
+ lsls r3, r3, #2
+ adds r0, r1, r3
+ ldrh r0, [r0]
+ cmp r2, r0
+ bgt _0804BAAE
+ mov r6, sb
+ movs r4, #0xc1
+ lsls r4, r4, #8
+_0804BA70:
+ movs r5, #1
+ lsls r2, r2, #0x10
+ asrs r3, r2, #0x10
+_0804BA76:
+ lsls r1, r5, #0x10
+ asrs r1, r1, #0x10
+ adds r0, r1, #0
+ adds r0, #0xf
+ lsls r0, r0, #5
+ adds r0, r0, r3
+ lsls r0, r0, #1
+ adds r0, r0, r6
+ strh r4, [r0]
+ adds r1, #1
+ lsls r1, r1, #0x10
+ lsrs r5, r1, #0x10
+ asrs r1, r1, #0x10
+ cmp r1, #0xa
+ ble _0804BA76
+ movs r5, #0x80
+ lsls r5, r5, #9
+ adds r1, r2, r5
+ lsrs r2, r1, #0x10
+ asrs r1, r1, #0x10
+ mov r3, sl
+ ldr r0, [r3]
+ movs r5, #0xa6
+ lsls r5, r5, #2
+ adds r0, r0, r5
+ ldrh r0, [r0]
+ cmp r1, r0
+ ble _0804BA70
+_0804BAAE:
+ ldr r1, _0804BB20 @ =0x040000D4
+ mov r0, sb
+ str r0, [r1]
+ ldr r0, _0804BB24 @ =0x06002000
+ str r0, [r1, #4]
+ ldr r0, _0804BB28 @ =0x80000400
+ str r0, [r1, #8]
+ ldr r0, [r1, #8]
+_0804BABE:
+ ldr r1, _0804BB20 @ =0x040000D4
+ ldr r2, _0804BB2C @ =0x020314E0
+ ldr r4, _0804BB30 @ =0x0200B0C0
+ ldrb r0, [r4, #6]
+ lsls r0, r0, #9
+ ldr r3, _0804BB34 @ =0x0000074C
+ adds r0, r0, r3
+ ldr r2, [r2]
+ adds r0, r2, r0
+ str r0, [r1]
+ ldr r0, _0804BB38 @ =0x05000200
+ str r0, [r1, #4]
+ ldr r3, _0804BB3C @ =0x80000100
+ str r3, [r1, #8]
+ ldr r0, [r1, #8]
+ ldrb r0, [r4, #6]
+ lsls r0, r0, #9
+ ldr r5, _0804BB40 @ =0x00000B4C
+ adds r0, r0, r5
+ adds r0, r2, r0
+ str r0, [r1]
+ movs r0, #0xa0
+ lsls r0, r0, #0x13
+ str r0, [r1, #4]
+ str r3, [r1, #8]
+ ldr r0, [r1, #8]
+ ldr r0, _0804BB44 @ =0x000005F6
+ adds r2, r2, r0
+ movs r0, #0
+ ldrsb r0, [r2, r0]
+ lsls r0, r0, #5
+ ldr r2, _0804BB48 @ =0x08137E14
+ adds r0, r0, r2
+ str r0, [r1]
+ ldr r0, _0804BB4C @ =0x05000220
+ str r0, [r1, #4]
+ ldr r0, _0804BB50 @ =0x80000010
+ str r0, [r1, #8]
+ ldr r0, [r1, #8]
+ bl sub_4BC34
+ ldrb r0, [r4, #4]
+ cmp r0, #7
+ bhi _0804BBC0
+ lsls r0, r0, #2
+ ldr r1, _0804BB54 @ =_0804BB58
+ adds r0, r0, r1
+ ldr r0, [r0]
+ mov pc, r0
+ .align 2, 0
+_0804BB20: .4byte 0x040000D4
+_0804BB24: .4byte 0x06002000
+_0804BB28: .4byte 0x80000400
+_0804BB2C: .4byte 0x020314E0
+_0804BB30: .4byte 0x0200B0C0
+_0804BB34: .4byte 0x0000074C
+_0804BB38: .4byte 0x05000200
+_0804BB3C: .4byte 0x80000100
+_0804BB40: .4byte 0x00000B4C
+_0804BB44: .4byte 0x000005F6
+_0804BB48: .4byte 0x08137E14
+_0804BB4C: .4byte 0x05000220
+_0804BB50: .4byte 0x80000010
+_0804BB54: .4byte _0804BB58
+_0804BB58: @ jump table
+ .4byte _0804BB78 @ case 0
+ .4byte _0804BB98 @ case 1
+ .4byte _0804BB9E @ case 2
+ .4byte _0804BBA4 @ case 3
+ .4byte _0804BBAA @ case 4
+ .4byte _0804BBB0 @ case 5
+ .4byte _0804BBB6 @ case 6
+ .4byte _0804BBBC @ case 7
+_0804BB78:
+ bl sub_50848
+ ldr r0, _0804BB90 @ =0x020314E0
+ ldr r0, [r0]
+ ldr r3, _0804BB94 @ =0x000001A5
+ adds r0, r0, r3
+ ldrb r0, [r0]
+ lsls r0, r0, #0x18
+ asrs r0, r0, #0x18
+ bl sub_4E9F0
+ b _0804BBC0
+ .align 2, 0
+_0804BB90: .4byte 0x020314E0
+_0804BB94: .4byte 0x000001A5
+_0804BB98:
+ bl sub_50AD4
+ b _0804BBC0
+_0804BB9E:
+ bl sub_50D48
+ b _0804BBC0
+_0804BBA4:
+ bl sub_50DE0
+ b _0804BBC0
+_0804BBAA:
+ bl sub_50F04
+ b _0804BBC0
+_0804BBB0:
+ bl sub_50FD4
+ b _0804BBC0
+_0804BBB6:
+ bl sub_51090
+ b _0804BBC0
+_0804BBBC:
+ bl sub_51150
+_0804BBC0:
+ movs r5, #0
+ ldr r4, _0804BC24 @ =0x020314E0
+ mov sl, r4
+ ldr r7, _0804BC28 @ =0x0200B0C0
+ movs r0, #0xb8
+ mov ip, r0
+_0804BBCC:
+ lsls r1, r5, #0x10
+ asrs r1, r1, #0x10
+ mov r4, ip
+ muls r4, r1, r4
+ adds r4, r4, r7
+ mov r2, sl
+ ldr r6, [r2]
+ lsls r2, r1, #1
+ ldrb r3, [r7, #6]
+ movs r0, #0xc8
+ muls r0, r3, r0
+ adds r2, r2, r0
+ ldr r3, _0804BC2C @ =0x00000F68
+ adds r0, r6, r3
+ adds r0, r0, r2
+ ldrh r0, [r0]
+ movs r5, #0xbe
+ lsls r5, r5, #2
+ adds r4, r4, r5
+ strh r0, [r4]
+ adds r1, #1
+ lsls r1, r1, #0x10
+ lsrs r5, r1, #0x10
+ asrs r1, r1, #0x10
+ cmp r1, #0x63
+ ble _0804BBCC
+ mov r0, r8
+ cmp r0, #1
+ bne _0804BC14
+ movs r0, #0
+ str r0, [r6]
+ ldr r1, _0804BC30 @ =0x0E000544
+ adds r0, r6, #0
+ movs r2, #4
+ bl sub_55654
+_0804BC14:
+ pop {r3, r4, r5}
+ mov r8, r3
+ mov sb, r4
+ mov sl, r5
+ pop {r4, r5, r6, r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0804BC24: .4byte 0x020314E0
+_0804BC28: .4byte 0x0200B0C0
+_0804BC2C: .4byte 0x00000F68
+_0804BC30: .4byte 0x0E000544
+
+ thumb_func_start sub_4BC34
+sub_4BC34: @ 0x0804BC34
+ push {r4, r5, r6, r7, lr}
+ mov r7, sb
+ mov r6, r8
+ push {r6, r7}
+ ldr r0, _0804BC50 @ =0x0200B0C0
+ ldrb r0, [r0, #4]
+ cmp r0, #7
+ bhi _0804BCC6
+ lsls r0, r0, #2
+ ldr r1, _0804BC54 @ =_0804BC58
+ adds r0, r0, r1
+ ldr r0, [r0]
+ mov pc, r0
+ .align 2, 0
+_0804BC50: .4byte 0x0200B0C0
+_0804BC54: .4byte _0804BC58
+_0804BC58: @ jump table
+ .4byte _0804BC78 @ case 0
+ .4byte _0804BC82 @ case 1
+ .4byte _0804BC8C @ case 2
+ .4byte _0804BC96 @ case 3
+ .4byte _0804BCA0 @ case 4
+ .4byte _0804BCAA @ case 5
+ .4byte _0804BCB4 @ case 6
+ .4byte _0804BCBE @ case 7
+_0804BC78:
+ bl sub_4C290
+ bl sub_4C808
+ b _0804BCC6
+_0804BC82:
+ bl sub_4C290
+ bl sub_4CA18
+ b _0804BCC6
+_0804BC8C:
+ bl nullsub_18
+ bl sub_4CAE8
+ b _0804BCC6
+_0804BC96:
+ bl nullsub_18
+ bl sub_4CB0C
+ b _0804BCC6
+_0804BCA0:
+ bl nullsub_18
+ bl sub_4CB30
+ b _0804BCC6
+_0804BCAA:
+ bl nullsub_18
+ bl sub_4CBB4
+ b _0804BCC6
+_0804BCB4:
+ bl nullsub_18
+ bl sub_4CC58
+ b _0804BCC6
+_0804BCBE:
+ bl nullsub_18
+ bl sub_4CD60
+_0804BCC6:
+ ldr r0, _0804BCE4 @ =0x020314E0
+ ldr r1, [r0]
+ adds r1, #0xe4
+ ldrb r1, [r1]
+ subs r1, #1
+ adds r3, r0, #0
+ cmp r1, #0x15
+ bls _0804BCD8
+ b _0804C274
+_0804BCD8:
+ lsls r0, r1, #2
+ ldr r1, _0804BCE8 @ =_0804BCEC
+ adds r0, r0, r1
+ ldr r0, [r0]
+ mov pc, r0
+ .align 2, 0
+_0804BCE4: .4byte 0x020314E0
+_0804BCE8: .4byte _0804BCEC
+_0804BCEC: @ jump table
+ .4byte _0804BD44 @ case 0
+ .4byte _0804BDA4 @ case 1
+ .4byte _0804BDC4 @ case 2
+ .4byte _0804BDE4 @ case 3
+ .4byte _0804BE14 @ case 4
+ .4byte _0804BE34 @ case 5
+ .4byte _0804BE54 @ case 6
+ .4byte _0804BE74 @ case 7
+ .4byte _0804BE94 @ case 8
+ .4byte _0804BEB4 @ case 9
+ .4byte _0804BED4 @ case 10
+ .4byte _0804BEF4 @ case 11
+ .4byte _0804BFB0 @ case 12
+ .4byte _0804BF14 @ case 13
+ .4byte _0804C094 @ case 14
+ .4byte _0804C0C8 @ case 15
+ .4byte _0804C0E8 @ case 16
+ .4byte _0804C108 @ case 17
+ .4byte _0804C1A8 @ case 18
+ .4byte _0804C1C8 @ case 19
+ .4byte _0804C1E8 @ case 20
+ .4byte _0804C264 @ case 21
+_0804BD44:
+ ldr r1, [r3]
+ movs r2, #0xf1
+ lsls r2, r2, #1
+ adds r0, r1, r2
+ ldrb r0, [r0]
+ lsls r0, r0, #0x18
+ asrs r0, r0, #0x18
+ cmp r0, #2
+ bne _0804BD84
+ movs r3, #0xe1
+ lsls r3, r3, #1
+ adds r0, r1, r3
+ ldrb r0, [r0]
+ lsls r0, r0, #0x18
+ asrs r0, r0, #0x18
+ cmp r0, #2
+ bne _0804BD84
+ ldr r1, _0804BD74 @ =0x040000D4
+ ldr r0, _0804BD78 @ =0x08395A4C
+ str r0, [r1]
+ ldr r0, _0804BD7C @ =0x06015800
+ str r0, [r1, #4]
+ ldr r0, _0804BD80 @ =0x80001200
+ b _0804C270
+ .align 2, 0
+_0804BD74: .4byte 0x040000D4
+_0804BD78: .4byte 0x08395A4C
+_0804BD7C: .4byte 0x06015800
+_0804BD80: .4byte 0x80001200
+_0804BD84:
+ ldr r1, _0804BD94 @ =0x040000D4
+ ldr r0, _0804BD98 @ =0x08397E6C
+ str r0, [r1]
+ ldr r0, _0804BD9C @ =0x06015800
+ str r0, [r1, #4]
+ ldr r0, _0804BDA0 @ =0x80001200
+ b _0804C270
+ .align 2, 0
+_0804BD94: .4byte 0x040000D4
+_0804BD98: .4byte 0x08397E6C
+_0804BD9C: .4byte 0x06015800
+_0804BDA0: .4byte 0x80001200
+_0804BDA4:
+ ldr r1, _0804BDB4 @ =0x040000D4
+ ldr r0, _0804BDB8 @ =0x083A704C
+ str r0, [r1]
+ ldr r0, _0804BDBC @ =0x06015800
+ str r0, [r1, #4]
+ ldr r0, _0804BDC0 @ =0x80000800
+ b _0804C270
+ .align 2, 0
+_0804BDB4: .4byte 0x040000D4
+_0804BDB8: .4byte 0x083A704C
+_0804BDBC: .4byte 0x06015800
+_0804BDC0: .4byte 0x80000800
+_0804BDC4:
+ ldr r1, _0804BDD4 @ =0x040000D4
+ ldr r0, _0804BDD8 @ =0x0848FD8C
+ str r0, [r1]
+ ldr r0, _0804BDDC @ =0x06015800
+ str r0, [r1, #4]
+ ldr r0, _0804BDE0 @ =0x80000650
+ b _0804C270
+ .align 2, 0
+_0804BDD4: .4byte 0x040000D4
+_0804BDD8: .4byte 0x0848FD8C
+_0804BDDC: .4byte 0x06015800
+_0804BDE0: .4byte 0x80000650
+_0804BDE4:
+ ldr r1, _0804BE04 @ =0x040000D4
+ ldr r2, _0804BE08 @ =0x086ACEF8
+ ldr r0, [r3]
+ adds r0, #0xf2
+ ldrb r0, [r0]
+ lsls r0, r0, #0x18
+ asrs r0, r0, #0x18
+ lsls r0, r0, #2
+ adds r0, r0, r2
+ ldr r0, [r0]
+ str r0, [r1]
+ ldr r0, _0804BE0C @ =0x06015800
+ str r0, [r1, #4]
+ ldr r0, _0804BE10 @ =0x800012F0
+ b _0804C270
+ .align 2, 0
+_0804BE04: .4byte 0x040000D4
+_0804BE08: .4byte 0x086ACEF8
+_0804BE0C: .4byte 0x06015800
+_0804BE10: .4byte 0x800012F0
+_0804BE14:
+ ldr r1, _0804BE24 @ =0x040000D4
+ ldr r0, _0804BE28 @ =0x083A07CC
+ str r0, [r1]
+ ldr r0, _0804BE2C @ =0x06015800
+ str r0, [r1, #4]
+ ldr r0, _0804BE30 @ =0x80001000
+ b _0804C270
+ .align 2, 0
+_0804BE24: .4byte 0x040000D4
+_0804BE28: .4byte 0x083A07CC
+_0804BE2C: .4byte 0x06015800
+_0804BE30: .4byte 0x80001000
+_0804BE34:
+ ldr r1, _0804BE44 @ =0x040000D4
+ ldr r0, _0804BE48 @ =0x083A29EC
+ str r0, [r1]
+ ldr r0, _0804BE4C @ =0x06015800
+ str r0, [r1, #4]
+ ldr r0, _0804BE50 @ =0x80000400
+ b _0804C270
+ .align 2, 0
+_0804BE44: .4byte 0x040000D4
+_0804BE48: .4byte 0x083A29EC
+_0804BE4C: .4byte 0x06015800
+_0804BE50: .4byte 0x80000400
+_0804BE54:
+ ldr r1, _0804BE64 @ =0x040000D4
+ ldr r0, _0804BE68 @ =0x083A340C
+ str r0, [r1]
+ ldr r0, _0804BE6C @ =0x06015800
+ str r0, [r1, #4]
+ ldr r0, _0804BE70 @ =0x80001000
+ b _0804C270
+ .align 2, 0
+_0804BE64: .4byte 0x040000D4
+_0804BE68: .4byte 0x083A340C
+_0804BE6C: .4byte 0x06015800
+_0804BE70: .4byte 0x80001000
+_0804BE74:
+ ldr r1, _0804BE84 @ =0x040000D4
+ ldr r0, _0804BE88 @ =0x083A562C
+ str r0, [r1]
+ ldr r0, _0804BE8C @ =0x06015800
+ str r0, [r1, #4]
+ ldr r0, _0804BE90 @ =0x80000C00
+ b _0804C270
+ .align 2, 0
+_0804BE84: .4byte 0x040000D4
+_0804BE88: .4byte 0x083A562C
+_0804BE8C: .4byte 0x06015800
+_0804BE90: .4byte 0x80000C00
+_0804BE94:
+ ldr r1, _0804BEA4 @ =0x040000D4
+ ldr r0, _0804BEA8 @ =0x081428D4
+ str r0, [r1]
+ ldr r0, _0804BEAC @ =0x06015800
+ str r0, [r1, #4]
+ ldr r0, _0804BEB0 @ =0x80000E00
+ b _0804C270
+ .align 2, 0
+_0804BEA4: .4byte 0x040000D4
+_0804BEA8: .4byte 0x081428D4
+_0804BEAC: .4byte 0x06015800
+_0804BEB0: .4byte 0x80000E00
+_0804BEB4:
+ ldr r1, _0804BEC4 @ =0x040000D4
+ ldr r0, _0804BEC8 @ =0x0839C78C
+ str r0, [r1]
+ ldr r0, _0804BECC @ =0x06015800
+ str r0, [r1, #4]
+ ldr r0, _0804BED0 @ =0x80000A00
+ b _0804C270
+ .align 2, 0
+_0804BEC4: .4byte 0x040000D4
+_0804BEC8: .4byte 0x0839C78C
+_0804BECC: .4byte 0x06015800
+_0804BED0: .4byte 0x80000A00
+_0804BED4:
+ ldr r1, _0804BEE4 @ =0x040000D4
+ ldr r0, _0804BEE8 @ =0x0839DDAC
+ str r0, [r1]
+ ldr r0, _0804BEEC @ =0x06015800
+ str r0, [r1, #4]
+ ldr r0, _0804BEF0 @ =0x80001400
+ b _0804C270
+ .align 2, 0
+_0804BEE4: .4byte 0x040000D4
+_0804BEE8: .4byte 0x0839DDAC
+_0804BEEC: .4byte 0x06015800
+_0804BEF0: .4byte 0x80001400
+_0804BEF4:
+ ldr r1, _0804BF04 @ =0x040000D4
+ ldr r0, _0804BF08 @ =0x084FA20C
+ str r0, [r1]
+ ldr r0, _0804BF0C @ =0x06015800
+ str r0, [r1, #4]
+ ldr r0, _0804BF10 @ =0x80000140
+ b _0804C270
+ .align 2, 0
+_0804BF04: .4byte 0x040000D4
+_0804BF08: .4byte 0x084FA20C
+_0804BF0C: .4byte 0x06015800
+_0804BF10: .4byte 0x80000140
+_0804BF14:
+ movs r2, #0
+ ldr r7, _0804BF50 @ =0x084F61EC
+ mov r8, r7
+ ldr r0, _0804BF54 @ =0x020314E0
+ ldr r0, [r0]
+ movs r1, #0xb3
+ lsls r1, r1, #3
+ adds r1, r1, r0
+ mov sb, r1
+ ldr r3, _0804BF58 @ =0x086A3707
+ mov ip, r3
+ ldr r4, _0804BF5C @ =0x040000D4
+ ldr r6, _0804BF60 @ =0x06015800
+ ldr r5, _0804BF64 @ =0x80000020
+_0804BF30:
+ lsls r2, r2, #0x10
+ asrs r3, r2, #0x10
+ mov r7, sb
+ ldrh r1, [r7]
+ lsls r0, r1, #1
+ adds r0, r0, r1
+ lsls r0, r0, #3
+ adds r0, r3, r0
+ mov r7, ip
+ adds r1, r0, r7
+ ldrb r0, [r1]
+ cmp r0, #0x20
+ bne _0804BF6C
+ ldr r0, _0804BF68 @ =0x083FFD4C
+ b _0804BF76
+ .align 2, 0
+_0804BF50: .4byte 0x084F61EC
+_0804BF54: .4byte 0x020314E0
+_0804BF58: .4byte 0x086A3707
+_0804BF5C: .4byte 0x040000D4
+_0804BF60: .4byte 0x06015800
+_0804BF64: .4byte 0x80000020
+_0804BF68: .4byte 0x083FFD4C
+_0804BF6C:
+ ldrb r0, [r1]
+ subs r0, #0x41
+ lsls r0, r0, #6
+ ldr r1, _0804BFA0 @ =0x083FF04C
+ adds r0, r0, r1
+_0804BF76:
+ str r0, [r4]
+ lsls r0, r3, #6
+ adds r0, r0, r6
+ str r0, [r4, #4]
+ str r5, [r4, #8]
+ ldr r0, [r4, #8]
+ movs r1, #0x80
+ lsls r1, r1, #9
+ adds r0, r2, r1
+ lsrs r2, r0, #0x10
+ asrs r0, r0, #0x10
+ cmp r0, #9
+ ble _0804BF30
+ ldr r1, _0804BFA4 @ =0x040000D4
+ mov r2, r8
+ str r2, [r1]
+ ldr r0, _0804BFA8 @ =0x06015C00
+ str r0, [r1, #4]
+ ldr r0, _0804BFAC @ =0x800004A0
+ b _0804C270
+ .align 2, 0
+_0804BFA0: .4byte 0x083FF04C
+_0804BFA4: .4byte 0x040000D4
+_0804BFA8: .4byte 0x06015C00
+_0804BFAC: .4byte 0x800004A0
+_0804BFB0:
+ movs r2, #0
+ ldr r0, _0804BFE8 @ =0x020314E0
+ ldr r0, [r0]
+ movs r3, #0xb3
+ lsls r3, r3, #3
+ adds r3, r3, r0
+ mov r8, r3
+ ldr r7, _0804BFEC @ =0x086A3707
+ mov ip, r7
+ ldr r4, _0804BFF0 @ =0x040000D4
+ ldr r6, _0804BFF4 @ =0x06015800
+ ldr r5, _0804BFF8 @ =0x80000020
+_0804BFC8:
+ lsls r0, r2, #0x10
+ asrs r3, r0, #0x10
+ mov r0, r8
+ ldrh r1, [r0]
+ lsls r0, r1, #1
+ adds r0, r0, r1
+ lsls r0, r0, #3
+ adds r0, r3, r0
+ mov r7, ip
+ adds r1, r0, r7
+ ldrb r0, [r1]
+ cmp r0, #0x20
+ bne _0804C000
+ ldr r0, _0804BFFC @ =0x083FFD4C
+ b _0804C00A
+ .align 2, 0
+_0804BFE8: .4byte 0x020314E0
+_0804BFEC: .4byte 0x086A3707
+_0804BFF0: .4byte 0x040000D4
+_0804BFF4: .4byte 0x06015800
+_0804BFF8: .4byte 0x80000020
+_0804BFFC: .4byte 0x083FFD4C
+_0804C000:
+ ldrb r0, [r1]
+ subs r0, #0x41
+ lsls r0, r0, #6
+ ldr r1, _0804C04C @ =0x083FF04C
+ adds r0, r0, r1
+_0804C00A:
+ str r0, [r4]
+ lsls r0, r3, #6
+ adds r0, r0, r6
+ str r0, [r4, #4]
+ str r5, [r4, #8]
+ ldr r0, [r4, #8]
+ lsls r0, r2, #0x10
+ movs r1, #0x80
+ lsls r1, r1, #9
+ adds r0, r0, r1
+ lsrs r2, r0, #0x10
+ asrs r0, r0, #0x10
+ cmp r0, #9
+ ble _0804BFC8
+ movs r2, #0
+ ldr r3, _0804C050 @ =0x086ACFE0
+ mov ip, r3
+ ldr r5, _0804C054 @ =0x040000D4
+ ldr r7, _0804C058 @ =0x06015800
+ ldr r6, _0804C05C @ =0x80000020
+_0804C032:
+ lsls r0, r2, #0x10
+ asrs r4, r0, #0x10
+ lsls r1, r4, #1
+ mov r2, ip
+ adds r3, r1, r2
+ movs r2, #0
+ ldrsh r1, [r3, r2]
+ adds r2, r0, #0
+ cmp r1, #0x20
+ bne _0804C064
+ ldr r0, _0804C060 @ =0x083FFD4C
+ b _0804C070
+ .align 2, 0
+_0804C04C: .4byte 0x083FF04C
+_0804C050: .4byte 0x086ACFE0
+_0804C054: .4byte 0x040000D4
+_0804C058: .4byte 0x06015800
+_0804C05C: .4byte 0x80000020
+_0804C060: .4byte 0x083FFD4C
+_0804C064:
+ movs r1, #0
+ ldrsh r0, [r3, r1]
+ subs r0, #0x41
+ lsls r0, r0, #6
+ ldr r1, _0804C090 @ =0x083FF04C
+ adds r0, r0, r1
+_0804C070:
+ str r0, [r5]
+ adds r0, r4, #0
+ adds r0, #0xa
+ lsls r0, r0, #6
+ adds r0, r0, r7
+ str r0, [r5, #4]
+ str r6, [r5, #8]
+ ldr r0, [r5, #8]
+ movs r3, #0x80
+ lsls r3, r3, #9
+ adds r0, r2, r3
+ lsrs r2, r0, #0x10
+ asrs r0, r0, #0x10
+ cmp r0, #9
+ ble _0804C032
+ b _0804C274
+ .align 2, 0
+_0804C090: .4byte 0x083FF04C
+_0804C094:
+ ldr r1, _0804C0B4 @ =0x040000D4
+ ldr r2, _0804C0B8 @ =0x086AD474
+ ldr r0, [r3]
+ ldr r7, _0804C0BC @ =0x0000025F
+ adds r0, r0, r7
+ ldrb r0, [r0]
+ lsls r0, r0, #0x18
+ asrs r0, r0, #0x18
+ lsls r0, r0, #2
+ adds r0, r0, r2
+ ldr r0, [r0]
+ str r0, [r1]
+ ldr r0, _0804C0C0 @ =0x06015800
+ str r0, [r1, #4]
+ ldr r0, _0804C0C4 @ =0x80000E00
+ b _0804C270
+ .align 2, 0
+_0804C0B4: .4byte 0x040000D4
+_0804C0B8: .4byte 0x086AD474
+_0804C0BC: .4byte 0x0000025F
+_0804C0C0: .4byte 0x06015800
+_0804C0C4: .4byte 0x80000E00
+_0804C0C8:
+ ldr r1, _0804C0D8 @ =0x040000D4
+ ldr r0, _0804C0DC @ =0x08158284
+ str r0, [r1]
+ ldr r0, _0804C0E0 @ =0x06015800
+ str r0, [r1, #4]
+ ldr r0, _0804C0E4 @ =0x80001200
+ b _0804C270
+ .align 2, 0
+_0804C0D8: .4byte 0x040000D4
+_0804C0DC: .4byte 0x08158284
+_0804C0E0: .4byte 0x06015800
+_0804C0E4: .4byte 0x80001200
+_0804C0E8:
+ ldr r1, _0804C0F8 @ =0x040000D4
+ ldr r0, _0804C0FC @ =0x083A562C
+ str r0, [r1]
+ ldr r0, _0804C100 @ =0x06015800
+ str r0, [r1, #4]
+ ldr r0, _0804C104 @ =0x80000C00
+ b _0804C270
+ .align 2, 0
+_0804C0F8: .4byte 0x040000D4
+_0804C0FC: .4byte 0x083A562C
+_0804C100: .4byte 0x06015800
+_0804C104: .4byte 0x80000C00
+_0804C108:
+ ldr r7, _0804C17C @ =0x040000D4
+ ldr r0, _0804C180 @ =0x084F61EC
+ str r0, [r7]
+ ldr r0, _0804C184 @ =0x06015C00
+ str r0, [r7, #4]
+ ldr r0, _0804C188 @ =0x800004A0
+ str r0, [r7, #8]
+ ldr r0, [r7, #8]
+ ldr r2, [r3]
+ ldr r1, _0804C18C @ =0x000001A5
+ adds r0, r2, r1
+ ldrb r0, [r0]
+ lsls r0, r0, #0x18
+ asrs r0, r0, #0x18
+ cmp r0, #0
+ beq _0804C12A
+ b _0804C274
+_0804C12A:
+ ldr r1, _0804C190 @ =0x086AD2DE
+ movs r3, #0xd3
+ lsls r3, r3, #1
+ adds r0, r2, r3
+ ldrb r0, [r0]
+ lsls r0, r0, #0x18
+ asrs r0, r0, #0x18
+ lsls r0, r0, #1
+ adds r0, r0, r1
+ ldrh r4, [r0]
+ lsls r4, r4, #3
+ ldr r0, _0804C194 @ =0x086AD000
+ adds r4, r4, r0
+ ldrh r0, [r4, #6]
+ movs r1, #0xa
+ bl sub_55838
+ lsls r0, r0, #0x10
+ asrs r0, r0, #0xa
+ ldr r6, _0804C198 @ =0x08480E0C
+ adds r0, r0, r6
+ str r0, [r7]
+ ldr r0, _0804C19C @ =0x06015DA0
+ str r0, [r7, #4]
+ ldr r5, _0804C1A0 @ =0x80000020
+ str r5, [r7, #8]
+ ldr r0, [r7, #8]
+ ldrh r0, [r4, #6]
+ movs r1, #0xa
+ bl sub_558B0
+ lsls r0, r0, #0x10
+ asrs r0, r0, #0xa
+ adds r0, r0, r6
+ str r0, [r7]
+ ldr r0, _0804C1A4 @ =0x06015E60
+ str r0, [r7, #4]
+ str r5, [r7, #8]
+ ldr r0, [r7, #8]
+ b _0804C274
+ .align 2, 0
+_0804C17C: .4byte 0x040000D4
+_0804C180: .4byte 0x084F61EC
+_0804C184: .4byte 0x06015C00
+_0804C188: .4byte 0x800004A0
+_0804C18C: .4byte 0x000001A5
+_0804C190: .4byte 0x086AD2DE
+_0804C194: .4byte 0x086AD000
+_0804C198: .4byte 0x08480E0C
+_0804C19C: .4byte 0x06015DA0
+_0804C1A0: .4byte 0x80000020
+_0804C1A4: .4byte 0x06015E60
+_0804C1A8:
+ ldr r1, _0804C1B8 @ =0x040000D4
+ ldr r0, _0804C1BC @ =0x0850100C
+ str r0, [r1]
+ ldr r0, _0804C1C0 @ =0x06015800
+ str r0, [r1, #4]
+ ldr r0, _0804C1C4 @ =0x80001200
+ b _0804C270
+ .align 2, 0
+_0804C1B8: .4byte 0x040000D4
+_0804C1BC: .4byte 0x0850100C
+_0804C1C0: .4byte 0x06015800
+_0804C1C4: .4byte 0x80001200
+_0804C1C8:
+ ldr r1, _0804C1D8 @ =0x040000D4
+ ldr r0, _0804C1DC @ =0x0850398C
+ str r0, [r1]
+ ldr r0, _0804C1E0 @ =0x06015800
+ str r0, [r1, #4]
+ ldr r0, _0804C1E4 @ =0x80001400
+ b _0804C270
+ .align 2, 0
+_0804C1D8: .4byte 0x040000D4
+_0804C1DC: .4byte 0x0850398C
+_0804C1E0: .4byte 0x06015800
+_0804C1E4: .4byte 0x80001400
+_0804C1E8:
+ ldr r0, _0804C20C @ =0x0200B0C0
+ ldrb r0, [r0, #4]
+ cmp r0, #0
+ bne _0804C22C
+ ldr r1, _0804C210 @ =0x040000D4
+ ldr r0, _0804C214 @ =0x081BCAA4
+ str r0, [r1]
+ ldr r0, _0804C218 @ =0x06015800
+ str r0, [r1, #4]
+ ldr r0, _0804C21C @ =0x80000C00
+ str r0, [r1, #8]
+ ldr r0, [r1, #8]
+ ldr r0, _0804C220 @ =0x081BE2C4
+ str r0, [r1]
+ ldr r0, _0804C224 @ =0x050003C0
+ str r0, [r1, #4]
+ ldr r0, _0804C228 @ =0x80000010
+ b _0804C270
+ .align 2, 0
+_0804C20C: .4byte 0x0200B0C0
+_0804C210: .4byte 0x040000D4
+_0804C214: .4byte 0x081BCAA4
+_0804C218: .4byte 0x06015800
+_0804C21C: .4byte 0x80000C00
+_0804C220: .4byte 0x081BE2C4
+_0804C224: .4byte 0x050003C0
+_0804C228: .4byte 0x80000010
+_0804C22C:
+ ldr r1, _0804C248 @ =0x040000D4
+ ldr r0, _0804C24C @ =0x081BE4C4
+ str r0, [r1]
+ ldr r0, _0804C250 @ =0x06015800
+ str r0, [r1, #4]
+ ldr r0, _0804C254 @ =0x80000C00
+ str r0, [r1, #8]
+ ldr r0, [r1, #8]
+ ldr r0, _0804C258 @ =0x081BFCE4
+ str r0, [r1]
+ ldr r0, _0804C25C @ =0x050003C0
+ str r0, [r1, #4]
+ ldr r0, _0804C260 @ =0x80000010
+ b _0804C270
+ .align 2, 0
+_0804C248: .4byte 0x040000D4
+_0804C24C: .4byte 0x081BE4C4
+_0804C250: .4byte 0x06015800
+_0804C254: .4byte 0x80000C00
+_0804C258: .4byte 0x081BFCE4
+_0804C25C: .4byte 0x050003C0
+_0804C260: .4byte 0x80000010
+_0804C264:
+ ldr r1, _0804C280 @ =0x040000D4
+ ldr r0, _0804C284 @ =0x08526DCC
+ str r0, [r1]
+ ldr r0, _0804C288 @ =0x06015800
+ str r0, [r1, #4]
+ ldr r0, _0804C28C @ =0x80000600
+_0804C270:
+ str r0, [r1, #8]
+ ldr r0, [r1, #8]
+_0804C274:
+ pop {r3, r4}
+ mov r8, r3
+ mov sb, r4
+ pop {r4, r5, r6, r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0804C280: .4byte 0x040000D4
+_0804C284: .4byte 0x08526DCC
+_0804C288: .4byte 0x06015800
+_0804C28C: .4byte 0x80000600
+
+ thumb_func_start sub_4C290
+sub_4C290: @ 0x0804C290
+ push {r4, r5, r6, r7, lr}
+ mov r7, sl
+ mov r6, sb
+ mov r5, r8
+ push {r5, r6, r7}
+ sub sp, #4
+ bl sub_28AE0
+ bl sub_28BFC
+ movs r1, #0
+ ldr r0, _0804C3B8 @ =0x020314E0
+ ldr r4, [r0]
+ ldr r3, _0804C3BC @ =0x040000D4
+ mov sb, r0
+_0804C2AE:
+ lsls r2, r1, #0x10
+ asrs r2, r2, #0x10
+ lsls r0, r2, #1
+ adds r0, r0, r2
+ lsls r0, r0, #2
+ adds r0, r4, r0
+ ldr r1, _0804C3C0 @ =0x000013BC
+ adds r0, r0, r1
+ ldrb r0, [r0]
+ lsls r0, r0, #0x18
+ asrs r0, r0, #0x18
+ lsrs r1, r0, #0x1f
+ adds r0, r0, r1
+ asrs r0, r0, #1
+ lsls r0, r0, #9
+ ldr r1, _0804C3C4 @ =0x083FE44C
+ adds r0, r0, r1
+ str r0, [r3]
+ lsls r0, r2, #9
+ ldr r5, _0804C3C8 @ =0x06010000
+ adds r0, r0, r5
+ str r0, [r3, #4]
+ ldr r0, _0804C3CC @ =0x80000100
+ str r0, [r3, #8]
+ ldr r0, [r3, #8]
+ adds r2, #1
+ lsls r2, r2, #0x10
+ lsrs r1, r2, #0x10
+ asrs r2, r2, #0x10
+ cmp r2, #1
+ ble _0804C2AE
+ mov r1, sb
+ ldr r0, [r1]
+ ldr r2, _0804C3D0 @ =0x0000132C
+ adds r0, r0, r2
+ ldr r0, [r0]
+ ldrh r0, [r0, #0xa]
+ ldr r2, _0804C3BC @ =0x040000D4
+ lsrs r0, r0, #0xc
+ lsls r0, r0, #7
+ ldr r1, _0804C3D4 @ =0x083BB16C
+ adds r0, r0, r1
+ str r0, [r2]
+ ldr r0, _0804C3D8 @ =0x06010400
+ str r0, [r2, #4]
+ ldr r0, _0804C3DC @ =0x80000040
+ str r0, [r2, #8]
+ ldr r0, [r2, #8]
+ movs r1, #0
+ ldr r5, _0804C3E0 @ =0x084C07EC
+ ldr r6, _0804C3E4 @ =0x084FA48C
+ ldr r7, _0804C3E8 @ =0x084C00EC
+ adds r3, r2, #0
+ mov r2, sb
+ ldr r0, [r2]
+ ldr r2, _0804C3EC @ =0x00000744
+ adds r4, r0, r2
+_0804C320:
+ lsls r2, r1, #0x10
+ asrs r2, r2, #0x10
+ adds r0, r4, r2
+ ldrb r1, [r0]
+ lsls r0, r1, #1
+ adds r0, r0, r1
+ lsls r0, r0, #7
+ adds r0, r0, r5
+ str r0, [r3]
+ lsls r0, r2, #1
+ adds r0, r0, r2
+ lsls r0, r0, #7
+ ldr r1, _0804C3F0 @ =0x06010480
+ adds r0, r0, r1
+ str r0, [r3, #4]
+ ldr r0, _0804C3F4 @ =0x800000C0
+ str r0, [r3, #8]
+ ldr r0, [r3, #8]
+ adds r2, #1
+ lsls r2, r2, #0x10
+ lsrs r1, r2, #0x10
+ asrs r2, r2, #0x10
+ cmp r2, #1
+ ble _0804C320
+ mov r2, sb
+ ldr r0, [r2]
+ ldr r3, _0804C3F8 @ =0x000001E5
+ adds r0, r0, r3
+ ldr r2, _0804C3BC @ =0x040000D4
+ movs r1, #0
+ ldrsb r1, [r0, r1]
+ lsls r0, r1, #3
+ adds r0, r0, r1
+ lsls r0, r0, #5
+ adds r0, r0, r6
+ str r0, [r2]
+ ldr r0, _0804C3FC @ =0x06010780
+ str r0, [r2, #4]
+ ldr r0, _0804C400 @ =0x80000090
+ str r0, [r2, #8]
+ ldr r0, [r2, #8]
+ mov r5, sb
+ ldr r0, [r5]
+ movs r1, #0xe5
+ lsls r1, r1, #1
+ adds r0, r0, r1
+ ldrh r3, [r0]
+ mov sl, r3
+ movs r5, #0
+ ldrsh r0, [r0, r5]
+ lsls r0, r0, #7
+ adds r0, r0, r7
+ str r0, [r2]
+ ldr r0, _0804C404 @ =0x06010AE0
+ str r0, [r2, #4]
+ ldr r0, _0804C3DC @ =0x80000040
+ str r0, [r2, #8]
+ ldr r0, [r2, #8]
+ movs r1, #0
+_0804C396:
+ mov r2, sb
+ ldr r0, [r2]
+ lsls r2, r1, #0x10
+ asrs r1, r2, #0x10
+ ldr r3, _0804C408 @ =0x00000747
+ adds r0, r0, r3
+ adds r0, r0, r1
+ ldrb r0, [r0]
+ adds r7, r2, #0
+ cmp r0, #9
+ bls _0804C3AE
+ b _0804C602
+_0804C3AE:
+ lsls r0, r0, #2
+ ldr r1, _0804C40C @ =_0804C410
+ adds r0, r0, r1
+ ldr r0, [r0]
+ mov pc, r0
+ .align 2, 0
+_0804C3B8: .4byte 0x020314E0
+_0804C3BC: .4byte 0x040000D4
+_0804C3C0: .4byte 0x000013BC
+_0804C3C4: .4byte 0x083FE44C
+_0804C3C8: .4byte 0x06010000
+_0804C3CC: .4byte 0x80000100
+_0804C3D0: .4byte 0x0000132C
+_0804C3D4: .4byte 0x083BB16C
+_0804C3D8: .4byte 0x06010400
+_0804C3DC: .4byte 0x80000040
+_0804C3E0: .4byte 0x084C07EC
+_0804C3E4: .4byte 0x084FA48C
+_0804C3E8: .4byte 0x084C00EC
+_0804C3EC: .4byte 0x00000744
+_0804C3F0: .4byte 0x06010480
+_0804C3F4: .4byte 0x800000C0
+_0804C3F8: .4byte 0x000001E5
+_0804C3FC: .4byte 0x06010780
+_0804C400: .4byte 0x80000090
+_0804C404: .4byte 0x06010AE0
+_0804C408: .4byte 0x00000747
+_0804C40C: .4byte _0804C410
+_0804C410: @ jump table
+ .4byte _0804C438 @ case 0
+ .4byte _0804C5D4 @ case 1
+ .4byte _0804C5D4 @ case 2
+ .4byte _0804C55E @ case 3
+ .4byte _0804C5D4 @ case 4
+ .4byte _0804C602 @ case 5
+ .4byte _0804C5D4 @ case 6
+ .4byte _0804C5D4 @ case 7
+ .4byte _0804C5D4 @ case 8
+ .4byte _0804C460 @ case 9
+_0804C438:
+ ldr r3, _0804C454 @ =0x040000D4
+ mov r5, sb
+ ldr r0, [r5]
+ asrs r2, r7, #0x10
+ ldr r1, _0804C458 @ =0x00000749
+ adds r0, r0, r1
+ adds r0, r0, r2
+ ldrb r1, [r0]
+ lsls r0, r1, #1
+ adds r0, r0, r1
+ lsls r0, r0, #8
+ ldr r1, _0804C45C @ =0x0848D68C
+ b _0804C5EC
+ .align 2, 0
+_0804C454: .4byte 0x040000D4
+_0804C458: .4byte 0x00000749
+_0804C45C: .4byte 0x0848D68C
+_0804C460:
+ mov r5, sb
+ ldr r4, [r5]
+ movs r1, #0x97
+ lsls r1, r1, #2
+ adds r0, r4, r1
+ ldrb r0, [r0]
+ lsls r0, r0, #0x18
+ asrs r0, r0, #0x18
+ cmp r0, #0
+ ble _0804C510
+ ldr r1, _0804C498 @ =0x0200B134
+ ldr r2, _0804C49C @ =0x0000059A
+ adds r0, r4, r2
+ ldrh r3, [r0]
+ adds r1, r3, r1
+ ldrb r0, [r1]
+ cmp r0, #0
+ bne _0804C4AC
+ asrs r3, r7, #0x10
+ ldr r2, _0804C4A0 @ =0x00000749
+ adds r0, r4, r2
+ adds r0, r0, r3
+ movs r1, #0xcd
+ strb r1, [r0]
+ ldr r6, _0804C4A4 @ =0x040000D4
+ ldr r5, _0804C4A8 @ =0x086BB6A4
+ mov r8, r5
+ b _0804C528
+ .align 2, 0
+_0804C498: .4byte 0x0200B134
+_0804C49C: .4byte 0x0000059A
+_0804C4A0: .4byte 0x00000749
+_0804C4A4: .4byte 0x040000D4
+_0804C4A8: .4byte 0x086BB6A4
+_0804C4AC:
+ cmp r0, #3
+ bhi _0804C4E8
+ asrs r1, r7, #0x10
+ ldr r2, _0804C4D4 @ =0x00000749
+ adds r0, r4, r2
+ adds r0, r0, r1
+ strb r3, [r0]
+ ldr r1, _0804C4D8 @ =0x040000D4
+ ldr r0, _0804C4DC @ =0x086BB6A4
+ ldr r0, [r0]
+ movs r3, #0xf0
+ lsls r3, r3, #1
+ adds r0, r0, r3
+ str r0, [r1]
+ ldr r0, _0804C4E0 @ =0x050003A0
+ str r0, [r1, #4]
+ ldr r0, _0804C4E4 @ =0x80000010
+ str r0, [r1, #8]
+ ldr r0, [r1, #8]
+ b _0804C55E
+ .align 2, 0
+_0804C4D4: .4byte 0x00000749
+_0804C4D8: .4byte 0x040000D4
+_0804C4DC: .4byte 0x086BB6A4
+_0804C4E0: .4byte 0x050003A0
+_0804C4E4: .4byte 0x80000010
+_0804C4E8:
+ asrs r2, r7, #0x10
+ ldr r1, _0804C504 @ =0x00000749
+ adds r0, r4, r1
+ adds r0, r0, r2
+ strb r3, [r0]
+ ldr r6, _0804C508 @ =0x040000D4
+ ldr r5, _0804C50C @ =0x086BB6A4
+ mov r8, r5
+ mov r3, sb
+ ldr r0, [r3]
+ adds r0, r0, r1
+ adds r0, r0, r2
+ b _0804C530
+ .align 2, 0
+_0804C504: .4byte 0x00000749
+_0804C508: .4byte 0x040000D4
+_0804C50C: .4byte 0x086BB6A4
+_0804C510:
+ asrs r3, r7, #0x10
+ ldr r2, _0804C5B4 @ =0x00000749
+ adds r1, r4, r2
+ adds r1, r1, r3
+ movs r5, #0xb3
+ lsls r5, r5, #3
+ adds r0, r4, r5
+ ldrh r0, [r0]
+ strb r0, [r1]
+ ldr r6, _0804C5B8 @ =0x040000D4
+ ldr r0, _0804C5BC @ =0x086BB6A4
+ mov r8, r0
+_0804C528:
+ mov r1, sb
+ ldr r0, [r1]
+ adds r0, r0, r2
+ adds r0, r0, r3
+_0804C530:
+ ldrb r5, [r0]
+ adds r0, r5, #0
+ movs r1, #0xf
+ bl sub_55838
+ adds r4, r0, #0
+ lsls r4, r4, #0x18
+ lsrs r4, r4, #0x16
+ add r4, r8
+ adds r0, r5, #0
+ movs r1, #0xf
+ bl sub_558B0
+ lsls r0, r0, #0x18
+ lsrs r0, r0, #0x13
+ ldr r1, [r4]
+ adds r1, r1, r0
+ str r1, [r6]
+ ldr r0, _0804C5C0 @ =0x050003A0
+ str r0, [r6, #4]
+ ldr r0, _0804C5C4 @ =0x80000010
+ str r0, [r6, #8]
+ ldr r0, [r6, #8]
+_0804C55E:
+ ldr r2, _0804C5B8 @ =0x040000D4
+ ldr r3, _0804C5C8 @ =0x086BB738
+ mov r8, r3
+ mov r5, sb
+ ldr r0, [r5]
+ asrs r6, r7, #0x10
+ ldr r1, _0804C5B4 @ =0x00000749
+ adds r0, r0, r1
+ adds r0, r0, r6
+ ldrb r5, [r0]
+ adds r0, r5, #0
+ movs r1, #0xf
+ str r2, [sp]
+ bl sub_55838
+ adds r4, r0, #0
+ lsls r4, r4, #0x18
+ lsrs r4, r4, #0x16
+ add r4, r8
+ adds r0, r5, #0
+ movs r1, #0xf
+ bl sub_558B0
+ lsls r0, r0, #0x18
+ lsrs r0, r0, #0x18
+ lsls r1, r0, #1
+ adds r1, r1, r0
+ lsls r1, r1, #8
+ ldr r0, [r4]
+ adds r0, r0, r1
+ ldr r2, [sp]
+ str r0, [r2]
+ lsls r0, r6, #1
+ adds r0, r0, r6
+ lsls r0, r0, #3
+ ldr r3, _0804C5CC @ =0x06010CA0
+ adds r0, r0, r3
+ str r0, [r2, #4]
+ ldr r0, _0804C5D0 @ =0x80000180
+ str r0, [r2, #8]
+ ldr r0, [r2, #8]
+ b _0804C602
+ .align 2, 0
+_0804C5B4: .4byte 0x00000749
+_0804C5B8: .4byte 0x040000D4
+_0804C5BC: .4byte 0x086BB6A4
+_0804C5C0: .4byte 0x050003A0
+_0804C5C4: .4byte 0x80000010
+_0804C5C8: .4byte 0x086BB738
+_0804C5CC: .4byte 0x06010CA0
+_0804C5D0: .4byte 0x80000180
+_0804C5D4:
+ ldr r3, _0804C630 @ =0x040000D4
+ mov r5, sb
+ ldr r0, [r5]
+ asrs r2, r7, #0x10
+ ldr r1, _0804C634 @ =0x00000749
+ adds r0, r0, r1
+ adds r0, r0, r2
+ ldrb r1, [r0]
+ lsls r0, r1, #1
+ adds r0, r0, r1
+ lsls r0, r0, #8
+ ldr r1, _0804C638 @ =0x083A8EEC
+_0804C5EC:
+ adds r0, r0, r1
+ str r0, [r3]
+ lsls r0, r2, #1
+ adds r0, r0, r2
+ lsls r0, r0, #8
+ ldr r2, _0804C63C @ =0x06010CA0
+ adds r0, r0, r2
+ str r0, [r3, #4]
+ ldr r0, _0804C640 @ =0x80000180
+ str r0, [r3, #8]
+ ldr r0, [r3, #8]
+_0804C602:
+ movs r3, #0x80
+ lsls r3, r3, #9
+ adds r0, r7, r3
+ lsrs r1, r0, #0x10
+ asrs r0, r0, #0x10
+ cmp r0, #1
+ bgt _0804C612
+ b _0804C396
+_0804C612:
+ mov r5, sb
+ ldr r1, [r5]
+ movs r0, #0x13
+ ldrsb r0, [r1, r0]
+ cmp r0, #4
+ bne _0804C69C
+ movs r0, #0x17
+ ldrsb r0, [r1, r0]
+ cmp r0, #7
+ blt _0804C69C
+ cmp r0, #8
+ ble _0804C644
+ cmp r0, #9
+ beq _0804C660
+ b _0804C69C
+ .align 2, 0
+_0804C630: .4byte 0x040000D4
+_0804C634: .4byte 0x00000749
+_0804C638: .4byte 0x083A8EEC
+_0804C63C: .4byte 0x06010CA0
+_0804C640: .4byte 0x80000180
+_0804C644:
+ ldr r2, _0804C654 @ =0x000005A9
+ adds r0, r1, r2
+ ldrb r0, [r0]
+ cmp r0, #4
+ bls _0804C68C
+ ldr r1, _0804C658 @ =0x040000D4
+ ldr r0, _0804C65C @ =0x02031060
+ b _0804C690
+ .align 2, 0
+_0804C654: .4byte 0x000005A9
+_0804C658: .4byte 0x040000D4
+_0804C65C: .4byte 0x02031060
+_0804C660:
+ movs r3, #0xb5
+ lsls r3, r3, #3
+ adds r0, r1, r3
+ ldrb r0, [r0]
+ lsls r0, r0, #0x18
+ asrs r0, r0, #0x18
+ cmp r0, #0x1f
+ bgt _0804C69C
+ ldr r5, _0804C680 @ =0x000005A9
+ adds r0, r1, r5
+ ldrb r0, [r0]
+ cmp r0, #4
+ bls _0804C68C
+ ldr r1, _0804C684 @ =0x040000D4
+ ldr r0, _0804C688 @ =0x02031060
+ b _0804C690
+ .align 2, 0
+_0804C680: .4byte 0x000005A9
+_0804C684: .4byte 0x040000D4
+_0804C688: .4byte 0x02031060
+_0804C68C:
+ ldr r1, _0804C6B8 @ =0x040000D4
+ ldr r0, _0804C6BC @ =0x02030760
+_0804C690:
+ str r0, [r1]
+ ldr r0, _0804C6C0 @ =0x06010CA0
+ str r0, [r1, #4]
+ ldr r0, _0804C6C4 @ =0x80000240
+ str r0, [r1, #8]
+ ldr r0, [r1, #8]
+_0804C69C:
+ mov r0, sb
+ ldr r1, [r0]
+ movs r0, #0x13
+ ldrsb r0, [r1, r0]
+ cmp r0, #8
+ bne _0804C720
+ movs r0, #0x17
+ ldrsb r0, [r1, r0]
+ cmp r0, #2
+ beq _0804C6C8
+ cmp r0, #3
+ beq _0804C6E4
+ b _0804C720
+ .align 2, 0
+_0804C6B8: .4byte 0x040000D4
+_0804C6BC: .4byte 0x02030760
+_0804C6C0: .4byte 0x06010CA0
+_0804C6C4: .4byte 0x80000240
+_0804C6C8:
+ ldr r2, _0804C6D8 @ =0x000005A9
+ adds r0, r1, r2
+ ldrb r0, [r0]
+ cmp r0, #4
+ bls _0804C710
+ ldr r1, _0804C6DC @ =0x040000D4
+ ldr r0, _0804C6E0 @ =0x02031060
+ b _0804C714
+ .align 2, 0
+_0804C6D8: .4byte 0x000005A9
+_0804C6DC: .4byte 0x040000D4
+_0804C6E0: .4byte 0x02031060
+_0804C6E4:
+ movs r3, #0xb5
+ lsls r3, r3, #3
+ adds r0, r1, r3
+ ldrb r0, [r0]
+ lsls r0, r0, #0x18
+ asrs r0, r0, #0x18
+ cmp r0, #0x1f
+ bgt _0804C720
+ ldr r5, _0804C704 @ =0x000005A9
+ adds r0, r1, r5
+ ldrb r0, [r0]
+ cmp r0, #4
+ bls _0804C710
+ ldr r1, _0804C708 @ =0x040000D4
+ ldr r0, _0804C70C @ =0x02031060
+ b _0804C714
+ .align 2, 0
+_0804C704: .4byte 0x000005A9
+_0804C708: .4byte 0x040000D4
+_0804C70C: .4byte 0x02031060
+_0804C710:
+ ldr r1, _0804C7C4 @ =0x040000D4
+ ldr r0, _0804C7C8 @ =0x02030760
+_0804C714:
+ str r0, [r1]
+ ldr r0, _0804C7CC @ =0x06010CA0
+ str r0, [r1, #4]
+ ldr r0, _0804C7D0 @ =0x80000240
+ str r0, [r1, #8]
+ ldr r0, [r1, #8]
+_0804C720:
+ ldr r2, _0804C7C4 @ =0x040000D4
+ mov r1, sb
+ ldr r0, [r1]
+ ldr r3, _0804C7D4 @ =0x0000020B
+ adds r0, r0, r3
+ movs r1, #0
+ ldrsb r1, [r0, r1]
+ lsls r0, r1, #1
+ adds r0, r0, r1
+ lsls r0, r0, #8
+ ldr r5, _0804C7D8 @ =0x0844838C
+ adds r0, r0, r5
+ str r0, [r2]
+ ldr r0, _0804C7DC @ =0x060113C0
+ str r0, [r2, #4]
+ ldr r0, _0804C7E0 @ =0x80000180
+ str r0, [r2, #8]
+ ldr r0, [r2, #8]
+ mov r1, sb
+ ldr r0, [r1]
+ adds r3, #0x54
+ adds r0, r0, r3
+ ldrb r0, [r0]
+ lsls r0, r0, #0x18
+ asrs r0, r0, #0x18
+ lsls r0, r0, #2
+ ldr r5, _0804C7E4 @ =0x086AD49C
+ adds r0, r0, r5
+ mov r3, sl
+ lsls r1, r3, #0x10
+ asrs r1, r1, #7
+ ldr r0, [r0]
+ adds r0, r0, r1
+ str r0, [r2]
+ ldr r0, _0804C7E8 @ =0x060116C0
+ str r0, [r2, #4]
+ ldr r3, _0804C7EC @ =0x80000100
+ str r3, [r2, #8]
+ ldr r0, [r2, #8]
+ mov r5, sb
+ ldr r0, [r5]
+ ldr r1, _0804C7F0 @ =0x000001ED
+ adds r0, r0, r1
+ ldrb r0, [r0]
+ lsls r0, r0, #0x18
+ asrs r0, r0, #0x18
+ lsls r0, r0, #3
+ ldr r1, _0804C7F4 @ =0x086AD2EE
+ adds r1, #6
+ adds r0, r0, r1
+ movs r5, #0
+ ldrsh r0, [r0, r5]
+ lsls r0, r0, #9
+ ldr r1, _0804C7F8 @ =0x084FD18C
+ adds r0, r0, r1
+ str r0, [r2]
+ ldr r0, _0804C7FC @ =0x06011CE0
+ str r0, [r2, #4]
+ str r3, [r2, #8]
+ ldr r0, [r2, #8]
+ mov r5, sb
+ ldr r0, [r5]
+ adds r0, #0x6e
+ ldrb r0, [r0]
+ lsls r0, r0, #0x18
+ asrs r0, r0, #0x18
+ lsls r0, r0, #9
+ ldr r1, _0804C800 @ =0x083BD36C
+ adds r0, r0, r1
+ str r0, [r2]
+ ldr r0, _0804C804 @ =0x06011EE0
+ str r0, [r2, #4]
+ str r3, [r2, #8]
+ ldr r0, [r2, #8]
+ add sp, #4
+ pop {r3, r4, r5}
+ mov r8, r3
+ mov sb, r4
+ mov sl, r5
+ pop {r4, r5, r6, r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0804C7C4: .4byte 0x040000D4
+_0804C7C8: .4byte 0x02030760
+_0804C7CC: .4byte 0x06010CA0
+_0804C7D0: .4byte 0x80000240
+_0804C7D4: .4byte 0x0000020B
+_0804C7D8: .4byte 0x0844838C
+_0804C7DC: .4byte 0x060113C0
+_0804C7E0: .4byte 0x80000180
+_0804C7E4: .4byte 0x086AD49C
+_0804C7E8: .4byte 0x060116C0
+_0804C7EC: .4byte 0x80000100
+_0804C7F0: .4byte 0x000001ED
+_0804C7F4: .4byte 0x086AD2EE
+_0804C7F8: .4byte 0x084FD18C
+_0804C7FC: .4byte 0x06011CE0
+_0804C800: .4byte 0x083BD36C
+_0804C804: .4byte 0x06011EE0
+
+ thumb_func_start sub_4C808
+sub_4C808: @ 0x0804C808
+ push {r4, r5, r6, r7, lr}
+ mov r7, sl
+ mov r6, sb
+ mov r5, r8
+ push {r5, r6, r7}
+ ldr r1, _0804C90C @ =0x086AD2EE
+ ldr r6, _0804C910 @ =0x020314E0
+ ldr r5, [r6]
+ ldr r2, _0804C914 @ =0x000001ED
+ adds r0, r5, r2
+ ldrb r0, [r0]
+ lsls r0, r0, #0x18
+ asrs r0, r0, #0x18
+ lsls r0, r0, #3
+ adds r1, #4
+ adds r0, r0, r1
+ ldr r4, _0804C918 @ =0x040000D4
+ movs r2, #0
+ ldrsh r1, [r0, r2]
+ lsls r0, r1, #3
+ adds r0, r0, r1
+ lsls r0, r0, #7
+ ldr r1, _0804C91C @ =0x084FB68C
+ adds r0, r0, r1
+ str r0, [r4]
+ ldr r0, _0804C920 @ =0x060122A0
+ str r0, [r4, #4]
+ ldr r0, _0804C924 @ =0x80000240
+ str r0, [r4, #8]
+ ldr r0, [r4, #8]
+ ldr r0, _0804C928 @ =0x0200B0C0
+ ldr r0, [r0, #0x4c]
+ movs r1, #0x32
+ bl sub_558B0
+ movs r1, #0x19
+ bl sub_55838
+ lsls r0, r0, #0x10
+ asrs r0, r0, #0x10
+ lsls r1, r0, #1
+ adds r1, r1, r0
+ lsls r1, r1, #8
+ ldr r2, _0804C92C @ =0x083C3C2C
+ adds r1, r1, r2
+ str r1, [r4]
+ ldr r1, _0804C930 @ =0x06012720
+ str r1, [r4, #4]
+ ldr r1, _0804C934 @ =0x80000180
+ str r1, [r4, #8]
+ ldr r1, [r4, #8]
+ ldr r1, _0804C938 @ =0x000002F5
+ adds r5, r5, r1
+ movs r2, #0
+ ldrsb r2, [r5, r2]
+ lsls r1, r2, #2
+ adds r1, r1, r2
+ lsls r1, r1, #2
+ subs r1, r1, r2
+ lsls r1, r1, #5
+ ldr r2, _0804C93C @ =0x084F5ACC
+ adds r1, r1, r2
+ str r1, [r4]
+ ldr r1, _0804C940 @ =0x06012C20
+ str r1, [r4, #4]
+ ldr r1, _0804C944 @ =0x80000130
+ str r1, [r4, #8]
+ ldr r1, [r4, #8]
+ movs r2, #0
+ mov ip, r6
+ ldr r1, _0804C948 @ =0x084ED0CC
+ mov r8, r1
+ ldr r1, _0804C94C @ =0x08449D8C
+ mov sb, r1
+ ldr r1, _0804C950 @ =0x086AD456
+ mov sl, r1
+ lsls r0, r0, #8
+ ldr r1, _0804C954 @ =0x083C806C
+ adds r3, r0, r1
+ movs r7, #0xba
+ lsls r7, r7, #1
+ ldr r6, _0804C958 @ =0x06010000
+ ldr r5, _0804C95C @ =0x80000080
+_0804C8AE:
+ str r3, [r4]
+ lsls r0, r2, #0x10
+ asrs r0, r0, #0x10
+ lsls r1, r0, #3
+ adds r1, r1, r7
+ lsls r1, r1, #5
+ adds r1, r1, r6
+ str r1, [r4, #4]
+ str r5, [r4, #8]
+ ldr r1, [r4, #8]
+ adds r0, #1
+ lsls r0, r0, #0x10
+ lsrs r2, r0, #0x10
+ asrs r0, r0, #0x10
+ cmp r0, #1
+ ble _0804C8AE
+ mov r2, ip
+ ldr r0, [r2]
+ ldr r1, _0804C960 @ =0x000002F1
+ adds r0, r0, r1
+ ldrb r0, [r0]
+ movs r1, #0xf
+ ldr r2, _0804C918 @ =0x040000D4
+ ands r1, r0
+ lsls r0, r1, #1
+ adds r0, r0, r1
+ lsls r0, r0, #7
+ add r0, r8
+ str r0, [r2]
+ ldr r0, _0804C964 @ =0x06013180
+ str r0, [r2, #4]
+ ldr r0, _0804C968 @ =0x800000C0
+ str r0, [r2, #8]
+ ldr r0, [r2, #8]
+ mov r2, ip
+ ldr r1, [r2]
+ ldr r2, _0804C96C @ =0x000002DA
+ adds r0, r1, r2
+ ldrb r0, [r0]
+ lsls r0, r0, #0x18
+ asrs r0, r0, #0x18
+ cmp r0, #2
+ bgt _0804C974
+ ldr r0, _0804C970 @ =0x00000746
+ adds r1, r1, r0
+ movs r0, #0
+ b _0804C97A
+ .align 2, 0
+_0804C90C: .4byte 0x086AD2EE
+_0804C910: .4byte 0x020314E0
+_0804C914: .4byte 0x000001ED
+_0804C918: .4byte 0x040000D4
+_0804C91C: .4byte 0x084FB68C
+_0804C920: .4byte 0x060122A0
+_0804C924: .4byte 0x80000240
+_0804C928: .4byte 0x0200B0C0
+_0804C92C: .4byte 0x083C3C2C
+_0804C930: .4byte 0x06012720
+_0804C934: .4byte 0x80000180
+_0804C938: .4byte 0x000002F5
+_0804C93C: .4byte 0x084F5ACC
+_0804C940: .4byte 0x06012C20
+_0804C944: .4byte 0x80000130
+_0804C948: .4byte 0x084ED0CC
+_0804C94C: .4byte 0x08449D8C
+_0804C950: .4byte 0x086AD456
+_0804C954: .4byte 0x083C806C
+_0804C958: .4byte 0x06010000
+_0804C95C: .4byte 0x80000080
+_0804C960: .4byte 0x000002F1
+_0804C964: .4byte 0x06013180
+_0804C968: .4byte 0x800000C0
+_0804C96C: .4byte 0x000002DA
+_0804C970: .4byte 0x00000746
+_0804C974:
+ ldr r2, _0804C9F8 @ =0x00000746
+ adds r1, r1, r2
+ movs r0, #1
+_0804C97A:
+ strb r0, [r1]
+ ldr r4, _0804C9FC @ =0x040000D4
+ mov r1, ip
+ ldr r0, [r1]
+ ldr r2, _0804C9F8 @ =0x00000746
+ adds r0, r0, r2
+ ldrb r1, [r0]
+ lsls r0, r1, #2
+ adds r0, r0, r1
+ lsls r0, r0, #7
+ add r0, sb
+ str r0, [r4]
+ ldr r0, _0804CA00 @ =0x06013300
+ str r0, [r4, #4]
+ ldr r0, _0804CA04 @ =0x80000140
+ str r0, [r4, #8]
+ ldr r0, [r4, #8]
+ mov r0, ip
+ ldr r5, [r0]
+ movs r1, #0xda
+ lsls r1, r1, #1
+ adds r0, r5, r1
+ ldrh r0, [r0]
+ movs r1, #0x2a
+ bl sub_558B0
+ lsls r0, r0, #0x10
+ lsrs r0, r0, #0x10
+ movs r1, #6
+ bl sub_55838
+ lsls r0, r0, #0x10
+ lsrs r0, r0, #0xf
+ ldr r2, _0804CA08 @ =0x000001A5
+ adds r1, r5, r2
+ movs r2, #0
+ ldrsb r2, [r1, r2]
+ lsls r1, r2, #3
+ subs r1, r1, r2
+ lsls r1, r1, #1
+ adds r0, r0, r1
+ add r0, sl
+ movs r2, #0
+ ldrsh r1, [r0, r2]
+ lsls r0, r1, #2
+ adds r0, r0, r1
+ lsls r0, r0, #8
+ ldr r1, _0804CA0C @ =0x084F6B0C
+ adds r0, r0, r1
+ str r0, [r4]
+ ldr r0, _0804CA10 @ =0x06013D00
+ str r0, [r4, #4]
+ ldr r0, _0804CA14 @ =0x80000280
+ str r0, [r4, #8]
+ ldr r0, [r4, #8]
+ pop {r3, r4, r5}
+ mov r8, r3
+ mov sb, r4
+ mov sl, r5
+ pop {r4, r5, r6, r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0804C9F8: .4byte 0x00000746
+_0804C9FC: .4byte 0x040000D4
+_0804CA00: .4byte 0x06013300
+_0804CA04: .4byte 0x80000140
+_0804CA08: .4byte 0x000001A5
+_0804CA0C: .4byte 0x084F6B0C
+_0804CA10: .4byte 0x06013D00
+_0804CA14: .4byte 0x80000280
+
+ thumb_func_start sub_4CA18
+sub_4CA18: @ 0x0804CA18
+ ldr r1, _0804CA38 @ =0x020314E0
+ ldr r0, [r1]
+ ldr r2, _0804CA3C @ =0x00000346
+ adds r0, r0, r2
+ ldrb r0, [r0]
+ lsls r0, r0, #0x18
+ asrs r0, r0, #0x18
+ adds r2, r1, #0
+ cmp r0, #6
+ bhi _0804CACE
+ lsls r0, r0, #2
+ ldr r1, _0804CA40 @ =_0804CA44
+ adds r0, r0, r1
+ ldr r0, [r0]
+ mov pc, r0
+ .align 2, 0
+_0804CA38: .4byte 0x020314E0
+_0804CA3C: .4byte 0x00000346
+_0804CA40: .4byte _0804CA44
+_0804CA44: @ jump table
+ .4byte _0804CA60 @ case 0
+ .4byte _0804CA60 @ case 1
+ .4byte _0804CA60 @ case 2
+ .4byte _0804CA78 @ case 3
+ .4byte _0804CA78 @ case 4
+ .4byte _0804CAA0 @ case 5
+ .4byte _0804CACE @ case 6
+_0804CA60:
+ ldr r0, [r2]
+ ldr r3, _0804CA70 @ =0x00000345
+ adds r0, r0, r3
+ ldr r2, _0804CA74 @ =0x040000D4
+ movs r1, #0
+ ldrsb r1, [r0, r1]
+ b _0804CAB8
+ .align 2, 0
+_0804CA70: .4byte 0x00000345
+_0804CA74: .4byte 0x040000D4
+_0804CA78:
+ ldr r1, _0804CA90 @ =0x040000D4
+ ldr r0, _0804CA94 @ =0x08490A4C
+ movs r2, #0xff
+ lsls r2, r2, #6
+ adds r0, r0, r2
+ str r0, [r1]
+ ldr r0, _0804CA98 @ =0x0600D900
+ str r0, [r1, #4]
+ ldr r0, _0804CA9C @ =0x80000220
+ str r0, [r1, #8]
+ ldr r0, [r1, #8]
+ b _0804CACE
+ .align 2, 0
+_0804CA90: .4byte 0x040000D4
+_0804CA94: .4byte 0x08490A4C
+_0804CA98: .4byte 0x0600D900
+_0804CA9C: .4byte 0x80000220
+_0804CAA0:
+ ldr r1, _0804CAD0 @ =0x086AE5A0
+ ldr r0, [r2]
+ ldr r3, _0804CAD4 @ =0x00000345
+ adds r0, r0, r3
+ ldrb r0, [r0]
+ lsls r0, r0, #0x18
+ asrs r0, r0, #0x18
+ lsls r0, r0, #2
+ adds r0, r0, r1
+ ldr r2, _0804CAD8 @ =0x040000D4
+ movs r3, #0
+ ldrsh r1, [r0, r3]
+_0804CAB8:
+ lsls r0, r1, #4
+ adds r0, r0, r1
+ lsls r0, r0, #6
+ ldr r1, _0804CADC @ =0x08490A4C
+ adds r0, r0, r1
+ str r0, [r2]
+ ldr r0, _0804CAE0 @ =0x0600D900
+ str r0, [r2, #4]
+ ldr r0, _0804CAE4 @ =0x80000220
+ str r0, [r2, #8]
+ ldr r0, [r2, #8]
+_0804CACE:
+ bx lr
+ .align 2, 0
+_0804CAD0: .4byte 0x086AE5A0
+_0804CAD4: .4byte 0x00000345
+_0804CAD8: .4byte 0x040000D4
+_0804CADC: .4byte 0x08490A4C
+_0804CAE0: .4byte 0x0600D900
+_0804CAE4: .4byte 0x80000220
+
+ thumb_func_start sub_4CAE8
+sub_4CAE8: @ 0x0804CAE8
+ ldr r1, _0804CAFC @ =0x040000D4
+ ldr r0, _0804CB00 @ =0x08138834
+ str r0, [r1]
+ ldr r0, _0804CB04 @ =0x06015800
+ str r0, [r1, #4]
+ ldr r0, _0804CB08 @ =0x80001000
+ str r0, [r1, #8]
+ ldr r0, [r1, #8]
+ bx lr
+ .align 2, 0
+_0804CAFC: .4byte 0x040000D4
+_0804CB00: .4byte 0x08138834
+_0804CB04: .4byte 0x06015800
+_0804CB08: .4byte 0x80001000
+
+ thumb_func_start sub_4CB0C
+sub_4CB0C: @ 0x0804CB0C
+ ldr r1, _0804CB20 @ =0x040000D4
+ ldr r0, _0804CB24 @ =0x0813A854
+ str r0, [r1]
+ ldr r0, _0804CB28 @ =0x06015800
+ str r0, [r1, #4]
+ ldr r0, _0804CB2C @ =0x80001000
+ str r0, [r1, #8]
+ ldr r0, [r1, #8]
+ bx lr
+ .align 2, 0
+_0804CB20: .4byte 0x040000D4
+_0804CB24: .4byte 0x0813A854
+_0804CB28: .4byte 0x06015800
+_0804CB2C: .4byte 0x80001000
+
+ thumb_func_start sub_4CB30
+sub_4CB30: @ 0x0804CB30
+ push {r4, r5, r6, lr}
+ mov r6, r8
+ push {r6}
+ ldr r5, _0804CB90 @ =0x040000D4
+ ldr r0, _0804CB94 @ =0x0813C874
+ str r0, [r5]
+ ldr r0, _0804CB98 @ =0x06015800
+ str r0, [r5, #4]
+ ldr r0, _0804CB9C @ =0x80001000
+ str r0, [r5, #8]
+ ldr r0, [r5, #8]
+ ldr r0, _0804CBA0 @ =0x086BB738
+ mov r8, r0
+ ldr r0, _0804CBA4 @ =0x020314E0
+ ldr r0, [r0]
+ ldr r1, _0804CBA8 @ =0x00000749
+ adds r0, r0, r1
+ ldrb r6, [r0]
+ adds r0, r6, #0
+ movs r1, #0xf
+ bl sub_55838
+ adds r4, r0, #0
+ lsls r4, r4, #0x18
+ lsrs r4, r4, #0x16
+ add r4, r8
+ adds r0, r6, #0
+ movs r1, #0xf
+ bl sub_558B0
+ lsls r0, r0, #0x18
+ lsrs r0, r0, #0x18
+ lsls r1, r0, #1
+ adds r1, r1, r0
+ lsls r1, r1, #8
+ ldr r0, [r4]
+ adds r0, r0, r1
+ str r0, [r5]
+ ldr r0, _0804CBAC @ =0x06010CA0
+ str r0, [r5, #4]
+ ldr r0, _0804CBB0 @ =0x80000180
+ str r0, [r5, #8]
+ ldr r0, [r5, #8]
+ pop {r3}
+ mov r8, r3
+ pop {r4, r5, r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0804CB90: .4byte 0x040000D4
+_0804CB94: .4byte 0x0813C874
+_0804CB98: .4byte 0x06015800
+_0804CB9C: .4byte 0x80001000
+_0804CBA0: .4byte 0x086BB738
+_0804CBA4: .4byte 0x020314E0
+_0804CBA8: .4byte 0x00000749
+_0804CBAC: .4byte 0x06010CA0
+_0804CBB0: .4byte 0x80000180
+
+ thumb_func_start sub_4CBB4
+sub_4CBB4: @ 0x0804CBB4
+ push {r4, r5, r6, lr}
+ mov r6, r8
+ push {r6}
+ ldr r0, _0804CBD0 @ =0x020314E0
+ ldr r1, [r0]
+ ldrb r1, [r1, #0x13]
+ lsls r1, r1, #0x18
+ asrs r1, r1, #0x18
+ adds r2, r0, #0
+ cmp r1, #1
+ bgt _0804CBDC
+ ldr r1, _0804CBD4 @ =0x040000D4
+ ldr r0, _0804CBD8 @ =0x0849F1CC
+ b _0804CBE0
+ .align 2, 0
+_0804CBD0: .4byte 0x020314E0
+_0804CBD4: .4byte 0x040000D4
+_0804CBD8: .4byte 0x0849F1CC
+_0804CBDC:
+ ldr r1, _0804CC38 @ =0x040000D4
+ ldr r0, _0804CC3C @ =0x0813E894
+_0804CBE0:
+ str r0, [r1]
+ ldr r0, _0804CC40 @ =0x06015800
+ str r0, [r1, #4]
+ ldr r0, _0804CC44 @ =0x80001000
+ str r0, [r1, #8]
+ ldr r0, [r1, #8]
+ ldr r6, _0804CC38 @ =0x040000D4
+ ldr r0, _0804CC48 @ =0x086BB738
+ mov r8, r0
+ ldr r0, [r2]
+ ldr r1, _0804CC4C @ =0x00000749
+ adds r0, r0, r1
+ ldrb r5, [r0]
+ adds r0, r5, #0
+ movs r1, #0xf
+ bl sub_55838
+ adds r4, r0, #0
+ lsls r4, r4, #0x18
+ lsrs r4, r4, #0x16
+ add r4, r8
+ adds r0, r5, #0
+ movs r1, #0xf
+ bl sub_558B0
+ lsls r0, r0, #0x18
+ lsrs r0, r0, #0x18
+ lsls r1, r0, #1
+ adds r1, r1, r0
+ lsls r1, r1, #8
+ ldr r0, [r4]
+ adds r0, r0, r1
+ str r0, [r6]
+ ldr r0, _0804CC50 @ =0x06010CA0
+ str r0, [r6, #4]
+ ldr r0, _0804CC54 @ =0x80000180
+ str r0, [r6, #8]
+ ldr r0, [r6, #8]
+ pop {r3}
+ mov r8, r3
+ pop {r4, r5, r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0804CC38: .4byte 0x040000D4
+_0804CC3C: .4byte 0x0813E894
+_0804CC40: .4byte 0x06015800
+_0804CC44: .4byte 0x80001000
+_0804CC48: .4byte 0x086BB738
+_0804CC4C: .4byte 0x00000749
+_0804CC50: .4byte 0x06010CA0
+_0804CC54: .4byte 0x80000180
+
+ thumb_func_start sub_4CC58
+sub_4CC58: @ 0x0804CC58
+ push {r4, r5, r6, lr}
+ mov r6, r8
+ push {r6}
+ ldr r1, _0804CC7C @ =0x020314E0
+ ldr r0, [r1]
+ ldrb r0, [r0, #0x13]
+ lsls r0, r0, #0x18
+ asrs r0, r0, #0x18
+ adds r2, r1, #0
+ cmp r0, #0
+ bne _0804CC90
+ ldr r1, _0804CC80 @ =0x040000D4
+ ldr r0, _0804CC84 @ =0x083C5A2C
+ str r0, [r1]
+ ldr r0, _0804CC88 @ =0x06015800
+ str r0, [r1, #4]
+ ldr r0, _0804CC8C @ =0x80001400
+ b _0804CCC0
+ .align 2, 0
+_0804CC7C: .4byte 0x020314E0
+_0804CC80: .4byte 0x040000D4
+_0804CC84: .4byte 0x083C5A2C
+_0804CC88: .4byte 0x06015800
+_0804CC8C: .4byte 0x80001400
+_0804CC90:
+ cmp r0, #1
+ bne _0804CCB4
+ ldr r1, _0804CCA4 @ =0x040000D4
+ ldr r0, _0804CCA8 @ =0x084A856C
+ str r0, [r1]
+ ldr r0, _0804CCAC @ =0x06015800
+ str r0, [r1, #4]
+ ldr r0, _0804CCB0 @ =0x80000E00
+ b _0804CCC0
+ .align 2, 0
+_0804CCA4: .4byte 0x040000D4
+_0804CCA8: .4byte 0x084A856C
+_0804CCAC: .4byte 0x06015800
+_0804CCB0: .4byte 0x80000E00
+_0804CCB4:
+ ldr r1, _0804CD34 @ =0x040000D4
+ ldr r0, _0804CD38 @ =0x081408B4
+ str r0, [r1]
+ ldr r0, _0804CD3C @ =0x06015800
+ str r0, [r1, #4]
+ ldr r0, _0804CD40 @ =0x80001000
+_0804CCC0:
+ str r0, [r1, #8]
+ ldr r0, [r1, #8]
+ ldr r0, [r2]
+ movs r1, #0xf7
+ lsls r1, r1, #2
+ adds r0, r0, r1
+ ldrb r0, [r0]
+ subs r0, #2
+ lsls r0, r0, #0x18
+ lsrs r0, r0, #0x18
+ cmp r0, #9
+ bls _0804CCE8
+ ldr r1, _0804CD34 @ =0x040000D4
+ ldr r0, _0804CD44 @ =0x084AA18C
+ str r0, [r1]
+ ldr r0, _0804CD48 @ =0x06011620
+ str r0, [r1, #4]
+ ldr r0, _0804CD4C @ =0x80000430
+ str r0, [r1, #8]
+ ldr r0, [r1, #8]
+_0804CCE8:
+ ldr r6, _0804CD34 @ =0x040000D4
+ ldr r0, _0804CD50 @ =0x086BB738
+ mov r8, r0
+ ldr r0, [r2]
+ ldr r1, _0804CD54 @ =0x00000749
+ adds r0, r0, r1
+ ldrb r5, [r0]
+ adds r0, r5, #0
+ movs r1, #0xf
+ bl sub_55838
+ adds r4, r0, #0
+ lsls r4, r4, #0x18
+ lsrs r4, r4, #0x16
+ add r4, r8
+ adds r0, r5, #0
+ movs r1, #0xf
+ bl sub_558B0
+ lsls r0, r0, #0x18
+ lsrs r0, r0, #0x18
+ lsls r1, r0, #1
+ adds r1, r1, r0
+ lsls r1, r1, #8
+ ldr r0, [r4]
+ adds r0, r0, r1
+ str r0, [r6]
+ ldr r0, _0804CD58 @ =0x06010CA0
+ str r0, [r6, #4]
+ ldr r0, _0804CD5C @ =0x80000180
+ str r0, [r6, #8]
+ ldr r0, [r6, #8]
+ pop {r3}
+ mov r8, r3
+ pop {r4, r5, r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0804CD34: .4byte 0x040000D4
+_0804CD38: .4byte 0x081408B4
+_0804CD3C: .4byte 0x06015800
+_0804CD40: .4byte 0x80001000
+_0804CD44: .4byte 0x084AA18C
+_0804CD48: .4byte 0x06011620
+_0804CD4C: .4byte 0x80000430
+_0804CD50: .4byte 0x086BB738
+_0804CD54: .4byte 0x00000749
+_0804CD58: .4byte 0x06010CA0
+_0804CD5C: .4byte 0x80000180
+
+ thumb_func_start sub_4CD60
+sub_4CD60: @ 0x0804CD60
+ push {r4, r5, r6, r7, lr}
+ mov r7, sb
+ mov r6, r8
+ push {r6, r7}
+ movs r2, #0
+ ldr r3, _0804CE5C @ =0x03006400
+ ldr r6, _0804CE60 @ =0x0200B0C0
+ movs r0, #0x80
+ lsls r0, r0, #4
+ adds r0, r0, r3
+ mov r8, r0
+ ldr r1, _0804CE64 @ =0x084B77EC
+ mov sb, r1
+ ldr r0, _0804CE68 @ =0xFFFFF800
+ adds r0, r0, r3
+ mov ip, r0
+ movs r7, #0x80
+ lsls r7, r7, #3
+ movs r5, #0x80
+ lsls r5, r5, #2
+ ldr r4, _0804CE6C @ =0x000007FF
+_0804CD8A:
+ lsls r1, r2, #0x10
+ asrs r1, r1, #0x10
+ adds r0, r1, r7
+ lsls r0, r0, #1
+ add r0, ip
+ strh r5, [r0]
+ adds r1, #1
+ lsls r1, r1, #0x10
+ lsrs r2, r1, #0x10
+ asrs r1, r1, #0x10
+ cmp r1, r4
+ ble _0804CD8A
+ ldr r1, _0804CE70 @ =0x040000D4
+ str r3, [r1]
+ ldr r0, _0804CE74 @ =0x06001000
+ str r0, [r1, #4]
+ ldr r0, _0804CE78 @ =0x80000800
+ str r0, [r1, #8]
+ ldr r0, [r1, #8]
+ ldrh r0, [r6, #0x38]
+ ldr r0, _0804CE7C @ =0x00001C42
+ strh r0, [r6, #0x38]
+ ldrh r0, [r6, #0x3a]
+ ldr r0, _0804CE80 @ =0x00000C04
+ strh r0, [r6, #0x3a]
+ movs r2, #0
+ ldr r1, _0804CE68 @ =0xFFFFF800
+ adds r4, r3, r1
+ ldr r3, _0804CE84 @ =0x0000013F
+_0804CDC4:
+ lsls r0, r2, #0x10
+ asrs r2, r0, #0x10
+ adds r0, r2, #0
+ cmp r2, #0
+ bge _0804CDD0
+ adds r0, #0x1f
+_0804CDD0:
+ asrs r0, r0, #5
+ lsls r0, r0, #5
+ subs r0, r2, r0
+ subs r0, #2
+ lsls r0, r0, #0x10
+ lsrs r0, r0, #0x10
+ cmp r0, #0x1b
+ bhi _0804CDF0
+ movs r1, #0x80
+ lsls r1, r1, #4
+ adds r0, r2, r1
+ lsls r0, r0, #1
+ adds r0, r0, r4
+ movs r1, #0x90
+ lsls r1, r1, #8
+ strh r1, [r0]
+_0804CDF0:
+ adds r0, r2, #1
+ lsls r0, r0, #0x10
+ lsrs r2, r0, #0x10
+ asrs r0, r0, #0x10
+ cmp r0, r3
+ ble _0804CDC4
+ movs r0, #0xbb
+ lsls r0, r0, #2
+ adds r1, r6, r0
+ movs r0, #8
+ strh r0, [r1]
+ ldr r0, _0804CE88 @ =0x000002EE
+ adds r1, r6, r0
+ movs r0, #0x7e
+ strh r0, [r1]
+ ldr r1, _0804CE70 @ =0x040000D4
+ mov r0, r8
+ str r0, [r1]
+ ldr r0, _0804CE8C @ =0x06001140
+ str r0, [r1, #4]
+ ldr r0, _0804CE90 @ =0x80000140
+ str r0, [r1, #8]
+ ldr r0, [r1, #8]
+ movs r2, #0
+ ldr r5, _0804CE94 @ =0xFFFFF000
+ add r5, r8
+ ldr r4, _0804CE98 @ =0x000001FF
+ ldr r3, _0804CE6C @ =0x000007FF
+_0804CE28:
+ lsls r1, r2, #0x10
+ asrs r1, r1, #0x10
+ lsls r0, r1, #1
+ adds r0, r0, r5
+ strh r4, [r0]
+ adds r1, #1
+ lsls r1, r1, #0x10
+ lsrs r2, r1, #0x10
+ asrs r1, r1, #0x10
+ cmp r1, r3
+ ble _0804CE28
+ ldr r1, _0804CE70 @ =0x040000D4
+ mov r0, sb
+ str r0, [r1]
+ ldr r0, _0804CE9C @ =0x06015800
+ str r0, [r1, #4]
+ ldr r0, _0804CEA0 @ =0x80000400
+ str r0, [r1, #8]
+ ldr r0, [r1, #8]
+ pop {r3, r4}
+ mov r8, r3
+ mov sb, r4
+ pop {r4, r5, r6, r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0804CE5C: .4byte 0x03006400
+_0804CE60: .4byte 0x0200B0C0
+_0804CE64: .4byte 0x084B77EC
+_0804CE68: .4byte 0xFFFFF800
+_0804CE6C: .4byte 0x000007FF
+_0804CE70: .4byte 0x040000D4
+_0804CE74: .4byte 0x06001000
+_0804CE78: .4byte 0x80000800
+_0804CE7C: .4byte 0x00001C42
+_0804CE80: .4byte 0x00000C04
+_0804CE84: .4byte 0x0000013F
+_0804CE88: .4byte 0x000002EE
+_0804CE8C: .4byte 0x06001140
+_0804CE90: .4byte 0x80000140
+_0804CE94: .4byte 0xFFFFF000
+_0804CE98: .4byte 0x000001FF
+_0804CE9C: .4byte 0x06015800
+_0804CEA0: .4byte 0x80000400
+
+ thumb_func_start nullsub_18
+nullsub_18: @ 0x0804CEA4
+ bx lr
+
+ thumb_func_start sub_4CEA8
+sub_4CEA8: @ 0x0804CEA8
+ push {lr}
+ bl sub_4CEB4
+ pop {r0}
+ bx r0
+
+ thumb_func_start sub_4CEB4
+sub_4CEB4: @ 0x0804CEB4
+ push {r4, r5, r6, r7, lr}
+ mov r7, sl
+ mov r6, sb
+ mov r5, r8
+ push {r5, r6, r7}
+ sub sp, #0x18
+ bl sub_4D3D0
+ ldr r5, _0804CF34 @ =0x020314E0
+ ldr r2, [r5]
+ ldr r1, _0804CF38 @ =0x000005F6
+ adds r0, r2, r1
+ ldrb r0, [r0]
+ lsls r0, r0, #0x18
+ asrs r0, r0, #0x18
+ adds r0, #1
+ ldr r1, [r2, #0x3c]
+ muls r1, r0, r1
+ ldr r0, [r2, #0x40]
+ adds r3, r0, r1
+ str r3, [r2, #0x40]
+ ldrb r1, [r2, #0x1c]
+ cmp r1, #0
+ beq _0804CF56
+ ldrb r0, [r2, #5]
+ ldr r4, _0804CF3C @ =0x0200B0C0
+ cmp r0, #0
+ bne _0804CEF6
+ ldrh r1, [r4, #0x18]
+ movs r0, #1
+ ands r0, r1
+ cmp r0, #0
+ beq _0804CF08
+_0804CEF6:
+ ldr r0, [r2, #0x44]
+ adds r0, r0, r3
+ str r0, [r2, #0x44]
+ movs r0, #0
+ str r0, [r2, #0x40]
+ strb r0, [r2, #0x1c]
+ ldr r1, [r5]
+ ldr r0, _0804CF40 @ =0x00009C40
+ str r0, [r1, #0x38]
+_0804CF08:
+ ldr r5, [r4, #0x4c]
+ movs r0, #1
+ ands r5, r0
+ cmp r5, #0
+ bne _0804CF5E
+ ldr r1, _0804CF34 @ =0x020314E0
+ ldr r2, [r1]
+ ldr r4, [r2, #0x40]
+ cmp r4, #0
+ beq _0804CF5E
+ ldr r3, [r2, #0x38]
+ cmp r4, r3
+ bhi _0804CF44
+ ldr r0, [r2, #0x44]
+ adds r0, r0, r4
+ str r0, [r2, #0x44]
+ str r5, [r2, #0x40]
+ strb r5, [r2, #0x1c]
+ ldr r1, [r1]
+ ldr r0, _0804CF40 @ =0x00009C40
+ str r0, [r1, #0x38]
+ b _0804CF5E
+ .align 2, 0
+_0804CF34: .4byte 0x020314E0
+_0804CF38: .4byte 0x000005F6
+_0804CF3C: .4byte 0x0200B0C0
+_0804CF40: .4byte 0x00009C40
+_0804CF44:
+ ldr r0, [r2, #0x44]
+ adds r0, r0, r3
+ str r0, [r2, #0x44]
+ subs r0, r4, r3
+ str r0, [r2, #0x40]
+ movs r0, #0x91
+ bl sub_53DA8
+ b _0804CF5E
+_0804CF56:
+ ldr r0, [r2, #0x44]
+ adds r0, r0, r3
+ str r0, [r2, #0x44]
+ str r1, [r2, #0x40]
+_0804CF5E:
+ ldr r4, _0804CF84 @ =0x020314E0
+ ldr r6, [r4]
+ ldr r7, [r6, #0x44]
+ ldr r1, _0804CF88 @ =0x05F5E100
+ adds r0, r7, #0
+ bl sub_55838
+ mov sb, r4
+ cmp r0, #0
+ beq _0804CF9C
+ ldr r1, [r6, #0x48]
+ ldr r0, _0804CF8C @ =0x0000270E
+ cmp r1, r0
+ bhi _0804CF94
+ adds r0, r1, #1
+ str r0, [r6, #0x48]
+ ldr r2, _0804CF90 @ =0xFA0A1F00
+ adds r0, r7, r2
+ b _0804CF9A
+ .align 2, 0
+_0804CF84: .4byte 0x020314E0
+_0804CF88: .4byte 0x05F5E100
+_0804CF8C: .4byte 0x0000270E
+_0804CF90: .4byte 0xFA0A1F00
+_0804CF94:
+ ldr r0, _0804D2EC @ =0x0000270F
+ str r0, [r6, #0x48]
+ ldr r0, _0804D2F0 @ =0x05F5E0FF
+_0804CF9A:
+ str r0, [r6, #0x44]
+_0804CF9C:
+ mov r7, sb
+ ldr r5, [r7]
+ movs r0, #0
+ str r0, [r5, #0x3c]
+ ldr r7, [r5, #0x48]
+ mov r4, sp
+ ldr r0, _0804D2F4 @ =0x00002710
+ mov r8, r0
+ adds r0, r7, #0
+ mov r1, r8
+ bl sub_558B0
+ movs r6, #0xfa
+ lsls r6, r6, #2
+ adds r1, r6, #0
+ bl sub_55838
+ adds r0, #5
+ strh r0, [r4]
+ mov r4, sp
+ adds r0, r7, #0
+ adds r1, r6, #0
+ bl sub_558B0
+ movs r1, #0x64
+ bl sub_55838
+ adds r0, #5
+ strh r0, [r4, #2]
+ mov r4, sp
+ adds r0, r7, #0
+ movs r1, #0x64
+ bl sub_558B0
+ movs r1, #0xa
+ bl sub_55838
+ adds r0, #0x13
+ strh r0, [r4, #4]
+ mov r4, sp
+ adds r0, r7, #0
+ movs r1, #0xa
+ bl sub_558B0
+ adds r0, #5
+ strh r0, [r4, #6]
+ ldr r7, [r5, #0x44]
+ mov r5, sp
+ ldr r4, _0804D2F8 @ =0x00989680
+ adds r0, r7, #0
+ adds r1, r4, #0
+ bl sub_55838
+ adds r0, #5
+ strh r0, [r5, #8]
+ mov r5, sp
+ adds r0, r7, #0
+ adds r1, r4, #0
+ bl sub_558B0
+ ldr r4, _0804D2FC @ =0x000F4240
+ adds r1, r4, #0
+ bl sub_55838
+ adds r0, #0x13
+ strh r0, [r5, #0xa]
+ mov r5, sp
+ adds r0, r7, #0
+ adds r1, r4, #0
+ bl sub_558B0
+ ldr r4, _0804D300 @ =0x000186A0
+ adds r1, r4, #0
+ bl sub_55838
+ adds r0, #5
+ strh r0, [r5, #0xc]
+ mov r5, sp
+ adds r0, r7, #0
+ adds r1, r4, #0
+ bl sub_558B0
+ mov r1, r8
+ bl sub_55838
+ adds r0, #5
+ strh r0, [r5, #0xe]
+ mov r4, sp
+ adds r0, r7, #0
+ mov r1, r8
+ bl sub_558B0
+ adds r1, r6, #0
+ bl sub_55838
+ adds r0, #0x13
+ strh r0, [r4, #0x10]
+ mov r4, sp
+ adds r0, r7, #0
+ adds r1, r6, #0
+ bl sub_558B0
+ movs r1, #0x64
+ bl sub_55838
+ adds r0, #5
+ strh r0, [r4, #0x12]
+ mov r4, sp
+ adds r0, r7, #0
+ movs r1, #0x64
+ bl sub_558B0
+ movs r1, #0xa
+ bl sub_55838
+ adds r0, #5
+ strh r0, [r4, #0x14]
+ mov r4, sp
+ adds r0, r7, #0
+ movs r1, #0xa
+ bl sub_558B0
+ adds r0, #5
+ strh r0, [r4, #0x16]
+ movs r3, #0
+ ldr r1, _0804D304 @ =0x03005C00
+ mov sl, r1
+ movs r4, #0x1e
+_0804D09C:
+ lsls r0, r3, #0x10
+ asrs r2, r0, #0x10
+ lsls r0, r2, #1
+ mov r5, sp
+ adds r1, r5, r0
+ movs r7, #0
+ ldrsh r0, [r1, r7]
+ cmp r0, #5
+ beq _0804D0B2
+ cmp r0, #0x13
+ bne _0804D0C0
+_0804D0B2:
+ strh r4, [r1]
+ adds r0, r2, #1
+ lsls r0, r0, #0x10
+ lsrs r3, r0, #0x10
+ asrs r0, r0, #0x10
+ cmp r0, #4
+ ble _0804D09C
+_0804D0C0:
+ lsls r1, r3, #0x10
+ adds r3, r1, #0
+ asrs r0, r3, #0x10
+ cmp r0, #0xb
+ bgt _0804D10A
+ ldr r5, _0804D304 @ =0x03005C00
+ asrs r6, r1, #0x10
+_0804D0CE:
+ asrs r3, r3, #0x10
+ subs r1, r3, r6
+ ldr r0, _0804D308 @ =0x000007C1
+ adds r2, r1, r0
+ lsls r2, r2, #1
+ adds r2, r2, r5
+ lsls r0, r3, #1
+ mov r7, sp
+ adds r4, r7, r0
+ movs r7, #0
+ ldrsh r0, [r4, r7]
+ lsls r0, r0, #1
+ ldr r7, _0804D30C @ =0xFFFFC160
+ adds r0, r0, r7
+ strh r0, [r2]
+ ldr r0, _0804D310 @ =0x000007E1
+ adds r1, r1, r0
+ lsls r1, r1, #1
+ adds r1, r1, r5
+ movs r2, #0
+ ldrsh r0, [r4, r2]
+ lsls r0, r0, #1
+ adds r7, #1
+ adds r0, r0, r7
+ strh r0, [r1]
+ adds r3, #1
+ lsls r3, r3, #0x10
+ asrs r0, r3, #0x10
+ cmp r0, #0xb
+ ble _0804D0CE
+_0804D10A:
+ mov r1, sb
+ ldr r0, [r1]
+ movs r3, #0xbe
+ lsls r3, r3, #3
+ adds r2, r0, r3
+ ldrh r0, [r2]
+ ldr r1, _0804D314 @ =0x000003E7
+ cmp r0, r1
+ bls _0804D11E
+ strh r1, [r2]
+_0804D11E:
+ mov r5, sp
+ mov r2, sb
+ ldr r4, [r2]
+ adds r4, r4, r3
+ ldrh r0, [r4]
+ movs r1, #0x64
+ bl sub_55838
+ strh r0, [r5, #4]
+ mov r5, sp
+ ldrh r0, [r4]
+ movs r1, #0x64
+ bl sub_558B0
+ lsls r0, r0, #0x10
+ lsrs r0, r0, #0x10
+ movs r1, #0xa
+ bl sub_55838
+ strh r0, [r5, #2]
+ mov r5, sp
+ ldrh r0, [r4]
+ movs r1, #0xa
+ bl sub_558B0
+ strh r0, [r5]
+ mov r6, sl
+ ldr r5, _0804D318 @ =0x00000FA2
+ adds r1, r6, r5
+ ldr r0, _0804D31C @ =0x0000C17E
+ strh r0, [r1]
+ ldr r7, _0804D320 @ =0x00000FE2
+ adds r1, r6, r7
+ adds r0, #1
+ strh r0, [r1]
+ mov r0, sp
+ movs r1, #4
+ ldrsh r0, [r0, r1]
+ adds r0, #5
+ lsls r0, r0, #1
+ ldr r2, _0804D30C @ =0xFFFFC160
+ adds r7, r2, #0
+ adds r0, r0, r7
+ adds r5, #2
+ adds r1, r6, r5
+ strh r0, [r1]
+ mov r0, sp
+ movs r1, #4
+ ldrsh r0, [r0, r1]
+ adds r0, #5
+ lsls r0, r0, #1
+ adds r2, #1
+ mov r8, r2
+ add r0, r8
+ adds r5, #0x40
+ adds r1, r6, r5
+ strh r0, [r1]
+ mov r0, sp
+ movs r1, #2
+ ldrsh r0, [r0, r1]
+ adds r0, #5
+ lsls r0, r0, #1
+ adds r0, r0, r7
+ ldr r2, _0804D324 @ =0x00000FA6
+ adds r1, r6, r2
+ strh r0, [r1]
+ mov r0, sp
+ movs r5, #2
+ ldrsh r0, [r0, r5]
+ adds r0, #5
+ lsls r0, r0, #1
+ add r0, r8
+ adds r2, #0x40
+ adds r1, r6, r2
+ strh r0, [r1]
+ mov r0, sp
+ movs r5, #0
+ ldrsh r0, [r0, r5]
+ adds r0, #5
+ lsls r0, r0, #1
+ adds r0, r0, r7
+ subs r2, #0x3e
+ adds r1, r6, r2
+ strh r0, [r1]
+ mov r0, sp
+ movs r5, #0
+ ldrsh r0, [r0, r5]
+ adds r0, #5
+ lsls r0, r0, #1
+ add r0, r8
+ adds r2, #0x40
+ adds r1, r6, r2
+ strh r0, [r1]
+ mov r5, sb
+ ldr r0, [r5]
+ movs r2, #0xc9
+ lsls r2, r2, #1
+ adds r1, r0, r2
+ ldrb r0, [r1]
+ cmp r0, #0x63
+ bls _0804D1EC
+ movs r0, #0x63
+ strb r0, [r1]
+_0804D1EC:
+ mov r5, sp
+ mov r0, sb
+ ldr r4, [r0]
+ adds r4, r4, r2
+ ldrb r0, [r4]
+ movs r1, #0xa
+ bl sub_55838
+ lsls r0, r0, #0x18
+ lsrs r0, r0, #0x18
+ strh r0, [r5, #2]
+ mov r5, sp
+ ldrb r0, [r4]
+ movs r1, #0xa
+ bl sub_558B0
+ lsls r0, r0, #0x18
+ lsrs r0, r0, #0x18
+ strh r0, [r5]
+ ldr r2, _0804D328 @ =0x00000FAC
+ adds r1, r6, r2
+ ldr r0, _0804D32C @ =0x0000C19C
+ strh r0, [r1]
+ ldr r5, _0804D330 @ =0x00000FEC
+ adds r1, r6, r5
+ adds r0, #1
+ strh r0, [r1]
+ mov r0, sp
+ movs r1, #2
+ ldrsh r0, [r0, r1]
+ adds r0, #5
+ lsls r0, r0, #1
+ adds r0, r0, r7
+ adds r2, #2
+ adds r1, r6, r2
+ strh r0, [r1]
+ mov r0, sp
+ movs r5, #2
+ ldrsh r0, [r0, r5]
+ adds r0, #5
+ lsls r0, r0, #1
+ add r0, r8
+ adds r2, #0x40
+ adds r1, r6, r2
+ strh r0, [r1]
+ mov r0, sp
+ movs r5, #0
+ ldrsh r0, [r0, r5]
+ adds r0, #5
+ lsls r0, r0, #1
+ adds r0, r0, r7
+ subs r2, #0x3e
+ adds r1, r6, r2
+ strh r0, [r1]
+ mov r0, sp
+ movs r5, #0
+ ldrsh r0, [r0, r5]
+ adds r0, #5
+ lsls r0, r0, #1
+ add r0, r8
+ adds r2, #0x40
+ adds r1, r6, r2
+ strh r0, [r1]
+ mov r5, sb
+ ldr r0, [r5]
+ adds r1, r0, #0
+ adds r1, #0x30
+ movs r0, #0
+ ldrsb r0, [r1, r0]
+ cmp r0, #9
+ ble _0804D27E
+ movs r0, #9
+ strb r0, [r1]
+_0804D27E:
+ ldr r0, _0804D334 @ =0x00000FB4
+ adds r1, r6, r0
+ ldr r0, _0804D338 @ =0x0000C180
+ strh r0, [r1]
+ ldr r2, _0804D33C @ =0x00000FF4
+ adds r1, r6, r2
+ adds r0, #1
+ strh r0, [r1]
+ mov r5, sb
+ ldr r0, [r5]
+ adds r0, #0x30
+ ldrb r0, [r0]
+ lsls r0, r0, #0x18
+ asrs r0, r0, #0x18
+ adds r0, #5
+ lsls r0, r0, #1
+ adds r0, r0, r7
+ ldr r7, _0804D340 @ =0x00000FB6
+ adds r1, r6, r7
+ strh r0, [r1]
+ ldr r0, [r5]
+ adds r0, #0x30
+ ldrb r0, [r0]
+ lsls r0, r0, #0x18
+ asrs r0, r0, #0x18
+ adds r0, #5
+ lsls r0, r0, #1
+ add r0, r8
+ adds r2, #2
+ adds r1, r6, r2
+ strh r0, [r1]
+ ldr r1, [r5]
+ movs r5, #0xe5
+ lsls r5, r5, #1
+ adds r0, r1, r5
+ movs r7, #0
+ ldrsh r0, [r0, r7]
+ cmp r0, #0xd
+ bne _0804D384
+ movs r2, #0xee
+ lsls r2, r2, #1
+ adds r0, r1, r2
+ ldrh r1, [r0]
+ movs r0, #8
+ ands r0, r1
+ cmp r0, #0
+ beq _0804D350
+ ldr r5, _0804D344 @ =0x00000FBA
+ adds r1, r6, r5
+ ldr r0, _0804D348 @ =0x0000C19A
+ strh r0, [r1]
+ ldr r7, _0804D34C @ =0x00000FFA
+ adds r1, r6, r7
+ b _0804D35C
+ .align 2, 0
+_0804D2EC: .4byte 0x0000270F
+_0804D2F0: .4byte 0x05F5E0FF
+_0804D2F4: .4byte 0x00002710
+_0804D2F8: .4byte 0x00989680
+_0804D2FC: .4byte 0x000F4240
+_0804D300: .4byte 0x000186A0
+_0804D304: .4byte 0x03005C00
+_0804D308: .4byte 0x000007C1
+_0804D30C: .4byte 0xFFFFC160
+_0804D310: .4byte 0x000007E1
+_0804D314: .4byte 0x000003E7
+_0804D318: .4byte 0x00000FA2
+_0804D31C: .4byte 0x0000C17E
+_0804D320: .4byte 0x00000FE2
+_0804D324: .4byte 0x00000FA6
+_0804D328: .4byte 0x00000FAC
+_0804D32C: .4byte 0x0000C19C
+_0804D330: .4byte 0x00000FEC
+_0804D334: .4byte 0x00000FB4
+_0804D338: .4byte 0x0000C180
+_0804D33C: .4byte 0x00000FF4
+_0804D340: .4byte 0x00000FB6
+_0804D344: .4byte 0x00000FBA
+_0804D348: .4byte 0x0000C19A
+_0804D34C: .4byte 0x00000FFA
+_0804D350:
+ ldr r0, _0804D378 @ =0x00000FBA
+ adds r1, r6, r0
+ ldr r0, _0804D37C @ =0x0000C182
+ strh r0, [r1]
+ ldr r2, _0804D380 @ =0x00000FFA
+ adds r1, r6, r2
+_0804D35C:
+ adds r0, #1
+ strh r0, [r1]
+ mov r5, sb
+ ldr r0, [r5]
+ movs r7, #0xee
+ lsls r7, r7, #1
+ adds r4, r0, r7
+ ldrh r0, [r4]
+ cmp r0, #0
+ beq _0804D394
+ subs r0, #1
+ strh r0, [r4]
+ b _0804D394
+ .align 2, 0
+_0804D378: .4byte 0x00000FBA
+_0804D37C: .4byte 0x0000C182
+_0804D380: .4byte 0x00000FFA
+_0804D384:
+ ldr r1, _0804D3B4 @ =0x00000FBA
+ add r1, sl
+ ldr r0, _0804D3B8 @ =0x0000C19E
+ strh r0, [r1]
+ ldr r1, _0804D3BC @ =0x00000FFA
+ add r1, sl
+ adds r0, #1
+ strh r0, [r1]
+_0804D394:
+ ldr r1, _0804D3C0 @ =0x040000D4
+ ldr r0, _0804D3C4 @ =0x03006B80
+ str r0, [r1]
+ ldr r0, _0804D3C8 @ =0x06002F80
+ str r0, [r1, #4]
+ ldr r0, _0804D3CC @ =0x80000040
+ str r0, [r1, #8]
+ ldr r0, [r1, #8]
+ add sp, #0x18
+ pop {r3, r4, r5}
+ mov r8, r3
+ mov sb, r4
+ mov sl, r5
+ pop {r4, r5, r6, r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0804D3B4: .4byte 0x00000FBA
+_0804D3B8: .4byte 0x0000C19E
+_0804D3BC: .4byte 0x00000FFA
+_0804D3C0: .4byte 0x040000D4
+_0804D3C4: .4byte 0x03006B80
+_0804D3C8: .4byte 0x06002F80
+_0804D3CC: .4byte 0x80000040
+
+ thumb_func_start sub_4D3D0
+sub_4D3D0: @ 0x0804D3D0
+ push {r4, r5, r6, r7, lr}
+ mov r7, sb
+ mov r6, r8
+ push {r6, r7}
+ sub sp, #8
+ ldr r1, _0804D4C8 @ =0x020314E0
+ ldr r2, [r1]
+ movs r3, #0xa5
+ lsls r3, r3, #2
+ adds r0, r2, r3
+ ldrb r0, [r0]
+ lsls r0, r0, #0x18
+ asrs r0, r0, #0x18
+ mov sb, r1
+ cmp r0, #0
+ bne _0804D3F2
+ b _0804D628
+_0804D3F2:
+ ldr r5, _0804D4CC @ =0x00000296
+ adds r1, r2, r5
+ ldrh r2, [r1]
+ cmp r2, #0
+ bne _0804D3FE
+ b _0804D628
+_0804D3FE:
+ cmp r0, #2
+ bne _0804D40E
+ ldr r0, _0804D4D0 @ =0x0200B0C0
+ ldrb r0, [r0, #0xf]
+ cmp r0, #0
+ bne _0804D40E
+ subs r0, r2, #1
+ strh r0, [r1]
+_0804D40E:
+ mov r5, sp
+ mov r0, sb
+ ldr r6, [r0]
+ ldr r1, _0804D4CC @ =0x00000296
+ adds r7, r6, r1
+ ldrh r0, [r7]
+ movs r4, #0xe1
+ lsls r4, r4, #4
+ adds r1, r4, #0
+ bl sub_55838
+ strh r0, [r5]
+ ldrh r0, [r7]
+ adds r1, r4, #0
+ bl sub_558B0
+ adds r4, r0, #0
+ mov r1, sp
+ movs r0, #0xa
+ strh r0, [r1, #2]
+ mov r8, sp
+ lsls r4, r4, #0x10
+ asrs r4, r4, #0x10
+ movs r5, #0x96
+ lsls r5, r5, #2
+ adds r0, r4, #0
+ adds r1, r5, #0
+ bl sub_556D0
+ mov r2, r8
+ strh r0, [r2, #4]
+ adds r0, r4, #0
+ adds r1, r5, #0
+ bl sub_55768
+ mov r4, sp
+ lsls r0, r0, #0x10
+ asrs r0, r0, #0x10
+ movs r1, #0x3c
+ bl sub_556D0
+ strh r0, [r4, #6]
+ movs r3, #0xa5
+ lsls r3, r3, #2
+ adds r6, r6, r3
+ movs r0, #0
+ ldrsb r0, [r6, r0]
+ cmp r0, #3
+ bne _0804D4F4
+ movs r1, #0
+ ldr r6, _0804D4D4 @ =0x03005EC0
+ ldr r5, _0804D4D8 @ =0xFFFFFD40
+ adds r3, r6, r5
+ ldr r5, _0804D4DC @ =0x00000179
+ ldr r2, _0804D4E0 @ =0x000001FF
+ ldr r4, _0804D4E4 @ =0x00000199
+_0804D47E:
+ lsls r0, r1, #0x10
+ asrs r0, r0, #0x10
+ adds r1, r0, r5
+ lsls r1, r1, #1
+ adds r1, r1, r3
+ strh r2, [r1]
+ adds r1, r0, r4
+ lsls r1, r1, #1
+ adds r1, r1, r3
+ strh r2, [r1]
+ adds r0, #1
+ lsls r0, r0, #0x10
+ lsrs r1, r0, #0x10
+ asrs r0, r0, #0x10
+ cmp r0, #3
+ ble _0804D47E
+ ldr r1, _0804D4E8 @ =0x040000D4
+ str r6, [r1]
+ ldr r0, _0804D4EC @ =0x060022C0
+ str r0, [r1, #4]
+ ldr r0, _0804D4F0 @ =0x80000040
+ str r0, [r1, #8]
+ ldr r0, [r1, #8]
+ mov r1, sb
+ ldr r0, [r1]
+ movs r2, #0xa5
+ lsls r2, r2, #2
+ adds r0, r0, r2
+ movs r1, #0
+ strb r1, [r0]
+ mov r3, sb
+ ldr r0, [r3]
+ ldr r5, _0804D4CC @ =0x00000296
+ adds r0, r0, r5
+ strh r1, [r0]
+ b _0804D556
+ .align 2, 0
+_0804D4C8: .4byte 0x020314E0
+_0804D4CC: .4byte 0x00000296
+_0804D4D0: .4byte 0x0200B0C0
+_0804D4D4: .4byte 0x03005EC0
+_0804D4D8: .4byte 0xFFFFFD40
+_0804D4DC: .4byte 0x00000179
+_0804D4E0: .4byte 0x000001FF
+_0804D4E4: .4byte 0x00000199
+_0804D4E8: .4byte 0x040000D4
+_0804D4EC: .4byte 0x060022C0
+_0804D4F0: .4byte 0x80000040
+_0804D4F4:
+ ldrh r0, [r7]
+ cmp r0, #0
+ bne _0804D500
+ bl sub_4D648
+ b _0804D542
+_0804D500:
+ movs r1, #0
+ ldr r4, _0804D578 @ =0x03005C00
+_0804D504:
+ lsls r2, r1, #0x10
+ asrs r2, r2, #0x10
+ ldr r0, _0804D57C @ =0x00000179
+ adds r1, r2, r0
+ lsls r1, r1, #1
+ adds r1, r1, r4
+ lsls r0, r2, #1
+ mov r5, sp
+ adds r3, r5, r0
+ movs r5, #0
+ ldrsh r0, [r3, r5]
+ lsls r0, r0, #1
+ ldr r5, _0804D580 @ =0xFFFFC140
+ adds r0, r0, r5
+ strh r0, [r1]
+ ldr r0, _0804D584 @ =0x00000199
+ adds r1, r2, r0
+ lsls r1, r1, #1
+ adds r1, r1, r4
+ movs r5, #0
+ ldrsh r0, [r3, r5]
+ lsls r0, r0, #1
+ ldr r3, _0804D588 @ =0xFFFFC141
+ adds r0, r0, r3
+ strh r0, [r1]
+ adds r2, #1
+ lsls r2, r2, #0x10
+ lsrs r1, r2, #0x10
+ asrs r2, r2, #0x10
+ cmp r2, #3
+ ble _0804D504
+_0804D542:
+ ldr r1, _0804D58C @ =0x040000D4
+ ldr r0, _0804D590 @ =0x03005EC0
+ str r0, [r1]
+ ldr r0, _0804D594 @ =0x060022C0
+ str r0, [r1, #4]
+ ldr r0, _0804D598 @ =0x80000040
+ str r0, [r1, #8]
+ ldr r0, [r1, #8]
+ ldr r5, _0804D59C @ =0x020314E0
+ mov sb, r5
+_0804D556:
+ mov r1, sb
+ ldr r0, [r1]
+ ldr r2, _0804D5A0 @ =0x00000296
+ adds r3, r0, r2
+ ldrh r2, [r3]
+ adds r1, r2, #0
+ movs r0, #0xe1
+ lsls r0, r0, #2
+ cmp r1, r0
+ bhi _0804D5E8
+ movs r0, #8
+ ands r0, r2
+ cmp r0, #0
+ beq _0804D5A8
+ ldr r1, _0804D58C @ =0x040000D4
+ ldr r0, _0804D5A4 @ =0x086B0884
+ b _0804D5AC
+ .align 2, 0
+_0804D578: .4byte 0x03005C00
+_0804D57C: .4byte 0x00000179
+_0804D580: .4byte 0xFFFFC140
+_0804D584: .4byte 0x00000199
+_0804D588: .4byte 0xFFFFC141
+_0804D58C: .4byte 0x040000D4
+_0804D590: .4byte 0x03005EC0
+_0804D594: .4byte 0x060022C0
+_0804D598: .4byte 0x80000040
+_0804D59C: .4byte 0x020314E0
+_0804D5A0: .4byte 0x00000296
+_0804D5A4: .4byte 0x086B0884
+_0804D5A8:
+ ldr r1, _0804D5D4 @ =0x040000D4
+ ldr r0, _0804D5D8 @ =0x081C0064
+_0804D5AC:
+ str r0, [r1]
+ ldr r0, _0804D5DC @ =0x05000180
+ str r0, [r1, #4]
+ ldr r0, _0804D5E0 @ =0x80000010
+ str r0, [r1, #8]
+ ldr r0, [r1, #8]
+ mov r3, sb
+ ldr r0, [r3]
+ ldr r5, _0804D5E4 @ =0x00000296
+ adds r0, r0, r5
+ ldrh r1, [r0]
+ movs r0, #0xe1
+ lsls r0, r0, #2
+ cmp r1, r0
+ bne _0804D628
+ movs r0, #0x19
+ bl sub_53DA8
+ b _0804D628
+ .align 2, 0
+_0804D5D4: .4byte 0x040000D4
+_0804D5D8: .4byte 0x081C0064
+_0804D5DC: .4byte 0x05000180
+_0804D5E0: .4byte 0x80000010
+_0804D5E4: .4byte 0x00000296
+_0804D5E8:
+ movs r0, #0xe1
+ lsls r0, r0, #3
+ cmp r1, r0
+ bhi _0804D628
+ ldrh r0, [r3]
+ movs r1, #0x16
+ bl sub_558B0
+ lsls r0, r0, #0x10
+ lsrs r0, r0, #0x10
+ movs r1, #0xb
+ bl sub_55838
+ lsls r0, r0, #0x10
+ cmp r0, #0
+ beq _0804D618
+ ldr r1, _0804D610 @ =0x040000D4
+ ldr r0, _0804D614 @ =0x086B08A4
+ b _0804D61C
+ .align 2, 0
+_0804D610: .4byte 0x040000D4
+_0804D614: .4byte 0x086B08A4
+_0804D618:
+ ldr r1, _0804D638 @ =0x040000D4
+ ldr r0, _0804D63C @ =0x081C0064
+_0804D61C:
+ str r0, [r1]
+ ldr r0, _0804D640 @ =0x05000180
+ str r0, [r1, #4]
+ ldr r0, _0804D644 @ =0x80000010
+ str r0, [r1, #8]
+ ldr r0, [r1, #8]
+_0804D628:
+ add sp, #8
+ pop {r3, r4}
+ mov r8, r3
+ mov sb, r4
+ pop {r4, r5, r6, r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0804D638: .4byte 0x040000D4
+_0804D63C: .4byte 0x081C0064
+_0804D640: .4byte 0x05000180
+_0804D644: .4byte 0x80000010
+
+ thumb_func_start sub_4D648
+sub_4D648: @ 0x0804D648
+ push {r4, r5, r6, lr}
+ ldr r2, _0804D6A0 @ =0x020314E0
+ ldr r0, [r2]
+ movs r1, #0xa5
+ lsls r1, r1, #2
+ adds r0, r0, r1
+ movs r1, #0
+ strb r1, [r0]
+ ldr r0, [r2]
+ ldr r2, _0804D6A4 @ =0x00000296
+ adds r0, r0, r2
+ strh r1, [r0]
+ ldr r6, _0804D6A8 @ =0x03005EC0
+ ldr r0, _0804D6AC @ =0xFFFFFD40
+ adds r3, r6, r0
+ ldr r5, _0804D6B0 @ =0x00000179
+ subs r2, #0x97
+ ldr r4, _0804D6B4 @ =0x00000199
+_0804D66C:
+ lsls r0, r1, #0x10
+ asrs r0, r0, #0x10
+ adds r1, r0, r5
+ lsls r1, r1, #1
+ adds r1, r1, r3
+ strh r2, [r1]
+ adds r1, r0, r4
+ lsls r1, r1, #1
+ adds r1, r1, r3
+ strh r2, [r1]
+ adds r0, #1
+ lsls r0, r0, #0x10
+ lsrs r1, r0, #0x10
+ asrs r0, r0, #0x10
+ cmp r0, #3
+ ble _0804D66C
+ ldr r1, _0804D6B8 @ =0x040000D4
+ str r6, [r1]
+ ldr r0, _0804D6BC @ =0x060022C0
+ str r0, [r1, #4]
+ ldr r0, _0804D6C0 @ =0x80000040
+ str r0, [r1, #8]
+ ldr r0, [r1, #8]
+ pop {r4, r5, r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0804D6A0: .4byte 0x020314E0
+_0804D6A4: .4byte 0x00000296
+_0804D6A8: .4byte 0x03005EC0
+_0804D6AC: .4byte 0xFFFFFD40
+_0804D6B0: .4byte 0x00000179
+_0804D6B4: .4byte 0x00000199
+_0804D6B8: .4byte 0x040000D4
+_0804D6BC: .4byte 0x060022C0
+_0804D6C0: .4byte 0x80000040
+
+ thumb_func_start sub_4D6C4
+sub_4D6C4: @ 0x0804D6C4
+ push {r4, r5, r6, r7, lr}
+ mov r7, r8
+ push {r7}
+ movs r0, #0
+ mov ip, r0
+ ldr r0, _0804D7B0 @ =0x0200B0C0
+ ldrb r2, [r0, #4]
+ movs r3, #0
+ adds r7, r0, #0
+ cmp r2, #0
+ beq _0804D6E6
+ ldr r3, _0804D7B4 @ =0x0000FFE8
+ cmp r2, #1
+ beq _0804D6E6
+ movs r3, #0
+ movs r1, #8
+ mov ip, r1
+_0804D6E6:
+ ldrb r0, [r7, #4]
+ cmp r0, #1
+ bls _0804D6EE
+ b _0804D810
+_0804D6EE:
+ ldr r6, _0804D7B8 @ =0x020314E0
+ ldr r1, [r6]
+ lsls r0, r3, #0x10
+ asrs r0, r0, #0x10
+ subs r0, #0xf4
+ ldr r4, _0804D7BC @ =0x000005FC
+ adds r2, r1, r4
+ movs r5, #0
+ movs r3, #0
+ strh r0, [r2]
+ ldr r2, _0804D7C0 @ =0x000005FE
+ adds r0, r1, r2
+ strh r3, [r0]
+ ldr r0, _0804D7C4 @ =0x000005FB
+ adds r1, r1, r0
+ strb r5, [r1]
+ ldr r6, [r6]
+ ldr r0, _0804D7C8 @ =0x02031520
+ ldrh r1, [r0, #0x14]
+ adds r3, r6, #0
+ adds r3, #0x4c
+ strh r1, [r3]
+ ldrh r1, [r0, #0x16]
+ adds r5, r6, #0
+ adds r5, #0x4e
+ strh r1, [r5]
+ movs r1, #0x16
+ ldrsh r0, [r0, r1]
+ lsls r0, r0, #8
+ str r0, [r6, #0x54]
+ ldrh r1, [r3]
+ adds r0, r6, #0
+ adds r0, #0x58
+ strh r1, [r0]
+ adds r4, r6, r4
+ ldrh r0, [r4]
+ ldrh r2, [r5]
+ adds r0, r0, r2
+ adds r1, r6, #0
+ adds r1, #0x5a
+ strh r0, [r1]
+ ldrh r1, [r3]
+ mov r0, ip
+ lsls r2, r0, #0x10
+ asrs r2, r2, #0x10
+ adds r1, r2, r1
+ mov ip, r1
+ movs r1, #0xbc
+ lsls r1, r1, #2
+ adds r0, r7, r1
+ mov r1, ip
+ strh r1, [r0]
+ ldrh r0, [r4]
+ ldrh r1, [r5]
+ adds r0, r0, r1
+ ldr r1, _0804D7CC @ =0x000002F2
+ strh r0, [r1, r7]
+ ldrh r0, [r3]
+ adds r0, r2, r0
+ adds r1, #2
+ strh r0, [r1, r7]
+ ldrh r0, [r4]
+ ldrh r1, [r5]
+ adds r0, r0, r1
+ ldr r1, _0804D7D0 @ =0x000002F6
+ strh r0, [r1, r7]
+ ldrh r0, [r3]
+ adds r2, r2, r0
+ subs r1, #0xa
+ adds r0, r7, r1
+ strh r2, [r0]
+ ldrh r0, [r4]
+ ldrh r5, [r5]
+ adds r0, r0, r5
+ ldr r2, _0804D7D4 @ =0x000002EE
+ adds r1, r7, r2
+ strh r0, [r1]
+ ldrb r0, [r7, #4]
+ cmp r0, #0
+ bne _0804D7E4
+ ldr r5, _0804D7D8 @ =0x00000283
+ adds r0, r6, r5
+ ldrb r0, [r0]
+ movs r1, #5
+ bl sub_55838
+ lsls r0, r0, #0x18
+ lsrs r0, r0, #0x18
+ movs r1, #1
+ ands r0, r1
+ cmp r0, #0
+ bne _0804D7DC
+ movs r0, #0x1c
+ bl sub_53DA8
+ b _0804D90E
+ .align 2, 0
+_0804D7B0: .4byte 0x0200B0C0
+_0804D7B4: .4byte 0x0000FFE8
+_0804D7B8: .4byte 0x020314E0
+_0804D7BC: .4byte 0x000005FC
+_0804D7C0: .4byte 0x000005FE
+_0804D7C4: .4byte 0x000005FB
+_0804D7C8: .4byte 0x02031520
+_0804D7CC: .4byte 0x000002F2
+_0804D7D0: .4byte 0x000002F6
+_0804D7D4: .4byte 0x000002EE
+_0804D7D8: .4byte 0x00000283
+_0804D7DC:
+ movs r0, #0x5b
+ bl sub_53DA8
+ b _0804D90E
+_0804D7E4:
+ ldr r7, _0804D804 @ =0x00000283
+ adds r0, r6, r7
+ ldrb r0, [r0]
+ movs r1, #5
+ bl sub_55838
+ lsls r0, r0, #0x18
+ lsrs r0, r0, #0x18
+ movs r1, #1
+ ands r0, r1
+ cmp r0, #0
+ bne _0804D808
+ movs r0, #0x20
+ bl sub_53DA8
+ b _0804D90E
+ .align 2, 0
+_0804D804: .4byte 0x00000283
+_0804D808:
+ movs r0, #0x5c
+ bl sub_53DA8
+ b _0804D90E
+_0804D810:
+ ldr r3, _0804D838 @ =0x020314E0
+ ldr r1, [r3]
+ ldr r2, _0804D83C @ =0x000005FC
+ adds r0, r1, r2
+ movs r4, #0
+ movs r2, #0
+ strh r2, [r0]
+ ldr r5, _0804D840 @ =0x000005FE
+ adds r0, r1, r5
+ strh r2, [r0]
+ ldr r0, _0804D844 @ =0x000005FB
+ adds r1, r1, r0
+ strb r4, [r1]
+ ldrb r0, [r7, #4]
+ cmp r0, #3
+ bhi _0804D84C
+ ldr r0, [r3]
+ adds r0, #0xe6
+ ldr r1, _0804D848 @ =0x0000FFE8
+ b _0804D862
+ .align 2, 0
+_0804D838: .4byte 0x020314E0
+_0804D83C: .4byte 0x000005FC
+_0804D840: .4byte 0x000005FE
+_0804D844: .4byte 0x000005FB
+_0804D848: .4byte 0x0000FFE8
+_0804D84C:
+ cmp r0, #6
+ bne _0804D85C
+ ldr r0, [r3]
+ adds r0, #0xe6
+ ldr r1, _0804D858 @ =0x0000FFA8
+ b _0804D862
+ .align 2, 0
+_0804D858: .4byte 0x0000FFA8
+_0804D85C:
+ ldr r0, [r3]
+ adds r0, #0xe6
+ ldr r1, _0804D93C @ =0x0000FFC0
+_0804D862:
+ strh r1, [r0]
+ ldr r0, _0804D940 @ =0x020314E0
+ ldr r5, [r0]
+ ldr r1, _0804D944 @ =0x02031520
+ ldrh r0, [r1, #0x14]
+ adds r4, r5, #0
+ adds r4, #0x4c
+ strh r0, [r4]
+ adds r0, r5, #0
+ adds r0, #0xe6
+ ldrh r0, [r0]
+ ldrh r2, [r1, #0x16]
+ adds r0, r0, r2
+ adds r6, r5, #0
+ adds r6, #0x4e
+ strh r0, [r6]
+ movs r7, #0x16
+ ldrsh r0, [r1, r7]
+ lsls r0, r0, #8
+ str r0, [r5, #0x54]
+ ldrh r1, [r4]
+ adds r0, r5, #0
+ adds r0, #0x58
+ strh r1, [r0]
+ ldr r1, _0804D948 @ =0x000005FC
+ adds r0, r5, r1
+ ldrh r0, [r0]
+ ldrh r2, [r6]
+ adds r0, r0, r2
+ adds r1, r5, #0
+ adds r1, #0x5a
+ strh r0, [r1]
+ ldr r3, _0804D94C @ =0x0200B0C0
+ ldrh r0, [r4]
+ mov r7, ip
+ lsls r1, r7, #0x10
+ asrs r1, r1, #0x10
+ adds r0, r1, r0
+ mov r8, r0
+ movs r2, #0xbc
+ lsls r2, r2, #2
+ adds r0, r3, r2
+ mov r7, r8
+ strh r7, [r0]
+ ldrh r2, [r6]
+ ldr r7, _0804D950 @ =0x000002F2
+ adds r0, r3, r7
+ strh r2, [r0]
+ ldrh r0, [r4]
+ adds r0, r1, r0
+ movs r2, #0xbd
+ lsls r2, r2, #2
+ adds r2, r2, r3
+ mov ip, r2
+ strh r0, [r2]
+ ldrh r2, [r6]
+ adds r7, #4
+ adds r0, r3, r7
+ strh r2, [r0]
+ ldrh r0, [r4]
+ adds r1, r1, r0
+ movs r2, #0xbb
+ lsls r2, r2, #2
+ adds r0, r3, r2
+ strh r1, [r0]
+ movs r7, #0
+ ldrsh r0, [r6, r7]
+ lsrs r1, r0, #0x1f
+ adds r0, r0, r1
+ asrs r0, r0, #1
+ adds r2, #2
+ adds r1, r3, r2
+ strh r0, [r1]
+ ldrb r0, [r3, #4]
+ cmp r0, #3
+ bne _0804D90E
+ movs r7, #0xa4
+ lsls r7, r7, #2
+ adds r0, r5, r7
+ ldr r0, [r0]
+ ldr r1, _0804D954 @ =0x000007FF
+ ands r0, r1
+ lsrs r0, r0, #3
+ add r0, r8
+ mov r1, ip
+ strh r0, [r1]
+_0804D90E:
+ ldr r1, _0804D94C @ =0x0200B0C0
+ ldr r5, _0804D958 @ =0x000002EA
+ adds r2, r1, r5
+ movs r0, #0x50
+ strh r0, [r2]
+ ldr r0, _0804D940 @ =0x020314E0
+ ldr r2, [r0]
+ ldr r7, _0804D95C @ =0x000002F6
+ adds r1, r1, r7
+ ldrh r1, [r1]
+ adds r0, r2, #0
+ adds r0, #0xcc
+ strh r1, [r0]
+ subs r0, #2
+ strh r1, [r0]
+ movs r0, #0x80
+ lsls r0, r0, #5
+ str r0, [r2, #0x2c]
+ pop {r3}
+ mov r8, r3
+ pop {r4, r5, r6, r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0804D93C: .4byte 0x0000FFC0
+_0804D940: .4byte 0x020314E0
+_0804D944: .4byte 0x02031520
+_0804D948: .4byte 0x000005FC
+_0804D94C: .4byte 0x0200B0C0
+_0804D950: .4byte 0x000002F2
+_0804D954: .4byte 0x000007FF
+_0804D958: .4byte 0x000002EA
+_0804D95C: .4byte 0x000002F6
+
+ thumb_func_start sub_4D960
+sub_4D960: @ 0x0804D960
+ push {r4, r5, r6, r7, lr}
+ movs r7, #0x80
+ lsls r7, r7, #5
+ ldr r0, _0804D9A4 @ =0x0200B0C0
+ ldrb r0, [r0, #0xf]
+ cmp r0, #0
+ bne _0804D972
+ bl sub_4E2F8
+_0804D972:
+ ldr r1, _0804D9A8 @ =0x020314E0
+ ldr r2, [r1]
+ ldr r0, _0804D9AC @ =0x000005FB
+ adds r4, r2, r0
+ movs r0, #0
+ ldrsb r0, [r4, r0]
+ adds r6, r1, #0
+ cmp r0, #0
+ beq _0804D9C2
+ ldr r3, _0804D9B0 @ =0x000005FC
+ adds r1, r2, r3
+ ldr r5, _0804D9B4 @ =0x000005FE
+ adds r0, r2, r5
+ ldrh r3, [r1]
+ movs r5, #0
+ ldrsh r2, [r1, r5]
+ movs r5, #0
+ ldrsh r0, [r0, r5]
+ cmp r2, r0
+ beq _0804D9BE
+ cmp r2, r0
+ ble _0804D9B8
+ subs r0, r3, #1
+ strh r0, [r1]
+ b _0804D9C2
+ .align 2, 0
+_0804D9A4: .4byte 0x0200B0C0
+_0804D9A8: .4byte 0x020314E0
+_0804D9AC: .4byte 0x000005FB
+_0804D9B0: .4byte 0x000005FC
+_0804D9B4: .4byte 0x000005FE
+_0804D9B8:
+ adds r0, r3, #1
+ strh r0, [r1]
+ b _0804D9C2
+_0804D9BE:
+ movs r0, #0
+ strb r0, [r4]
+_0804D9C2:
+ ldr r5, [r6]
+ ldrb r0, [r5, #0x1f]
+ cmp r0, #0
+ bne _0804D9E0
+ ldr r1, _0804DA2C @ =0x00001330
+ adds r0, r5, r1
+ ldr r0, [r0]
+ movs r2, #0x32
+ ldrsh r1, [r0, r2]
+ lsls r0, r1, #2
+ adds r0, r0, r1
+ lsls r0, r0, #3
+ movs r3, #0x80
+ lsls r3, r3, #5
+ adds r7, r0, r3
+_0804D9E0:
+ ldr r4, [r5, #0x2c]
+ subs r0, r7, r4
+ movs r1, #0xa
+ bl sub_556D0
+ adds r4, r4, r0
+ str r4, [r5, #0x2c]
+ ldr r1, _0804DA2C @ =0x00001330
+ adds r0, r5, r1
+ ldr r0, [r0]
+ ldr r0, [r0, #0x38]
+ adds r1, r0, r4
+ ldr r2, _0804DA30 @ =0x02031520
+ movs r3, #0x18
+ ldrsh r0, [r2, r3]
+ lsls r0, r0, #8
+ cmp r1, r0
+ bgt _0804DA0E
+ movs r4, #0x1a
+ ldrsh r0, [r2, r4]
+ lsls r0, r0, #8
+ cmp r1, r0
+ bge _0804DA10
+_0804DA0E:
+ adds r1, r0, #0
+_0804DA10:
+ ldr r5, _0804DA34 @ =0xFFFFB000
+ adds r1, r1, r5
+ ldr r0, [r6]
+ ldr r4, [r0, #0x54]
+ subs r0, r1, r4
+ movs r1, #0xc
+ bl sub_556D0
+ adds r1, r0, #0
+ cmp r1, #0
+ ble _0804DA38
+ cmp r1, #0x4f
+ bgt _0804DA42
+ b _0804DA40
+ .align 2, 0
+_0804DA2C: .4byte 0x00001330
+_0804DA30: .4byte 0x02031520
+_0804DA34: .4byte 0xFFFFB000
+_0804DA38:
+ movs r0, #0x50
+ rsbs r0, r0, #0
+ cmp r1, r0
+ ble _0804DA42
+_0804DA40:
+ movs r1, #0
+_0804DA42:
+ adds r4, r4, r1
+ ldr r1, [r6]
+ ldr r2, _0804DA7C @ =0x000005FA
+ adds r0, r1, r2
+ ldrb r0, [r0]
+ lsls r0, r0, #0x18
+ asrs r0, r0, #0x18
+ cmp r0, #0
+ bne _0804DAAC
+ str r4, [r1, #0x54]
+ adds r0, r4, #0
+ cmp r0, #0
+ bge _0804DA5E
+ adds r0, #0xff
+_0804DA5E:
+ asrs r0, r0, #8
+ adds r2, r1, #0
+ adds r2, #0x4e
+ strh r0, [r2]
+ ldr r3, _0804DA80 @ =0x00001330
+ adds r0, r1, r3
+ ldr r0, [r0]
+ movs r4, #0x10
+ ldrsh r0, [r0, r4]
+ cmp r0, #0xe5
+ ble _0804DA84
+ adds r1, #0x4c
+ ldrh r0, [r1]
+ adds r0, #1
+ b _0804DA8A
+ .align 2, 0
+_0804DA7C: .4byte 0x000005FA
+_0804DA80: .4byte 0x00001330
+_0804DA84:
+ adds r1, #0x4c
+ ldrh r0, [r1]
+ subs r0, #1
+_0804DA8A:
+ strh r0, [r1]
+ ldr r0, _0804DAA0 @ =0x020314E0
+ ldr r0, [r0]
+ adds r1, r0, #0
+ adds r1, #0x4c
+ movs r5, #0
+ ldrsh r0, [r1, r5]
+ cmp r0, #0x10
+ ble _0804DAA4
+ movs r0, #0x10
+ b _0804DAAA
+ .align 2, 0
+_0804DAA0: .4byte 0x020314E0
+_0804DAA4:
+ cmp r0, #0
+ bge _0804DAAC
+ movs r0, #0
+_0804DAAA:
+ strh r0, [r1]
+_0804DAAC:
+ bl sub_4DFA0
+ ldr r3, _0804DB14 @ =0x0200B0C0
+ ldr r0, _0804DB18 @ =0x020314E0
+ ldr r4, [r0]
+ adds r2, r4, #0
+ adds r2, #0x4c
+ movs r1, #0x90
+ lsls r1, r1, #1
+ adds r0, r4, r1
+ movs r1, #0
+ ldrsb r1, [r0, r1]
+ ldrh r2, [r2]
+ adds r1, r1, r2
+ ldr r2, _0804DB1C @ =0x000002AA
+ adds r0, r4, r2
+ ldrh r0, [r0]
+ adds r0, r0, r1
+ movs r5, #0xbd
+ lsls r5, r5, #2
+ adds r1, r3, r5
+ strh r0, [r1]
+ adds r1, r4, #0
+ adds r1, #0x4e
+ ldr r2, _0804DB20 @ =0x00000121
+ adds r0, r4, r2
+ movs r2, #0
+ ldrsb r2, [r0, r2]
+ ldrh r1, [r1]
+ adds r2, r2, r1
+ ldr r5, _0804DB24 @ =0x000005FC
+ adds r0, r4, r5
+ ldrh r1, [r0]
+ adds r0, r4, #0
+ adds r0, #0xe6
+ adds r1, r1, r2
+ ldrh r0, [r0]
+ adds r1, r1, r0
+ adds r0, r4, #0
+ adds r0, #0xcc
+ strh r1, [r0]
+ ldr r0, _0804DB28 @ =0x000002F6
+ adds r3, r3, r0
+ ldrh r0, [r3]
+ subs r0, r0, r1
+ lsls r0, r0, #0x10
+ lsrs r2, r0, #0x10
+ asrs r1, r0, #0x10
+ cmp r1, #8
+ ble _0804DB2C
+ movs r2, #8
+ b _0804DB36
+ .align 2, 0
+_0804DB14: .4byte 0x0200B0C0
+_0804DB18: .4byte 0x020314E0
+_0804DB1C: .4byte 0x000002AA
+_0804DB20: .4byte 0x00000121
+_0804DB24: .4byte 0x000005FC
+_0804DB28: .4byte 0x000002F6
+_0804DB2C:
+ movs r0, #8
+ rsbs r0, r0, #0
+ cmp r1, r0
+ bge _0804DB36
+ ldr r2, _0804DBE0 @ =0x0000FFF8
+_0804DB36:
+ ldr r3, _0804DBE4 @ =0x0200B0C0
+ cmp r2, #0
+ beq _0804DB46
+ ldr r4, _0804DBE8 @ =0x000002F6
+ adds r1, r3, r4
+ ldrh r0, [r1]
+ subs r0, r0, r2
+ strh r0, [r1]
+_0804DB46:
+ movs r5, #0xbd
+ lsls r5, r5, #2
+ adds r0, r3, r5
+ ldrh r2, [r0]
+ movs r1, #0xbc
+ lsls r1, r1, #2
+ adds r0, r3, r1
+ strh r2, [r0]
+ ldr r4, _0804DBE8 @ =0x000002F6
+ adds r0, r3, r4
+ ldrh r1, [r0]
+ subs r5, #2
+ adds r0, r3, r5
+ strh r1, [r0]
+ subs r4, #0xa
+ adds r0, r3, r4
+ strh r2, [r0]
+ subs r5, #4
+ adds r0, r3, r5
+ strh r1, [r0]
+ ldr r0, _0804DBEC @ =0x020314E0
+ ldr r4, [r0]
+ adds r2, r4, #0
+ adds r2, #0x4c
+ movs r1, #0x90
+ lsls r1, r1, #1
+ adds r0, r4, r1
+ movs r1, #0
+ ldrsb r1, [r0, r1]
+ ldrh r2, [r2]
+ adds r1, r1, r2
+ ldr r2, _0804DBF0 @ =0x000002AA
+ adds r0, r4, r2
+ ldrh r0, [r0]
+ adds r0, r0, r1
+ adds r1, r4, #0
+ adds r1, #0x58
+ strh r0, [r1]
+ adds r6, r4, #0
+ adds r6, #0x4e
+ ldr r3, _0804DBF4 @ =0x00000121
+ adds r3, r3, r4
+ mov ip, r3
+ movs r1, #0
+ ldrsb r1, [r3, r1]
+ ldrh r5, [r6]
+ adds r1, r1, r5
+ ldr r0, _0804DBF8 @ =0x000005FC
+ adds r3, r4, r0
+ ldrh r0, [r3]
+ adds r5, r4, #0
+ adds r5, #0xe6
+ adds r0, r0, r1
+ ldrh r1, [r5]
+ adds r0, r0, r1
+ adds r1, r4, #0
+ adds r1, #0x5a
+ strh r0, [r1]
+ adds r2, r4, #0
+ adds r2, #0x68
+ ldrh r1, [r2]
+ adds r0, r4, #0
+ adds r0, #0x6a
+ strh r1, [r0]
+ mov r4, ip
+ movs r1, #0
+ ldrsb r1, [r4, r1]
+ ldrh r6, [r6]
+ adds r1, r1, r6
+ ldrh r0, [r3]
+ adds r0, r0, r1
+ ldrh r5, [r5]
+ adds r0, r0, r5
+ strh r0, [r2]
+ pop {r4, r5, r6, r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0804DBE0: .4byte 0x0000FFF8
+_0804DBE4: .4byte 0x0200B0C0
+_0804DBE8: .4byte 0x000002F6
+_0804DBEC: .4byte 0x020314E0
+_0804DBF0: .4byte 0x000002AA
+_0804DBF4: .4byte 0x00000121
+_0804DBF8: .4byte 0x000005FC
+
+ thumb_func_start sub_4DBFC
+sub_4DBFC: @ 0x0804DBFC
+ push {r4, r5, r6, r7, lr}
+ movs r6, #0x80
+ lsls r6, r6, #5
+ ldr r0, _0804DC48 @ =0x0200B0C0
+ ldrb r0, [r0, #0xf]
+ movs r1, #0x41
+ rsbs r1, r1, #0
+ ands r0, r1
+ cmp r0, #0
+ bne _0804DC14
+ bl sub_4E468
+_0804DC14:
+ ldr r1, _0804DC4C @ =0x020314E0
+ ldr r2, [r1]
+ ldr r0, _0804DC50 @ =0x000005FB
+ adds r4, r2, r0
+ movs r0, #0
+ ldrsb r0, [r4, r0]
+ adds r7, r1, #0
+ cmp r0, #0
+ beq _0804DC66
+ ldr r3, _0804DC54 @ =0x000005FC
+ adds r1, r2, r3
+ ldr r5, _0804DC58 @ =0x000005FE
+ adds r0, r2, r5
+ ldrh r3, [r1]
+ movs r5, #0
+ ldrsh r2, [r1, r5]
+ movs r5, #0
+ ldrsh r0, [r0, r5]
+ cmp r2, r0
+ beq _0804DC62
+ cmp r2, r0
+ ble _0804DC5C
+ subs r0, r3, #1
+ strh r0, [r1]
+ b _0804DC66
+ .align 2, 0
+_0804DC48: .4byte 0x0200B0C0
+_0804DC4C: .4byte 0x020314E0
+_0804DC50: .4byte 0x000005FB
+_0804DC54: .4byte 0x000005FC
+_0804DC58: .4byte 0x000005FE
+_0804DC5C:
+ adds r0, r3, #1
+ strh r0, [r1]
+ b _0804DC66
+_0804DC62:
+ movs r0, #0
+ strb r0, [r4]
+_0804DC66:
+ ldr r5, [r7]
+ ldrb r0, [r5, #0x1f]
+ cmp r0, #0
+ bne _0804DC84
+ ldr r6, _0804DCD0 @ =0x00001330
+ adds r0, r5, r6
+ ldr r0, [r0]
+ movs r2, #0x32
+ ldrsh r1, [r0, r2]
+ lsls r0, r1, #2
+ adds r0, r0, r1
+ lsls r0, r0, #3
+ movs r3, #0x80
+ lsls r3, r3, #5
+ adds r6, r0, r3
+_0804DC84:
+ ldr r4, [r5, #0x2c]
+ subs r0, r6, r4
+ movs r1, #0xa
+ bl sub_556D0
+ adds r4, r4, r0
+ str r4, [r5, #0x2c]
+ ldr r6, _0804DCD0 @ =0x00001330
+ adds r0, r5, r6
+ ldr r0, [r0]
+ ldr r0, [r0, #0x38]
+ adds r2, r0, r4
+ ldr r1, _0804DCD4 @ =0x02031520
+ movs r3, #0x18
+ ldrsh r0, [r1, r3]
+ lsls r0, r0, #8
+ cmp r2, r0
+ bgt _0804DCB2
+ movs r4, #0x1a
+ ldrsh r0, [r1, r4]
+ lsls r0, r0, #8
+ cmp r2, r0
+ bge _0804DCB4
+_0804DCB2:
+ adds r2, r0, #0
+_0804DCB4:
+ ldr r5, _0804DCD8 @ =0xFFFFB000
+ adds r2, r2, r5
+ ldr r0, [r7]
+ ldr r4, [r0, #0x54]
+ subs r0, r2, r4
+ movs r1, #0xc
+ bl sub_556D0
+ adds r1, r0, #0
+ cmp r1, #0
+ ble _0804DCDC
+ cmp r1, #0x4f
+ bgt _0804DCE6
+ b _0804DCE4
+ .align 2, 0
+_0804DCD0: .4byte 0x00001330
+_0804DCD4: .4byte 0x02031520
+_0804DCD8: .4byte 0xFFFFB000
+_0804DCDC:
+ movs r0, #0x50
+ rsbs r0, r0, #0
+ cmp r1, r0
+ ble _0804DCE6
+_0804DCE4:
+ movs r1, #0
+_0804DCE6:
+ adds r4, r4, r1
+ ldr r0, _0804DD80 @ =0x020314E0
+ ldr r2, [r0]
+ ldr r6, _0804DD84 @ =0x000005FA
+ adds r0, r2, r6
+ ldrb r0, [r0]
+ lsls r0, r0, #0x18
+ asrs r0, r0, #0x18
+ cmp r0, #0
+ bne _0804DD0C
+ str r4, [r2, #0x54]
+ adds r0, r4, #0
+ cmp r0, #0
+ bge _0804DD04
+ adds r0, #0xff
+_0804DD04:
+ asrs r1, r0, #8
+ adds r0, r2, #0
+ adds r0, #0x4e
+ strh r1, [r0]
+_0804DD0C:
+ bl sub_4DFA0
+ ldr r2, _0804DD88 @ =0x0200B0C0
+ ldr r0, _0804DD80 @ =0x020314E0
+ ldr r3, [r0]
+ adds r1, r3, #0
+ adds r1, #0x4c
+ movs r4, #0x90
+ lsls r4, r4, #1
+ adds r0, r3, r4
+ ldrb r0, [r0]
+ lsls r0, r0, #0x18
+ asrs r0, r0, #0x18
+ ldrh r1, [r1]
+ adds r0, r0, r1
+ ldr r5, _0804DD8C @ =0x000002AA
+ adds r1, r3, r5
+ adds r0, #8
+ ldrh r1, [r1]
+ adds r0, r0, r1
+ movs r6, #0xbc
+ lsls r6, r6, #2
+ adds r2, r2, r6
+ strh r0, [r2]
+ adds r2, r3, #0
+ adds r2, #0x4e
+ ldr r1, _0804DD90 @ =0x00000121
+ adds r0, r3, r1
+ movs r1, #0
+ ldrsb r1, [r0, r1]
+ ldrh r2, [r2]
+ adds r1, r1, r2
+ ldr r2, _0804DD94 @ =0x000005FC
+ adds r0, r3, r2
+ ldrh r0, [r0]
+ adds r2, r3, #0
+ adds r2, #0xe6
+ adds r0, r0, r1
+ ldrh r2, [r2]
+ adds r0, r0, r2
+ movs r4, #0xab
+ lsls r4, r4, #2
+ adds r1, r3, r4
+ ldrh r1, [r1]
+ adds r1, r1, r0
+ adds r0, r3, #0
+ adds r0, #0xcc
+ strh r1, [r0]
+ subs r0, #2
+ ldrh r0, [r0]
+ subs r0, r0, r1
+ lsls r0, r0, #0x10
+ lsrs r2, r0, #0x10
+ asrs r1, r0, #0x10
+ cmp r1, #8
+ ble _0804DD98
+ movs r2, #8
+ b _0804DDA2
+ .align 2, 0
+_0804DD80: .4byte 0x020314E0
+_0804DD84: .4byte 0x000005FA
+_0804DD88: .4byte 0x0200B0C0
+_0804DD8C: .4byte 0x000002AA
+_0804DD90: .4byte 0x00000121
+_0804DD94: .4byte 0x000005FC
+_0804DD98:
+ movs r0, #8
+ rsbs r0, r0, #0
+ cmp r1, r0
+ bge _0804DDA2
+ ldr r2, _0804DDDC @ =0x0000FFF8
+_0804DDA2:
+ lsls r0, r2, #0x10
+ asrs r2, r0, #0x10
+ ldr r7, _0804DDE0 @ =0x020314E0
+ cmp r2, #0
+ beq _0804DDB6
+ ldr r1, [r7]
+ adds r1, #0xca
+ ldrh r0, [r1]
+ subs r0, r0, r2
+ strh r0, [r1]
+_0804DDB6:
+ ldr r1, _0804DDE4 @ =0x0200B0C0
+ ldr r0, [r7]
+ adds r0, #0xca
+ ldrh r2, [r0]
+ ldr r5, _0804DDE8 @ =0x000002F2
+ adds r0, r1, r5
+ strh r2, [r0]
+ ldrb r0, [r1, #4]
+ subs r0, #2
+ adds r4, r1, #0
+ cmp r0, #5
+ bls _0804DDD0
+ b _0804DF18
+_0804DDD0:
+ lsls r0, r0, #2
+ ldr r1, _0804DDEC @ =_0804DDF0
+ adds r0, r0, r1
+ ldr r0, [r0]
+ mov pc, r0
+ .align 2, 0
+_0804DDDC: .4byte 0x0000FFF8
+_0804DDE0: .4byte 0x020314E0
+_0804DDE4: .4byte 0x0200B0C0
+_0804DDE8: .4byte 0x000002F2
+_0804DDEC: .4byte _0804DDF0
+_0804DDF0: @ jump table
+ .4byte _0804DE08 @ case 0
+ .4byte _0804DE4C @ case 1
+ .4byte _0804DE98 @ case 2
+ .4byte _0804DE98 @ case 3
+ .4byte _0804DEC8 @ case 4
+ .4byte _0804DEFC @ case 5
+_0804DE08:
+ movs r6, #0xbc
+ lsls r6, r6, #2
+ adds r0, r4, r6
+ ldrh r2, [r0]
+ movs r1, #0xbd
+ lsls r1, r1, #2
+ adds r0, r4, r1
+ strh r2, [r0]
+ ldr r3, _0804DE40 @ =0x000002F2
+ adds r0, r4, r3
+ ldrh r1, [r0]
+ ldr r5, _0804DE44 @ =0x000002F6
+ adds r0, r4, r5
+ strh r1, [r0]
+ subs r6, #4
+ adds r0, r4, r6
+ strh r2, [r0]
+ ldr r0, [r7]
+ adds r0, #0xca
+ movs r1, #0
+ ldrsh r0, [r0, r1]
+ lsrs r1, r0, #0x1f
+ adds r0, r0, r1
+ asrs r0, r0, #1
+ ldr r2, _0804DE48 @ =0x000002EE
+ adds r1, r4, r2
+ strh r0, [r1]
+ b _0804DF18
+ .align 2, 0
+_0804DE40: .4byte 0x000002F2
+_0804DE44: .4byte 0x000002F6
+_0804DE48: .4byte 0x000002EE
+_0804DE4C:
+ movs r3, #0xbc
+ lsls r3, r3, #2
+ adds r2, r4, r3
+ ldr r0, [r7]
+ movs r5, #0xa4
+ lsls r5, r5, #2
+ adds r0, r0, r5
+ ldr r0, [r0]
+ ldr r1, _0804DE8C @ =0x000007FF
+ ands r0, r1
+ lsrs r0, r0, #3
+ ldrh r2, [r2]
+ adds r0, r2, r0
+ movs r6, #0xbd
+ lsls r6, r6, #2
+ adds r1, r4, r6
+ movs r3, #0
+ strh r0, [r1]
+ ldr r1, _0804DE90 @ =0x000002F2
+ adds r0, r4, r1
+ ldrh r1, [r0]
+ adds r5, #0x66
+ adds r0, r4, r5
+ strh r1, [r0]
+ subs r6, #8
+ adds r0, r4, r6
+ strh r2, [r0]
+ ldr r1, _0804DE94 @ =0x000002EE
+ adds r0, r4, r1
+ strh r3, [r0]
+ b _0804DF18
+ .align 2, 0
+_0804DE8C: .4byte 0x000007FF
+_0804DE90: .4byte 0x000002F2
+_0804DE94: .4byte 0x000002EE
+_0804DE98:
+ movs r2, #0xbc
+ lsls r2, r2, #2
+ adds r0, r4, r2
+ ldrh r2, [r0]
+ movs r3, #0xbd
+ lsls r3, r3, #2
+ adds r0, r4, r3
+ strh r2, [r0]
+ ldr r5, _0804DEC0 @ =0x000002F2
+ adds r0, r4, r5
+ ldrh r1, [r0]
+ ldr r6, _0804DEC4 @ =0x000002F6
+ adds r0, r4, r6
+ strh r1, [r0]
+ subs r3, #8
+ adds r0, r4, r3
+ strh r2, [r0]
+ subs r5, #4
+ adds r0, r4, r5
+ b _0804DF16
+ .align 2, 0
+_0804DEC0: .4byte 0x000002F2
+_0804DEC4: .4byte 0x000002F6
+_0804DEC8:
+ movs r6, #0xbc
+ lsls r6, r6, #2
+ adds r0, r4, r6
+ ldrh r3, [r0]
+ movs r1, #0xbd
+ lsls r1, r1, #2
+ adds r0, r4, r1
+ strh r3, [r0]
+ ldr r5, _0804DEF4 @ =0x000002F2
+ adds r2, r4, r5
+ ldrh r0, [r2]
+ lsrs r0, r0, #2
+ adds r6, #6
+ adds r1, r4, r6
+ strh r0, [r1]
+ movs r1, #0xbb
+ lsls r1, r1, #2
+ adds r0, r4, r1
+ strh r3, [r0]
+ ldrh r1, [r2]
+ ldr r2, _0804DEF8 @ =0x000002EE
+ b _0804DF14
+ .align 2, 0
+_0804DEF4: .4byte 0x000002F2
+_0804DEF8: .4byte 0x000002EE
+_0804DEFC:
+ movs r3, #0xbc
+ lsls r3, r3, #2
+ adds r0, r4, r3
+ ldrh r1, [r0]
+ movs r5, #0xbd
+ lsls r5, r5, #2
+ adds r0, r4, r5
+ strh r1, [r0]
+ ldr r6, _0804DF8C @ =0x000002F2
+ adds r0, r4, r6
+ ldrh r1, [r0]
+ ldr r2, _0804DF90 @ =0x000002F6
+_0804DF14:
+ adds r0, r4, r2
+_0804DF16:
+ strh r1, [r0]
+_0804DF18:
+ ldr r3, [r7]
+ adds r2, r3, #0
+ adds r2, #0x4c
+ movs r4, #0x90
+ lsls r4, r4, #1
+ adds r0, r3, r4
+ movs r1, #0
+ ldrsb r1, [r0, r1]
+ ldrh r2, [r2]
+ adds r1, r1, r2
+ ldr r5, _0804DF94 @ =0x000002AA
+ adds r0, r3, r5
+ ldrh r0, [r0]
+ adds r0, r0, r1
+ adds r1, r3, #0
+ adds r1, #0x58
+ strh r0, [r1]
+ movs r6, #0x4e
+ adds r6, r6, r3
+ mov ip, r6
+ ldr r0, _0804DF98 @ =0x00000121
+ adds r5, r3, r0
+ movs r0, #0
+ ldrsb r0, [r5, r0]
+ ldrh r1, [r6]
+ adds r0, r0, r1
+ ldr r4, _0804DF9C @ =0x000005FC
+ adds r2, r3, r4
+ ldrh r1, [r2]
+ adds r4, r3, #0
+ adds r4, #0xe6
+ adds r1, r1, r0
+ ldrh r6, [r4]
+ adds r1, r1, r6
+ movs r6, #0xab
+ lsls r6, r6, #2
+ adds r0, r3, r6
+ ldrh r0, [r0]
+ adds r0, r0, r1
+ adds r1, r3, #0
+ adds r1, #0x5a
+ strh r0, [r1]
+ movs r1, #0
+ ldrsb r1, [r5, r1]
+ mov r0, ip
+ ldrh r0, [r0]
+ adds r1, r1, r0
+ ldrh r0, [r2]
+ adds r0, r0, r1
+ ldrh r4, [r4]
+ adds r0, r0, r4
+ adds r1, r3, #0
+ adds r1, #0x68
+ strh r0, [r1]
+ pop {r4, r5, r6, r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0804DF8C: .4byte 0x000002F2
+_0804DF90: .4byte 0x000002F6
+_0804DF94: .4byte 0x000002AA
+_0804DF98: .4byte 0x00000121
+_0804DF9C: .4byte 0x000005FC
+
+ thumb_func_start sub_4DFA0
+sub_4DFA0: @ 0x0804DFA0
+ push {r4, r5, r6, r7, lr}
+ mov r7, r8
+ push {r7}
+ sub sp, #8
+ ldr r3, _0804E0C8 @ =0x020314E0
+ ldr r2, [r3]
+ adds r0, r2, #0
+ adds r0, #0x25
+ ldrb r0, [r0]
+ lsls r0, r0, #0x18
+ asrs r0, r0, #0x18
+ cmp r0, #0
+ bne _0804E084
+ ldr r1, _0804E0CC @ =0x000005A4
+ adds r0, r2, r1
+ ldrb r0, [r0]
+ cmp r0, #2
+ beq _0804E084
+ ldr r4, _0804E0D0 @ =0x0000061C
+ adds r0, r2, r4
+ ldrb r0, [r0]
+ lsls r0, r0, #0x18
+ asrs r0, r0, #0x18
+ cmp r0, #0
+ bne _0804E084
+ ldrb r0, [r2, #6]
+ cmp r0, #0
+ beq _0804E008
+ movs r1, #0x95
+ lsls r1, r1, #1
+ adds r0, r2, r1
+ ldrb r1, [r0]
+ cmp r1, #0
+ bne _0804E008
+ ldr r4, _0804E0D4 @ =0x00000129
+ adds r0, r2, r4
+ strb r1, [r0]
+ ldr r0, [r3]
+ movs r2, #0x94
+ lsls r2, r2, #1
+ adds r1, r0, r2
+ ldrb r0, [r1]
+ cmp r0, #0
+ bne _0804E008
+ movs r0, #4
+ strb r0, [r1]
+ movs r0, #0x78
+ bl sub_53DA8
+ movs r0, #8
+ bl sub_11B0
+_0804E008:
+ ldr r2, _0804E0C8 @ =0x020314E0
+ ldr r1, [r2]
+ ldrb r0, [r1, #7]
+ cmp r0, #0
+ beq _0804E044
+ movs r3, #0x95
+ lsls r3, r3, #1
+ adds r0, r1, r3
+ ldrb r0, [r0]
+ cmp r0, #0
+ bne _0804E044
+ ldr r4, _0804E0D4 @ =0x00000129
+ adds r1, r1, r4
+ movs r0, #1
+ strb r0, [r1]
+ ldr r0, [r2]
+ movs r2, #0x94
+ lsls r2, r2, #1
+ adds r1, r0, r2
+ ldrb r0, [r1]
+ cmp r0, #0
+ bne _0804E044
+ movs r0, #4
+ strb r0, [r1]
+ movs r0, #0x78
+ bl sub_53DA8
+ movs r0, #8
+ bl sub_11B0
+_0804E044:
+ ldr r0, _0804E0C8 @ =0x020314E0
+ ldr r3, [r0]
+ ldrb r1, [r3, #8]
+ mov r8, r0
+ cmp r1, #0
+ beq _0804E084
+ movs r4, #0x95
+ lsls r4, r4, #1
+ adds r0, r3, r4
+ ldrb r0, [r0]
+ cmp r0, #0
+ bne _0804E084
+ ldr r0, _0804E0D4 @ =0x00000129
+ adds r1, r3, r0
+ movs r0, #2
+ strb r0, [r1]
+ mov r1, r8
+ ldr r0, [r1]
+ movs r2, #0x94
+ lsls r2, r2, #1
+ adds r1, r0, r2
+ ldrb r0, [r1]
+ cmp r0, #0
+ bne _0804E096
+ movs r0, #4
+ strb r0, [r1]
+ movs r0, #0x78
+ bl sub_53DA8
+ movs r0, #8
+ bl sub_11B0
+_0804E084:
+ ldr r0, _0804E0C8 @ =0x020314E0
+ ldr r1, [r0]
+ movs r3, #0x94
+ lsls r3, r3, #1
+ adds r1, r1, r3
+ ldrb r1, [r1]
+ mov r8, r0
+ cmp r1, #0
+ beq _0804E174
+_0804E096:
+ mov r4, r8
+ ldr r0, [r4]
+ movs r2, #0x94
+ lsls r2, r2, #1
+ adds r0, r0, r2
+ ldrb r1, [r0]
+ subs r1, #1
+ strb r1, [r0]
+ ldr r1, [r4]
+ adds r2, r1, r2
+ ldrb r3, [r2]
+ cmp r3, #0
+ bne _0804E174
+ ldr r2, _0804E0D4 @ =0x00000129
+ adds r0, r1, r2
+ movs r2, #0
+ ldrsb r2, [r0, r2]
+ cmp r2, #1
+ beq _0804E10C
+ cmp r2, #1
+ bgt _0804E0D8
+ cmp r2, #0
+ beq _0804E0DE
+ b _0804E166
+ .align 2, 0
+_0804E0C8: .4byte 0x020314E0
+_0804E0CC: .4byte 0x000005A4
+_0804E0D0: .4byte 0x0000061C
+_0804E0D4: .4byte 0x00000129
+_0804E0D8:
+ cmp r2, #2
+ beq _0804E13C
+ b _0804E166
+_0804E0DE:
+ movs r3, #0x8c
+ lsls r3, r3, #1
+ adds r0, r1, r3
+ movs r2, #6
+ strb r2, [r0]
+ mov r4, r8
+ ldr r0, [r4]
+ movs r1, #0x8e
+ lsls r1, r1, #1
+ adds r0, r0, r1
+ movs r1, #0xff
+ strb r1, [r0]
+ ldr r0, [r4]
+ adds r3, #2
+ adds r0, r0, r3
+ strb r2, [r0]
+ ldr r0, [r4]
+ movs r4, #0x8f
+ lsls r4, r4, #1
+ adds r1, r0, r4
+ movs r0, #1
+ strb r0, [r1]
+ b _0804E166
+_0804E10C:
+ ldr r3, _0804E134 @ =0x00000119
+ adds r0, r1, r3
+ movs r1, #6
+ strb r1, [r0]
+ mov r4, r8
+ ldr r0, [r4]
+ adds r3, #4
+ adds r0, r0, r3
+ strb r2, [r0]
+ ldr r0, [r4]
+ ldr r4, _0804E138 @ =0x0000011B
+ adds r0, r0, r4
+ strb r1, [r0]
+ mov r1, r8
+ ldr r0, [r1]
+ adds r3, #2
+ adds r0, r0, r3
+ strb r2, [r0]
+ b _0804E166
+ .align 2, 0
+_0804E134: .4byte 0x00000119
+_0804E138: .4byte 0x0000011B
+_0804E13C:
+ movs r4, #0x8d
+ lsls r4, r4, #1
+ adds r1, r1, r4
+ movs r0, #6
+ strb r0, [r1]
+ mov r1, r8
+ ldr r0, [r1]
+ movs r2, #0x8f
+ lsls r2, r2, #1
+ adds r0, r0, r2
+ movs r1, #1
+ strb r1, [r0]
+ mov r4, r8
+ ldr r0, [r4]
+ subs r2, #3
+ adds r0, r0, r2
+ strb r3, [r0]
+ ldr r0, [r4]
+ ldr r3, _0804E1CC @ =0x0000011F
+ adds r0, r0, r3
+ strb r1, [r0]
+_0804E166:
+ mov r4, r8
+ ldr r0, [r4]
+ movs r2, #0x95
+ lsls r2, r2, #1
+ adds r1, r0, r2
+ movs r0, #0x18
+ strb r0, [r1]
+_0804E174:
+ mov r3, r8
+ ldr r0, [r3]
+ movs r4, #0x95
+ lsls r4, r4, #1
+ adds r1, r0, r4
+ ldrb r0, [r1]
+ cmp r0, #0
+ beq _0804E188
+ subs r0, #1
+ strb r0, [r1]
+_0804E188:
+ movs r5, #0
+ mov ip, r8
+ movs r7, #0x8c
+ lsls r7, r7, #1
+ movs r6, #0x8e
+ lsls r6, r6, #1
+ mov r4, sp
+_0804E196:
+ mov r1, ip
+ ldr r0, [r1]
+ adds r0, r0, r7
+ adds r1, r0, r5
+ ldrb r2, [r1]
+ movs r0, #0
+ ldrsb r0, [r1, r0]
+ cmp r0, #0
+ ble _0804E1AC
+ subs r0, r2, #1
+ strb r0, [r1]
+_0804E1AC:
+ mov r2, ip
+ ldr r1, [r2]
+ adds r0, r1, r7
+ adds r3, r0, r5
+ movs r0, #0
+ ldrsb r0, [r3, r0]
+ cmp r0, #2
+ bgt _0804E1D0
+ adds r0, r1, r6
+ adds r0, r0, r5
+ movs r1, #0
+ ldrsb r1, [r0, r1]
+ movs r0, #0
+ ldrsb r0, [r3, r0]
+ muls r0, r1, r0
+ b _0804E1E2
+ .align 2, 0
+_0804E1CC: .4byte 0x0000011F
+_0804E1D0:
+ adds r0, r1, r6
+ adds r0, r0, r5
+ movs r2, #0
+ ldrsb r2, [r0, r2]
+ movs r1, #0
+ ldrsb r1, [r3, r1]
+ movs r0, #6
+ subs r0, r0, r1
+ muls r0, r2, r0
+_0804E1E2:
+ strh r0, [r4]
+ adds r4, #2
+ adds r5, #1
+ cmp r5, #3
+ ble _0804E196
+ mov r3, r8
+ ldr r1, [r3]
+ mov r2, sp
+ mov r0, sp
+ ldrh r0, [r0, #2]
+ ldrb r2, [r2]
+ adds r0, r0, r2
+ movs r3, #0x90
+ lsls r3, r3, #1
+ adds r1, r1, r3
+ strb r0, [r1]
+ mov r4, r8
+ ldr r2, [r4]
+ mov r1, sp
+ mov r0, sp
+ ldrb r0, [r0, #6]
+ ldrb r1, [r1, #4]
+ adds r0, r0, r1
+ ldr r4, _0804E254 @ =0x00000121
+ adds r1, r2, r4
+ strb r0, [r1]
+ mov r0, r8
+ ldr r2, [r0]
+ adds r0, r2, r3
+ ldrh r1, [r0]
+ cmp r1, #0
+ bne _0804E232
+ adds r4, #5
+ adds r0, r2, r4
+ strb r1, [r0]
+ mov r2, r8
+ ldr r0, [r2]
+ adds r4, #1
+ adds r0, r0, r4
+ strb r1, [r0]
+_0804E232:
+ mov r0, r8
+ ldr r1, [r0]
+ adds r0, r1, r3
+ movs r2, #0
+ ldrsb r2, [r0, r2]
+ cmp r2, #0
+ ble _0804E258
+ movs r3, #0x91
+ lsls r3, r3, #1
+ adds r1, r1, r3
+ ldrb r3, [r1]
+ movs r0, #0
+ ldrsb r0, [r1, r0]
+ cmp r2, r0
+ bge _0804E270
+ subs r0, r3, #1
+ b _0804E26E
+ .align 2, 0
+_0804E254: .4byte 0x00000121
+_0804E258:
+ cmp r2, #0
+ bge _0804E270
+ movs r4, #0x91
+ lsls r4, r4, #1
+ adds r1, r1, r4
+ ldrb r3, [r1]
+ movs r0, #0
+ ldrsb r0, [r1, r0]
+ cmp r2, r0
+ ble _0804E270
+ adds r0, r3, #1
+_0804E26E:
+ strb r0, [r1]
+_0804E270:
+ mov r0, r8
+ ldr r1, [r0]
+ ldr r2, _0804E294 @ =0x00000121
+ adds r0, r1, r2
+ movs r2, #0
+ ldrsb r2, [r0, r2]
+ cmp r2, #0
+ ble _0804E29C
+ ldr r3, _0804E298 @ =0x00000123
+ adds r1, r1, r3
+ ldrb r3, [r1]
+ movs r0, #0
+ ldrsb r0, [r1, r0]
+ cmp r2, r0
+ bge _0804E2B2
+ subs r0, r3, #1
+ b _0804E2B0
+ .align 2, 0
+_0804E294: .4byte 0x00000121
+_0804E298: .4byte 0x00000123
+_0804E29C:
+ cmp r2, #0
+ bge _0804E2B2
+ ldr r4, _0804E2F4 @ =0x00000123
+ adds r1, r1, r4
+ ldrb r3, [r1]
+ movs r0, #0
+ ldrsb r0, [r1, r0]
+ cmp r2, r0
+ ble _0804E2B2
+ adds r0, r3, #1
+_0804E2B0:
+ strb r0, [r1]
+_0804E2B2:
+ mov r0, r8
+ ldr r1, [r0]
+ movs r2, #0x93
+ lsls r2, r2, #1
+ adds r0, r1, r2
+ ldrb r0, [r0]
+ lsls r0, r0, #0x18
+ asrs r0, r0, #0x18
+ cmp r0, #0
+ bne _0804E2E6
+ movs r3, #0x90
+ lsls r3, r3, #1
+ adds r0, r1, r3
+ ldrb r0, [r0]
+ movs r4, #0x91
+ lsls r4, r4, #1
+ adds r1, r1, r4
+ strb r0, [r1]
+ mov r0, r8
+ ldr r1, [r0]
+ subs r2, #5
+ adds r0, r1, r2
+ ldrb r0, [r0]
+ adds r3, #3
+ adds r1, r1, r3
+ strb r0, [r1]
+_0804E2E6:
+ add sp, #8
+ pop {r3}
+ mov r8, r3
+ pop {r4, r5, r6, r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0804E2F4: .4byte 0x00000123
+
+ thumb_func_start sub_4E2F8
+sub_4E2F8: @ 0x0804E2F8
+ push {r4, r5, r6, r7, lr}
+ ldr r0, _0804E3E4 @ =0x020314E0
+ ldr r2, [r0]
+ movs r1, #0x13
+ ldrsb r1, [r2, r1]
+ adds r5, r0, #0
+ cmp r1, #0
+ beq _0804E328
+ ldrb r0, [r2, #5]
+ cmp r0, #0
+ beq _0804E328
+ adds r0, r2, #0
+ adds r0, #0x20
+ ldrb r0, [r0]
+ cmp r0, #0
+ beq _0804E328
+ adds r0, r2, #0
+ adds r0, #0x21
+ movs r1, #1
+ strb r1, [r0]
+ ldr r0, [r5]
+ ldr r2, _0804E3E8 @ =0x00000163
+ adds r0, r0, r2
+ strb r1, [r0]
+_0804E328:
+ adds r4, r5, #0
+ ldr r1, [r4]
+ adds r0, r1, #0
+ adds r0, #0x21
+ ldrb r0, [r0]
+ cmp r0, #0
+ beq _0804E372
+ ldrb r0, [r1, #0xa]
+ cmp r0, #0
+ beq _0804E372
+ ldr r0, _0804E3E8 @ =0x00000163
+ adds r1, r1, r0
+ movs r6, #0
+ movs r0, #3
+ strb r0, [r1]
+ ldr r0, [r4]
+ adds r0, #0x20
+ ldrb r0, [r0]
+ cmp r0, #0
+ beq _0804E36C
+ movs r0, #7
+ bl sub_11B0
+ ldr r0, [r4]
+ ldr r1, _0804E3EC @ =0x0000132C
+ adds r0, r0, r1
+ ldr r2, [r0]
+ ldr r1, _0804E3F0 @ =0x0000FDB2
+ strh r1, [r2, #0x32]
+ ldr r0, [r0]
+ strh r6, [r0, #0x30]
+ movs r0, #0xcd
+ bl sub_53DA8
+_0804E36C:
+ ldr r0, [r5]
+ adds r0, #0x21
+ strb r6, [r0]
+_0804E372:
+ ldr r7, _0804E3E4 @ =0x020314E0
+ ldr r6, [r7]
+ ldr r2, _0804E3EC @ =0x0000132C
+ adds r3, r6, r2
+ ldr r0, _0804E3F4 @ =0x00001334
+ adds r4, r6, r0
+ str r4, [r3]
+ ldr r0, _0804E3F8 @ =0x02031520
+ movs r2, #0x12
+ ldrsh r1, [r4, r2]
+ ldrh r5, [r0, #0x2a]
+ movs r2, #0x2a
+ ldrsh r0, [r0, r2]
+ cmp r1, r0
+ blt _0804E452
+ movs r2, #0
+ strh r5, [r4, #0x12]
+ ldr r1, [r3]
+ movs r4, #0x10
+ ldrsh r0, [r1, r4]
+ lsls r0, r0, #1
+ strh r0, [r1, #0x28]
+ ldr r1, [r3]
+ movs r4, #0x12
+ ldrsh r0, [r1, r4]
+ lsls r0, r0, #1
+ strh r0, [r1, #0x2a]
+ ldr r1, [r3]
+ movs r4, #0x10
+ ldrsh r0, [r1, r4]
+ lsls r0, r0, #8
+ str r0, [r1, #0x34]
+ ldr r1, [r3]
+ movs r4, #0x12
+ ldrsh r0, [r1, r4]
+ lsls r0, r0, #8
+ str r0, [r1, #0x38]
+ ldr r0, [r3]
+ strh r2, [r0, #0x30]
+ ldr r0, [r3]
+ strh r2, [r0, #0x32]
+ ldr r4, _0804E3FC @ =0x0200B0C0
+ ldrh r0, [r4, #0x14]
+ cmp r0, #0
+ bne _0804E452
+ ldr r1, _0804E400 @ =0x00000724
+ adds r0, r6, r1
+ ldrh r0, [r0]
+ cmp r0, #0
+ beq _0804E404
+ movs r0, #4
+ strh r0, [r4, #0x14]
+ movs r0, #8
+ strb r0, [r4, #0x11]
+ movs r0, #0xcc
+ strh r0, [r4, #0x12]
+ b _0804E452
+ .align 2, 0
+_0804E3E4: .4byte 0x020314E0
+_0804E3E8: .4byte 0x00000163
+_0804E3EC: .4byte 0x0000132C
+_0804E3F0: .4byte 0x0000FDB2
+_0804E3F4: .4byte 0x00001334
+_0804E3F8: .4byte 0x02031520
+_0804E3FC: .4byte 0x0200B0C0
+_0804E400: .4byte 0x00000724
+_0804E404:
+ movs r0, #0x50
+ strh r0, [r4, #0x14]
+ movs r0, #0x10
+ strb r0, [r4, #0x11]
+ movs r0, #0xc8
+ strh r0, [r4, #0x12]
+ bl sub_53EDC
+ movs r0, #0xd
+ bl sub_53DA8
+ bl sub_4E598
+ ldr r2, [r7]
+ movs r3, #0xf1
+ lsls r3, r3, #1
+ adds r0, r2, r3
+ movs r1, #0
+ ldrsb r1, [r0, r1]
+ cmp r1, #2
+ bne _0804E452
+ movs r0, #9
+ ldrsb r0, [r4, r0]
+ cmp r0, #0
+ bne _0804E452
+ movs r4, #0xdf
+ lsls r4, r4, #1
+ adds r0, r2, r4
+ strb r1, [r0]
+ ldr r1, [r7]
+ movs r0, #0xe0
+ lsls r0, r0, #1
+ adds r2, r1, r0
+ movs r0, #0xc8
+ lsls r0, r0, #2
+ strh r0, [r2]
+ adds r1, r1, r3
+ movs r0, #0
+ strb r0, [r1]
+_0804E452:
+ ldr r0, _0804E464 @ =0x020314E0
+ ldr r0, [r0]
+ adds r0, #0x20
+ movs r1, #0
+ strb r1, [r0]
+ pop {r4, r5, r6, r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0804E464: .4byte 0x020314E0
+
+ thumb_func_start sub_4E468
+sub_4E468: @ 0x0804E468
+ push {r4, r5, r6, r7, lr}
+ mov r7, r8
+ push {r7}
+ ldr r2, _0804E4C4 @ =0x020314E0
+ ldr r5, [r2]
+ ldr r0, _0804E4C8 @ =0x0000132C
+ mov r8, r0
+ adds r4, r5, r0
+ ldr r1, _0804E4CC @ =0x00001334
+ adds r3, r5, r1
+ str r3, [r4]
+ ldr r6, _0804E4D0 @ =0x02031520
+ movs r7, #0x12
+ ldrsh r1, [r3, r7]
+ movs r7, #0x2a
+ ldrsh r0, [r6, r7]
+ mov ip, r2
+ cmp r1, r0
+ blt _0804E572
+ movs r1, #0
+ strh r1, [r3, #0x30]
+ ldr r0, [r4]
+ strh r1, [r0, #0x32]
+ ldr r3, _0804E4D4 @ =0x0200B0C0
+ ldrb r1, [r3, #0xf]
+ movs r0, #0x40
+ ands r0, r1
+ lsls r0, r0, #0x18
+ lsrs r2, r0, #0x18
+ cmp r2, #0
+ beq _0804E4DC
+ ldr r0, _0804E4D8 @ =0x00000386
+ adds r1, r5, r0
+ movs r0, #1
+ strb r0, [r1]
+ movs r0, #0x80
+ strb r0, [r3, #0xf]
+ mov r1, ip
+ ldr r0, [r1]
+ add r0, r8
+ ldr r1, [r0]
+ ldrh r0, [r6, #0x2a]
+ subs r0, #0xa
+ strh r0, [r1, #0x12]
+ b _0804E542
+ .align 2, 0
+_0804E4C4: .4byte 0x020314E0
+_0804E4C8: .4byte 0x0000132C
+_0804E4CC: .4byte 0x00001334
+_0804E4D0: .4byte 0x02031520
+_0804E4D4: .4byte 0x0200B0C0
+_0804E4D8: .4byte 0x00000386
+_0804E4DC:
+ ldr r0, [r4]
+ movs r1, #1
+ strb r1, [r0]
+ mov r3, ip
+ ldr r0, [r3]
+ movs r7, #0xe2
+ lsls r7, r7, #2
+ adds r0, r0, r7
+ strb r1, [r0]
+ ldr r3, [r3]
+ ldr r1, _0804E57C @ =0x00000392
+ adds r0, r3, r1
+ strh r2, [r0]
+ mov r7, r8
+ adds r2, r3, r7
+ ldr r1, [r2]
+ ldrh r0, [r6, #0x26]
+ strh r0, [r1, #0x10]
+ ldr r1, [r2]
+ ldrh r0, [r6, #0x28]
+ strh r0, [r1, #0x12]
+ ldr r4, _0804E580 @ =0x000005F6
+ adds r3, r3, r4
+ ldrb r1, [r3]
+ movs r0, #0
+ ldrsb r0, [r3, r0]
+ cmp r0, #0
+ ble _0804E518
+ subs r0, r1, #1
+ strb r0, [r3]
+_0804E518:
+ mov r0, ip
+ ldr r1, [r0]
+ movs r3, #0xbf
+ lsls r3, r3, #3
+ adds r2, r1, r3
+ movs r0, #0xe1
+ lsls r0, r0, #4
+ strh r0, [r2]
+ ldr r2, _0804E584 @ =0x040000D4
+ adds r1, r1, r4
+ movs r0, #0
+ ldrsb r0, [r1, r0]
+ lsls r0, r0, #5
+ ldr r1, _0804E588 @ =0x08137E14
+ adds r0, r0, r1
+ str r0, [r2]
+ ldr r0, _0804E58C @ =0x05000220
+ str r0, [r2, #4]
+ ldr r0, _0804E590 @ =0x80000010
+ str r0, [r2, #8]
+ ldr r0, [r2, #8]
+_0804E542:
+ mov r7, ip
+ ldr r1, [r7]
+ ldr r0, _0804E594 @ =0x0000132C
+ adds r1, r1, r0
+ ldr r2, [r1]
+ movs r3, #0x10
+ ldrsh r0, [r2, r3]
+ lsls r0, r0, #1
+ strh r0, [r2, #0x28]
+ ldr r2, [r1]
+ movs r7, #0x12
+ ldrsh r0, [r2, r7]
+ lsls r0, r0, #1
+ strh r0, [r2, #0x2a]
+ ldr r2, [r1]
+ movs r3, #0x10
+ ldrsh r0, [r2, r3]
+ lsls r0, r0, #8
+ str r0, [r2, #0x34]
+ ldr r1, [r1]
+ movs r7, #0x12
+ ldrsh r0, [r1, r7]
+ lsls r0, r0, #8
+ str r0, [r1, #0x38]
+_0804E572:
+ pop {r3}
+ mov r8, r3
+ pop {r4, r5, r6, r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0804E57C: .4byte 0x00000392
+_0804E580: .4byte 0x000005F6
+_0804E584: .4byte 0x040000D4
+_0804E588: .4byte 0x08137E14
+_0804E58C: .4byte 0x05000220
+_0804E590: .4byte 0x80000010
+_0804E594: .4byte 0x0000132C
+
+ thumb_func_start sub_4E598
+sub_4E598: @ 0x0804E598
+ push {r4, r5, r6, r7, lr}
+ ldr r0, _0804E708 @ =0x020314E0
+ ldr r2, [r0]
+ movs r5, #0
+ movs r3, #0
+ ldr r1, _0804E70C @ =0x000027D7
+ strh r1, [r2, #0x18]
+ movs r1, #0x13
+ ldrsb r1, [r2, r1]
+ adds r4, r0, #0
+ cmp r1, #2
+ bne _0804E5B4
+ movs r0, #5
+ strb r0, [r2, #0x17]
+_0804E5B4:
+ ldr r1, [r4]
+ movs r0, #0x13
+ ldrsb r0, [r1, r0]
+ cmp r0, #7
+ bne _0804E5C2
+ movs r0, #6
+ strb r0, [r1, #0x17]
+_0804E5C2:
+ ldr r1, [r4]
+ movs r0, #0x13
+ ldrsb r0, [r1, r0]
+ cmp r0, #4
+ bne _0804E5D0
+ movs r0, #0xa
+ strb r0, [r1, #0x17]
+_0804E5D0:
+ ldr r1, [r4]
+ movs r0, #0x13
+ ldrsb r0, [r1, r0]
+ cmp r0, #5
+ bne _0804E5DE
+ movs r0, #6
+ strb r0, [r1, #0x17]
+_0804E5DE:
+ ldr r1, [r4]
+ movs r0, #0x13
+ ldrsb r0, [r1, r0]
+ cmp r0, #6
+ bne _0804E5EC
+ movs r0, #8
+ strb r0, [r1, #0x17]
+_0804E5EC:
+ ldr r0, [r4]
+ ldr r1, _0804E710 @ =0x00000714
+ adds r0, r0, r1
+ strb r5, [r0]
+ ldr r0, [r4]
+ movs r2, #0xe2
+ lsls r2, r2, #3
+ adds r0, r0, r2
+ strb r5, [r0]
+ ldr r0, [r4]
+ adds r1, r0, r2
+ ldrb r1, [r1]
+ ldr r6, _0804E714 @ =0x00000711
+ adds r0, r0, r6
+ strb r1, [r0]
+ ldr r0, [r4]
+ adds r1, r0, r2
+ ldrb r1, [r1]
+ ldr r7, _0804E718 @ =0x00000712
+ adds r0, r0, r7
+ strb r1, [r0]
+ ldr r0, [r4]
+ adds r2, r0, r2
+ ldrb r1, [r2]
+ ldr r2, _0804E71C @ =0x00000713
+ adds r0, r0, r2
+ strb r1, [r0]
+ ldr r0, [r4]
+ subs r6, #0xfd
+ adds r1, r0, r6
+ strh r3, [r1]
+ movs r7, #0x82
+ lsls r7, r7, #2
+ adds r1, r0, r7
+ strh r3, [r1]
+ ldr r1, _0804E720 @ =0x0000020A
+ adds r0, r0, r1
+ strb r5, [r0]
+ ldr r2, [r4]
+ movs r6, #0xf1
+ lsls r6, r6, #1
+ adds r0, r2, r6
+ ldrb r0, [r0]
+ lsls r0, r0, #0x18
+ asrs r0, r0, #0x18
+ ldr r6, _0804E724 @ =0x0200B0C0
+ cmp r0, #2
+ bne _0804E654
+ movs r0, #9
+ ldrsb r0, [r6, r0]
+ cmp r0, #0
+ bne _0804E69C
+_0804E654:
+ movs r7, #0xe3
+ lsls r7, r7, #1
+ adds r0, r2, r7
+ strh r3, [r0]
+ movs r1, #0xe4
+ lsls r1, r1, #1
+ adds r0, r2, r1
+ strh r3, [r0]
+ movs r5, #0xe6
+ lsls r5, r5, #1
+ adds r0, r2, r5
+ strh r3, [r0]
+ adds r7, #4
+ adds r0, r2, r7
+ strh r3, [r0]
+ adds r1, #0xc
+ adds r0, r2, r1
+ strh r3, [r0]
+ adds r5, #0xa
+ adds r1, r2, r5
+ ldr r0, _0804E728 @ =0x0000FFFC
+ strh r0, [r1]
+ adds r7, #0xe
+ adds r0, r2, r7
+ movs r1, #0x80
+ lsls r1, r1, #1
+ strh r1, [r0]
+ adds r5, #4
+ adds r0, r2, r5
+ strh r1, [r0]
+ subs r7, #0xa
+ adds r0, r2, r7
+ strh r3, [r0]
+ adds r1, #0xd0
+ adds r0, r2, r1
+ strh r3, [r0]
+_0804E69C:
+ ldr r0, [r4]
+ movs r2, #0xe3
+ lsls r2, r2, #3
+ adds r0, r0, r2
+ movs r3, #0
+ strb r3, [r0]
+ ldr r0, [r4]
+ adds r1, r0, r2
+ ldrb r1, [r1]
+ ldr r5, _0804E72C @ =0x00000719
+ adds r0, r0, r5
+ strb r1, [r0]
+ ldr r0, [r4]
+ adds r2, r0, r2
+ ldrb r1, [r2]
+ ldr r7, _0804E730 @ =0x0000071A
+ adds r0, r0, r7
+ strb r1, [r0]
+ ldr r1, [r4]
+ movs r2, #0xc2
+ lsls r2, r2, #2
+ adds r0, r1, r2
+ strh r3, [r0]
+ movs r2, #9
+ ldrsb r2, [r6, r2]
+ cmp r2, #0
+ beq _0804E748
+ ldr r3, _0804E734 @ =0x000005F6
+ adds r1, r1, r3
+ movs r0, #3
+ strb r0, [r1]
+ ldr r1, [r4]
+ movs r5, #0xbf
+ lsls r5, r5, #3
+ adds r2, r1, r5
+ movs r0, #0xe1
+ lsls r0, r0, #4
+ strh r0, [r2]
+ ldr r2, _0804E738 @ =0x040000D4
+ adds r1, r1, r3
+ movs r0, #0
+ ldrsb r0, [r1, r0]
+ lsls r0, r0, #5
+ ldr r1, _0804E73C @ =0x08137E14
+ adds r0, r0, r1
+ str r0, [r2]
+ ldr r0, _0804E740 @ =0x05000220
+ str r0, [r2, #4]
+ ldr r0, _0804E744 @ =0x80000010
+ str r0, [r2, #8]
+ ldr r0, [r2, #8]
+ adds r6, r1, #0
+ b _0804E75C
+ .align 2, 0
+_0804E708: .4byte 0x020314E0
+_0804E70C: .4byte 0x000027D7
+_0804E710: .4byte 0x00000714
+_0804E714: .4byte 0x00000711
+_0804E718: .4byte 0x00000712
+_0804E71C: .4byte 0x00000713
+_0804E720: .4byte 0x0000020A
+_0804E724: .4byte 0x0200B0C0
+_0804E728: .4byte 0x0000FFFC
+_0804E72C: .4byte 0x00000719
+_0804E730: .4byte 0x0000071A
+_0804E734: .4byte 0x000005F6
+_0804E738: .4byte 0x040000D4
+_0804E73C: .4byte 0x08137E14
+_0804E740: .4byte 0x05000220
+_0804E744: .4byte 0x80000010
+_0804E748:
+ ldr r6, _0804E7E8 @ =0x000005F6
+ adds r1, r1, r6
+ movs r0, #0
+ strb r0, [r1]
+ ldr r0, [r4]
+ movs r7, #0xbf
+ lsls r7, r7, #3
+ adds r0, r0, r7
+ strh r2, [r0]
+ ldr r6, _0804E7EC @ =0x08137E14
+_0804E75C:
+ adds r3, r4, #0
+ ldr r0, [r3]
+ ldr r1, _0804E7F0 @ =0x000005F7
+ adds r0, r0, r1
+ movs r5, #0
+ strb r5, [r0]
+ ldr r1, _0804E7F4 @ =0x040000D4
+ ldr r2, [r3]
+ ldr r7, _0804E7E8 @ =0x000005F6
+ adds r0, r2, r7
+ ldrb r0, [r0]
+ lsls r0, r0, #0x18
+ asrs r0, r0, #0x18
+ lsls r0, r0, #5
+ adds r0, r0, r6
+ str r0, [r1]
+ ldr r0, _0804E7F8 @ =0x05000220
+ str r0, [r1, #4]
+ ldr r0, _0804E7FC @ =0x80000010
+ str r0, [r1, #8]
+ ldr r0, [r1, #8]
+ ldr r1, _0804E800 @ =0x0000070E
+ adds r0, r2, r1
+ ldrb r0, [r0]
+ ldr r6, _0804E804 @ =0x0000062F
+ adds r2, r2, r6
+ strb r0, [r2]
+ ldr r0, [r3]
+ adds r0, r0, r1
+ movs r2, #1
+ strb r2, [r0]
+ ldr r1, [r3]
+ ldr r7, _0804E808 @ =0x000002A5
+ adds r0, r1, r7
+ ldrb r0, [r0]
+ lsls r0, r0, #0x18
+ asrs r0, r0, #0x18
+ cmp r0, #0x2d
+ bne _0804E7D8
+ movs r6, #0xa9
+ lsls r6, r6, #2
+ adds r0, r1, r6
+ strb r5, [r0]
+ ldr r0, [r3]
+ adds r0, r0, r7
+ strb r5, [r0]
+ ldr r1, [r3]
+ adds r6, #2
+ adds r0, r1, r6
+ strh r5, [r0]
+ ldr r7, _0804E80C @ =0x0000016F
+ adds r0, r1, r7
+ strb r2, [r0]
+ ldr r0, [r3]
+ movs r1, #0xba
+ lsls r1, r1, #1
+ adds r2, r0, r1
+ movs r1, #0x40
+ strh r1, [r2]
+ ldr r2, _0804E810 @ =0x000002AA
+ adds r0, r0, r2
+ strh r5, [r0]
+_0804E7D8:
+ ldr r0, [r4]
+ movs r6, #0xc0
+ lsls r6, r6, #2
+ adds r0, r0, r6
+ strb r5, [r0]
+ pop {r4, r5, r6, r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0804E7E8: .4byte 0x000005F6
+_0804E7EC: .4byte 0x08137E14
+_0804E7F0: .4byte 0x000005F7
+_0804E7F4: .4byte 0x040000D4
+_0804E7F8: .4byte 0x05000220
+_0804E7FC: .4byte 0x80000010
+_0804E800: .4byte 0x0000070E
+_0804E804: .4byte 0x0000062F
+_0804E808: .4byte 0x000002A5
+_0804E80C: .4byte 0x0000016F
+_0804E810: .4byte 0x000002AA
+
+ thumb_func_start sub_4E814
+sub_4E814: @ 0x0804E814
+ push {r4, r5, r6, lr}
+ ldr r6, _0804E910 @ =0x020314E0
+ ldr r4, [r6]
+ ldr r0, _0804E914 @ =0x0000070C
+ adds r5, r4, r0
+ ldrh r0, [r5]
+ movs r1, #0x28
+ bl sub_558B0
+ lsls r0, r0, #0x10
+ lsrs r0, r0, #0x10
+ movs r1, #0x14
+ bl sub_55838
+ ldr r1, _0804E918 @ =0x00000734
+ adds r4, r4, r1
+ strh r0, [r4]
+ ldrh r0, [r5]
+ adds r0, #1
+ strh r0, [r5]
+ bl sub_4EA44
+ ldr r0, [r6]
+ adds r0, #0x6a
+ movs r1, #0
+ ldrsh r0, [r0, r1]
+ cmp r0, #0xe7
+ bgt _0804E854
+ bl sub_4EDC0
+ bl sub_4EE74
+_0804E854:
+ ldr r0, [r6]
+ adds r0, #0x6a
+ ldrh r0, [r0]
+ subs r0, #0x51
+ lsls r0, r0, #0x10
+ lsrs r0, r0, #0x10
+ cmp r0, #0xa6
+ bhi _0804E868
+ bl sub_4EF38
+_0804E868:
+ bl sub_4F0F0
+ ldr r0, [r6]
+ adds r0, #0x6a
+ movs r1, #0
+ ldrsh r0, [r0, r1]
+ cmp r0, #0x6f
+ bgt _0804E87C
+ bl sub_4F258
+_0804E87C:
+ ldr r0, [r6]
+ adds r0, #0x6a
+ movs r1, #0
+ ldrsh r0, [r0, r1]
+ cmp r0, #0x70
+ ble _0804E88C
+ bl sub_4F028
+_0804E88C:
+ ldr r0, [r6]
+ adds r0, #0x6a
+ movs r1, #0
+ ldrsh r0, [r0, r1]
+ cmp r0, #0x68
+ ble _0804E8A0
+ bl sub_4F4B4
+ bl sub_4F660
+_0804E8A0:
+ ldr r0, [r6]
+ adds r0, #0x6a
+ movs r1, #0
+ ldrsh r0, [r0, r1]
+ cmp r0, #0xff
+ bgt _0804E8B0
+ bl sub_4F30C
+_0804E8B0:
+ bl sub_4F2B8
+ ldr r0, [r6]
+ adds r0, #0x6a
+ movs r1, #0
+ ldrsh r0, [r0, r1]
+ cmp r0, #0x6e
+ ble _0804E8C4
+ bl sub_4EAB0
+_0804E8C4:
+ ldr r0, [r6]
+ adds r0, #0x6a
+ movs r1, #0
+ ldrsh r0, [r0, r1]
+ cmp r0, #0xb2
+ ble _0804E8DC
+ bl sub_4EAF8
+ bl sub_4EBD0
+ bl sub_4E920
+_0804E8DC:
+ ldr r0, [r6]
+ adds r0, #0x6a
+ movs r1, #0
+ ldrsh r0, [r0, r1]
+ cmp r0, #0xca
+ ble _0804E8EC
+ bl sub_4ECDC
+_0804E8EC:
+ ldr r0, [r6]
+ ldr r1, _0804E91C @ =0x00000724
+ adds r2, r0, r1
+ ldrh r1, [r2]
+ cmp r1, #0
+ beq _0804E908
+ adds r0, #0x25
+ ldrb r0, [r0]
+ lsls r0, r0, #0x18
+ asrs r0, r0, #0x18
+ cmp r0, #0
+ bne _0804E908
+ subs r0, r1, #1
+ strh r0, [r2]
+_0804E908:
+ pop {r4, r5, r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0804E910: .4byte 0x020314E0
+_0804E914: .4byte 0x0000070C
+_0804E918: .4byte 0x00000734
+_0804E91C: .4byte 0x00000724
+
+ thumb_func_start sub_4E920
+sub_4E920: @ 0x0804E920
+ push {r4, r5, lr}
+ ldr r1, _0804E9CC @ =0x086B08CA
+ ldr r4, _0804E9D0 @ =0x020314E0
+ ldr r0, [r4]
+ ldr r2, _0804E9D4 @ =0x00000716
+ adds r3, r0, r2
+ ldrb r2, [r3]
+ lsls r0, r2, #1
+ adds r0, r0, r1
+ ldrh r5, [r0]
+ cmp r2, #0
+ beq _0804E95C
+ subs r0, r2, #1
+ strb r0, [r3]
+ ldr r0, [r4]
+ ldr r1, _0804E9D4 @ =0x00000716
+ adds r0, r0, r1
+ ldrb r0, [r0]
+ cmp r0, #3
+ bne _0804E95C
+ movs r0, #0x73
+ bl sub_53DA8
+ ldr r1, [r4]
+ movs r0, #0xfa
+ lsls r0, r0, #1
+ str r0, [r1, #0x3c]
+ movs r0, #7
+ bl sub_11B0
+_0804E95C:
+ ldr r0, _0804E9D0 @ =0x020314E0
+ ldr r0, [r0]
+ ldr r2, _0804E9D8 @ =0x00000717
+ adds r0, r0, r2
+ ldrb r0, [r0]
+ lsls r3, r0, #4
+ subs r3, r3, r0
+ lsls r3, r3, #2
+ lsls r0, r5, #0x10
+ asrs r0, r0, #0x10
+ lsls r2, r0, #2
+ adds r2, r2, r0
+ lsls r2, r2, #2
+ ldr r0, _0804E9DC @ =0x086B08D4
+ adds r2, r2, r0
+ adds r2, r3, r2
+ adds r0, #0x28
+ adds r3, r3, r0
+ ldr r0, _0804E9E0 @ =0x040000D4
+ ldr r1, [r2]
+ str r1, [r0]
+ ldr r1, [r3]
+ str r1, [r0, #4]
+ ldr r1, _0804E9E4 @ =0x80000010
+ str r1, [r0, #8]
+ ldr r1, [r0, #8]
+ ldr r1, [r2, #4]
+ str r1, [r0]
+ ldr r1, [r3, #4]
+ str r1, [r0, #4]
+ ldr r5, _0804E9E8 @ =0x80000020
+ str r5, [r0, #8]
+ ldr r1, [r0, #8]
+ ldr r1, [r2, #8]
+ str r1, [r0]
+ ldr r1, [r3, #8]
+ str r1, [r0, #4]
+ ldr r4, _0804E9EC @ =0x80000030
+ str r4, [r0, #8]
+ ldr r1, [r0, #8]
+ ldr r1, [r2, #0xc]
+ str r1, [r0]
+ ldr r1, [r3, #0xc]
+ str r1, [r0, #4]
+ str r4, [r0, #8]
+ ldr r1, [r0, #8]
+ ldr r1, [r2, #0x10]
+ str r1, [r0]
+ ldr r1, [r3, #0x10]
+ str r1, [r0, #4]
+ str r5, [r0, #8]
+ ldr r0, [r0, #8]
+ pop {r4, r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0804E9CC: .4byte 0x086B08CA
+_0804E9D0: .4byte 0x020314E0
+_0804E9D4: .4byte 0x00000716
+_0804E9D8: .4byte 0x00000717
+_0804E9DC: .4byte 0x086B08D4
+_0804E9E0: .4byte 0x040000D4
+_0804E9E4: .4byte 0x80000010
+_0804E9E8: .4byte 0x80000020
+_0804E9EC: .4byte 0x80000030
+
+ thumb_func_start sub_4E9F0
+sub_4E9F0: @ 0x0804E9F0
+ push {r4, lr}
+ lsls r0, r0, #0x10
+ asrs r0, r0, #0x10
+ lsls r2, r0, #1
+ adds r2, r2, r0
+ lsls r2, r2, #2
+ ldr r3, _0804EA34 @ =0x086B094C
+ adds r2, r2, r3
+ adds r4, r3, #0
+ adds r4, #0x18
+ ldr r1, _0804EA38 @ =0x040000D4
+ ldr r0, [r2]
+ str r0, [r1]
+ ldr r0, [r3, #0x18]
+ str r0, [r1, #4]
+ ldr r3, _0804EA3C @ =0x80000060
+ str r3, [r1, #8]
+ ldr r0, [r1, #8]
+ ldr r0, [r2, #4]
+ str r0, [r1]
+ ldr r0, [r4, #4]
+ str r0, [r1, #4]
+ str r3, [r1, #8]
+ ldr r0, [r1, #8]
+ ldr r0, [r2, #8]
+ str r0, [r1]
+ ldr r0, [r4, #8]
+ str r0, [r1, #4]
+ ldr r0, _0804EA40 @ =0x80000010
+ str r0, [r1, #8]
+ ldr r0, [r1, #8]
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0804EA34: .4byte 0x086B094C
+_0804EA38: .4byte 0x040000D4
+_0804EA3C: .4byte 0x80000060
+_0804EA40: .4byte 0x80000010
+
+ thumb_func_start sub_4EA44
+sub_4EA44: @ 0x0804EA44
+ push {r4, r5, lr}
+ ldr r0, _0804EA9C @ =0x020314E0
+ ldr r0, [r0]
+ ldr r1, _0804EAA0 @ =0x0000070E
+ adds r0, r0, r1
+ movs r5, #0
+ ldrsb r5, [r0, r5]
+ adds r0, r5, #0
+ movs r1, #0xa
+ bl sub_556D0
+ adds r4, r0, #0
+ lsls r4, r4, #0x18
+ asrs r4, r4, #8
+ lsrs r4, r4, #0x10
+ adds r0, r5, #0
+ movs r1, #0xa
+ bl sub_55768
+ lsls r0, r0, #0x18
+ lsls r4, r4, #0x10
+ asrs r4, r4, #0xd
+ ldr r3, _0804EAA4 @ =0x086B0970
+ adds r4, r4, r3
+ ldr r2, _0804EAA8 @ =0x040000D4
+ ldr r1, [r4]
+ str r1, [r2]
+ ldr r1, [r3, #0x50]
+ str r1, [r2, #4]
+ ldr r1, _0804EAAC @ =0x80000010
+ str r1, [r2, #8]
+ ldr r4, [r2, #8]
+ asrs r0, r0, #0x15
+ adds r4, r0, r3
+ ldr r0, [r4, #4]
+ str r0, [r2]
+ ldr r0, [r3, #0x54]
+ str r0, [r2, #4]
+ str r1, [r2, #8]
+ ldr r0, [r2, #8]
+ pop {r4, r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0804EA9C: .4byte 0x020314E0
+_0804EAA0: .4byte 0x0000070E
+_0804EAA4: .4byte 0x086B0970
+_0804EAA8: .4byte 0x040000D4
+_0804EAAC: .4byte 0x80000010
+
+ thumb_func_start sub_4EAB0
+sub_4EAB0: @ 0x0804EAB0
+ push {r4, lr}
+ ldr r0, _0804EAE8 @ =0x020314E0
+ ldr r0, [r0]
+ movs r1, #0xe6
+ lsls r1, r1, #3
+ adds r0, r0, r1
+ movs r2, #0
+ ldrsb r2, [r0, r2]
+ lsls r2, r2, #3
+ ldr r3, _0804EAEC @ =0x086B09C8
+ adds r2, r2, r3
+ ldr r0, _0804EAF0 @ =0x040000D4
+ ldr r1, [r2]
+ str r1, [r0]
+ ldr r1, [r3, #0x18]
+ str r1, [r0, #4]
+ ldr r4, _0804EAF4 @ =0x80000020
+ str r4, [r0, #8]
+ ldr r1, [r0, #8]
+ ldr r1, [r2, #4]
+ str r1, [r0]
+ ldr r1, [r3, #0x1c]
+ str r1, [r0, #4]
+ str r4, [r0, #8]
+ ldr r0, [r0, #8]
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0804EAE8: .4byte 0x020314E0
+_0804EAEC: .4byte 0x086B09C8
+_0804EAF0: .4byte 0x040000D4
+_0804EAF4: .4byte 0x80000020
+
+ thumb_func_start sub_4EAF8
+sub_4EAF8: @ 0x0804EAF8
+ push {r4, r5, r6, r7, lr}
+ ldr r7, _0804EBB4 @ =0x020314E0
+ ldr r5, [r7]
+ movs r0, #0xe4
+ lsls r0, r0, #3
+ adds r1, r5, r0
+ ldrb r0, [r1]
+ cmp r0, #0
+ beq _0804EB5E
+ ldr r6, _0804EBB8 @ =0x00000721
+ adds r0, r5, r6
+ ldrb r0, [r0]
+ lsls r0, r0, #0x18
+ asrs r0, r0, #0x18
+ ldr r4, _0804EBBC @ =0x0000071D
+ adds r5, r5, r4
+ adds r5, r5, r0
+ ldrb r0, [r1]
+ movs r1, #0x24
+ bl sub_558B0
+ lsls r0, r0, #0x18
+ lsrs r0, r0, #0x18
+ movs r1, #0x12
+ bl sub_55838
+ movs r1, #1
+ subs r1, r1, r0
+ strb r1, [r5]
+ ldr r0, [r7]
+ ldr r2, _0804EBC0 @ =0x00000722
+ adds r1, r0, r2
+ ldrb r1, [r1]
+ lsls r1, r1, #0x18
+ asrs r1, r1, #0x18
+ adds r4, r0, r4
+ adds r1, r4, r1
+ adds r0, r0, r6
+ ldrb r0, [r0]
+ lsls r0, r0, #0x18
+ asrs r0, r0, #0x18
+ adds r4, r4, r0
+ ldrb r0, [r4]
+ strb r0, [r1]
+ ldr r1, [r7]
+ movs r0, #0xe4
+ lsls r0, r0, #3
+ adds r1, r1, r0
+ ldrb r0, [r1]
+ subs r0, #1
+ strb r0, [r1]
+_0804EB5E:
+ movs r1, #0
+ ldr r0, [r7]
+ ldr r2, _0804EBBC @ =0x0000071D
+ adds r7, r0, r2
+ ldr r6, _0804EBC4 @ =0x086B09E8
+ movs r0, #0x30
+ adds r0, r0, r6
+ mov ip, r0
+ ldr r4, _0804EBC8 @ =0x040000D4
+ ldr r5, _0804EBCC @ =0x80000020
+_0804EB72:
+ lsls r3, r1, #0x10
+ asrs r3, r3, #0x10
+ lsls r2, r3, #3
+ subs r2, r2, r3
+ lsls r2, r2, #3
+ adds r0, r7, r3
+ movs r1, #0
+ ldrsb r1, [r0, r1]
+ lsls r1, r1, #3
+ adds r1, r1, r6
+ adds r1, r2, r1
+ add r2, ip
+ ldr r0, [r1]
+ str r0, [r4]
+ ldr r0, [r2]
+ str r0, [r4, #4]
+ str r5, [r4, #8]
+ ldr r0, [r4, #8]
+ ldr r0, [r1, #4]
+ str r0, [r4]
+ ldr r0, [r2, #4]
+ str r0, [r4, #4]
+ str r5, [r4, #8]
+ ldr r0, [r4, #8]
+ adds r3, #1
+ lsls r3, r3, #0x10
+ lsrs r1, r3, #0x10
+ asrs r3, r3, #0x10
+ cmp r3, #2
+ ble _0804EB72
+ pop {r4, r5, r6, r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0804EBB4: .4byte 0x020314E0
+_0804EBB8: .4byte 0x00000721
+_0804EBBC: .4byte 0x0000071D
+_0804EBC0: .4byte 0x00000722
+_0804EBC4: .4byte 0x086B09E8
+_0804EBC8: .4byte 0x040000D4
+_0804EBCC: .4byte 0x80000020
+
+ thumb_func_start sub_4EBD0
+sub_4EBD0: @ 0x0804EBD0
+ push {r4, r5, r6, r7, lr}
+ ldr r5, _0804EC38 @ =0x020314E0
+ ldr r4, [r5]
+ ldr r1, _0804EC3C @ =0x00000714
+ adds r0, r4, r1
+ ldrb r0, [r0]
+ lsls r0, r0, #0x18
+ asrs r0, r0, #0x18
+ cmp r0, #0
+ beq _0804EC7A
+ ldr r2, _0804EC40 @ =0x00000715
+ adds r1, r4, r2
+ ldrb r0, [r1]
+ cmp r0, #0
+ beq _0804EC4C
+ movs r1, #0x24
+ bl sub_558B0
+ lsls r0, r0, #0x18
+ lsrs r0, r0, #0x18
+ movs r1, #0x12
+ bl sub_55838
+ movs r2, #0xe2
+ lsls r2, r2, #3
+ adds r1, r4, r2
+ strb r0, [r1]
+ ldr r0, [r5]
+ adds r1, r0, r2
+ ldrb r1, [r1]
+ ldr r3, _0804EC44 @ =0x00000711
+ adds r0, r0, r3
+ strb r1, [r0]
+ ldr r0, [r5]
+ adds r1, r0, r2
+ ldrb r1, [r1]
+ adds r3, #1
+ adds r0, r0, r3
+ strb r1, [r0]
+ ldr r0, [r5]
+ adds r2, r0, r2
+ ldrb r1, [r2]
+ ldr r2, _0804EC48 @ =0x00000713
+ adds r0, r0, r2
+ strb r1, [r0]
+ ldr r1, [r5]
+ adds r3, #3
+ adds r1, r1, r3
+ ldrb r0, [r1]
+ subs r0, #1
+ strb r0, [r1]
+ b _0804EC7A
+ .align 2, 0
+_0804EC38: .4byte 0x020314E0
+_0804EC3C: .4byte 0x00000714
+_0804EC40: .4byte 0x00000715
+_0804EC44: .4byte 0x00000711
+_0804EC48: .4byte 0x00000713
+_0804EC4C:
+ movs r2, #0xe2
+ lsls r2, r2, #3
+ adds r1, r4, r2
+ movs r0, #1
+ strb r0, [r1]
+ ldr r0, [r5]
+ adds r1, r0, r2
+ ldrb r1, [r1]
+ ldr r3, _0804ECC4 @ =0x00000711
+ adds r0, r0, r3
+ strb r1, [r0]
+ ldr r0, [r5]
+ adds r1, r0, r2
+ ldrb r1, [r1]
+ adds r3, #1
+ adds r0, r0, r3
+ strb r1, [r0]
+ ldr r0, [r5]
+ adds r2, r0, r2
+ ldrb r1, [r2]
+ ldr r2, _0804ECC8 @ =0x00000713
+ adds r0, r0, r2
+ strb r1, [r0]
+_0804EC7A:
+ movs r2, #0
+ ldr r0, _0804ECCC @ =0x020314E0
+ ldr r0, [r0]
+ movs r3, #0xe2
+ lsls r3, r3, #3
+ adds r5, r0, r3
+ ldr r4, _0804ECD0 @ =0x086B0BC4
+ adds r7, r4, #0
+ adds r7, #8
+ ldr r3, _0804ECD4 @ =0x040000D4
+ ldr r6, _0804ECD8 @ =0x80000020
+_0804EC90:
+ lsls r1, r2, #0x10
+ asrs r1, r1, #0x10
+ lsls r2, r1, #4
+ adds r0, r5, r1
+ ldrb r0, [r0]
+ lsls r0, r0, #0x18
+ asrs r0, r0, #0x18
+ lsls r0, r0, #2
+ adds r0, r0, r4
+ adds r0, r2, r0
+ adds r2, r2, r7
+ ldr r0, [r0]
+ str r0, [r3]
+ ldr r0, [r2]
+ str r0, [r3, #4]
+ str r6, [r3, #8]
+ ldr r0, [r3, #8]
+ adds r1, #1
+ lsls r1, r1, #0x10
+ lsrs r2, r1, #0x10
+ asrs r1, r1, #0x10
+ cmp r1, #3
+ ble _0804EC90
+ pop {r4, r5, r6, r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0804ECC4: .4byte 0x00000711
+_0804ECC8: .4byte 0x00000713
+_0804ECCC: .4byte 0x020314E0
+_0804ECD0: .4byte 0x086B0BC4
+_0804ECD4: .4byte 0x040000D4
+_0804ECD8: .4byte 0x80000020
+
+ thumb_func_start sub_4ECDC
+sub_4ECDC: @ 0x0804ECDC
+ push {r4, r5, lr}
+ ldr r0, _0804ECF8 @ =0x020314E0
+ ldr r3, [r0]
+ ldr r2, _0804ECFC @ =0x00000724
+ adds r1, r3, r2
+ ldrh r2, [r1]
+ movs r1, #0x96
+ lsls r1, r1, #1
+ adds r5, r0, #0
+ cmp r2, r1
+ bls _0804ED04
+ ldr r0, _0804ED00 @ =0x00000726
+ adds r1, r3, r0
+ b _0804ED1A
+ .align 2, 0
+_0804ECF8: .4byte 0x020314E0
+_0804ECFC: .4byte 0x00000724
+_0804ED00: .4byte 0x00000726
+_0804ED04:
+ cmp r2, #0
+ beq _0804ED40
+ adds r0, r3, #0
+ adds r0, #0x25
+ ldrb r0, [r0]
+ lsls r0, r0, #0x18
+ asrs r0, r0, #0x18
+ cmp r0, #0
+ beq _0804ED24
+ ldr r2, _0804ED20 @ =0x00000726
+ adds r1, r3, r2
+_0804ED1A:
+ movs r0, #1
+ strb r0, [r1]
+ b _0804ED46
+ .align 2, 0
+_0804ED20: .4byte 0x00000726
+_0804ED24:
+ ldr r0, _0804ED38 @ =0x0200B0C0
+ ldr r0, [r0, #0x50]
+ movs r1, #0xf
+ ands r0, r1
+ lsrs r0, r0, #3
+ ldr r2, _0804ED3C @ =0x00000726
+ adds r1, r3, r2
+ strb r0, [r1]
+ b _0804ED46
+ .align 2, 0
+_0804ED38: .4byte 0x0200B0C0
+_0804ED3C: .4byte 0x00000726
+_0804ED40:
+ ldr r1, _0804EDA8 @ =0x00000726
+ adds r0, r3, r1
+ strb r2, [r0]
+_0804ED46:
+ ldr r0, [r5]
+ ldr r2, _0804EDA8 @ =0x00000726
+ adds r0, r0, r2
+ ldrb r0, [r0]
+ lsls r0, r0, #0x18
+ asrs r0, r0, #0x18
+ lsls r0, r0, #4
+ ldr r1, _0804EDAC @ =0x086B0A90
+ adds r3, r0, r1
+ adds r4, r1, #0
+ adds r4, #0x20
+ ldr r2, _0804EDB0 @ =0x040000D4
+ ldr r0, [r3]
+ str r0, [r2]
+ ldr r0, [r1, #0x20]
+ str r0, [r2, #4]
+ ldr r1, _0804EDB4 @ =0x80000060
+ str r1, [r2, #8]
+ ldr r0, [r2, #8]
+ ldr r0, [r3, #4]
+ str r0, [r2]
+ ldr r0, [r4, #4]
+ str r0, [r2, #4]
+ str r1, [r2, #8]
+ ldr r0, [r2, #8]
+ ldr r0, [r5]
+ adds r0, #0x6a
+ movs r1, #0
+ ldrsh r0, [r0, r1]
+ cmp r0, #0xd7
+ ble _0804EDA0
+ ldr r0, [r3, #8]
+ str r0, [r2]
+ ldr r0, [r4, #8]
+ str r0, [r2, #4]
+ ldr r0, _0804EDB8 @ =0x80000050
+ str r0, [r2, #8]
+ ldr r0, [r2, #8]
+ ldr r0, [r3, #0xc]
+ str r0, [r2]
+ ldr r0, [r4, #0xc]
+ str r0, [r2, #4]
+ ldr r0, _0804EDBC @ =0x80000020
+ str r0, [r2, #8]
+ ldr r0, [r2, #8]
+_0804EDA0:
+ pop {r4, r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0804EDA8: .4byte 0x00000726
+_0804EDAC: .4byte 0x086B0A90
+_0804EDB0: .4byte 0x040000D4
+_0804EDB4: .4byte 0x80000060
+_0804EDB8: .4byte 0x80000050
+_0804EDBC: .4byte 0x80000020
+
+ thumb_func_start sub_4EDC0
+sub_4EDC0: @ 0x0804EDC0
+ push {r4, r5, r6, lr}
+ movs r3, #0
+ ldr r0, _0804EE60 @ =0x020314E0
+ ldr r2, [r0]
+ movs r4, #0xe5
+ lsls r4, r4, #3
+ adds r1, r2, r4
+ ldrb r1, [r1]
+ lsls r1, r1, #0x18
+ asrs r1, r1, #0x18
+ adds r6, r0, #0
+ cmp r1, #0
+ ble _0804EDE8
+ ldr r1, _0804EE64 @ =0x00000734
+ adds r0, r2, r1
+ ldrh r1, [r0]
+ movs r0, #1
+ subs r0, r0, r1
+ lsls r0, r0, #0x10
+ lsrs r3, r0, #0x10
+_0804EDE8:
+ lsls r0, r3, #0x10
+ asrs r0, r0, #0xc
+ ldr r3, _0804EE68 @ =0x086B0AC0
+ adds r4, r0, r3
+ adds r5, r3, #0
+ adds r5, #0x20
+ adds r0, r2, #0
+ adds r0, #0x6a
+ movs r1, #0
+ ldrsh r0, [r0, r1]
+ cmp r0, #0x30
+ ble _0804EE30
+ cmp r0, #0xd7
+ bgt _0804EE14
+ ldr r1, _0804EE6C @ =0x040000D4
+ ldr r0, [r4]
+ str r0, [r1]
+ ldr r0, [r3, #0x20]
+ str r0, [r1, #4]
+ ldr r0, _0804EE70 @ =0x80000040
+ str r0, [r1, #8]
+ ldr r0, [r1, #8]
+_0804EE14:
+ ldr r0, [r6]
+ adds r0, #0x6a
+ movs r1, #0
+ ldrsh r0, [r0, r1]
+ cmp r0, #0xdf
+ bgt _0804EE30
+ ldr r1, _0804EE6C @ =0x040000D4
+ ldr r0, [r4, #4]
+ str r0, [r1]
+ ldr r0, [r5, #4]
+ str r0, [r1, #4]
+ ldr r0, _0804EE70 @ =0x80000040
+ str r0, [r1, #8]
+ ldr r0, [r1, #8]
+_0804EE30:
+ ldr r0, [r6]
+ adds r0, #0x6a
+ movs r1, #0
+ ldrsh r0, [r0, r1]
+ cmp r0, #0x40
+ ble _0804EE58
+ ldr r0, _0804EE6C @ =0x040000D4
+ ldr r1, [r4, #8]
+ str r1, [r0]
+ ldr r1, [r5, #8]
+ str r1, [r0, #4]
+ ldr r2, _0804EE70 @ =0x80000040
+ str r2, [r0, #8]
+ ldr r1, [r0, #8]
+ ldr r1, [r4, #0xc]
+ str r1, [r0]
+ ldr r1, [r5, #0xc]
+ str r1, [r0, #4]
+ str r2, [r0, #8]
+ ldr r0, [r0, #8]
+_0804EE58:
+ pop {r4, r5, r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0804EE60: .4byte 0x020314E0
+_0804EE64: .4byte 0x00000734
+_0804EE68: .4byte 0x086B0AC0
+_0804EE6C: .4byte 0x040000D4
+_0804EE70: .4byte 0x80000040
+
+ thumb_func_start sub_4EE74
+sub_4EE74: @ 0x0804EE74
+ push {r4, r5, r6, lr}
+ movs r3, #0
+ ldr r0, _0804EF18 @ =0x020314E0
+ ldr r2, [r0]
+ ldr r4, _0804EF1C @ =0x00000729
+ adds r1, r2, r4
+ ldrb r1, [r1]
+ lsls r1, r1, #0x18
+ asrs r1, r1, #0x18
+ adds r6, r0, #0
+ cmp r1, #0
+ ble _0804EE9A
+ ldr r1, _0804EF20 @ =0x00000734
+ adds r0, r2, r1
+ ldrh r1, [r0]
+ movs r0, #1
+ subs r0, r0, r1
+ lsls r0, r0, #0x10
+ lsrs r3, r0, #0x10
+_0804EE9A:
+ lsls r0, r3, #0x10
+ asrs r0, r0, #0xc
+ ldr r3, _0804EF24 @ =0x086B0AF0
+ adds r4, r0, r3
+ adds r5, r3, #0
+ adds r5, #0x20
+ adds r0, r2, #0
+ adds r0, #0x6a
+ movs r1, #0
+ ldrsh r0, [r0, r1]
+ cmp r0, #0x28
+ ble _0804EEE2
+ cmp r0, #0xcf
+ bgt _0804EEC6
+ ldr r1, _0804EF28 @ =0x040000D4
+ ldr r0, [r4]
+ str r0, [r1]
+ ldr r0, [r3, #0x20]
+ str r0, [r1, #4]
+ ldr r0, _0804EF2C @ =0x80000020
+ str r0, [r1, #8]
+ ldr r0, [r1, #8]
+_0804EEC6:
+ ldr r0, [r6]
+ adds r0, #0x6a
+ movs r1, #0
+ ldrsh r0, [r0, r1]
+ cmp r0, #0xd7
+ bgt _0804EEE2
+ ldr r1, _0804EF28 @ =0x040000D4
+ ldr r0, [r4, #4]
+ str r0, [r1]
+ ldr r0, [r5, #4]
+ str r0, [r1, #4]
+ ldr r0, _0804EF30 @ =0x80000040
+ str r0, [r1, #8]
+ ldr r0, [r1, #8]
+_0804EEE2:
+ ldr r0, [r6]
+ adds r0, #0x6a
+ movs r1, #0
+ ldrsh r0, [r0, r1]
+ cmp r0, #0x38
+ ble _0804EF12
+ cmp r0, #0xdf
+ bgt _0804EF02
+ ldr r1, _0804EF28 @ =0x040000D4
+ ldr r0, [r4, #8]
+ str r0, [r1]
+ ldr r0, [r5, #8]
+ str r0, [r1, #4]
+ ldr r0, _0804EF30 @ =0x80000040
+ str r0, [r1, #8]
+ ldr r0, [r1, #8]
+_0804EF02:
+ ldr r1, _0804EF28 @ =0x040000D4
+ ldr r0, [r4, #0xc]
+ str r0, [r1]
+ ldr r0, [r5, #0xc]
+ str r0, [r1, #4]
+ ldr r0, _0804EF34 @ =0x80000030
+ str r0, [r1, #8]
+ ldr r0, [r1, #8]
+_0804EF12:
+ pop {r4, r5, r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0804EF18: .4byte 0x020314E0
+_0804EF1C: .4byte 0x00000729
+_0804EF20: .4byte 0x00000734
+_0804EF24: .4byte 0x086B0AF0
+_0804EF28: .4byte 0x040000D4
+_0804EF2C: .4byte 0x80000020
+_0804EF30: .4byte 0x80000040
+_0804EF34: .4byte 0x80000030
+
+ thumb_func_start sub_4EF38
+sub_4EF38: @ 0x0804EF38
+ push {r4, r5, lr}
+ movs r3, #0
+ ldr r0, _0804EF58 @ =0x020314E0
+ ldr r2, [r0]
+ movs r4, #0xbc
+ lsls r4, r4, #2
+ adds r1, r2, r4
+ ldrb r1, [r1]
+ adds r5, r0, #0
+ cmp r1, #2
+ bls _0804EF60
+ ldr r0, _0804EF5C @ =0x0000072A
+ adds r1, r2, r0
+ movs r0, #1
+ strb r0, [r1]
+ b _0804EF6E
+ .align 2, 0
+_0804EF58: .4byte 0x020314E0
+_0804EF5C: .4byte 0x0000072A
+_0804EF60:
+ movs r0, #0x13
+ ldrsb r0, [r2, r0]
+ cmp r0, #0
+ beq _0804EF6E
+ ldr r1, _0804EF98 @ =0x0000072A
+ adds r0, r2, r1
+ strb r3, [r0]
+_0804EF6E:
+ ldr r1, [r5]
+ ldr r2, _0804EF98 @ =0x0000072A
+ adds r0, r1, r2
+ ldrb r0, [r0]
+ lsls r0, r0, #0x18
+ asrs r0, r0, #0x18
+ cmp r0, #0
+ ble _0804EFA0
+ ldr r4, _0804EF9C @ =0x000001A5
+ adds r0, r1, r4
+ ldrb r0, [r0]
+ lsls r0, r0, #0x18
+ asrs r0, r0, #0x18
+ lsls r0, r0, #1
+ adds r2, #0xa
+ adds r1, r1, r2
+ ldrh r1, [r1]
+ subs r1, #1
+ subs r0, r0, r1
+ lsls r0, r0, #0x10
+ b _0804EFAC
+ .align 2, 0
+_0804EF98: .4byte 0x0000072A
+_0804EF9C: .4byte 0x000001A5
+_0804EFA0:
+ ldr r4, _0804F014 @ =0x000001A5
+ adds r0, r1, r4
+ ldrb r0, [r0]
+ lsls r0, r0, #0x18
+ asrs r0, r0, #0x18
+ lsls r0, r0, #0x11
+_0804EFAC:
+ lsrs r3, r0, #0x10
+ lsls r0, r3, #0x10
+ asrs r0, r0, #0xc
+ ldr r2, _0804F018 @ =0x086B0B20
+ adds r3, r0, r2
+ adds r4, r2, #0
+ adds r4, #0x40
+ ldr r0, [r5]
+ adds r0, #0x6a
+ movs r1, #0
+ ldrsh r0, [r0, r1]
+ cmp r0, #0xef
+ bgt _0804EFD6
+ ldr r1, _0804F01C @ =0x040000D4
+ ldr r0, [r3]
+ str r0, [r1]
+ ldr r0, [r2, #0x40]
+ str r0, [r1, #4]
+ ldr r0, _0804F020 @ =0x80000050
+ str r0, [r1, #8]
+ ldr r0, [r1, #8]
+_0804EFD6:
+ ldr r2, _0804F01C @ =0x040000D4
+ ldr r0, [r3, #4]
+ str r0, [r2]
+ ldr r0, [r4, #4]
+ str r0, [r2, #4]
+ ldr r1, _0804F020 @ =0x80000050
+ str r1, [r2, #8]
+ ldr r0, [r2, #8]
+ ldr r0, [r3, #8]
+ str r0, [r2]
+ ldr r0, [r4, #8]
+ str r0, [r2, #4]
+ str r1, [r2, #8]
+ ldr r0, [r2, #8]
+ ldr r0, [r5]
+ adds r0, #0x6a
+ movs r1, #0
+ ldrsh r0, [r0, r1]
+ cmp r0, #0x58
+ ble _0804F00C
+ ldr r0, [r3, #0xc]
+ str r0, [r2]
+ ldr r0, [r4, #0xc]
+ str r0, [r2, #4]
+ ldr r0, _0804F024 @ =0x80000030
+ str r0, [r2, #8]
+ ldr r0, [r2, #8]
+_0804F00C:
+ pop {r4, r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0804F014: .4byte 0x000001A5
+_0804F018: .4byte 0x086B0B20
+_0804F01C: .4byte 0x040000D4
+_0804F020: .4byte 0x80000050
+_0804F024: .4byte 0x80000030
+
+ thumb_func_start sub_4F028
+sub_4F028: @ 0x0804F028
+ push {r4, r5, lr}
+ movs r3, #0
+ ldr r1, _0804F0CC @ =0x020314E0
+ ldr r0, [r1]
+ ldr r4, _0804F0D0 @ =0x00000731
+ adds r0, r0, r4
+ strb r3, [r0]
+ ldr r2, [r1]
+ ldr r5, _0804F0D4 @ =0x0000072F
+ adds r0, r2, r5
+ ldrb r0, [r0]
+ lsls r0, r0, #0x18
+ asrs r0, r0, #0x18
+ adds r5, r1, #0
+ cmp r0, #1
+ ble _0804F056
+ movs r0, #0x13
+ ldrsb r0, [r2, r0]
+ cmp r0, #2
+ bgt _0804F056
+ adds r1, r2, r4
+ movs r0, #1
+ strb r0, [r1]
+_0804F056:
+ ldr r2, [r5]
+ ldr r1, _0804F0D0 @ =0x00000731
+ adds r0, r2, r1
+ ldrb r0, [r0]
+ lsls r0, r0, #0x18
+ asrs r0, r0, #0x18
+ cmp r0, #0
+ ble _0804F074
+ ldr r5, _0804F0D8 @ =0x00000734
+ adds r0, r2, r5
+ ldrh r1, [r0]
+ movs r0, #1
+ subs r0, r0, r1
+ lsls r0, r0, #0x10
+ lsrs r3, r0, #0x10
+_0804F074:
+ lsls r0, r3, #0x10
+ asrs r0, r0, #0xc
+ ldr r4, _0804F0DC @ =0x086B0B94
+ adds r3, r0, r4
+ adds r5, r4, #0
+ adds r5, #0x20
+ adds r0, r2, #0
+ adds r0, #0x6a
+ movs r2, #0
+ ldrsh r1, [r0, r2]
+ ldr r0, _0804F0E0 @ =0x00000107
+ cmp r1, r0
+ bgt _0804F09E
+ ldr r1, _0804F0E4 @ =0x040000D4
+ ldr r0, [r3]
+ str r0, [r1]
+ ldr r0, [r4, #0x20]
+ str r0, [r1, #4]
+ ldr r0, _0804F0E8 @ =0x80000020
+ str r0, [r1, #8]
+ ldr r0, [r1, #8]
+_0804F09E:
+ ldr r0, _0804F0E4 @ =0x040000D4
+ ldr r1, [r3, #4]
+ str r1, [r0]
+ ldr r1, [r5, #4]
+ str r1, [r0, #4]
+ ldr r2, _0804F0EC @ =0x80000040
+ str r2, [r0, #8]
+ ldr r1, [r0, #8]
+ ldr r1, [r3, #8]
+ str r1, [r0]
+ ldr r1, [r5, #8]
+ str r1, [r0, #4]
+ str r2, [r0, #8]
+ ldr r1, [r0, #8]
+ ldr r1, [r3, #0xc]
+ str r1, [r0]
+ ldr r1, [r5, #0xc]
+ str r1, [r0, #4]
+ str r2, [r0, #8]
+ ldr r0, [r0, #8]
+ pop {r4, r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0804F0CC: .4byte 0x020314E0
+_0804F0D0: .4byte 0x00000731
+_0804F0D4: .4byte 0x0000072F
+_0804F0D8: .4byte 0x00000734
+_0804F0DC: .4byte 0x086B0B94
+_0804F0E0: .4byte 0x00000107
+_0804F0E4: .4byte 0x040000D4
+_0804F0E8: .4byte 0x80000020
+_0804F0EC: .4byte 0x80000040
+
+ thumb_func_start sub_4F0F0
+sub_4F0F0: @ 0x0804F0F0
+ push {r4, r5, r6, r7, lr}
+ ldr r5, _0804F1E8 @ =0x020314E0
+ ldr r4, [r5]
+ ldr r0, _0804F1EC @ =0x0000071B
+ adds r1, r4, r0
+ movs r0, #0
+ ldrsb r0, [r1, r0]
+ adds r7, r5, #0
+ cmp r0, #0
+ bne _0804F106
+ b _0804F24C
+_0804F106:
+ ldr r6, _0804F1F0 @ =0x0000071C
+ adds r0, r4, r6
+ ldrb r3, [r0]
+ cmp r3, #0
+ bne _0804F112
+ b _0804F220
+_0804F112:
+ movs r1, #0xbe
+ lsls r1, r1, #2
+ adds r0, r4, r1
+ ldrb r0, [r0]
+ lsls r0, r0, #0x18
+ asrs r0, r0, #0x18
+ cmp r0, #0
+ bne _0804F152
+ ldr r0, _0804F1F4 @ =0x0200B0C0
+ ldr r0, [r0, #0x50]
+ movs r1, #0x14
+ bl sub_558B0
+ movs r1, #0xa
+ bl sub_55838
+ movs r2, #0xe3
+ lsls r2, r2, #3
+ adds r1, r4, r2
+ strb r0, [r1]
+ ldr r0, [r5]
+ adds r1, r0, r2
+ ldrb r1, [r1]
+ ldr r3, _0804F1F8 @ =0x00000719
+ adds r0, r0, r3
+ strb r1, [r0]
+ ldr r0, [r5]
+ adds r2, r0, r2
+ ldrb r1, [r2]
+ ldr r4, _0804F1FC @ =0x0000071A
+ adds r0, r0, r4
+ strb r1, [r0]
+_0804F152:
+ ldr r1, [r5]
+ adds r0, r1, r6
+ ldrb r0, [r0]
+ cmp r0, #0x1c
+ bne _0804F196
+ ldr r3, _0804F200 @ =0x000005F6
+ adds r1, r1, r3
+ ldrb r2, [r1]
+ movs r0, #0
+ ldrsb r0, [r1, r0]
+ cmp r0, #2
+ bgt _0804F16E
+ adds r0, r2, #1
+ strb r0, [r1]
+_0804F16E:
+ ldr r1, [r5]
+ movs r0, #0xbf
+ lsls r0, r0, #3
+ adds r2, r1, r0
+ movs r0, #0xe1
+ lsls r0, r0, #4
+ strh r0, [r2]
+ ldr r2, _0804F204 @ =0x040000D4
+ adds r1, r1, r3
+ movs r0, #0
+ ldrsb r0, [r1, r0]
+ lsls r0, r0, #5
+ ldr r1, _0804F208 @ =0x08137E14
+ adds r0, r0, r1
+ str r0, [r2]
+ ldr r0, _0804F20C @ =0x05000220
+ str r0, [r2, #4]
+ ldr r0, _0804F210 @ =0x80000010
+ str r0, [r2, #8]
+ ldr r0, [r2, #8]
+_0804F196:
+ adds r5, r7, #0
+ ldr r0, [r5]
+ ldr r4, _0804F1F0 @ =0x0000071C
+ adds r0, r0, r4
+ ldrb r0, [r0]
+ cmp r0, #0x28
+ bne _0804F1AC
+ ldr r0, _0804F214 @ =0x02032F20
+ ldr r1, _0804F218 @ =0x0869F664
+ bl sub_5450C
+_0804F1AC:
+ ldr r0, [r5]
+ adds r0, r0, r4
+ ldrb r0, [r0]
+ cmp r0, #0x3c
+ bne _0804F1C2
+ ldr r0, _0804F1F4 @ =0x0200B0C0
+ ldr r0, [r0, #0x44]
+ adds r0, #0xac
+ ldr r1, [r0]
+ movs r0, #1
+ strh r0, [r1]
+_0804F1C2:
+ ldr r2, [r7]
+ ldr r3, _0804F21C @ =0x086B0E20
+ adds r0, r2, r4
+ ldrb r1, [r0]
+ lsrs r1, r1, #1
+ movs r0, #0x1e
+ subs r0, r0, r1
+ lsls r0, r0, #1
+ adds r0, r0, r3
+ ldrh r0, [r0]
+ adds r2, #0x6e
+ strb r0, [r2]
+ ldr r1, [r7]
+ adds r1, r1, r4
+ ldrb r0, [r1]
+ subs r0, #1
+ strb r0, [r1]
+ b _0804F24C
+ .align 2, 0
+_0804F1E8: .4byte 0x020314E0
+_0804F1EC: .4byte 0x0000071B
+_0804F1F0: .4byte 0x0000071C
+_0804F1F4: .4byte 0x0200B0C0
+_0804F1F8: .4byte 0x00000719
+_0804F1FC: .4byte 0x0000071A
+_0804F200: .4byte 0x000005F6
+_0804F204: .4byte 0x040000D4
+_0804F208: .4byte 0x08137E14
+_0804F20C: .4byte 0x05000220
+_0804F210: .4byte 0x80000010
+_0804F214: .4byte 0x02032F20
+_0804F218: .4byte 0x0869F664
+_0804F21C: .4byte 0x086B0E20
+_0804F220:
+ strb r3, [r1]
+ ldr r2, [r5]
+ movs r1, #0xbe
+ lsls r1, r1, #2
+ adds r0, r2, r1
+ ldrb r0, [r0]
+ lsls r0, r0, #0x18
+ asrs r0, r0, #0x18
+ cmp r0, #0
+ bne _0804F246
+ ldr r4, _0804F254 @ =0x0000071A
+ adds r0, r2, r4
+ strb r3, [r0]
+ subs r4, #1
+ adds r0, r2, r4
+ strb r3, [r0]
+ subs r4, #1
+ adds r0, r2, r4
+ strb r3, [r0]
+_0804F246:
+ ldr r0, [r5]
+ adds r0, r0, r1
+ strb r3, [r0]
+_0804F24C:
+ pop {r4, r5, r6, r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0804F254: .4byte 0x0000071A
+
+ thumb_func_start sub_4F258
+sub_4F258: @ 0x0804F258
+ push {r4, r5, r6, r7, lr}
+ movs r1, #0
+ ldr r0, _0804F2A8 @ =0x020314E0
+ ldr r0, [r0]
+ movs r2, #0xe3
+ lsls r2, r2, #3
+ adds r5, r0, r2
+ ldr r4, _0804F2AC @ =0x086B0B70
+ adds r7, r4, #0
+ adds r7, #8
+ ldr r3, _0804F2B0 @ =0x040000D4
+ ldr r6, _0804F2B4 @ =0x80000020
+_0804F270:
+ lsls r2, r1, #0x10
+ asrs r2, r2, #0x10
+ lsls r1, r2, #1
+ adds r1, r1, r2
+ lsls r1, r1, #2
+ adds r0, r5, r2
+ ldrb r0, [r0]
+ lsls r0, r0, #0x18
+ asrs r0, r0, #0x18
+ lsls r0, r0, #2
+ adds r0, r0, r4
+ adds r0, r1, r0
+ adds r1, r1, r7
+ ldr r0, [r0]
+ str r0, [r3]
+ ldr r0, [r1]
+ str r0, [r3, #4]
+ str r6, [r3, #8]
+ ldr r0, [r3, #8]
+ adds r2, #1
+ lsls r2, r2, #0x10
+ lsrs r1, r2, #0x10
+ asrs r2, r2, #0x10
+ cmp r2, #2
+ ble _0804F270
+ pop {r4, r5, r6, r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0804F2A8: .4byte 0x020314E0
+_0804F2AC: .4byte 0x086B0B70
+_0804F2B0: .4byte 0x040000D4
+_0804F2B4: .4byte 0x80000020
+
+ thumb_func_start sub_4F2B8
+sub_4F2B8: @ 0x0804F2B8
+ push {r4, r5, lr}
+ ldr r0, _0804F2EC @ =0x020314E0
+ ldr r1, [r0]
+ ldr r0, _0804F2F0 @ =0x0000072B
+ adds r3, r1, r0
+ movs r0, #0
+ ldrsb r0, [r3, r0]
+ cmp r0, #0
+ ble _0804F306
+ ldr r5, _0804F2F4 @ =0x0000072C
+ adds r2, r1, r5
+ ldrh r4, [r2]
+ ldr r0, _0804F2F8 @ =0x086B08C4
+ movs r1, #0
+ ldrsb r1, [r3, r1]
+ subs r1, #1
+ lsls r1, r1, #1
+ adds r1, r1, r0
+ movs r5, #0
+ ldrsh r0, [r1, r5]
+ cmp r4, r0
+ bge _0804F2FC
+ adds r0, r4, #1
+ strh r0, [r2]
+ b _0804F306
+ .align 2, 0
+_0804F2EC: .4byte 0x020314E0
+_0804F2F0: .4byte 0x0000072B
+_0804F2F4: .4byte 0x0000072C
+_0804F2F8: .4byte 0x086B08C4
+_0804F2FC:
+ movs r0, #0
+ strh r0, [r2]
+ ldrb r0, [r3]
+ subs r0, #1
+ strb r0, [r3]
+_0804F306:
+ pop {r4, r5}
+ pop {r0}
+ bx r0
+
+ thumb_func_start sub_4F30C
+sub_4F30C: @ 0x0804F30C
+ push {r4, r5, lr}
+ sub sp, #8
+ ldr r1, _0804F33C @ =0x020314E0
+ ldr r2, [r1]
+ ldr r3, _0804F340 @ =0x0000072B
+ adds r0, r2, r3
+ movs r3, #0
+ ldrsb r3, [r0, r3]
+ adds r4, r1, #0
+ cmp r3, #0
+ bne _0804F348
+ mov r1, sp
+ ldr r5, _0804F344 @ =0x00000734
+ adds r2, r2, r5
+ movs r5, #0
+ ldrsh r0, [r2, r5]
+ lsls r0, r0, #1
+ strh r0, [r1]
+ ldrh r0, [r2]
+ strh r0, [r1, #2]
+ mov r0, sp
+ strh r3, [r0, #4]
+ b _0804F396
+ .align 2, 0
+_0804F33C: .4byte 0x020314E0
+_0804F340: .4byte 0x0000072B
+_0804F344: .4byte 0x00000734
+_0804F348:
+ cmp r3, #1
+ bne _0804F36C
+ mov r1, sp
+ movs r0, #3
+ strh r0, [r1]
+ ldr r0, _0804F368 @ =0x00000734
+ adds r2, r2, r0
+ ldrh r0, [r2]
+ adds r0, #1
+ strh r0, [r1, #2]
+ movs r3, #0
+ ldrsh r0, [r2, r3]
+ lsls r0, r0, #1
+ strh r0, [r1, #4]
+ b _0804F396
+ .align 2, 0
+_0804F368: .4byte 0x00000734
+_0804F36C:
+ cmp r3, #2
+ bne _0804F38C
+ mov r0, sp
+ movs r1, #3
+ strh r1, [r0]
+ strh r1, [r0, #2]
+ mov r1, sp
+ ldr r5, _0804F388 @ =0x00000734
+ adds r0, r2, r5
+ ldrh r0, [r0]
+ adds r0, #2
+ strh r0, [r1, #4]
+ b _0804F396
+ .align 2, 0
+_0804F388: .4byte 0x00000734
+_0804F38C:
+ mov r0, sp
+ movs r1, #3
+ strh r1, [r0]
+ strh r1, [r0, #2]
+ strh r1, [r0, #4]
+_0804F396:
+ mov r0, sp
+ movs r2, #0
+ ldrsh r1, [r0, r2]
+ lsls r0, r1, #1
+ adds r0, r0, r1
+ lsls r0, r0, #2
+ ldr r2, _0804F4A8 @ =0x086B0CB8
+ adds r3, r0, r2
+ adds r5, r2, #0
+ adds r5, #0x30
+ ldr r0, [r4]
+ adds r0, #0x6a
+ ldrh r0, [r0]
+ subs r0, #0x2a
+ lsls r0, r0, #0x10
+ lsrs r0, r0, #0x10
+ cmp r0, #0xa5
+ bhi _0804F3CA
+ ldr r1, _0804F4AC @ =0x040000D4
+ ldr r0, [r3]
+ str r0, [r1]
+ ldr r0, [r2, #0x30]
+ str r0, [r1, #4]
+ ldr r0, _0804F4B0 @ =0x80000030
+ str r0, [r1, #8]
+ ldr r0, [r1, #8]
+_0804F3CA:
+ ldr r0, [r4]
+ adds r4, r0, #0
+ adds r4, #0x6a
+ ldrh r0, [r4]
+ subs r0, #0x32
+ lsls r0, r0, #0x10
+ lsrs r0, r0, #0x10
+ cmp r0, #0xa5
+ bhi _0804F3EC
+ ldr r1, _0804F4AC @ =0x040000D4
+ ldr r0, [r3, #4]
+ str r0, [r1]
+ ldr r0, [r5, #4]
+ str r0, [r1, #4]
+ ldr r0, _0804F4B0 @ =0x80000030
+ str r0, [r1, #8]
+ ldr r0, [r1, #8]
+_0804F3EC:
+ mov r0, sp
+ movs r3, #2
+ ldrsh r1, [r0, r3]
+ lsls r0, r1, #1
+ adds r0, r0, r1
+ lsls r0, r0, #2
+ adds r1, r2, #0
+ adds r1, #0x3c
+ adds r3, r0, r1
+ adds r5, r2, #0
+ adds r5, #0x6c
+ ldrh r0, [r4]
+ subs r0, #0x3a
+ lsls r0, r0, #0x10
+ lsrs r0, r0, #0x10
+ cmp r0, #0xa5
+ bhi _0804F41E
+ ldr r1, _0804F4AC @ =0x040000D4
+ ldr r0, [r3]
+ str r0, [r1]
+ ldr r0, [r2, #0x6c]
+ str r0, [r1, #4]
+ ldr r0, _0804F4B0 @ =0x80000030
+ str r0, [r1, #8]
+ ldr r0, [r1, #8]
+_0804F41E:
+ ldrh r0, [r4]
+ subs r0, #0x42
+ lsls r0, r0, #0x10
+ lsrs r0, r0, #0x10
+ cmp r0, #0xa5
+ bhi _0804F43A
+ ldr r1, _0804F4AC @ =0x040000D4
+ ldr r0, [r3, #4]
+ str r0, [r1]
+ ldr r0, [r5, #4]
+ str r0, [r1, #4]
+ ldr r0, _0804F4B0 @ =0x80000030
+ str r0, [r1, #8]
+ ldr r0, [r1, #8]
+_0804F43A:
+ mov r0, sp
+ movs r5, #4
+ ldrsh r1, [r0, r5]
+ lsls r0, r1, #1
+ adds r0, r0, r1
+ lsls r0, r0, #2
+ adds r1, r2, #0
+ adds r1, #0x78
+ adds r3, r0, r1
+ adds r5, r2, #0
+ adds r5, #0xa8
+ ldrh r0, [r4]
+ subs r0, #0x4a
+ lsls r0, r0, #0x10
+ lsrs r0, r0, #0x10
+ cmp r0, #0xa5
+ bhi _0804F46C
+ ldr r1, _0804F4AC @ =0x040000D4
+ ldr r0, [r3]
+ str r0, [r1]
+ ldr r0, [r5]
+ str r0, [r1, #4]
+ ldr r0, _0804F4B0 @ =0x80000030
+ str r0, [r1, #8]
+ ldr r0, [r1, #8]
+_0804F46C:
+ ldrh r0, [r4]
+ subs r0, #0x52
+ lsls r0, r0, #0x10
+ lsrs r0, r0, #0x10
+ cmp r0, #0xa5
+ bhi _0804F488
+ ldr r1, _0804F4AC @ =0x040000D4
+ ldr r0, [r3, #4]
+ str r0, [r1]
+ ldr r0, [r5, #4]
+ str r0, [r1, #4]
+ ldr r0, _0804F4B0 @ =0x80000030
+ str r0, [r1, #8]
+ ldr r0, [r1, #8]
+_0804F488:
+ movs r1, #0
+ ldrsh r0, [r4, r1]
+ cmp r0, #0x59
+ ble _0804F4A0
+ ldr r1, _0804F4AC @ =0x040000D4
+ ldr r0, [r3, #8]
+ str r0, [r1]
+ ldr r0, [r5, #8]
+ str r0, [r1, #4]
+ ldr r0, _0804F4B0 @ =0x80000030
+ str r0, [r1, #8]
+ ldr r0, [r1, #8]
+_0804F4A0:
+ add sp, #8
+ pop {r4, r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0804F4A8: .4byte 0x086B0CB8
+_0804F4AC: .4byte 0x040000D4
+_0804F4B0: .4byte 0x80000030
+
+ thumb_func_start sub_4F4B4
+sub_4F4B4: @ 0x0804F4B4
+ push {r4, r5, r6, lr}
+ sub sp, #8
+ ldr r0, _0804F4E8 @ =0x020314E0
+ ldr r2, [r0]
+ movs r1, #0x13
+ ldrsb r1, [r2, r1]
+ adds r6, r0, #0
+ cmp r1, #2
+ bgt _0804F53C
+ ldr r1, _0804F4EC @ =0x0000072E
+ adds r0, r2, r1
+ movs r3, #0
+ ldrsb r3, [r0, r3]
+ cmp r3, #0
+ bne _0804F4F4
+ mov r1, sp
+ ldr r4, _0804F4F0 @ =0x00000734
+ adds r0, r2, r4
+ movs r2, #0
+ ldrsh r0, [r0, r2]
+ lsls r0, r0, #1
+ strh r0, [r1]
+ mov r0, sp
+ strh r3, [r0, #2]
+ strh r3, [r0, #4]
+ b _0804F562
+ .align 2, 0
+_0804F4E8: .4byte 0x020314E0
+_0804F4EC: .4byte 0x0000072E
+_0804F4F0: .4byte 0x00000734
+_0804F4F4:
+ cmp r3, #1
+ bne _0804F514
+ mov r1, sp
+ movs r0, #3
+ strh r0, [r1]
+ ldr r3, _0804F510 @ =0x00000734
+ adds r2, r2, r3
+ ldrh r0, [r2]
+ adds r0, #1
+ strh r0, [r1, #2]
+ movs r4, #0
+ ldrsh r0, [r2, r4]
+ lsls r0, r0, #1
+ b _0804F560
+ .align 2, 0
+_0804F510: .4byte 0x00000734
+_0804F514:
+ cmp r3, #2
+ bne _0804F530
+ mov r0, sp
+ movs r1, #3
+ strh r1, [r0]
+ strh r1, [r0, #2]
+ mov r1, sp
+ ldr r3, _0804F52C @ =0x00000734
+ adds r0, r2, r3
+ ldrh r0, [r0]
+ adds r0, #2
+ b _0804F560
+ .align 2, 0
+_0804F52C: .4byte 0x00000734
+_0804F530:
+ mov r0, sp
+ movs r1, #3
+ strh r1, [r0]
+ strh r1, [r0, #2]
+ strh r1, [r0, #4]
+ b _0804F562
+_0804F53C:
+ mov r1, sp
+ ldr r4, _0804F648 @ =0x00000739
+ adds r0, r2, r4
+ ldrb r0, [r0]
+ lsls r0, r0, #0x18
+ asrs r0, r0, #0x18
+ strh r0, [r1]
+ ldr r3, _0804F64C @ =0x0000073A
+ adds r0, r2, r3
+ ldrb r0, [r0]
+ lsls r0, r0, #0x18
+ asrs r0, r0, #0x18
+ strh r0, [r1, #2]
+ adds r4, #2
+ adds r0, r2, r4
+ ldrb r0, [r0]
+ lsls r0, r0, #0x18
+ asrs r0, r0, #0x18
+_0804F560:
+ strh r0, [r1, #4]
+_0804F562:
+ mov r0, sp
+ movs r2, #0
+ ldrsh r1, [r0, r2]
+ lsls r0, r1, #1
+ adds r0, r0, r1
+ lsls r0, r0, #2
+ ldr r3, _0804F650 @ =0x086B0C04
+ mov ip, r3
+ adds r3, r0, r3
+ mov r4, ip
+ adds r4, #0x30
+ ldr r0, [r6]
+ adds r0, #0x6a
+ movs r2, #0
+ ldrsh r1, [r0, r2]
+ ldr r0, _0804F654 @ =0x00000107
+ cmp r1, r0
+ bgt _0804F598
+ ldr r1, _0804F658 @ =0x040000D4
+ ldr r0, [r3]
+ str r0, [r1]
+ mov r2, ip
+ ldr r0, [r2, #0x30]
+ str r0, [r1, #4]
+ ldr r0, _0804F65C @ =0x80000030
+ str r0, [r1, #8]
+ ldr r0, [r1, #8]
+_0804F598:
+ ldr r2, _0804F658 @ =0x040000D4
+ ldr r0, [r3, #4]
+ str r0, [r2]
+ ldr r0, [r4, #4]
+ str r0, [r2, #4]
+ ldr r5, _0804F65C @ =0x80000030
+ str r5, [r2, #8]
+ ldr r0, [r2, #8]
+ ldr r0, [r3, #8]
+ str r0, [r2]
+ ldr r0, [r4, #8]
+ str r0, [r2, #4]
+ str r5, [r2, #8]
+ ldr r0, [r2, #8]
+ ldr r0, [r6]
+ adds r6, r0, #0
+ adds r6, #0x6a
+ movs r3, #0
+ ldrsh r0, [r6, r3]
+ cmp r0, #0x78
+ ble _0804F5FE
+ mov r0, sp
+ movs r4, #2
+ ldrsh r1, [r0, r4]
+ lsls r0, r1, #1
+ adds r0, r0, r1
+ lsls r0, r0, #2
+ mov r1, ip
+ adds r1, #0x3c
+ adds r3, r0, r1
+ mov r4, ip
+ adds r4, #0x6c
+ ldr r0, [r3]
+ str r0, [r2]
+ mov r1, ip
+ ldr r0, [r1, #0x6c]
+ str r0, [r2, #4]
+ str r5, [r2, #8]
+ ldr r0, [r2, #8]
+ ldr r0, [r3, #4]
+ str r0, [r2]
+ ldr r0, [r4, #4]
+ str r0, [r2, #4]
+ str r5, [r2, #8]
+ ldr r0, [r2, #8]
+ ldr r0, [r3, #8]
+ str r0, [r2]
+ ldr r0, [r4, #8]
+ str r0, [r2, #4]
+ str r5, [r2, #8]
+ ldr r0, [r2, #8]
+_0804F5FE:
+ movs r3, #0
+ ldrsh r0, [r6, r3]
+ cmp r0, #0x88
+ ble _0804F640
+ mov r0, sp
+ movs r4, #4
+ ldrsh r1, [r0, r4]
+ lsls r0, r1, #1
+ adds r0, r0, r1
+ lsls r0, r0, #2
+ mov r1, ip
+ adds r1, #0x78
+ adds r3, r0, r1
+ mov r4, ip
+ adds r4, #0xa8
+ ldr r0, [r3]
+ str r0, [r2]
+ ldr r0, [r4]
+ str r0, [r2, #4]
+ str r5, [r2, #8]
+ ldr r0, [r2, #8]
+ ldr r0, [r3, #4]
+ str r0, [r2]
+ ldr r0, [r4, #4]
+ str r0, [r2, #4]
+ str r5, [r2, #8]
+ ldr r0, [r2, #8]
+ ldr r0, [r3, #8]
+ str r0, [r2]
+ ldr r0, [r4, #8]
+ str r0, [r2, #4]
+ str r5, [r2, #8]
+ ldr r0, [r2, #8]
+_0804F640:
+ add sp, #8
+ pop {r4, r5, r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0804F648: .4byte 0x00000739
+_0804F64C: .4byte 0x0000073A
+_0804F650: .4byte 0x086B0C04
+_0804F654: .4byte 0x00000107
+_0804F658: .4byte 0x040000D4
+_0804F65C: .4byte 0x80000030
+
+ thumb_func_start sub_4F660
+sub_4F660: @ 0x0804F660
+ push {r4, r5, r6, lr}
+ sub sp, #8
+ ldr r0, _0804F694 @ =0x020314E0
+ ldr r2, [r0]
+ movs r1, #0x13
+ ldrsb r1, [r2, r1]
+ adds r5, r0, #0
+ cmp r1, #2
+ bgt _0804F6E8
+ ldr r1, _0804F698 @ =0x0000072F
+ adds r0, r2, r1
+ movs r3, #0
+ ldrsb r3, [r0, r3]
+ cmp r3, #0
+ bne _0804F6A0
+ mov r1, sp
+ ldr r4, _0804F69C @ =0x00000734
+ adds r0, r2, r4
+ movs r2, #0
+ ldrsh r0, [r0, r2]
+ lsls r0, r0, #1
+ strh r0, [r1]
+ mov r0, sp
+ strh r3, [r0, #2]
+ strh r3, [r0, #4]
+ b _0804F70E
+ .align 2, 0
+_0804F694: .4byte 0x020314E0
+_0804F698: .4byte 0x0000072F
+_0804F69C: .4byte 0x00000734
+_0804F6A0:
+ cmp r3, #1
+ bne _0804F6C0
+ mov r1, sp
+ movs r0, #3
+ strh r0, [r1]
+ ldr r3, _0804F6BC @ =0x00000734
+ adds r2, r2, r3
+ ldrh r0, [r2]
+ adds r0, #1
+ strh r0, [r1, #2]
+ movs r4, #0
+ ldrsh r0, [r2, r4]
+ lsls r0, r0, #1
+ b _0804F70C
+ .align 2, 0
+_0804F6BC: .4byte 0x00000734
+_0804F6C0:
+ cmp r3, #2
+ bne _0804F6DC
+ mov r0, sp
+ movs r1, #3
+ strh r1, [r0]
+ strh r1, [r0, #2]
+ mov r1, sp
+ ldr r3, _0804F6D8 @ =0x00000734
+ adds r0, r2, r3
+ ldrh r0, [r0]
+ adds r0, #2
+ b _0804F70C
+ .align 2, 0
+_0804F6D8: .4byte 0x00000734
+_0804F6DC:
+ mov r0, sp
+ movs r1, #3
+ strh r1, [r0]
+ strh r1, [r0, #2]
+ strh r1, [r0, #4]
+ b _0804F70E
+_0804F6E8:
+ mov r1, sp
+ ldr r4, _0804F7F8 @ =0x00000736
+ adds r0, r2, r4
+ ldrb r0, [r0]
+ lsls r0, r0, #0x18
+ asrs r0, r0, #0x18
+ strh r0, [r1]
+ ldr r3, _0804F7FC @ =0x00000737
+ adds r0, r2, r3
+ ldrb r0, [r0]
+ lsls r0, r0, #0x18
+ asrs r0, r0, #0x18
+ strh r0, [r1, #2]
+ adds r4, #2
+ adds r0, r2, r4
+ ldrb r0, [r0]
+ lsls r0, r0, #0x18
+ asrs r0, r0, #0x18
+_0804F70C:
+ strh r0, [r1, #4]
+_0804F70E:
+ mov r0, sp
+ movs r2, #0
+ ldrsh r1, [r0, r2]
+ lsls r0, r1, #1
+ adds r0, r0, r1
+ lsls r0, r0, #2
+ ldr r3, _0804F800 @ =0x086B0D6C
+ mov ip, r3
+ adds r3, r0, r3
+ mov r4, ip
+ adds r4, #0x30
+ ldr r0, [r5]
+ adds r0, #0x6a
+ movs r2, #0
+ ldrsh r1, [r0, r2]
+ ldr r0, _0804F804 @ =0x00000107
+ cmp r1, r0
+ bgt _0804F744
+ ldr r1, _0804F808 @ =0x040000D4
+ ldr r0, [r3]
+ str r0, [r1]
+ mov r2, ip
+ ldr r0, [r2, #0x30]
+ str r0, [r1, #4]
+ ldr r0, _0804F80C @ =0x80000030
+ str r0, [r1, #8]
+ ldr r0, [r1, #8]
+_0804F744:
+ ldr r2, _0804F808 @ =0x040000D4
+ ldr r0, [r3, #4]
+ str r0, [r2]
+ ldr r0, [r4, #4]
+ str r0, [r2, #4]
+ ldr r6, _0804F80C @ =0x80000030
+ str r6, [r2, #8]
+ ldr r0, [r2, #8]
+ ldr r0, [r3, #8]
+ str r0, [r2]
+ ldr r0, [r4, #8]
+ str r0, [r2, #4]
+ str r6, [r2, #8]
+ ldr r0, [r2, #8]
+ ldr r0, [r5]
+ adds r5, r0, #0
+ adds r5, #0x6a
+ movs r3, #0
+ ldrsh r0, [r5, r3]
+ cmp r0, #0x78
+ ble _0804F7AC
+ mov r0, sp
+ movs r4, #2
+ ldrsh r1, [r0, r4]
+ lsls r0, r1, #1
+ adds r0, r0, r1
+ lsls r0, r0, #2
+ mov r1, ip
+ adds r1, #0x3c
+ adds r3, r0, r1
+ mov r4, ip
+ adds r4, #0x6c
+ ldr r0, [r3]
+ str r0, [r2]
+ mov r1, ip
+ ldr r0, [r1, #0x6c]
+ str r0, [r2, #4]
+ ldr r1, _0804F810 @ =0x80000020
+ str r1, [r2, #8]
+ ldr r0, [r2, #8]
+ ldr r0, [r3, #4]
+ str r0, [r2]
+ ldr r0, [r4, #4]
+ str r0, [r2, #4]
+ str r1, [r2, #8]
+ ldr r0, [r2, #8]
+ ldr r0, [r3, #8]
+ str r0, [r2]
+ ldr r0, [r4, #8]
+ str r0, [r2, #4]
+ str r6, [r2, #8]
+ ldr r0, [r2, #8]
+_0804F7AC:
+ movs r3, #0
+ ldrsh r0, [r5, r3]
+ cmp r0, #0x88
+ ble _0804F7F0
+ mov r0, sp
+ movs r4, #4
+ ldrsh r1, [r0, r4]
+ lsls r0, r1, #1
+ adds r0, r0, r1
+ lsls r0, r0, #2
+ mov r1, ip
+ adds r1, #0x78
+ adds r3, r0, r1
+ mov r4, ip
+ adds r4, #0xa8
+ ldr r0, [r3]
+ str r0, [r2]
+ ldr r0, [r4]
+ str r0, [r2, #4]
+ ldr r0, _0804F810 @ =0x80000020
+ str r0, [r2, #8]
+ ldr r0, [r2, #8]
+ ldr r0, [r3, #4]
+ str r0, [r2]
+ ldr r0, [r4, #4]
+ str r0, [r2, #4]
+ str r6, [r2, #8]
+ ldr r0, [r2, #8]
+ ldr r0, [r3, #8]
+ str r0, [r2]
+ ldr r0, [r4, #8]
+ str r0, [r2, #4]
+ str r6, [r2, #8]
+ ldr r0, [r2, #8]
+_0804F7F0:
+ add sp, #8
+ pop {r4, r5, r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0804F7F8: .4byte 0x00000736
+_0804F7FC: .4byte 0x00000737
+_0804F800: .4byte 0x086B0D6C
+_0804F804: .4byte 0x00000107
+_0804F808: .4byte 0x040000D4
+_0804F80C: .4byte 0x80000030
+_0804F810: .4byte 0x80000020
+
+ thumb_func_start sub_4F814
+sub_4F814: @ 0x0804F814
+ push {r4, r5, r6, lr}
+ ldr r6, _0804F94C @ =0x020314E0
+ ldr r4, [r6]
+ ldr r0, _0804F950 @ =0x0000070C
+ adds r5, r4, r0
+ ldrh r0, [r5]
+ movs r1, #0x28
+ bl sub_558B0
+ lsls r0, r0, #0x10
+ lsrs r0, r0, #0x10
+ movs r1, #0x14
+ bl sub_55838
+ ldr r1, _0804F954 @ =0x00000734
+ adds r4, r4, r1
+ strh r0, [r4]
+ ldrh r0, [r5]
+ adds r0, #1
+ strh r0, [r5]
+ bl sub_50710
+ ldr r0, [r6]
+ adds r0, #0x6a
+ movs r1, #0
+ ldrsh r0, [r0, r1]
+ cmp r0, #0x53
+ ble _0804F850
+ bl sub_50000
+_0804F850:
+ ldr r0, [r6]
+ adds r0, #0x6a
+ movs r1, #0
+ ldrsh r0, [r0, r1]
+ cmp r0, #0x12
+ ble _0804F860
+ bl sub_500B4
+_0804F860:
+ ldr r0, [r6]
+ adds r0, #0x6a
+ ldrh r0, [r0]
+ subs r0, #0x38
+ lsls r0, r0, #0x10
+ lsrs r0, r0, #0x10
+ cmp r0, #0xba
+ bhi _0804F874
+ bl sub_505A4
+_0804F874:
+ bl sub_4F0F0
+ ldr r0, [r6]
+ adds r0, #0x6a
+ movs r1, #0
+ ldrsh r0, [r0, r1]
+ cmp r0, #0x6f
+ bgt _0804F888
+ bl sub_506B0
+_0804F888:
+ ldr r0, [r6]
+ adds r0, #0x6a
+ ldrh r0, [r0]
+ subs r0, #0x40
+ lsls r0, r0, #0x10
+ lsrs r0, r0, #0x10
+ cmp r0, #0xbd
+ bhi _0804F89C
+ bl sub_504C0
+_0804F89C:
+ ldr r0, [r6]
+ adds r0, #0x6a
+ ldrh r0, [r0]
+ subs r0, #0x1b
+ lsls r0, r0, #0x10
+ lsrs r0, r0, #0x10
+ cmp r0, #0xb7
+ bhi _0804F8B4
+ bl sub_4FB08
+ bl sub_4F95C
+_0804F8B4:
+ ldr r0, [r6]
+ adds r0, #0x6a
+ movs r1, #0
+ ldrsh r0, [r0, r1]
+ cmp r0, #0x68
+ ble _0804F8C8
+ bl sub_50154
+ bl sub_5030C
+_0804F8C8:
+ ldr r0, [r6]
+ adds r0, #0x6a
+ movs r1, #0
+ ldrsh r0, [r0, r1]
+ cmp r0, #0x48
+ ble _0804F8D8
+ bl sub_4FE6C
+_0804F8D8:
+ bl sub_4F2B8
+ ldr r0, [r6]
+ adds r0, #0x6a
+ movs r1, #0
+ ldrsh r0, [r0, r1]
+ cmp r0, #0x6e
+ ble _0804F8EC
+ bl sub_4FAC0
+_0804F8EC:
+ ldr r0, [r6]
+ adds r0, #0x6a
+ movs r1, #0
+ ldrsh r0, [r0, r1]
+ cmp r0, #0xb2
+ ble _0804F904
+ bl sub_4FBA4
+ bl sub_4FC7C
+ bl sub_4F9F0
+_0804F904:
+ ldr r0, [r6]
+ adds r0, #0x6a
+ movs r1, #0
+ ldrsh r0, [r0, r1]
+ cmp r0, #0xca
+ ble _0804F914
+ bl sub_4FD88
+_0804F914:
+ ldr r0, [r6]
+ adds r0, #0x6a
+ ldrh r0, [r0]
+ subs r0, #8
+ lsls r0, r0, #0x10
+ lsrs r0, r0, #0x10
+ cmp r0, #0xad
+ bhi _0804F928
+ bl sub_507D4
+_0804F928:
+ ldr r0, [r6]
+ ldr r1, _0804F958 @ =0x00000724
+ adds r2, r0, r1
+ ldrh r1, [r2]
+ cmp r1, #0
+ beq _0804F944
+ adds r0, #0x25
+ ldrb r0, [r0]
+ lsls r0, r0, #0x18
+ asrs r0, r0, #0x18
+ cmp r0, #0
+ bne _0804F944
+ subs r0, r1, #1
+ strh r0, [r2]
+_0804F944:
+ pop {r4, r5, r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0804F94C: .4byte 0x020314E0
+_0804F950: .4byte 0x0000070C
+_0804F954: .4byte 0x00000734
+_0804F958: .4byte 0x00000724
+
+ thumb_func_start sub_4F95C
+sub_4F95C: @ 0x0804F95C
+ push {r4, r5, r6, r7, lr}
+ ldr r0, _0804F9DC @ =0x020314E0
+ ldr r4, [r0]
+ ldr r1, _0804F9E0 @ =0x0000070E
+ adds r0, r4, r1
+ movs r5, #0
+ ldrsb r5, [r0, r5]
+ adds r0, r5, #0
+ movs r1, #0xa
+ bl sub_556D0
+ lsls r0, r0, #0x18
+ asrs r0, r0, #8
+ lsrs r6, r0, #0x10
+ adds r0, r5, #0
+ movs r1, #0xa
+ bl sub_55768
+ lsls r0, r0, #0x18
+ asrs r0, r0, #8
+ lsrs r7, r0, #0x10
+ adds r4, #0x6a
+ movs r1, #0
+ ldrsh r0, [r4, r1]
+ cmp r0, #0x24
+ ble _0804F9D6
+ lsls r0, r6, #0x10
+ asrs r0, r0, #0xc
+ ldr r3, _0804F9E4 @ =0x086B0E9C
+ adds r5, r0, r3
+ adds r4, r3, #0
+ adds r4, #0xa0
+ ldr r1, _0804F9E8 @ =0x040000D4
+ ldr r0, [r5]
+ str r0, [r1]
+ ldr r0, [r4]
+ str r0, [r1, #4]
+ ldr r2, _0804F9EC @ =0x80000010
+ str r2, [r1, #8]
+ ldr r0, [r1, #8]
+ ldr r0, [r5, #4]
+ str r0, [r1]
+ ldr r0, [r4, #4]
+ str r0, [r1, #4]
+ str r2, [r1, #8]
+ ldr r0, [r1, #8]
+ lsls r0, r7, #0x10
+ asrs r0, r0, #0xc
+ adds r5, r0, r3
+ ldr r0, [r5, #8]
+ str r0, [r1]
+ ldr r0, [r4, #8]
+ str r0, [r1, #4]
+ str r2, [r1, #8]
+ ldr r0, [r1, #8]
+ ldr r0, [r5, #0xc]
+ str r0, [r1]
+ ldr r0, [r4, #0xc]
+ str r0, [r1, #4]
+ str r2, [r1, #8]
+ ldr r0, [r1, #8]
+_0804F9D6:
+ pop {r4, r5, r6, r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0804F9DC: .4byte 0x020314E0
+_0804F9E0: .4byte 0x0000070E
+_0804F9E4: .4byte 0x086B0E9C
+_0804F9E8: .4byte 0x040000D4
+_0804F9EC: .4byte 0x80000010
+
+ thumb_func_start sub_4F9F0
+sub_4F9F0: @ 0x0804F9F0
+ push {r4, r5, lr}
+ ldr r1, _0804FA9C @ =0x086B0E60
+ ldr r4, _0804FAA0 @ =0x020314E0
+ ldr r0, [r4]
+ ldr r2, _0804FAA4 @ =0x00000716
+ adds r3, r0, r2
+ ldrb r2, [r3]
+ lsls r0, r2, #1
+ adds r0, r0, r1
+ ldrh r5, [r0]
+ cmp r2, #0
+ beq _0804FA2C
+ subs r0, r2, #1
+ strb r0, [r3]
+ ldr r0, [r4]
+ ldr r1, _0804FAA4 @ =0x00000716
+ adds r0, r0, r1
+ ldrb r0, [r0]
+ cmp r0, #3
+ bne _0804FA2C
+ movs r0, #0x73
+ bl sub_53DA8
+ ldr r1, [r4]
+ movs r0, #0xfa
+ lsls r0, r0, #1
+ str r0, [r1, #0x3c]
+ movs r0, #7
+ bl sub_11B0
+_0804FA2C:
+ ldr r0, _0804FAA0 @ =0x020314E0
+ ldr r0, [r0]
+ ldr r2, _0804FAA8 @ =0x00000717
+ adds r0, r0, r2
+ ldrb r0, [r0]
+ lsls r3, r0, #4
+ subs r3, r3, r0
+ lsls r3, r3, #2
+ lsls r0, r5, #0x10
+ asrs r0, r0, #0x10
+ lsls r2, r0, #2
+ adds r2, r2, r0
+ lsls r2, r2, #2
+ ldr r0, _0804FAAC @ =0x086B108C
+ adds r2, r2, r0
+ adds r2, r3, r2
+ adds r0, #0x28
+ adds r3, r3, r0
+ ldr r0, _0804FAB0 @ =0x040000D4
+ ldr r1, [r2]
+ str r1, [r0]
+ ldr r1, [r3]
+ str r1, [r0, #4]
+ ldr r1, _0804FAB4 @ =0x80000010
+ str r1, [r0, #8]
+ ldr r1, [r0, #8]
+ ldr r1, [r2, #4]
+ str r1, [r0]
+ ldr r1, [r3, #4]
+ str r1, [r0, #4]
+ ldr r5, _0804FAB8 @ =0x80000020
+ str r5, [r0, #8]
+ ldr r1, [r0, #8]
+ ldr r1, [r2, #8]
+ str r1, [r0]
+ ldr r1, [r3, #8]
+ str r1, [r0, #4]
+ ldr r4, _0804FABC @ =0x80000030
+ str r4, [r0, #8]
+ ldr r1, [r0, #8]
+ ldr r1, [r2, #0xc]
+ str r1, [r0]
+ ldr r1, [r3, #0xc]
+ str r1, [r0, #4]
+ str r4, [r0, #8]
+ ldr r1, [r0, #8]
+ ldr r1, [r2, #0x10]
+ str r1, [r0]
+ ldr r1, [r3, #0x10]
+ str r1, [r0, #4]
+ str r5, [r0, #8]
+ ldr r0, [r0, #8]
+ pop {r4, r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0804FA9C: .4byte 0x086B0E60
+_0804FAA0: .4byte 0x020314E0
+_0804FAA4: .4byte 0x00000716
+_0804FAA8: .4byte 0x00000717
+_0804FAAC: .4byte 0x086B108C
+_0804FAB0: .4byte 0x040000D4
+_0804FAB4: .4byte 0x80000010
+_0804FAB8: .4byte 0x80000020
+_0804FABC: .4byte 0x80000030
+
+ thumb_func_start sub_4FAC0
+sub_4FAC0: @ 0x0804FAC0
+ push {r4, lr}
+ ldr r0, _0804FAF8 @ =0x020314E0
+ ldr r0, [r0]
+ movs r1, #0xe6
+ lsls r1, r1, #3
+ adds r0, r0, r1
+ movs r2, #0
+ ldrsb r2, [r0, r2]
+ lsls r2, r2, #3
+ ldr r3, _0804FAFC @ =0x086B1104
+ adds r2, r2, r3
+ ldr r0, _0804FB00 @ =0x040000D4
+ ldr r1, [r2]
+ str r1, [r0]
+ ldr r1, [r3, #0x18]
+ str r1, [r0, #4]
+ ldr r4, _0804FB04 @ =0x80000020
+ str r4, [r0, #8]
+ ldr r1, [r0, #8]
+ ldr r1, [r2, #4]
+ str r1, [r0]
+ ldr r1, [r3, #0x1c]
+ str r1, [r0, #4]
+ str r4, [r0, #8]
+ ldr r0, [r0, #8]
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0804FAF8: .4byte 0x020314E0
+_0804FAFC: .4byte 0x086B1104
+_0804FB00: .4byte 0x040000D4
+_0804FB04: .4byte 0x80000020
+
+ thumb_func_start sub_4FB08
+sub_4FB08: @ 0x0804FB08
+ push {r4, r5, lr}
+ ldr r0, _0804FB88 @ =0x0200B0C0
+ ldr r0, [r0, #0x4c]
+ movs r1, #0x3f
+ ands r0, r1
+ lsrs r0, r0, #4
+ lsls r0, r0, #4
+ ldr r2, _0804FB8C @ =0x086B0F4C
+ adds r3, r0, r2
+ adds r5, r2, #0
+ adds r5, #0x40
+ ldr r4, _0804FB90 @ =0x020314E0
+ ldr r0, [r4]
+ adds r0, #0x6a
+ movs r1, #0
+ ldrsh r0, [r0, r1]
+ cmp r0, #0xbf
+ bgt _0804FB3C
+ ldr r1, _0804FB94 @ =0x040000D4
+ ldr r0, [r3]
+ str r0, [r1]
+ ldr r0, [r2, #0x40]
+ str r0, [r1, #4]
+ ldr r0, _0804FB98 @ =0x80000020
+ str r0, [r1, #8]
+ ldr r0, [r1, #8]
+_0804FB3C:
+ ldr r0, [r4]
+ adds r2, r0, #0
+ adds r2, #0x6a
+ movs r1, #0
+ ldrsh r0, [r2, r1]
+ cmp r0, #0xc7
+ bgt _0804FB5A
+ ldr r1, _0804FB94 @ =0x040000D4
+ ldr r0, [r3, #4]
+ str r0, [r1]
+ ldr r0, [r5, #4]
+ str r0, [r1, #4]
+ ldr r0, _0804FB9C @ =0x80000040
+ str r0, [r1, #8]
+ ldr r0, [r1, #8]
+_0804FB5A:
+ movs r1, #0
+ ldrsh r0, [r2, r1]
+ cmp r0, #0xcf
+ bgt _0804FB72
+ ldr r1, _0804FB94 @ =0x040000D4
+ ldr r0, [r3, #8]
+ str r0, [r1]
+ ldr r0, [r5, #8]
+ str r0, [r1, #4]
+ ldr r0, _0804FBA0 @ =0x80000030
+ str r0, [r1, #8]
+ ldr r0, [r1, #8]
+_0804FB72:
+ ldr r1, _0804FB94 @ =0x040000D4
+ ldr r0, [r3, #0xc]
+ str r0, [r1]
+ ldr r0, [r5, #0xc]
+ str r0, [r1, #4]
+ ldr r0, _0804FBA0 @ =0x80000030
+ str r0, [r1, #8]
+ ldr r0, [r1, #8]
+ pop {r4, r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0804FB88: .4byte 0x0200B0C0
+_0804FB8C: .4byte 0x086B0F4C
+_0804FB90: .4byte 0x020314E0
+_0804FB94: .4byte 0x040000D4
+_0804FB98: .4byte 0x80000020
+_0804FB9C: .4byte 0x80000040
+_0804FBA0: .4byte 0x80000030
+
+ thumb_func_start sub_4FBA4
+sub_4FBA4: @ 0x0804FBA4
+ push {r4, r5, r6, r7, lr}
+ ldr r7, _0804FC60 @ =0x020314E0
+ ldr r5, [r7]
+ movs r0, #0xe4
+ lsls r0, r0, #3
+ adds r1, r5, r0
+ ldrb r0, [r1]
+ cmp r0, #0
+ beq _0804FC0A
+ ldr r6, _0804FC64 @ =0x00000721
+ adds r0, r5, r6
+ ldrb r0, [r0]
+ lsls r0, r0, #0x18
+ asrs r0, r0, #0x18
+ ldr r4, _0804FC68 @ =0x0000071D
+ adds r5, r5, r4
+ adds r5, r5, r0
+ ldrb r0, [r1]
+ movs r1, #0x24
+ bl sub_558B0
+ lsls r0, r0, #0x18
+ lsrs r0, r0, #0x18
+ movs r1, #0x12
+ bl sub_55838
+ movs r1, #1
+ subs r1, r1, r0
+ strb r1, [r5]
+ ldr r0, [r7]
+ ldr r2, _0804FC6C @ =0x00000722
+ adds r1, r0, r2
+ ldrb r1, [r1]
+ lsls r1, r1, #0x18
+ asrs r1, r1, #0x18
+ adds r4, r0, r4
+ adds r1, r4, r1
+ adds r0, r0, r6
+ ldrb r0, [r0]
+ lsls r0, r0, #0x18
+ asrs r0, r0, #0x18
+ adds r4, r4, r0
+ ldrb r0, [r4]
+ strb r0, [r1]
+ ldr r1, [r7]
+ movs r0, #0xe4
+ lsls r0, r0, #3
+ adds r1, r1, r0
+ ldrb r0, [r1]
+ subs r0, #1
+ strb r0, [r1]
+_0804FC0A:
+ movs r1, #0
+ ldr r0, [r7]
+ ldr r2, _0804FC68 @ =0x0000071D
+ adds r7, r0, r2
+ ldr r6, _0804FC70 @ =0x086B1124
+ movs r0, #0x30
+ adds r0, r0, r6
+ mov ip, r0
+ ldr r4, _0804FC74 @ =0x040000D4
+ ldr r5, _0804FC78 @ =0x80000020
+_0804FC1E:
+ lsls r3, r1, #0x10
+ asrs r3, r3, #0x10
+ lsls r2, r3, #3
+ subs r2, r2, r3
+ lsls r2, r2, #3
+ adds r0, r7, r3
+ movs r1, #0
+ ldrsb r1, [r0, r1]
+ lsls r1, r1, #3
+ adds r1, r1, r6
+ adds r1, r2, r1
+ add r2, ip
+ ldr r0, [r1]
+ str r0, [r4]
+ ldr r0, [r2]
+ str r0, [r4, #4]
+ str r5, [r4, #8]
+ ldr r0, [r4, #8]
+ ldr r0, [r1, #4]
+ str r0, [r4]
+ ldr r0, [r2, #4]
+ str r0, [r4, #4]
+ str r5, [r4, #8]
+ ldr r0, [r4, #8]
+ adds r3, #1
+ lsls r3, r3, #0x10
+ lsrs r1, r3, #0x10
+ asrs r3, r3, #0x10
+ cmp r3, #2
+ ble _0804FC1E
+ pop {r4, r5, r6, r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0804FC60: .4byte 0x020314E0
+_0804FC64: .4byte 0x00000721
+_0804FC68: .4byte 0x0000071D
+_0804FC6C: .4byte 0x00000722
+_0804FC70: .4byte 0x086B1124
+_0804FC74: .4byte 0x040000D4
+_0804FC78: .4byte 0x80000020
+
+ thumb_func_start sub_4FC7C
+sub_4FC7C: @ 0x0804FC7C
+ push {r4, r5, r6, r7, lr}
+ ldr r5, _0804FCE4 @ =0x020314E0
+ ldr r4, [r5]
+ ldr r1, _0804FCE8 @ =0x00000714
+ adds r0, r4, r1
+ ldrb r0, [r0]
+ lsls r0, r0, #0x18
+ asrs r0, r0, #0x18
+ cmp r0, #0
+ beq _0804FD26
+ ldr r2, _0804FCEC @ =0x00000715
+ adds r1, r4, r2
+ ldrb r0, [r1]
+ cmp r0, #0
+ beq _0804FCF8
+ movs r1, #0x24
+ bl sub_558B0
+ lsls r0, r0, #0x18
+ lsrs r0, r0, #0x18
+ movs r1, #0x12
+ bl sub_55838
+ movs r2, #0xe2
+ lsls r2, r2, #3
+ adds r1, r4, r2
+ strb r0, [r1]
+ ldr r0, [r5]
+ adds r1, r0, r2
+ ldrb r1, [r1]
+ ldr r3, _0804FCF0 @ =0x00000711
+ adds r0, r0, r3
+ strb r1, [r0]
+ ldr r0, [r5]
+ adds r1, r0, r2
+ ldrb r1, [r1]
+ adds r3, #1
+ adds r0, r0, r3
+ strb r1, [r0]
+ ldr r0, [r5]
+ adds r2, r0, r2
+ ldrb r1, [r2]
+ ldr r2, _0804FCF4 @ =0x00000713
+ adds r0, r0, r2
+ strb r1, [r0]
+ ldr r1, [r5]
+ adds r3, #3
+ adds r1, r1, r3
+ ldrb r0, [r1]
+ subs r0, #1
+ strb r0, [r1]
+ b _0804FD26
+ .align 2, 0
+_0804FCE4: .4byte 0x020314E0
+_0804FCE8: .4byte 0x00000714
+_0804FCEC: .4byte 0x00000715
+_0804FCF0: .4byte 0x00000711
+_0804FCF4: .4byte 0x00000713
+_0804FCF8:
+ movs r2, #0xe2
+ lsls r2, r2, #3
+ adds r1, r4, r2
+ movs r0, #1
+ strb r0, [r1]
+ ldr r0, [r5]
+ adds r1, r0, r2
+ ldrb r1, [r1]
+ ldr r3, _0804FD70 @ =0x00000711
+ adds r0, r0, r3
+ strb r1, [r0]
+ ldr r0, [r5]
+ adds r1, r0, r2
+ ldrb r1, [r1]
+ adds r3, #1
+ adds r0, r0, r3
+ strb r1, [r0]
+ ldr r0, [r5]
+ adds r2, r0, r2
+ ldrb r1, [r2]
+ ldr r2, _0804FD74 @ =0x00000713
+ adds r0, r0, r2
+ strb r1, [r0]
+_0804FD26:
+ movs r2, #0
+ ldr r0, _0804FD78 @ =0x020314E0
+ ldr r0, [r0]
+ movs r3, #0xe2
+ lsls r3, r3, #3
+ adds r5, r0, r3
+ ldr r4, _0804FD7C @ =0x086B1300
+ adds r7, r4, #0
+ adds r7, #8
+ ldr r3, _0804FD80 @ =0x040000D4
+ ldr r6, _0804FD84 @ =0x80000020
+_0804FD3C:
+ lsls r1, r2, #0x10
+ asrs r1, r1, #0x10
+ lsls r2, r1, #4
+ adds r0, r5, r1
+ ldrb r0, [r0]
+ lsls r0, r0, #0x18
+ asrs r0, r0, #0x18
+ lsls r0, r0, #2
+ adds r0, r0, r4
+ adds r0, r2, r0
+ adds r2, r2, r7
+ ldr r0, [r0]
+ str r0, [r3]
+ ldr r0, [r2]
+ str r0, [r3, #4]
+ str r6, [r3, #8]
+ ldr r0, [r3, #8]
+ adds r1, #1
+ lsls r1, r1, #0x10
+ lsrs r2, r1, #0x10
+ asrs r1, r1, #0x10
+ cmp r1, #3
+ ble _0804FD3C
+ pop {r4, r5, r6, r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0804FD70: .4byte 0x00000711
+_0804FD74: .4byte 0x00000713
+_0804FD78: .4byte 0x020314E0
+_0804FD7C: .4byte 0x086B1300
+_0804FD80: .4byte 0x040000D4
+_0804FD84: .4byte 0x80000020
+
+ thumb_func_start sub_4FD88
+sub_4FD88: @ 0x0804FD88
+ push {r4, r5, lr}
+ ldr r0, _0804FDA4 @ =0x020314E0
+ ldr r3, [r0]
+ ldr r2, _0804FDA8 @ =0x00000724
+ adds r1, r3, r2
+ ldrh r2, [r1]
+ movs r1, #0x96
+ lsls r1, r1, #1
+ adds r5, r0, #0
+ cmp r2, r1
+ bls _0804FDB0
+ ldr r0, _0804FDAC @ =0x00000726
+ adds r1, r3, r0
+ b _0804FDC6
+ .align 2, 0
+_0804FDA4: .4byte 0x020314E0
+_0804FDA8: .4byte 0x00000724
+_0804FDAC: .4byte 0x00000726
+_0804FDB0:
+ cmp r2, #0
+ beq _0804FDEC
+ adds r0, r3, #0
+ adds r0, #0x25
+ ldrb r0, [r0]
+ lsls r0, r0, #0x18
+ asrs r0, r0, #0x18
+ cmp r0, #0
+ beq _0804FDD0
+ ldr r2, _0804FDCC @ =0x00000726
+ adds r1, r3, r2
+_0804FDC6:
+ movs r0, #1
+ strb r0, [r1]
+ b _0804FDF2
+ .align 2, 0
+_0804FDCC: .4byte 0x00000726
+_0804FDD0:
+ ldr r0, _0804FDE4 @ =0x0200B0C0
+ ldr r0, [r0, #0x50]
+ movs r1, #0xf
+ ands r0, r1
+ lsrs r0, r0, #3
+ ldr r2, _0804FDE8 @ =0x00000726
+ adds r1, r3, r2
+ strb r0, [r1]
+ b _0804FDF2
+ .align 2, 0
+_0804FDE4: .4byte 0x0200B0C0
+_0804FDE8: .4byte 0x00000726
+_0804FDEC:
+ ldr r1, _0804FE54 @ =0x00000726
+ adds r0, r3, r1
+ strb r2, [r0]
+_0804FDF2:
+ ldr r0, [r5]
+ ldr r2, _0804FE54 @ =0x00000726
+ adds r0, r0, r2
+ ldrb r0, [r0]
+ lsls r0, r0, #0x18
+ asrs r0, r0, #0x18
+ lsls r0, r0, #4
+ ldr r1, _0804FE58 @ =0x086B11CC
+ adds r3, r0, r1
+ adds r4, r1, #0
+ adds r4, #0x20
+ ldr r2, _0804FE5C @ =0x040000D4
+ ldr r0, [r3]
+ str r0, [r2]
+ ldr r0, [r1, #0x20]
+ str r0, [r2, #4]
+ ldr r1, _0804FE60 @ =0x80000070
+ str r1, [r2, #8]
+ ldr r0, [r2, #8]
+ ldr r0, [r3, #4]
+ str r0, [r2]
+ ldr r0, [r4, #4]
+ str r0, [r2, #4]
+ str r1, [r2, #8]
+ ldr r0, [r2, #8]
+ ldr r0, [r5]
+ adds r0, #0x6a
+ movs r1, #0
+ ldrsh r0, [r0, r1]
+ cmp r0, #0xd7
+ ble _0804FE4C
+ ldr r0, [r3, #8]
+ str r0, [r2]
+ ldr r0, [r4, #8]
+ str r0, [r2, #4]
+ ldr r0, _0804FE64 @ =0x80000060
+ str r0, [r2, #8]
+ ldr r0, [r2, #8]
+ ldr r0, [r3, #0xc]
+ str r0, [r2]
+ ldr r0, [r4, #0xc]
+ str r0, [r2, #4]
+ ldr r0, _0804FE68 @ =0x80000020
+ str r0, [r2, #8]
+ ldr r0, [r2, #8]
+_0804FE4C:
+ pop {r4, r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0804FE54: .4byte 0x00000726
+_0804FE58: .4byte 0x086B11CC
+_0804FE5C: .4byte 0x040000D4
+_0804FE60: .4byte 0x80000070
+_0804FE64: .4byte 0x80000060
+_0804FE68: .4byte 0x80000020
+
+ thumb_func_start sub_4FE6C
+sub_4FE6C: @ 0x0804FE6C
+ push {r4, r5, r6, r7, lr}
+ sub sp, #8
+ ldr r1, _0804FE94 @ =0x020314E0
+ ldr r2, [r1]
+ ldr r3, _0804FE98 @ =0x0000072B
+ adds r0, r2, r3
+ movs r3, #0
+ ldrsb r3, [r0, r3]
+ adds r7, r1, #0
+ cmp r3, #0
+ bne _0804FEA0
+ mov r1, sp
+ ldr r4, _0804FE9C @ =0x00000734
+ adds r0, r2, r4
+ ldrh r0, [r0]
+ strh r0, [r1]
+ mov r0, sp
+ strh r3, [r0, #2]
+ strh r3, [r0, #4]
+ b _0804FEE2
+ .align 2, 0
+_0804FE94: .4byte 0x020314E0
+_0804FE98: .4byte 0x0000072B
+_0804FE9C: .4byte 0x00000734
+_0804FEA0:
+ cmp r3, #1
+ bne _0804FEBC
+ mov r0, sp
+ strh r3, [r0]
+ mov r1, sp
+ ldr r0, _0804FEB8 @ =0x00000734
+ adds r2, r2, r0
+ ldrh r0, [r2]
+ strh r0, [r1, #2]
+ ldrh r0, [r2]
+ strh r0, [r1, #4]
+ b _0804FEE2
+ .align 2, 0
+_0804FEB8: .4byte 0x00000734
+_0804FEBC:
+ cmp r3, #2
+ bne _0804FED8
+ mov r0, sp
+ strh r3, [r0]
+ strh r3, [r0, #2]
+ mov r1, sp
+ ldr r3, _0804FED4 @ =0x00000734
+ adds r0, r2, r3
+ ldrh r0, [r0]
+ adds r0, #1
+ strh r0, [r1, #4]
+ b _0804FEE2
+ .align 2, 0
+_0804FED4: .4byte 0x00000734
+_0804FED8:
+ mov r0, sp
+ movs r1, #2
+ strh r1, [r0]
+ strh r1, [r0, #2]
+ strh r1, [r0, #4]
+_0804FEE2:
+ mov r0, sp
+ movs r4, #0
+ ldrsh r1, [r0, r4]
+ lsls r0, r1, #1
+ adds r0, r0, r1
+ lsls r0, r0, #2
+ ldr r3, _0804FFE4 @ =0x086B13F4
+ adds r2, r0, r3
+ adds r6, r3, #0
+ adds r6, #0x24
+ ldr r0, [r7]
+ adds r0, #0x6a
+ movs r1, #0
+ ldrsh r0, [r0, r1]
+ cmp r0, #0xef
+ bgt _0804FF12
+ ldr r1, _0804FFE8 @ =0x040000D4
+ ldr r0, [r2]
+ str r0, [r1]
+ ldr r0, [r3, #0x24]
+ str r0, [r1, #4]
+ ldr r0, _0804FFEC @ =0x80000020
+ str r0, [r1, #8]
+ ldr r0, [r1, #8]
+_0804FF12:
+ ldr r0, [r7]
+ adds r5, r0, #0
+ adds r5, #0x6a
+ movs r4, #0
+ ldrsh r0, [r5, r4]
+ cmp r0, #0xf7
+ bgt _0804FF30
+ ldr r1, _0804FFE8 @ =0x040000D4
+ ldr r0, [r2, #4]
+ str r0, [r1]
+ ldr r0, [r6, #4]
+ str r0, [r1, #4]
+ ldr r0, _0804FFF0 @ =0x80000030
+ str r0, [r1, #8]
+ ldr r0, [r1, #8]
+_0804FF30:
+ movs r0, #0
+ ldrsh r4, [r5, r0]
+ cmp r4, #0x58
+ ble _0804FF7C
+ mov r0, sp
+ movs r2, #2
+ ldrsh r1, [r0, r2]
+ lsls r0, r1, #1
+ adds r0, r0, r1
+ lsls r0, r0, #2
+ adds r1, r3, #0
+ adds r1, #0x3c
+ adds r2, r0, r1
+ adds r6, r3, #0
+ adds r6, #0x60
+ cmp r4, #0xfd
+ bgt _0804FF62
+ ldr r1, _0804FFE8 @ =0x040000D4
+ ldr r0, [r2]
+ str r0, [r1]
+ ldr r0, [r3, #0x60]
+ str r0, [r1, #4]
+ ldr r0, _0804FFEC @ =0x80000020
+ str r0, [r1, #8]
+ ldr r0, [r1, #8]
+_0804FF62:
+ movs r3, #0
+ ldrsh r1, [r5, r3]
+ ldr r0, _0804FFF4 @ =0x00000105
+ cmp r1, r0
+ bgt _0804FF7C
+ ldr r1, _0804FFE8 @ =0x040000D4
+ ldr r0, [r2, #4]
+ str r0, [r1]
+ ldr r0, [r6, #4]
+ str r0, [r1, #4]
+ ldr r0, _0804FFEC @ =0x80000020
+ str r0, [r1, #8]
+ ldr r0, [r1, #8]
+_0804FF7C:
+ ldr r0, [r7]
+ adds r0, #0x6a
+ movs r1, #0
+ ldrsh r4, [r0, r1]
+ cmp r4, #0x60
+ ble _0804FFDA
+ mov r0, sp
+ movs r2, #4
+ ldrsh r1, [r0, r2]
+ lsls r0, r1, #1
+ adds r0, r0, r1
+ lsls r0, r0, #2
+ ldr r3, _0804FFF8 @ =0x086B146C
+ adds r2, r0, r3
+ adds r6, r3, #0
+ adds r6, #0x24
+ ldr r0, _0804FFFC @ =0x00000107
+ cmp r4, r0
+ bgt _0804FFB2
+ ldr r1, _0804FFE8 @ =0x040000D4
+ ldr r0, [r2]
+ str r0, [r1]
+ ldr r0, [r3, #0x24]
+ str r0, [r1, #4]
+ ldr r0, _0804FFEC @ =0x80000020
+ str r0, [r1, #8]
+ ldr r0, [r1, #8]
+_0804FFB2:
+ ldr r1, _0804FFE8 @ =0x040000D4
+ ldr r0, [r2, #4]
+ str r0, [r1]
+ ldr r0, [r6, #4]
+ str r0, [r1, #4]
+ ldr r3, _0804FFEC @ =0x80000020
+ str r3, [r1, #8]
+ ldr r0, [r1, #8]
+ ldr r0, [r7]
+ adds r0, #0x6a
+ movs r4, #0
+ ldrsh r0, [r0, r4]
+ cmp r0, #0x68
+ ble _0804FFDA
+ ldr r0, [r2, #8]
+ str r0, [r1]
+ ldr r0, [r6, #8]
+ str r0, [r1, #4]
+ str r3, [r1, #8]
+ ldr r0, [r1, #8]
+_0804FFDA:
+ add sp, #8
+ pop {r4, r5, r6, r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0804FFE4: .4byte 0x086B13F4
+_0804FFE8: .4byte 0x040000D4
+_0804FFEC: .4byte 0x80000020
+_0804FFF0: .4byte 0x80000030
+_0804FFF4: .4byte 0x00000105
+_0804FFF8: .4byte 0x086B146C
+_0804FFFC: .4byte 0x00000107
+
+ thumb_func_start sub_50000
+sub_50000: @ 0x08050000
+ push {r4, r5, r6, lr}
+ movs r1, #0
+ ldr r6, _0805009C @ =0x020314E0
+ ldr r2, [r6]
+ movs r3, #0xe5
+ lsls r3, r3, #3
+ adds r0, r2, r3
+ ldrb r0, [r0]
+ lsls r0, r0, #0x18
+ asrs r0, r0, #0x18
+ cmp r0, #0
+ ble _08050026
+ ldr r1, _080500A0 @ =0x00000734
+ adds r0, r2, r1
+ ldrh r1, [r0]
+ movs r0, #1
+ subs r0, r0, r1
+ lsls r0, r0, #0x10
+ lsrs r1, r0, #0x10
+_08050026:
+ lsls r0, r1, #0x10
+ asrs r0, r0, #0xc
+ ldr r3, _080500A4 @ =0x086B11FC
+ adds r4, r0, r3
+ adds r5, r3, #0
+ adds r5, #0x20
+ adds r0, r2, #0
+ adds r0, #0x6a
+ movs r1, #0
+ ldrsh r0, [r0, r1]
+ cmp r0, #0xff
+ bgt _0805004E
+ ldr r1, _080500A8 @ =0x040000D4
+ ldr r0, [r4]
+ str r0, [r1]
+ ldr r0, [r3, #0x20]
+ str r0, [r1, #4]
+ ldr r0, _080500AC @ =0x80000020
+ str r0, [r1, #8]
+ ldr r0, [r1, #8]
+_0805004E:
+ ldr r0, [r6]
+ adds r2, r0, #0
+ adds r2, #0x6a
+ ldrh r0, [r2]
+ subs r0, #0x61
+ lsls r0, r0, #0x10
+ lsrs r0, r0, #0x10
+ cmp r0, #0xa6
+ bhi _08050070
+ ldr r1, _080500A8 @ =0x040000D4
+ ldr r0, [r4, #4]
+ str r0, [r1]
+ ldr r0, [r5, #4]
+ str r0, [r1, #4]
+ ldr r0, _080500B0 @ =0x80000040
+ str r0, [r1, #8]
+ ldr r0, [r1, #8]
+_08050070:
+ movs r3, #0
+ ldrsh r0, [r2, r3]
+ cmp r0, #0x67
+ ble _08050094
+ ldr r0, _080500A8 @ =0x040000D4
+ ldr r1, [r4, #8]
+ str r1, [r0]
+ ldr r1, [r5, #8]
+ str r1, [r0, #4]
+ ldr r2, _080500B0 @ =0x80000040
+ str r2, [r0, #8]
+ ldr r1, [r0, #8]
+ ldr r1, [r4, #0xc]
+ str r1, [r0]
+ ldr r1, [r5, #0xc]
+ str r1, [r0, #4]
+ str r2, [r0, #8]
+ ldr r0, [r0, #8]
+_08050094:
+ pop {r4, r5, r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0805009C: .4byte 0x020314E0
+_080500A0: .4byte 0x00000734
+_080500A4: .4byte 0x086B11FC
+_080500A8: .4byte 0x040000D4
+_080500AC: .4byte 0x80000020
+_080500B0: .4byte 0x80000040
+
+ thumb_func_start sub_500B4
+sub_500B4: @ 0x080500B4
+ push {r4, r5, lr}
+ movs r1, #0
+ ldr r5, _0805013C @ =0x020314E0
+ ldr r2, [r5]
+ ldr r3, _08050140 @ =0x00000729
+ adds r0, r2, r3
+ ldrb r0, [r0]
+ lsls r0, r0, #0x18
+ asrs r0, r0, #0x18
+ cmp r0, #0
+ ble _080500D8
+ ldr r1, _08050144 @ =0x00000734
+ adds r0, r2, r1
+ ldrh r1, [r0]
+ movs r0, #1
+ subs r0, r0, r1
+ lsls r0, r0, #0x10
+ lsrs r1, r0, #0x10
+_080500D8:
+ lsls r0, r1, #0x10
+ asrs r0, r0, #0xc
+ ldr r1, _08050148 @ =0x086B122C
+ adds r3, r0, r1
+ adds r4, r1, #0
+ adds r4, #0x20
+ adds r0, r2, #0
+ adds r0, #0x6a
+ movs r1, #0
+ ldrsh r0, [r0, r1]
+ cmp r0, #0xc2
+ bgt _08050100
+ ldr r1, _0805014C @ =0x040000D4
+ ldr r0, [r3, #4]
+ str r0, [r1]
+ ldr r0, [r4, #4]
+ str r0, [r1, #4]
+ ldr r0, _08050150 @ =0x80000040
+ str r0, [r1, #8]
+ ldr r0, [r1, #8]
+_08050100:
+ ldr r0, [r5]
+ adds r2, r0, #0
+ adds r2, #0x6a
+ movs r1, #0
+ ldrsh r0, [r2, r1]
+ cmp r0, #0x1e
+ ble _0805011E
+ ldr r1, _0805014C @ =0x040000D4
+ ldr r0, [r3, #8]
+ str r0, [r1]
+ ldr r0, [r4, #8]
+ str r0, [r1, #4]
+ ldr r0, _08050150 @ =0x80000040
+ str r0, [r1, #8]
+ ldr r0, [r1, #8]
+_0805011E:
+ movs r1, #0
+ ldrsh r0, [r2, r1]
+ cmp r0, #0x26
+ ble _08050136
+ ldr r1, _0805014C @ =0x040000D4
+ ldr r0, [r3, #0xc]
+ str r0, [r1]
+ ldr r0, [r4, #0xc]
+ str r0, [r1, #4]
+ ldr r0, _08050150 @ =0x80000040
+ str r0, [r1, #8]
+ ldr r0, [r1, #8]
+_08050136:
+ pop {r4, r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0805013C: .4byte 0x020314E0
+_08050140: .4byte 0x00000729
+_08050144: .4byte 0x00000734
+_08050148: .4byte 0x086B122C
+_0805014C: .4byte 0x040000D4
+_08050150: .4byte 0x80000040
+
+ thumb_func_start sub_50154
+sub_50154: @ 0x08050154
+ push {r4, r5, r6, lr}
+ sub sp, #8
+ ldr r0, _0805018C @ =0x020314E0
+ ldr r2, [r0]
+ movs r1, #0x13
+ ldrsb r1, [r2, r1]
+ adds r6, r0, #0
+ cmp r1, #2
+ bgt _080501E0
+ ldr r1, _08050190 @ =0x0000072E
+ adds r0, r2, r1
+ movs r3, #0
+ ldrsb r3, [r0, r3]
+ cmp r3, #0
+ bne _08050198
+ mov r1, sp
+ ldr r4, _08050194 @ =0x00000734
+ adds r2, r2, r4
+ movs r4, #0
+ ldrsh r0, [r2, r4]
+ lsls r0, r0, #1
+ strh r0, [r1]
+ ldrh r0, [r2]
+ strh r0, [r1, #2]
+ mov r0, sp
+ strh r3, [r0, #4]
+ b _08050206
+ .align 2, 0
+_0805018C: .4byte 0x020314E0
+_08050190: .4byte 0x0000072E
+_08050194: .4byte 0x00000734
+_08050198:
+ cmp r3, #1
+ bne _080501B8
+ mov r1, sp
+ movs r0, #3
+ strh r0, [r1]
+ ldr r0, _080501B4 @ =0x00000734
+ adds r2, r2, r0
+ ldrh r0, [r2]
+ adds r0, #1
+ strh r0, [r1, #2]
+ movs r3, #0
+ ldrsh r0, [r2, r3]
+ lsls r0, r0, #1
+ b _08050204
+ .align 2, 0
+_080501B4: .4byte 0x00000734
+_080501B8:
+ cmp r3, #2
+ bne _080501D4
+ mov r0, sp
+ movs r1, #3
+ strh r1, [r0]
+ strh r1, [r0, #2]
+ mov r1, sp
+ ldr r4, _080501D0 @ =0x00000734
+ adds r0, r2, r4
+ ldrh r0, [r0]
+ adds r0, #2
+ b _08050204
+ .align 2, 0
+_080501D0: .4byte 0x00000734
+_080501D4:
+ mov r0, sp
+ movs r1, #3
+ strh r1, [r0]
+ strh r1, [r0, #2]
+ strh r1, [r0, #4]
+ b _08050206
+_080501E0:
+ mov r1, sp
+ ldr r3, _080502F0 @ =0x00000739
+ adds r0, r2, r3
+ ldrb r0, [r0]
+ lsls r0, r0, #0x18
+ asrs r0, r0, #0x18
+ strh r0, [r1]
+ ldr r4, _080502F4 @ =0x0000073A
+ adds r0, r2, r4
+ ldrb r0, [r0]
+ lsls r0, r0, #0x18
+ asrs r0, r0, #0x18
+ strh r0, [r1, #2]
+ adds r3, #2
+ adds r0, r2, r3
+ ldrb r0, [r0]
+ lsls r0, r0, #0x18
+ asrs r0, r0, #0x18
+_08050204:
+ strh r0, [r1, #4]
+_08050206:
+ mov r0, sp
+ movs r4, #0
+ ldrsh r1, [r0, r4]
+ lsls r0, r1, #1
+ adds r0, r0, r1
+ lsls r0, r0, #2
+ ldr r1, _080502F8 @ =0x086B1340
+ mov ip, r1
+ adds r3, r0, r1
+ mov r4, ip
+ adds r4, #0x30
+ ldr r0, [r6]
+ adds r0, #0x6a
+ movs r2, #0
+ ldrsh r1, [r0, r2]
+ ldr r0, _080502FC @ =0x00000107
+ cmp r1, r0
+ bgt _0805023C
+ ldr r1, _08050300 @ =0x040000D4
+ ldr r0, [r3]
+ str r0, [r1]
+ mov r2, ip
+ ldr r0, [r2, #0x30]
+ str r0, [r1, #4]
+ ldr r0, _08050304 @ =0x80000030
+ str r0, [r1, #8]
+ ldr r0, [r1, #8]
+_0805023C:
+ ldr r2, _08050300 @ =0x040000D4
+ ldr r0, [r3, #4]
+ str r0, [r2]
+ ldr r0, [r4, #4]
+ str r0, [r2, #4]
+ ldr r5, _08050304 @ =0x80000030
+ str r5, [r2, #8]
+ ldr r0, [r2, #8]
+ ldr r0, [r3, #8]
+ str r0, [r2]
+ ldr r0, [r4, #8]
+ str r0, [r2, #4]
+ str r5, [r2, #8]
+ ldr r0, [r2, #8]
+ ldr r0, [r6]
+ adds r6, r0, #0
+ adds r6, #0x6a
+ movs r3, #0
+ ldrsh r0, [r6, r3]
+ cmp r0, #0x78
+ ble _080502A2
+ mov r0, sp
+ movs r4, #2
+ ldrsh r1, [r0, r4]
+ lsls r0, r1, #1
+ adds r0, r0, r1
+ lsls r0, r0, #2
+ mov r1, ip
+ adds r1, #0x3c
+ adds r3, r0, r1
+ mov r4, ip
+ adds r4, #0x6c
+ ldr r0, [r3]
+ str r0, [r2]
+ mov r1, ip
+ ldr r0, [r1, #0x6c]
+ str r0, [r2, #4]
+ str r5, [r2, #8]
+ ldr r0, [r2, #8]
+ ldr r0, [r3, #4]
+ str r0, [r2]
+ ldr r0, [r4, #4]
+ str r0, [r2, #4]
+ str r5, [r2, #8]
+ ldr r0, [r2, #8]
+ ldr r0, [r3, #8]
+ str r0, [r2]
+ ldr r0, [r4, #8]
+ str r0, [r2, #4]
+ str r5, [r2, #8]
+ ldr r0, [r2, #8]
+_080502A2:
+ movs r3, #0
+ ldrsh r0, [r6, r3]
+ cmp r0, #0x88
+ ble _080502E6
+ mov r0, sp
+ movs r4, #4
+ ldrsh r1, [r0, r4]
+ lsls r0, r1, #1
+ adds r0, r0, r1
+ lsls r0, r0, #2
+ mov r1, ip
+ adds r1, #0x78
+ adds r3, r0, r1
+ mov r4, ip
+ adds r4, #0xa8
+ ldr r0, [r3]
+ str r0, [r2]
+ ldr r0, [r4]
+ str r0, [r2, #4]
+ str r5, [r2, #8]
+ ldr r0, [r2, #8]
+ ldr r0, [r3, #4]
+ str r0, [r2]
+ ldr r0, [r4, #4]
+ str r0, [r2, #4]
+ str r5, [r2, #8]
+ ldr r0, [r2, #8]
+ ldr r0, [r3, #8]
+ str r0, [r2]
+ ldr r0, [r4, #8]
+ str r0, [r2, #4]
+ ldr r0, _08050308 @ =0x80000020
+ str r0, [r2, #8]
+ ldr r0, [r2, #8]
+_080502E6:
+ add sp, #8
+ pop {r4, r5, r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080502F0: .4byte 0x00000739
+_080502F4: .4byte 0x0000073A
+_080502F8: .4byte 0x086B1340
+_080502FC: .4byte 0x00000107
+_08050300: .4byte 0x040000D4
+_08050304: .4byte 0x80000030
+_08050308: .4byte 0x80000020
+
+ thumb_func_start sub_5030C
+sub_5030C: @ 0x0805030C
+ push {r4, r5, r6, lr}
+ sub sp, #8
+ ldr r0, _08050340 @ =0x020314E0
+ ldr r2, [r0]
+ movs r1, #0x13
+ ldrsb r1, [r2, r1]
+ adds r5, r0, #0
+ cmp r1, #2
+ bgt _08050394
+ ldr r1, _08050344 @ =0x0000072F
+ adds r0, r2, r1
+ movs r3, #0
+ ldrsb r3, [r0, r3]
+ cmp r3, #0
+ bne _0805034C
+ mov r1, sp
+ ldr r4, _08050348 @ =0x00000734
+ adds r0, r2, r4
+ movs r2, #0
+ ldrsh r0, [r0, r2]
+ lsls r0, r0, #1
+ strh r0, [r1]
+ mov r0, sp
+ strh r3, [r0, #2]
+ strh r3, [r0, #4]
+ b _080503BA
+ .align 2, 0
+_08050340: .4byte 0x020314E0
+_08050344: .4byte 0x0000072F
+_08050348: .4byte 0x00000734
+_0805034C:
+ cmp r3, #1
+ bne _0805036C
+ mov r1, sp
+ movs r0, #3
+ strh r0, [r1]
+ ldr r3, _08050368 @ =0x00000734
+ adds r2, r2, r3
+ ldrh r0, [r2]
+ adds r0, #1
+ strh r0, [r1, #2]
+ movs r4, #0
+ ldrsh r0, [r2, r4]
+ lsls r0, r0, #1
+ b _080503B8
+ .align 2, 0
+_08050368: .4byte 0x00000734
+_0805036C:
+ cmp r3, #2
+ bne _08050388
+ mov r0, sp
+ movs r1, #3
+ strh r1, [r0]
+ strh r1, [r0, #2]
+ mov r1, sp
+ ldr r3, _08050384 @ =0x00000734
+ adds r0, r2, r3
+ ldrh r0, [r0]
+ adds r0, #2
+ b _080503B8
+ .align 2, 0
+_08050384: .4byte 0x00000734
+_08050388:
+ mov r0, sp
+ movs r1, #3
+ strh r1, [r0]
+ strh r1, [r0, #2]
+ strh r1, [r0, #4]
+ b _080503BA
+_08050394:
+ mov r1, sp
+ ldr r4, _080504A4 @ =0x00000736
+ adds r0, r2, r4
+ ldrb r0, [r0]
+ lsls r0, r0, #0x18
+ asrs r0, r0, #0x18
+ strh r0, [r1]
+ ldr r3, _080504A8 @ =0x00000737
+ adds r0, r2, r3
+ ldrb r0, [r0]
+ lsls r0, r0, #0x18
+ asrs r0, r0, #0x18
+ strh r0, [r1, #2]
+ adds r4, #2
+ adds r0, r2, r4
+ ldrb r0, [r0]
+ lsls r0, r0, #0x18
+ asrs r0, r0, #0x18
+_080503B8:
+ strh r0, [r1, #4]
+_080503BA:
+ mov r0, sp
+ movs r2, #0
+ ldrsh r1, [r0, r2]
+ lsls r0, r1, #1
+ adds r0, r0, r1
+ lsls r0, r0, #2
+ ldr r3, _080504AC @ =0x086B14A8
+ mov ip, r3
+ adds r3, r0, r3
+ mov r4, ip
+ adds r4, #0x30
+ ldr r0, [r5]
+ adds r0, #0x6a
+ movs r2, #0
+ ldrsh r1, [r0, r2]
+ ldr r0, _080504B0 @ =0x00000107
+ cmp r1, r0
+ bgt _080503F0
+ ldr r1, _080504B4 @ =0x040000D4
+ ldr r0, [r3]
+ str r0, [r1]
+ mov r2, ip
+ ldr r0, [r2, #0x30]
+ str r0, [r1, #4]
+ ldr r0, _080504B8 @ =0x80000030
+ str r0, [r1, #8]
+ ldr r0, [r1, #8]
+_080503F0:
+ ldr r2, _080504B4 @ =0x040000D4
+ ldr r0, [r3, #4]
+ str r0, [r2]
+ ldr r0, [r4, #4]
+ str r0, [r2, #4]
+ ldr r6, _080504B8 @ =0x80000030
+ str r6, [r2, #8]
+ ldr r0, [r2, #8]
+ ldr r0, [r3, #8]
+ str r0, [r2]
+ ldr r0, [r4, #8]
+ str r0, [r2, #4]
+ str r6, [r2, #8]
+ ldr r0, [r2, #8]
+ ldr r0, [r5]
+ adds r5, r0, #0
+ adds r5, #0x6a
+ movs r3, #0
+ ldrsh r0, [r5, r3]
+ cmp r0, #0x78
+ ble _08050458
+ mov r0, sp
+ movs r4, #2
+ ldrsh r1, [r0, r4]
+ lsls r0, r1, #1
+ adds r0, r0, r1
+ lsls r0, r0, #2
+ mov r1, ip
+ adds r1, #0x3c
+ adds r3, r0, r1
+ mov r4, ip
+ adds r4, #0x6c
+ ldr r0, [r3]
+ str r0, [r2]
+ mov r1, ip
+ ldr r0, [r1, #0x6c]
+ str r0, [r2, #4]
+ ldr r1, _080504BC @ =0x80000020
+ str r1, [r2, #8]
+ ldr r0, [r2, #8]
+ ldr r0, [r3, #4]
+ str r0, [r2]
+ ldr r0, [r4, #4]
+ str r0, [r2, #4]
+ str r1, [r2, #8]
+ ldr r0, [r2, #8]
+ ldr r0, [r3, #8]
+ str r0, [r2]
+ ldr r0, [r4, #8]
+ str r0, [r2, #4]
+ str r6, [r2, #8]
+ ldr r0, [r2, #8]
+_08050458:
+ movs r3, #0
+ ldrsh r0, [r5, r3]
+ cmp r0, #0x88
+ ble _0805049C
+ mov r0, sp
+ movs r4, #4
+ ldrsh r1, [r0, r4]
+ lsls r0, r1, #1
+ adds r0, r0, r1
+ lsls r0, r0, #2
+ mov r1, ip
+ adds r1, #0x78
+ adds r3, r0, r1
+ mov r4, ip
+ adds r4, #0xa8
+ ldr r0, [r3]
+ str r0, [r2]
+ ldr r0, [r4]
+ str r0, [r2, #4]
+ ldr r1, _080504BC @ =0x80000020
+ str r1, [r2, #8]
+ ldr r0, [r2, #8]
+ ldr r0, [r3, #4]
+ str r0, [r2]
+ ldr r0, [r4, #4]
+ str r0, [r2, #4]
+ str r6, [r2, #8]
+ ldr r0, [r2, #8]
+ ldr r0, [r3, #8]
+ str r0, [r2]
+ ldr r0, [r4, #8]
+ str r0, [r2, #4]
+ str r1, [r2, #8]
+ ldr r0, [r2, #8]
+_0805049C:
+ add sp, #8
+ pop {r4, r5, r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080504A4: .4byte 0x00000736
+_080504A8: .4byte 0x00000737
+_080504AC: .4byte 0x086B14A8
+_080504B0: .4byte 0x00000107
+_080504B4: .4byte 0x040000D4
+_080504B8: .4byte 0x80000030
+_080504BC: .4byte 0x80000020
+
+ thumb_func_start sub_504C0
+sub_504C0: @ 0x080504C0
+ push {r4, r5, r6, lr}
+ movs r3, #0
+ ldr r1, _08050584 @ =0x020314E0
+ ldr r0, [r1]
+ ldr r4, _08050588 @ =0x00000731
+ adds r0, r0, r4
+ strb r3, [r0]
+ ldr r2, [r1]
+ ldr r5, _0805058C @ =0x0000072F
+ adds r0, r2, r5
+ ldrb r0, [r0]
+ lsls r0, r0, #0x18
+ asrs r0, r0, #0x18
+ adds r6, r1, #0
+ cmp r0, #1
+ ble _080504EE
+ movs r0, #0x13
+ ldrsb r0, [r2, r0]
+ cmp r0, #2
+ bgt _080504EE
+ adds r1, r2, r4
+ movs r0, #1
+ strb r0, [r1]
+_080504EE:
+ ldr r2, [r6]
+ ldr r1, _08050588 @ =0x00000731
+ adds r0, r2, r1
+ ldrb r0, [r0]
+ lsls r0, r0, #0x18
+ asrs r0, r0, #0x18
+ cmp r0, #0
+ ble _0805050C
+ ldr r5, _08050590 @ =0x00000734
+ adds r0, r2, r5
+ ldrh r1, [r0]
+ movs r0, #1
+ subs r0, r0, r1
+ lsls r0, r0, #0x10
+ lsrs r3, r0, #0x10
+_0805050C:
+ lsls r0, r3, #0x10
+ asrs r0, r0, #0xc
+ ldr r3, _08050594 @ =0x086B12D0
+ adds r4, r0, r3
+ adds r5, r3, #0
+ adds r5, #0x20
+ adds r0, r2, #0
+ adds r0, #0x6a
+ movs r1, #0
+ ldrsh r0, [r0, r1]
+ cmp r0, #0xe7
+ bgt _08050534
+ ldr r1, _08050598 @ =0x040000D4
+ ldr r0, [r4]
+ str r0, [r1]
+ ldr r0, [r3, #0x20]
+ str r0, [r1, #4]
+ ldr r0, _0805059C @ =0x80000030
+ str r0, [r1, #8]
+ ldr r0, [r1, #8]
+_08050534:
+ ldr r0, [r6]
+ adds r2, r0, #0
+ adds r2, #0x6a
+ movs r1, #0
+ ldrsh r0, [r2, r1]
+ cmp r0, #0xef
+ bgt _08050552
+ ldr r1, _08050598 @ =0x040000D4
+ ldr r0, [r4, #4]
+ str r0, [r1]
+ ldr r0, [r5, #4]
+ str r0, [r1, #4]
+ ldr r0, _080505A0 @ =0x80000040
+ str r0, [r1, #8]
+ ldr r0, [r1, #8]
+_08050552:
+ movs r1, #0
+ ldrsh r0, [r2, r1]
+ cmp r0, #0x4f
+ ble _0805057E
+ cmp r0, #0xf7
+ bgt _0805056E
+ ldr r1, _08050598 @ =0x040000D4
+ ldr r0, [r4, #8]
+ str r0, [r1]
+ ldr r0, [r5, #8]
+ str r0, [r1, #4]
+ ldr r0, _080505A0 @ =0x80000040
+ str r0, [r1, #8]
+ ldr r0, [r1, #8]
+_0805056E:
+ ldr r1, _08050598 @ =0x040000D4
+ ldr r0, [r4, #0xc]
+ str r0, [r1]
+ ldr r0, [r5, #0xc]
+ str r0, [r1, #4]
+ ldr r0, _0805059C @ =0x80000030
+ str r0, [r1, #8]
+ ldr r0, [r1, #8]
+_0805057E:
+ pop {r4, r5, r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08050584: .4byte 0x020314E0
+_08050588: .4byte 0x00000731
+_0805058C: .4byte 0x0000072F
+_08050590: .4byte 0x00000734
+_08050594: .4byte 0x086B12D0
+_08050598: .4byte 0x040000D4
+_0805059C: .4byte 0x80000030
+_080505A0: .4byte 0x80000040
+
+ thumb_func_start sub_505A4
+sub_505A4: @ 0x080505A4
+ push {r4, r5, lr}
+ movs r3, #0
+ ldr r0, _080505C8 @ =0x020314E0
+ ldr r2, [r0]
+ ldr r4, _080505CC @ =0x00000366
+ adds r1, r2, r4
+ ldrb r1, [r1]
+ lsls r1, r1, #0x18
+ asrs r1, r1, #0x18
+ adds r5, r0, #0
+ cmp r1, #3
+ bne _080505D4
+ ldr r0, _080505D0 @ =0x0000072A
+ adds r1, r2, r0
+ movs r0, #1
+ strb r0, [r1]
+ b _080505E2
+ .align 2, 0
+_080505C8: .4byte 0x020314E0
+_080505CC: .4byte 0x00000366
+_080505D0: .4byte 0x0000072A
+_080505D4:
+ movs r0, #0x13
+ ldrsb r0, [r2, r0]
+ cmp r0, #0
+ beq _080505E2
+ ldr r1, _0805060C @ =0x0000072A
+ adds r0, r2, r1
+ strb r3, [r0]
+_080505E2:
+ ldr r1, [r5]
+ ldr r2, _0805060C @ =0x0000072A
+ adds r0, r1, r2
+ ldrb r0, [r0]
+ lsls r0, r0, #0x18
+ asrs r0, r0, #0x18
+ cmp r0, #0
+ ble _08050614
+ ldr r4, _08050610 @ =0x000001A5
+ adds r0, r1, r4
+ ldrb r0, [r0]
+ lsls r0, r0, #0x18
+ asrs r0, r0, #0x18
+ lsls r0, r0, #1
+ adds r2, #0xa
+ adds r1, r1, r2
+ ldrh r1, [r1]
+ subs r1, #1
+ subs r0, r0, r1
+ lsls r0, r0, #0x10
+ b _08050620
+ .align 2, 0
+_0805060C: .4byte 0x0000072A
+_08050610: .4byte 0x000001A5
+_08050614:
+ ldr r4, _0805069C @ =0x000001A5
+ adds r0, r1, r4
+ ldrb r0, [r0]
+ lsls r0, r0, #0x18
+ asrs r0, r0, #0x18
+ lsls r0, r0, #0x11
+_08050620:
+ lsrs r3, r0, #0x10
+ lsls r0, r3, #0x10
+ asrs r0, r0, #0xc
+ ldr r2, _080506A0 @ =0x086B125C
+ adds r3, r0, r2
+ adds r4, r2, #0
+ adds r4, #0x40
+ ldr r0, [r5]
+ adds r0, #0x6a
+ movs r1, #0
+ ldrsh r0, [r0, r1]
+ cmp r0, #0xdf
+ bgt _0805064A
+ ldr r1, _080506A4 @ =0x040000D4
+ ldr r0, [r3]
+ str r0, [r1]
+ ldr r0, [r2, #0x40]
+ str r0, [r1, #4]
+ ldr r0, _080506A8 @ =0x80000040
+ str r0, [r1, #8]
+ ldr r0, [r1, #8]
+_0805064A:
+ ldr r0, [r5]
+ adds r2, r0, #0
+ adds r2, #0x6a
+ movs r1, #0
+ ldrsh r0, [r2, r1]
+ cmp r0, #0xe7
+ bgt _08050668
+ ldr r1, _080506A4 @ =0x040000D4
+ ldr r0, [r3, #4]
+ str r0, [r1]
+ ldr r0, [r4, #4]
+ str r0, [r1, #4]
+ ldr r0, _080506A8 @ =0x80000040
+ str r0, [r1, #8]
+ ldr r0, [r1, #8]
+_08050668:
+ movs r1, #0
+ ldrsh r0, [r2, r1]
+ cmp r0, #0x47
+ ble _08050694
+ cmp r0, #0xef
+ bgt _08050684
+ ldr r1, _080506A4 @ =0x040000D4
+ ldr r0, [r3, #8]
+ str r0, [r1]
+ ldr r0, [r4, #8]
+ str r0, [r1, #4]
+ ldr r0, _080506A8 @ =0x80000040
+ str r0, [r1, #8]
+ ldr r0, [r1, #8]
+_08050684:
+ ldr r1, _080506A4 @ =0x040000D4
+ ldr r0, [r3, #0xc]
+ str r0, [r1]
+ ldr r0, [r4, #0xc]
+ str r0, [r1, #4]
+ ldr r0, _080506AC @ =0x80000030
+ str r0, [r1, #8]
+ ldr r0, [r1, #8]
+_08050694:
+ pop {r4, r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0805069C: .4byte 0x000001A5
+_080506A0: .4byte 0x086B125C
+_080506A4: .4byte 0x040000D4
+_080506A8: .4byte 0x80000040
+_080506AC: .4byte 0x80000030
+
+ thumb_func_start sub_506B0
+sub_506B0: @ 0x080506B0
+ push {r4, r5, r6, r7, lr}
+ movs r1, #0
+ ldr r0, _08050700 @ =0x020314E0
+ ldr r0, [r0]
+ movs r2, #0xe3
+ lsls r2, r2, #3
+ adds r5, r0, r2
+ ldr r4, _08050704 @ =0x086B12AC
+ adds r7, r4, #0
+ adds r7, #8
+ ldr r3, _08050708 @ =0x040000D4
+ ldr r6, _0805070C @ =0x80000020
+_080506C8:
+ lsls r2, r1, #0x10
+ asrs r2, r2, #0x10
+ lsls r1, r2, #1
+ adds r1, r1, r2
+ lsls r1, r1, #2
+ adds r0, r5, r2
+ ldrb r0, [r0]
+ lsls r0, r0, #0x18
+ asrs r0, r0, #0x18
+ lsls r0, r0, #2
+ adds r0, r0, r4
+ adds r0, r1, r0
+ adds r1, r1, r7
+ ldr r0, [r0]
+ str r0, [r3]
+ ldr r0, [r1]
+ str r0, [r3, #4]
+ str r6, [r3, #8]
+ ldr r0, [r3, #8]
+ adds r2, #1
+ lsls r2, r2, #0x10
+ lsrs r1, r2, #0x10
+ asrs r2, r2, #0x10
+ cmp r2, #2
+ ble _080506C8
+ pop {r4, r5, r6, r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08050700: .4byte 0x020314E0
+_08050704: .4byte 0x086B12AC
+_08050708: .4byte 0x040000D4
+_0805070C: .4byte 0x80000020
+
+ thumb_func_start sub_50710
+sub_50710: @ 0x08050710
+ push {r4, r5, r6, r7, lr}
+ mov r7, sl
+ mov r6, sb
+ mov r5, r8
+ push {r5, r6, r7}
+ ldr r2, _08050770 @ =0x020314E0
+ ldr r0, [r2]
+ ldr r1, _08050774 @ =0x00000346
+ adds r0, r0, r1
+ ldrb r0, [r0]
+ lsls r0, r0, #0x18
+ asrs r0, r0, #0x18
+ cmp r0, #3
+ beq _080507C0
+ movs r1, #0
+ mov sb, r2
+ ldr r2, _08050778 @ =0x0000034B
+ mov r8, r2
+ ldr r5, _0805077C @ =0x040000D4
+ ldr r0, _08050780 @ =0x086B0F9C
+ mov sl, r0
+ ldr r7, _08050784 @ =0x80000020
+_0805073C:
+ mov r2, sb
+ ldr r0, [r2]
+ lsls r1, r1, #0x10
+ asrs r4, r1, #0x10
+ add r0, r8
+ adds r0, r0, r4
+ ldrb r0, [r0]
+ lsls r0, r0, #0x18
+ asrs r0, r0, #0x18
+ adds r6, r1, #0
+ cmp r0, #0
+ ble _08050788
+ cmp r0, #0xa
+ bne _0805075E
+ movs r0, #0xdc
+ bl sub_53DA8
+_0805075E:
+ mov r0, sb
+ ldr r1, [r0]
+ add r1, r8
+ adds r1, r1, r4
+ ldrb r0, [r1]
+ subs r0, #1
+ strb r0, [r1]
+ movs r2, #1
+ b _0805078A
+ .align 2, 0
+_08050770: .4byte 0x020314E0
+_08050774: .4byte 0x00000346
+_08050778: .4byte 0x0000034B
+_0805077C: .4byte 0x040000D4
+_08050780: .4byte 0x086B0F9C
+_08050784: .4byte 0x80000020
+_08050788:
+ movs r2, #0
+_0805078A:
+ asrs r3, r6, #0x10
+ lsls r1, r3, #1
+ adds r1, r1, r3
+ lsls r1, r1, #3
+ lsls r2, r2, #3
+ add r2, sl
+ adds r2, r1, r2
+ ldr r0, _080507D0 @ =0x086B0FAC
+ adds r1, r1, r0
+ ldr r0, [r2]
+ str r0, [r5]
+ ldr r0, [r1]
+ str r0, [r5, #4]
+ str r7, [r5, #8]
+ ldr r0, [r5, #8]
+ ldr r0, [r2, #4]
+ str r0, [r5]
+ ldr r0, [r1, #4]
+ str r0, [r5, #4]
+ str r7, [r5, #8]
+ ldr r0, [r5, #8]
+ adds r3, #1
+ lsls r3, r3, #0x10
+ lsrs r1, r3, #0x10
+ asrs r3, r3, #0x10
+ cmp r3, #9
+ ble _0805073C
+_080507C0:
+ pop {r3, r4, r5}
+ mov r8, r3
+ mov sb, r4
+ mov sl, r5
+ pop {r4, r5, r6, r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080507D0: .4byte 0x086B0FAC
+
+ thumb_func_start sub_507D4
+sub_507D4: @ 0x080507D4
+ push {r4, r5, lr}
+ movs r1, #0
+ ldr r0, _08050834 @ =0x020314E0
+ ldr r4, [r0]
+ movs r2, #0xc2
+ lsls r2, r2, #2
+ adds r0, r4, r2
+ ldrh r0, [r0]
+ cmp r0, #0x63
+ bls _080507F8
+ ldr r1, _08050838 @ =0x0000070C
+ adds r0, r4, r1
+ ldrh r0, [r0]
+ movs r1, #0x14
+ bl sub_558B0
+ lsls r0, r0, #0x10
+ lsrs r1, r0, #0x12
+_080507F8:
+ lsls r0, r1, #3
+ ldr r2, _0805083C @ =0x086B0E6C
+ adds r3, r0, r2
+ adds r5, r2, #0
+ adds r5, #0x28
+ adds r0, r4, #0
+ adds r0, #0x6a
+ movs r1, #0
+ ldrsh r0, [r0, r1]
+ cmp r0, #0xaf
+ bgt _0805081E
+ ldr r1, _08050840 @ =0x040000D4
+ ldr r0, [r3]
+ str r0, [r1]
+ ldr r0, [r2, #0x28]
+ str r0, [r1, #4]
+ ldr r0, _08050844 @ =0x80000020
+ str r0, [r1, #8]
+ ldr r0, [r1, #8]
+_0805081E:
+ ldr r1, _08050840 @ =0x040000D4
+ ldr r0, [r3, #4]
+ str r0, [r1]
+ ldr r0, [r5, #4]
+ str r0, [r1, #4]
+ ldr r0, _08050844 @ =0x80000020
+ str r0, [r1, #8]
+ ldr r0, [r1, #8]
+ pop {r4, r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08050834: .4byte 0x020314E0
+_08050838: .4byte 0x0000070C
+_0805083C: .4byte 0x086B0E6C
+_08050840: .4byte 0x040000D4
+_08050844: .4byte 0x80000020
+
+ thumb_func_start sub_50848
+sub_50848: @ 0x08050848
+ push {r4, r5, r6, r7, lr}
+ movs r0, #0
+ ldr r4, _080508E8 @ =0x0200B0C0
+ ldr r7, _080508EC @ =0x086B155C
+ adds r6, r4, #0
+ movs r5, #0xb8
+ movs r3, #0xbe
+ lsls r3, r3, #2
+ movs r2, #0
+_0805085A:
+ lsls r1, r0, #0x10
+ asrs r1, r1, #0x10
+ adds r0, r1, #0
+ muls r0, r5, r0
+ adds r0, r0, r6
+ adds r0, r0, r3
+ strh r2, [r0]
+ adds r1, #1
+ lsls r1, r1, #0x10
+ lsrs r0, r1, #0x10
+ asrs r1, r1, #0x10
+ cmp r1, #0x53
+ ble _0805085A
+ ldr r0, _080508F0 @ =0x000030F8
+ adds r1, r4, r0
+ movs r0, #1
+ strh r0, [r1]
+ ldr r1, _080508F4 @ =0x00002578
+ adds r3, r4, r1
+ ldr r2, _080508F8 @ =0x00003548
+ adds r1, r4, r2
+ strh r0, [r1]
+ movs r5, #0xbe
+ lsls r5, r5, #2
+ adds r2, r4, r5
+ strh r0, [r2]
+ adds r5, #0xb8
+ adds r1, r4, r5
+ strh r0, [r1]
+ adds r5, #0xb8
+ adds r1, r4, r5
+ strh r0, [r1]
+ ldr r5, _080508FC @ =0x00001718
+ adds r1, r4, r5
+ strh r0, [r1]
+ ldr r5, _08050900 @ =0x00003D30
+ adds r1, r4, r5
+ strh r0, [r1]
+ ldr r5, _08050904 @ =0x000031B0
+ adds r1, r4, r5
+ strh r0, [r1]
+ movs r5, #0xd8
+ lsls r5, r5, #6
+ adds r1, r4, r5
+ strh r0, [r1]
+ ldr r5, _08050908 @ =0x00003268
+ adds r1, r4, r5
+ strh r0, [r1]
+ ldr r5, _0805090C @ =0x000027A0
+ adds r1, r4, r5
+ strh r0, [r1]
+ ldr r5, _08050910 @ =0x00002ED0
+ adds r1, r4, r5
+ strh r0, [r1]
+ strh r0, [r3]
+ ldr r3, _08050914 @ =0x00002858
+ adds r1, r4, r3
+ strh r0, [r1]
+ adds r5, #0xb8
+ adds r1, r4, r5
+ strh r0, [r1]
+ ldrb r1, [r4, #4]
+ lsls r1, r1, #3
+ adds r1, r1, r7
+ ldr r0, [r1]
+ ldrh r1, [r1, #4]
+ bl sub_358
+ pop {r4, r5, r6, r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080508E8: .4byte 0x0200B0C0
+_080508EC: .4byte 0x086B155C
+_080508F0: .4byte 0x000030F8
+_080508F4: .4byte 0x00002578
+_080508F8: .4byte 0x00003548
+_080508FC: .4byte 0x00001718
+_08050900: .4byte 0x00003D30
+_08050904: .4byte 0x000031B0
+_08050908: .4byte 0x00003268
+_0805090C: .4byte 0x000027A0
+_08050910: .4byte 0x00002ED0
+_08050914: .4byte 0x00002858
+
+ thumb_func_start sub_50918
+sub_50918: @ 0x08050918
+ push {r4, r5, r6, r7, lr}
+ mov r7, r8
+ push {r7}
+ ldr r2, _080509EC @ =0x0200B0C0
+ ldr r1, _080509F0 @ =0x00000A28
+ adds r0, r2, r1
+ movs r1, #0
+ strh r1, [r0]
+ movs r3, #0xae
+ lsls r3, r3, #4
+ adds r0, r2, r3
+ strh r1, [r0]
+ ldr r4, _080509F4 @ =0x00002578
+ adds r0, r2, r4
+ strh r1, [r0]
+ movs r3, #0xd8
+ lsls r3, r3, #6
+ adds r0, r2, r3
+ strh r1, [r0]
+ movs r0, #0x33
+ adds r5, r2, #0
+ ldr r7, _080509F8 @ =0x020314E0
+ ldr r4, _080509FC @ =0x086B155C
+ mov r8, r4
+ adds r6, r5, #0
+ movs r4, #0xb8
+ movs r3, #0xbe
+ lsls r3, r3, #2
+ movs r2, #0
+_08050952:
+ lsls r1, r0, #0x10
+ asrs r1, r1, #0x10
+ adds r0, r1, #0
+ muls r0, r4, r0
+ adds r0, r0, r6
+ adds r0, r0, r3
+ strh r2, [r0]
+ adds r1, #1
+ lsls r1, r1, #0x10
+ lsrs r0, r1, #0x10
+ asrs r1, r1, #0x10
+ cmp r1, #0x42
+ ble _08050952
+ ldr r4, [r7]
+ ldr r0, [r5, #0x4c]
+ movs r1, #0x19
+ bl sub_558B0
+ movs r2, #0xde
+ lsls r2, r2, #1
+ adds r1, r4, r2
+ strh r0, [r1]
+ adds r4, #0x68
+ movs r3, #0
+ ldrsh r0, [r4, r3]
+ cmp r0, #0x6d
+ bgt _0805099E
+ ldr r4, _08050A00 @ =0x000031B0
+ adds r0, r5, r4
+ movs r1, #1
+ strh r1, [r0]
+ movs r2, #0xd8
+ lsls r2, r2, #6
+ adds r0, r5, r2
+ strh r1, [r0]
+ ldr r3, _08050A04 @ =0x00003268
+ adds r0, r5, r3
+ strh r1, [r0]
+_0805099E:
+ ldr r3, [r7]
+ adds r2, r3, #0
+ adds r2, #0x68
+ movs r4, #0
+ ldrsh r0, [r2, r4]
+ cmp r0, #0xa7
+ bgt _080509BA
+ ldr r1, _080509F4 @ =0x00002578
+ adds r0, r5, r1
+ movs r1, #1
+ strh r1, [r0]
+ ldr r4, _08050A08 @ =0x00002858
+ adds r0, r5, r4
+ strh r1, [r0]
+_080509BA:
+ movs r1, #0
+ ldrsh r0, [r2, r1]
+ cmp r0, #0xdb
+ bgt _08050A1E
+ ldr r2, _08050A0C @ =0x000027A0
+ adds r0, r5, r2
+ movs r1, #1
+ strh r1, [r0]
+ ldr r4, _08050A10 @ =0x00002ED0
+ adds r0, r5, r4
+ strh r1, [r0]
+ ldr r2, _08050A14 @ =0x000030F8
+ adds r0, r5, r2
+ strh r1, [r0]
+ movs r4, #0xa9
+ lsls r4, r4, #2
+ adds r0, r3, r4
+ ldrb r0, [r0]
+ lsls r0, r0, #0x18
+ asrs r0, r0, #0x18
+ cmp r0, #0
+ beq _08050A18
+ subs r2, #0xb8
+ adds r0, r5, r2
+ b _08050A1C
+ .align 2, 0
+_080509EC: .4byte 0x0200B0C0
+_080509F0: .4byte 0x00000A28
+_080509F4: .4byte 0x00002578
+_080509F8: .4byte 0x020314E0
+_080509FC: .4byte 0x086B155C
+_08050A00: .4byte 0x000031B0
+_08050A04: .4byte 0x00003268
+_08050A08: .4byte 0x00002858
+_08050A0C: .4byte 0x000027A0
+_08050A10: .4byte 0x00002ED0
+_08050A14: .4byte 0x000030F8
+_08050A18:
+ ldr r3, _08050AB0 @ =0x00002F88
+ adds r0, r5, r3
+_08050A1C:
+ strh r1, [r0]
+_08050A1E:
+ ldr r0, [r7]
+ adds r0, #0x68
+ movs r4, #0
+ ldrsh r0, [r0, r4]
+ cmp r0, #0x3f
+ ble _08050A38
+ ldr r1, _08050AB4 @ =0x00002910
+ adds r0, r5, r1
+ movs r1, #1
+ strh r1, [r0]
+ ldr r2, _08050AB8 @ =0x00002BF0
+ adds r0, r5, r2
+ strh r1, [r0]
+_08050A38:
+ ldr r0, [r7]
+ adds r4, r0, #0
+ adds r4, #0x68
+ movs r3, #0
+ ldrsh r0, [r4, r3]
+ cmp r0, #0x73
+ ble _08050A4E
+ ldr r0, _08050ABC @ =0x00002CA8
+ adds r1, r5, r0
+ movs r0, #1
+ strh r0, [r1]
+_08050A4E:
+ movs r1, #0
+ ldrsh r0, [r4, r1]
+ cmp r0, #0x82
+ ble _08050A64
+ ldr r2, _08050AC0 @ =0x00002D60
+ adds r0, r5, r2
+ movs r1, #1
+ strh r1, [r0]
+ ldr r3, _08050AC4 @ =0x00002E18
+ adds r0, r5, r3
+ strh r1, [r0]
+_08050A64:
+ movs r1, #0
+ ldrsh r0, [r4, r1]
+ cmp r0, #0xd8
+ ble _08050A90
+ ldr r2, _08050AC8 @ =0x00002B38
+ adds r0, r5, r2
+ movs r1, #1
+ strh r1, [r0]
+ ldr r3, _08050ACC @ =0x000029C8
+ adds r0, r5, r3
+ strh r1, [r0]
+ movs r4, #0xaa
+ lsls r4, r4, #6
+ adds r0, r5, r4
+ strh r1, [r0]
+ ldr r2, _08050AD0 @ =0x00000A28
+ adds r0, r5, r2
+ strh r1, [r0]
+ movs r3, #0xae
+ lsls r3, r3, #4
+ adds r0, r5, r3
+ strh r1, [r0]
+_08050A90:
+ ldrb r1, [r5, #4]
+ lsls r1, r1, #3
+ add r1, r8
+ ldr r0, [r1]
+ ldrh r1, [r1, #4]
+ movs r4, #0xbe
+ lsls r4, r4, #2
+ adds r2, r5, r4
+ bl sub_358
+ pop {r3}
+ mov r8, r3
+ pop {r4, r5, r6, r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08050AB0: .4byte 0x00002F88
+_08050AB4: .4byte 0x00002910
+_08050AB8: .4byte 0x00002BF0
+_08050ABC: .4byte 0x00002CA8
+_08050AC0: .4byte 0x00002D60
+_08050AC4: .4byte 0x00002E18
+_08050AC8: .4byte 0x00002B38
+_08050ACC: .4byte 0x000029C8
+_08050AD0: .4byte 0x00000A28
+
+ thumb_func_start sub_50AD4
+sub_50AD4: @ 0x08050AD4
+ push {r4, r5, r6, r7, lr}
+ movs r0, #0
+ ldr r3, _08050B5C @ =0x0200B0C0
+ ldr r7, _08050B60 @ =0x086B155C
+ adds r6, r3, #0
+ movs r5, #0xb8
+ movs r4, #0xbe
+ lsls r4, r4, #2
+ movs r2, #0
+_08050AE6:
+ lsls r1, r0, #0x10
+ asrs r1, r1, #0x10
+ adds r0, r1, #0
+ muls r0, r5, r0
+ adds r0, r0, r6
+ adds r0, r0, r4
+ strh r2, [r0]
+ adds r1, #1
+ lsls r1, r1, #0x10
+ lsrs r0, r1, #0x10
+ asrs r1, r1, #0x10
+ cmp r1, #0x56
+ ble _08050AE6
+ ldr r1, _08050B64 @ =0x000036B8
+ adds r0, r3, r1
+ movs r1, #1
+ strh r1, [r0]
+ movs r2, #0xc1
+ lsls r2, r2, #6
+ adds r0, r3, r2
+ strh r1, [r0]
+ ldr r4, _08050B68 @ =0x00002E18
+ adds r0, r3, r4
+ strh r1, [r0]
+ ldr r2, _08050B6C @ =0x00003490
+ adds r0, r3, r2
+ strh r1, [r0]
+ ldr r4, _08050B70 @ =0x00002858
+ adds r0, r3, r4
+ strh r1, [r0]
+ ldr r2, _08050B74 @ =0x00003828
+ adds r0, r3, r2
+ strh r1, [r0]
+ movs r4, #0xbe
+ lsls r4, r4, #2
+ adds r2, r3, r4
+ strh r1, [r2]
+ adds r4, #0xb8
+ adds r0, r3, r4
+ strh r1, [r0]
+ adds r4, #0xb8
+ adds r0, r3, r4
+ strh r1, [r0]
+ ldr r4, _08050B78 @ =0x000014F0
+ adds r0, r3, r4
+ strh r1, [r0]
+ ldr r4, _08050B7C @ =0x00004010
+ adds r0, r3, r4
+ strh r1, [r0]
+ ldrb r1, [r3, #4]
+ lsls r1, r1, #3
+ adds r1, r1, r7
+ ldr r0, [r1]
+ ldrh r1, [r1, #4]
+ bl sub_358
+ pop {r4, r5, r6, r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08050B5C: .4byte 0x0200B0C0
+_08050B60: .4byte 0x086B155C
+_08050B64: .4byte 0x000036B8
+_08050B68: .4byte 0x00002E18
+_08050B6C: .4byte 0x00003490
+_08050B70: .4byte 0x00002858
+_08050B74: .4byte 0x00003828
+_08050B78: .4byte 0x000014F0
+_08050B7C: .4byte 0x00004010
+
+ thumb_func_start sub_50B80
+sub_50B80: @ 0x08050B80
+ push {r4, r5, r6, r7, lr}
+ mov r7, sl
+ mov r6, sb
+ mov r5, r8
+ push {r5, r6, r7}
+ movs r0, #0x37
+ ldr r1, _08050CF0 @ =0x0200B0C0
+ mov sb, r1
+ mov r5, sb
+ movs r4, #0xb8
+ movs r3, #0xbe
+ lsls r3, r3, #2
+ movs r2, #0
+_08050B9A:
+ lsls r1, r0, #0x10
+ asrs r1, r1, #0x10
+ adds r0, r1, #0
+ muls r0, r4, r0
+ adds r0, r0, r5
+ adds r0, r0, r3
+ strh r2, [r0]
+ adds r1, #1
+ lsls r1, r1, #0x10
+ lsrs r0, r1, #0x10
+ asrs r1, r1, #0x10
+ cmp r1, #0x46
+ ble _08050B9A
+ mov r5, sb
+ ldr r2, _08050CF4 @ =0x00002858
+ adds r7, r5, r2
+ movs r0, #0
+ strh r0, [r7]
+ ldr r1, _08050CF8 @ =0x000036B8
+ adds r1, r1, r5
+ mov r8, r1
+ strh r0, [r1]
+ ldr r2, _08050CFC @ =0x0200C668
+ strh r0, [r2]
+ ldr r1, _08050D00 @ =0x000027A0
+ adds r6, r5, r1
+ strh r0, [r6]
+ ldr r2, _08050D04 @ =0x0200EA58
+ strh r0, [r2]
+ ldr r1, _08050D08 @ =0x000038E0
+ adds r1, r1, r5
+ mov sl, r1
+ strh r0, [r1]
+ ldr r2, _08050D0C @ =0x0200BAE8
+ strh r0, [r2]
+ ldr r1, _08050D10 @ =0x0200BBA0
+ strh r0, [r1]
+ ldr r2, _08050D14 @ =0x020314E0
+ ldr r4, [r2]
+ ldr r0, [r5, #0x4c]
+ movs r1, #0x19
+ bl sub_558B0
+ movs r2, #0xde
+ lsls r2, r2, #1
+ adds r1, r4, r2
+ strh r0, [r1]
+ adds r4, #0x68
+ movs r1, #0
+ ldrsh r0, [r4, r1]
+ cmp r0, #0x59
+ bgt _08050C08
+ movs r0, #1
+ strh r0, [r7]
+ strh r0, [r6]
+_08050C08:
+ ldr r2, _08050D14 @ =0x020314E0
+ ldr r0, [r2]
+ adds r4, r0, #0
+ adds r4, #0x68
+ movs r1, #0
+ ldrsh r0, [r4, r1]
+ cmp r0, #0xdb
+ bgt _08050C1E
+ movs r0, #1
+ mov r2, r8
+ strh r0, [r2]
+_08050C1E:
+ movs r1, #0
+ ldrsh r0, [r4, r1]
+ cmp r0, #0x95
+ bgt _08050C34
+ ldr r2, _08050D18 @ =0x00002E18
+ adds r0, r5, r2
+ movs r1, #1
+ strh r1, [r0]
+ ldr r2, _08050D1C @ =0x00003490
+ adds r0, r5, r2
+ strh r1, [r0]
+_08050C34:
+ movs r1, #0
+ ldrsh r0, [r4, r1]
+ cmp r0, #0xc3
+ bgt _08050C4A
+ movs r2, #0xc1
+ lsls r2, r2, #6
+ adds r1, r5, r2
+ movs r0, #1
+ strh r0, [r1]
+ mov r1, sl
+ strh r0, [r1]
+_08050C4A:
+ movs r2, #0
+ ldrsh r0, [r4, r2]
+ cmp r0, #0xc9
+ bgt _08050C70
+ ldr r1, _08050D20 @ =0x00002ED0
+ adds r0, r5, r1
+ movs r1, #1
+ strh r1, [r0]
+ ldr r2, _08050D24 @ =0x00002CA8
+ adds r0, r5, r2
+ strh r1, [r0]
+ ldr r2, _08050D28 @ =0x00002F88
+ adds r0, r5, r2
+ strh r1, [r0]
+ ldr r2, _08050D2C @ =0x00002D60
+ adds r0, r5, r2
+ strh r1, [r0]
+ ldr r0, _08050D04 @ =0x0200EA58
+ strh r1, [r0]
+_08050C70:
+ movs r1, #0
+ ldrsh r0, [r4, r1]
+ cmp r0, #0x76
+ ble _08050CA2
+ ldr r2, _08050D30 @ =0x00003548
+ adds r1, r5, r2
+ movs r0, #1
+ strh r0, [r1]
+ ldr r1, _08050CFC @ =0x0200C668
+ strh r0, [r1]
+ ldr r2, _08050D34 @ =0x000030F8
+ adds r1, r5, r2
+ strh r0, [r1]
+ ldr r2, _08050D38 @ =0x000033D8
+ adds r1, r5, r2
+ strh r0, [r1]
+ ldr r2, _08050D3C @ =0x000031B0
+ adds r1, r5, r2
+ strh r0, [r1]
+ adds r2, #0xb8
+ adds r1, r5, r2
+ strh r0, [r1]
+ adds r2, #0xb8
+ adds r1, r5, r2
+ strh r0, [r1]
+_08050CA2:
+ movs r1, #0
+ ldrsh r0, [r4, r1]
+ cmp r0, #0xd8
+ ble _08050CC8
+ ldr r2, _08050D40 @ =0x00002BF0
+ adds r0, r5, r2
+ movs r1, #1
+ strh r1, [r0]
+ movs r2, #0xaa
+ lsls r2, r2, #6
+ adds r0, r5, r2
+ strh r1, [r0]
+ adds r2, #0xb8
+ adds r0, r5, r2
+ strh r1, [r0]
+ ldr r0, _08050D0C @ =0x0200BAE8
+ strh r1, [r0]
+ ldr r2, _08050D10 @ =0x0200BBA0
+ strh r1, [r2]
+_08050CC8:
+ mov r0, sb
+ ldrb r1, [r0, #4]
+ lsls r1, r1, #3
+ ldr r2, _08050D44 @ =0x086B155C
+ adds r1, r1, r2
+ ldr r0, [r1]
+ ldrh r1, [r1, #4]
+ movs r2, #0xbe
+ lsls r2, r2, #2
+ add r2, sb
+ bl sub_358
+ pop {r3, r4, r5}
+ mov r8, r3
+ mov sb, r4
+ mov sl, r5
+ pop {r4, r5, r6, r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08050CF0: .4byte 0x0200B0C0
+_08050CF4: .4byte 0x00002858
+_08050CF8: .4byte 0x000036B8
+_08050CFC: .4byte 0x0200C668
+_08050D00: .4byte 0x000027A0
+_08050D04: .4byte 0x0200EA58
+_08050D08: .4byte 0x000038E0
+_08050D0C: .4byte 0x0200BAE8
+_08050D10: .4byte 0x0200BBA0
+_08050D14: .4byte 0x020314E0
+_08050D18: .4byte 0x00002E18
+_08050D1C: .4byte 0x00003490
+_08050D20: .4byte 0x00002ED0
+_08050D24: .4byte 0x00002CA8
+_08050D28: .4byte 0x00002F88
+_08050D2C: .4byte 0x00002D60
+_08050D30: .4byte 0x00003548
+_08050D34: .4byte 0x000030F8
+_08050D38: .4byte 0x000033D8
+_08050D3C: .4byte 0x000031B0
+_08050D40: .4byte 0x00002BF0
+_08050D44: .4byte 0x086B155C
+
+ thumb_func_start sub_50D48
+sub_50D48: @ 0x08050D48
+ push {r4, r5, r6, r7, lr}
+ movs r1, #0
+ ldr r6, _08050D74 @ =0x0200B0C0
+ ldr r0, _08050D78 @ =0x086B155C
+ mov ip, r0
+ adds r5, r6, #0
+ movs r4, #0xb8
+ movs r2, #0xbe
+ lsls r2, r2, #2
+ movs r7, #1
+_08050D5C:
+ lsls r0, r1, #0x10
+ asrs r1, r0, #0x10
+ adds r3, r0, #0
+ cmp r1, #4
+ bgt _08050D7C
+ adds r0, r1, #0
+ muls r0, r4, r0
+ adds r0, r0, r5
+ adds r0, r0, r2
+ strh r7, [r0]
+ b _08050D88
+ .align 2, 0
+_08050D74: .4byte 0x0200B0C0
+_08050D78: .4byte 0x086B155C
+_08050D7C:
+ adds r0, r1, #0
+ muls r0, r4, r0
+ adds r0, r0, r5
+ adds r0, r0, r2
+ movs r1, #0
+ strh r1, [r0]
+_08050D88:
+ movs r1, #0x80
+ lsls r1, r1, #9
+ adds r0, r3, r1
+ lsrs r1, r0, #0x10
+ asrs r0, r0, #0x10
+ cmp r0, #0xe
+ ble _08050D5C
+ ldr r0, [r6, #0x44]
+ ldr r1, [r0]
+ movs r0, #1
+ strh r0, [r1]
+ ldrb r1, [r6, #4]
+ lsls r1, r1, #3
+ add r1, ip
+ ldr r0, [r1]
+ ldrh r1, [r1, #4]
+ movs r3, #0xbe
+ lsls r3, r3, #2
+ adds r2, r6, r3
+ bl sub_358
+ pop {r4, r5, r6, r7}
+ pop {r0}
+ bx r0
+
+ thumb_func_start sub_50DB8
+sub_50DB8: @ 0x08050DB8
+ push {lr}
+ ldr r0, _08050DD8 @ =0x086B155C
+ ldr r2, _08050DDC @ =0x0200B0C0
+ ldrb r1, [r2, #4]
+ lsls r1, r1, #3
+ adds r1, r1, r0
+ ldr r0, [r1]
+ ldrh r1, [r1, #4]
+ movs r3, #0xbe
+ lsls r3, r3, #2
+ adds r2, r2, r3
+ bl sub_358
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08050DD8: .4byte 0x086B155C
+_08050DDC: .4byte 0x0200B0C0
+
+ thumb_func_start sub_50DE0
+sub_50DE0: @ 0x08050DE0
+ push {r4, r5, r6, r7, lr}
+ movs r1, #0
+ ldr r2, _08050E0C @ =0x0200B0C0
+ ldr r0, _08050E10 @ =0x086B155C
+ mov ip, r0
+ adds r6, r2, #0
+ movs r5, #0xb8
+ movs r4, #0xbe
+ lsls r4, r4, #2
+ movs r7, #1
+_08050DF4:
+ lsls r0, r1, #0x10
+ asrs r1, r0, #0x10
+ adds r3, r0, #0
+ cmp r1, #4
+ bgt _08050E14
+ adds r0, r1, #0
+ muls r0, r5, r0
+ adds r0, r0, r6
+ adds r0, r0, r4
+ strh r7, [r0]
+ b _08050E20
+ .align 2, 0
+_08050E0C: .4byte 0x0200B0C0
+_08050E10: .4byte 0x086B155C
+_08050E14:
+ adds r0, r1, #0
+ muls r0, r5, r0
+ adds r0, r0, r6
+ adds r0, r0, r4
+ movs r1, #0
+ strh r1, [r0]
+_08050E20:
+ movs r1, #0x80
+ lsls r1, r1, #9
+ adds r0, r3, r1
+ lsrs r1, r0, #0x10
+ asrs r0, r0, #0x10
+ cmp r0, #0x20
+ ble _08050DF4
+ ldr r0, [r2, #0x44]
+ ldr r1, [r0]
+ movs r0, #1
+ strh r0, [r1]
+ movs r3, #0x9c
+ lsls r3, r3, #5
+ adds r1, r2, r3
+ strh r0, [r1]
+ movs r3, #0x97
+ lsls r3, r3, #4
+ adds r1, r2, r3
+ strh r0, [r1]
+ ldr r3, _08050EE8 @ =0x00001438
+ adds r1, r2, r3
+ strh r0, [r1]
+ ldr r3, _08050EEC @ =0x00000E78
+ adds r1, r2, r3
+ strh r0, [r1]
+ adds r3, #0xb8
+ adds r1, r2, r3
+ strh r0, [r1]
+ movs r3, #0x80
+ lsls r3, r3, #4
+ adds r1, r2, r3
+ strh r0, [r1]
+ ldr r3, _08050EF0 @ =0x00000A28
+ adds r1, r2, r3
+ strh r0, [r1]
+ adds r3, #0xb8
+ adds r1, r2, r3
+ strh r0, [r1]
+ adds r3, #0xb8
+ adds r1, r2, r3
+ strh r0, [r1]
+ adds r3, #0xb8
+ adds r1, r2, r3
+ strh r0, [r1]
+ adds r3, #0xb8
+ adds r1, r2, r3
+ strh r0, [r1]
+ adds r3, #0xb8
+ adds r1, r2, r3
+ strh r0, [r1]
+ ldr r3, _08050EF4 @ =0x00000FE8
+ adds r1, r2, r3
+ strh r0, [r1]
+ adds r3, #0xb8
+ adds r1, r2, r3
+ strh r0, [r1]
+ adds r3, #0xb8
+ adds r1, r2, r3
+ strh r0, [r1]
+ adds r3, #0xb8
+ adds r1, r2, r3
+ strh r0, [r1]
+ ldr r3, _08050EF8 @ =0x000014F0
+ adds r1, r2, r3
+ strh r0, [r1]
+ adds r3, #0xb8
+ adds r1, r2, r3
+ strh r0, [r1]
+ adds r3, #0xb8
+ adds r1, r2, r3
+ strh r0, [r1]
+ adds r3, #0xb8
+ adds r1, r2, r3
+ strh r0, [r1]
+ movs r3, #0xca
+ lsls r3, r3, #5
+ adds r1, r2, r3
+ strh r0, [r1]
+ adds r3, #0xb8
+ adds r1, r2, r3
+ strh r0, [r1]
+ ldr r3, _08050EFC @ =0x000017D0
+ adds r1, r2, r3
+ strh r0, [r1]
+ adds r3, #0xb8
+ adds r1, r2, r3
+ strh r0, [r1]
+ ldrb r1, [r2, #4]
+ lsls r1, r1, #3
+ add r1, ip
+ ldr r0, [r1]
+ ldrh r1, [r1, #4]
+ movs r3, #0xbe
+ lsls r3, r3, #2
+ adds r2, r2, r3
+ bl sub_358
+ pop {r4, r5, r6, r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08050EE8: .4byte 0x00001438
+_08050EEC: .4byte 0x00000E78
+_08050EF0: .4byte 0x00000A28
+_08050EF4: .4byte 0x00000FE8
+_08050EF8: .4byte 0x000014F0
+_08050EFC: .4byte 0x000017D0
+
+ thumb_func_start nullsub_20
+nullsub_20: @ 0x08050F00
+ bx lr
+
+ thumb_func_start sub_50F04
+sub_50F04: @ 0x08050F04
+ push {r4, r5, r6, r7, lr}
+ movs r1, #0
+ ldr r2, _08050F30 @ =0x0200B0C0
+ ldr r0, _08050F34 @ =0x086B155C
+ mov ip, r0
+ adds r6, r2, #0
+ movs r5, #0xb8
+ movs r4, #0xbe
+ lsls r4, r4, #2
+ movs r7, #1
+_08050F18:
+ lsls r0, r1, #0x10
+ asrs r1, r0, #0x10
+ adds r3, r0, #0
+ cmp r1, #4
+ bgt _08050F38
+ adds r0, r1, #0
+ muls r0, r5, r0
+ adds r0, r0, r6
+ adds r0, r0, r4
+ strh r7, [r0]
+ b _08050F44
+ .align 2, 0
+_08050F30: .4byte 0x0200B0C0
+_08050F34: .4byte 0x086B155C
+_08050F38:
+ adds r0, r1, #0
+ muls r0, r5, r0
+ adds r0, r0, r6
+ adds r0, r0, r4
+ movs r1, #0
+ strh r1, [r0]
+_08050F44:
+ movs r1, #0x80
+ lsls r1, r1, #9
+ adds r0, r3, r1
+ lsrs r1, r0, #0x10
+ asrs r0, r0, #0x10
+ cmp r0, #0x1a
+ ble _08050F18
+ ldr r0, [r2, #0x44]
+ ldr r0, [r0]
+ movs r1, #1
+ strh r1, [r0]
+ movs r3, #0xae
+ lsls r3, r3, #4
+ adds r0, r2, r3
+ strh r1, [r0]
+ adds r3, #0xb8
+ adds r0, r2, r3
+ strh r1, [r0]
+ adds r3, #0xb8
+ adds r0, r2, r3
+ strh r1, [r0]
+ adds r3, #0xb8
+ adds r0, r2, r3
+ strh r1, [r0]
+ ldr r3, _08050FA8 @ =0x00001210
+ adds r0, r2, r3
+ strh r1, [r0]
+ adds r3, #0xb8
+ adds r0, r2, r3
+ strh r1, [r0]
+ adds r3, #0xb8
+ adds r0, r2, r3
+ strh r1, [r0]
+ movs r3, #0xdc
+ lsls r3, r3, #4
+ adds r0, r2, r3
+ strh r1, [r0]
+ ldrb r1, [r2, #4]
+ lsls r1, r1, #3
+ add r1, ip
+ ldr r0, [r1]
+ ldrh r1, [r1, #4]
+ movs r3, #0xbe
+ lsls r3, r3, #2
+ adds r2, r2, r3
+ bl sub_358
+ pop {r4, r5, r6, r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08050FA8: .4byte 0x00001210
+
+ thumb_func_start sub_50FAC
+sub_50FAC: @ 0x08050FAC
+ push {lr}
+ ldr r0, _08050FCC @ =0x086B155C
+ ldr r2, _08050FD0 @ =0x0200B0C0
+ ldrb r1, [r2, #4]
+ lsls r1, r1, #3
+ adds r1, r1, r0
+ ldr r0, [r1]
+ ldrh r1, [r1, #4]
+ movs r3, #0xbe
+ lsls r3, r3, #2
+ adds r2, r2, r3
+ bl sub_358
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08050FCC: .4byte 0x086B155C
+_08050FD0: .4byte 0x0200B0C0
+
+ thumb_func_start sub_50FD4
+sub_50FD4: @ 0x08050FD4
+ push {r4, r5, r6, r7, lr}
+ movs r1, #0
+ ldr r2, _08051000 @ =0x0200B0C0
+ ldr r0, _08051004 @ =0x086B155C
+ mov ip, r0
+ adds r6, r2, #0
+ movs r5, #0xb8
+ movs r4, #0xbe
+ lsls r4, r4, #2
+ movs r7, #1
+_08050FE8:
+ lsls r0, r1, #0x10
+ asrs r1, r0, #0x10
+ adds r3, r0, #0
+ cmp r1, #4
+ bgt _08051008
+ adds r0, r1, #0
+ muls r0, r5, r0
+ adds r0, r0, r6
+ adds r0, r0, r4
+ strh r7, [r0]
+ b _08051014
+ .align 2, 0
+_08051000: .4byte 0x0200B0C0
+_08051004: .4byte 0x086B155C
+_08051008:
+ adds r0, r1, #0
+ muls r0, r5, r0
+ adds r0, r0, r6
+ adds r0, r0, r4
+ movs r1, #0
+ strh r1, [r0]
+_08051014:
+ movs r1, #0x80
+ lsls r1, r1, #9
+ adds r0, r3, r1
+ lsrs r1, r0, #0x10
+ asrs r0, r0, #0x10
+ cmp r0, #0x1f
+ ble _08050FE8
+ ldr r0, [r2, #0x44]
+ ldr r0, [r0]
+ movs r1, #1
+ strh r1, [r0]
+ movs r3, #0xae
+ lsls r3, r3, #4
+ adds r0, r2, r3
+ strh r1, [r0]
+ adds r3, #0xb8
+ adds r0, r2, r3
+ strh r1, [r0]
+ adds r3, #0xb8
+ adds r0, r2, r3
+ strh r1, [r0]
+ adds r3, #0xb8
+ adds r0, r2, r3
+ strh r1, [r0]
+ ldr r3, _08051064 @ =0x000017D0
+ adds r0, r2, r3
+ strh r1, [r0]
+ ldrb r1, [r2, #4]
+ lsls r1, r1, #3
+ add r1, ip
+ ldr r0, [r1]
+ ldrh r1, [r1, #4]
+ movs r3, #0xbe
+ lsls r3, r3, #2
+ adds r2, r2, r3
+ bl sub_358
+ pop {r4, r5, r6, r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08051064: .4byte 0x000017D0
+
+ thumb_func_start sub_51068
+sub_51068: @ 0x08051068
+ push {lr}
+ ldr r0, _08051088 @ =0x086B155C
+ ldr r2, _0805108C @ =0x0200B0C0
+ ldrb r1, [r2, #4]
+ lsls r1, r1, #3
+ adds r1, r1, r0
+ ldr r0, [r1]
+ ldrh r1, [r1, #4]
+ movs r3, #0xbe
+ lsls r3, r3, #2
+ adds r2, r2, r3
+ bl sub_358
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08051088: .4byte 0x086B155C
+_0805108C: .4byte 0x0200B0C0
+
+ thumb_func_start sub_51090
+sub_51090: @ 0x08051090
+ push {r4, r5, r6, r7, lr}
+ movs r1, #0
+ ldr r2, _080510BC @ =0x0200B0C0
+ ldr r0, _080510C0 @ =0x086B155C
+ mov ip, r0
+ adds r6, r2, #0
+ movs r5, #0xb8
+ movs r4, #0xbe
+ lsls r4, r4, #2
+ movs r7, #1
+_080510A4:
+ lsls r0, r1, #0x10
+ asrs r1, r0, #0x10
+ adds r3, r0, #0
+ cmp r1, #4
+ bgt _080510C4
+ adds r0, r1, #0
+ muls r0, r5, r0
+ adds r0, r0, r6
+ adds r0, r0, r4
+ strh r7, [r0]
+ b _080510D0
+ .align 2, 0
+_080510BC: .4byte 0x0200B0C0
+_080510C0: .4byte 0x086B155C
+_080510C4:
+ adds r0, r1, #0
+ muls r0, r5, r0
+ adds r0, r0, r6
+ adds r0, r0, r4
+ movs r1, #0
+ strh r1, [r0]
+_080510D0:
+ movs r1, #0x80
+ lsls r1, r1, #9
+ adds r0, r3, r1
+ lsrs r1, r0, #0x10
+ asrs r0, r0, #0x10
+ cmp r0, #0x2d
+ ble _080510A4
+ ldr r0, [r2, #0x44]
+ ldr r0, [r0]
+ movs r1, #1
+ strh r1, [r0]
+ ldr r3, _08051120 @ =0x00002128
+ adds r0, r2, r3
+ strh r1, [r0]
+ movs r3, #0xae
+ lsls r3, r3, #4
+ adds r0, r2, r3
+ strh r1, [r0]
+ adds r3, #0xb8
+ adds r0, r2, r3
+ strh r1, [r0]
+ adds r3, #0xb8
+ adds r0, r2, r3
+ strh r1, [r0]
+ ldr r3, _08051124 @ =0x00001210
+ adds r0, r2, r3
+ strh r1, [r0]
+ ldrb r1, [r2, #4]
+ lsls r1, r1, #3
+ add r1, ip
+ ldr r0, [r1]
+ ldrh r1, [r1, #4]
+ movs r3, #0xbe
+ lsls r3, r3, #2
+ adds r2, r2, r3
+ bl sub_358
+ pop {r4, r5, r6, r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08051120: .4byte 0x00002128
+_08051124: .4byte 0x00001210
+
+ thumb_func_start sub_51128
+sub_51128: @ 0x08051128
+ push {lr}
+ ldr r0, _08051148 @ =0x086B155C
+ ldr r2, _0805114C @ =0x0200B0C0
+ ldrb r1, [r2, #4]
+ lsls r1, r1, #3
+ adds r1, r1, r0
+ ldr r0, [r1]
+ ldrh r1, [r1, #4]
+ movs r3, #0xbe
+ lsls r3, r3, #2
+ adds r2, r2, r3
+ bl sub_358
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08051148: .4byte 0x086B155C
+_0805114C: .4byte 0x0200B0C0
+
+ thumb_func_start sub_51150
+sub_51150: @ 0x08051150
+ push {r4, r5, r6, r7, lr}
+ movs r1, #0
+ ldr r2, _0805117C @ =0x0200B0C0
+ ldr r0, _08051180 @ =0x086B155C
+ mov ip, r0
+ adds r6, r2, #0
+ movs r5, #0xb8
+ movs r4, #0xbe
+ lsls r4, r4, #2
+ movs r7, #1
+_08051164:
+ lsls r0, r1, #0x10
+ asrs r1, r0, #0x10
+ adds r3, r0, #0
+ cmp r1, #4
+ bgt _08051184
+ adds r0, r1, #0
+ muls r0, r5, r0
+ adds r0, r0, r6
+ adds r0, r0, r4
+ strh r7, [r0]
+ b _08051190
+ .align 2, 0
+_0805117C: .4byte 0x0200B0C0
+_08051180: .4byte 0x086B155C
+_08051184:
+ adds r0, r1, #0
+ muls r0, r5, r0
+ adds r0, r0, r6
+ adds r0, r0, r4
+ movs r1, #0
+ strh r1, [r0]
+_08051190:
+ movs r1, #0x80
+ lsls r1, r1, #9
+ adds r0, r3, r1
+ lsrs r1, r0, #0x10
+ asrs r0, r0, #0x10
+ cmp r0, #0x16
+ ble _08051164
+ ldr r0, [r2, #0x44]
+ ldr r0, [r0]
+ movs r1, #1
+ strh r1, [r0]
+ ldr r3, _080511EC @ =0x00000FE8
+ adds r0, r2, r3
+ strh r1, [r0]
+ ldr r3, _080511F0 @ =0x00001210
+ adds r0, r2, r3
+ strh r1, [r0]
+ adds r3, #0xb8
+ adds r0, r2, r3
+ strh r1, [r0]
+ ldr r3, _080511F4 @ =0x00000D08
+ adds r0, r2, r3
+ strh r1, [r0]
+ adds r3, #0xb8
+ adds r0, r2, r3
+ strh r1, [r0]
+ adds r3, #0xb8
+ adds r0, r2, r3
+ strh r1, [r0]
+ adds r3, #0xb8
+ adds r0, r2, r3
+ strh r1, [r0]
+ ldrb r1, [r2, #4]
+ lsls r1, r1, #3
+ add r1, ip
+ ldr r0, [r1]
+ ldrh r1, [r1, #4]
+ movs r3, #0xbe
+ lsls r3, r3, #2
+ adds r2, r2, r3
+ bl sub_358
+ pop {r4, r5, r6, r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080511EC: .4byte 0x00000FE8
+_080511F0: .4byte 0x00001210
+_080511F4: .4byte 0x00000D08
+
+ thumb_func_start sub_511F8
+sub_511F8: @ 0x080511F8
+ push {lr}
+ ldr r0, _08051218 @ =0x086B155C
+ ldr r2, _0805121C @ =0x0200B0C0
+ ldrb r1, [r2, #4]
+ lsls r1, r1, #3
+ adds r1, r1, r0
+ ldr r0, [r1]
+ ldrh r1, [r1, #4]
+ movs r3, #0xbe
+ lsls r3, r3, #2
+ adds r2, r2, r3
+ bl sub_358
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08051218: .4byte 0x086B155C
+_0805121C: .4byte 0x0200B0C0
+
+ thumb_func_start sub_51220
+sub_51220: @ 0x08051220
+ push {lr}
+ ldr r1, _08051238 @ =0x08527F08
+ ldr r0, _0805123C @ =0x0200B0C0
+ ldrb r0, [r0, #3]
+ lsls r0, r0, #2
+ adds r0, r0, r1
+ ldr r0, [r0]
+ bl sub_55694
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08051238: .4byte 0x08527F08
+_0805123C: .4byte 0x0200B0C0
+
+ thumb_func_start sub_51240
+sub_51240: @ 0x08051240
+ push {r4, r5, r6, r7, lr}
+ mov r7, sb
+ mov r6, r8
+ push {r6, r7}
+ sub sp, #4
+ bl sub_438
+ movs r2, #0x80
+ lsls r2, r2, #0x13
+ movs r1, #0x84
+ lsls r1, r1, #5
+ adds r0, r1, #0
+ strh r0, [r2]
+ ldr r1, _08051358 @ =0x04000008
+ movs r0, #4
+ strh r0, [r1]
+ ldrh r0, [r2]
+ movs r3, #0x80
+ lsls r3, r3, #1
+ adds r1, r3, #0
+ orrs r0, r1
+ strh r0, [r2]
+ ldr r1, _0805135C @ =0x0400000A
+ adds r3, #9
+ adds r0, r3, #0
+ strh r0, [r1]
+ ldrh r0, [r2]
+ adds r3, #0xf7
+ adds r1, r3, #0
+ orrs r0, r1
+ strh r0, [r2]
+ ldr r0, _08051360 @ =0x0200B0C0
+ mov sb, r0
+ ldrh r0, [r2]
+ mov r1, sb
+ strh r0, [r1, #0x16]
+ ldr r5, _08051364 @ =0x040000D4
+ ldr r0, _08051368 @ =0x0852B468
+ str r0, [r5]
+ movs r0, #0xa0
+ lsls r0, r0, #0x13
+ str r0, [r5, #4]
+ ldr r0, _0805136C @ =0x80000100
+ str r0, [r5, #8]
+ ldr r0, [r5, #8]
+ ldr r0, _08051370 @ =0x08528828
+ str r0, [r5]
+ ldr r0, _08051374 @ =0x06004000
+ str r0, [r5, #4]
+ ldr r0, _08051378 @ =0x80000C00
+ str r0, [r5, #8]
+ ldr r0, [r5, #8]
+ ldr r0, _0805137C @ =0x0852A848
+ str r0, [r5]
+ ldr r0, _08051380 @ =0x06008000
+ str r0, [r5, #4]
+ ldr r0, _08051384 @ =0x80000600
+ str r0, [r5, #8]
+ ldr r0, [r5, #8]
+ ldr r0, _08051388 @ =0x08528028
+ str r0, [r5]
+ ldr r7, _0805138C @ =0x03005C00
+ str r7, [r5, #4]
+ ldr r6, _08051390 @ =0x80000400
+ str r6, [r5, #8]
+ ldr r0, [r5, #8]
+ str r7, [r5]
+ movs r3, #0xc0
+ lsls r3, r3, #0x13
+ mov r8, r3
+ str r3, [r5, #4]
+ str r6, [r5, #8]
+ ldr r0, [r5, #8]
+ ldr r0, _08051394 @ =0x02019C0C
+ ldr r0, [r0]
+ cmp r0, #1
+ beq _080512F8
+ movs r4, #2
+ str r4, [sp]
+ movs r0, #0x12
+ movs r1, #4
+ movs r2, #2
+ movs r3, #1
+ bl sub_1068C
+ str r4, [sp]
+ movs r0, #0x12
+ movs r1, #5
+ movs r2, #3
+ movs r3, #2
+ bl sub_1068C
+_080512F8:
+ str r7, [r5]
+ mov r0, r8
+ str r0, [r5, #4]
+ str r6, [r5, #8]
+ ldr r0, [r5, #8]
+ ldr r0, _08051398 @ =0x0852A048
+ str r0, [r5]
+ ldr r0, _0805139C @ =0x06000800
+ str r0, [r5, #4]
+ str r6, [r5, #8]
+ ldr r0, [r5, #8]
+ ldr r0, _080513A0 @ =0x0852B668
+ str r0, [r5]
+ ldr r0, _080513A4 @ =0x05000200
+ str r0, [r5, #4]
+ ldr r0, _080513A8 @ =0x80000030
+ str r0, [r5, #8]
+ ldr r0, [r5, #8]
+ ldr r0, _080513AC @ =0x0852B868
+ str r0, [r5]
+ ldr r0, _080513B0 @ =0x06010000
+ str r0, [r5, #4]
+ ldr r0, _080513B4 @ =0x80001010
+ str r0, [r5, #8]
+ ldr r0, [r5, #8]
+ bl sub_513B8
+ bl sub_51C9C
+ bl sub_53EDC
+ bl sub_CBC
+ bl sub_24C
+ bl sub_10C0
+ mov r1, sb
+ ldrb r0, [r1, #3]
+ adds r0, #1
+ strb r0, [r1, #3]
+ add sp, #4
+ pop {r3, r4}
+ mov r8, r3
+ mov sb, r4
+ pop {r4, r5, r6, r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08051358: .4byte 0x04000008
+_0805135C: .4byte 0x0400000A
+_08051360: .4byte 0x0200B0C0
+_08051364: .4byte 0x040000D4
+_08051368: .4byte 0x0852B468
+_0805136C: .4byte 0x80000100
+_08051370: .4byte 0x08528828
+_08051374: .4byte 0x06004000
+_08051378: .4byte 0x80000C00
+_0805137C: .4byte 0x0852A848
+_08051380: .4byte 0x06008000
+_08051384: .4byte 0x80000600
+_08051388: .4byte 0x08528028
+_0805138C: .4byte 0x03005C00
+_08051390: .4byte 0x80000400
+_08051394: .4byte 0x02019C0C
+_08051398: .4byte 0x0852A048
+_0805139C: .4byte 0x06000800
+_080513A0: .4byte 0x0852B668
+_080513A4: .4byte 0x05000200
+_080513A8: .4byte 0x80000030
+_080513AC: .4byte 0x0852B868
+_080513B0: .4byte 0x06010000
+_080513B4: .4byte 0x80001010
+
+ thumb_func_start sub_513B8
+sub_513B8: @ 0x080513B8
+ push {r4, r5, r6, lr}
+ ldr r0, _08051468 @ =0x02002920
+ mov ip, r0
+ movs r2, #0
+ movs r1, #0
+ strh r1, [r0]
+ strh r1, [r0, #2]
+ strh r1, [r0, #4]
+ movs r3, #1
+ movs r0, #1
+ mov r4, ip
+ strh r0, [r4, #6]
+ strh r1, [r4, #8]
+ strh r1, [r4, #0xa]
+ ldr r0, _0805146C @ =0x0200B134
+ adds r0, #0xcf
+ ldrb r0, [r0]
+ strh r0, [r4, #0xc]
+ strh r1, [r4, #0xe]
+ strh r1, [r4, #0x10]
+ strb r2, [r4, #0x12]
+ strb r2, [r4, #0x13]
+ strb r3, [r4, #0x14]
+ strb r2, [r4, #0x15]
+ strb r2, [r4, #0x16]
+ strb r3, [r4, #0x17]
+ strh r1, [r4, #0x18]
+ mov r2, ip
+ movs r3, #0
+ movs r1, #5
+ adds r0, r2, #0
+ adds r0, #0x1f
+_080513F8:
+ strb r3, [r0]
+ subs r0, #1
+ subs r1, #1
+ cmp r1, #0
+ bge _080513F8
+ movs r0, #0
+ strh r0, [r2, #0x20]
+ strh r0, [r2, #0x22]
+ movs r3, #0xa
+ movs r1, #1
+ adds r0, r2, #0
+ adds r0, #0x26
+_08051410:
+ strh r3, [r0]
+ subs r0, #2
+ subs r1, #1
+ cmp r1, #0
+ bge _08051410
+ movs r0, #0
+ strh r0, [r2, #0x28]
+ movs r1, #0
+ ldr r6, _08051470 @ =0x02031AF0
+ ldr r5, _08051474 @ =0x08527ED6
+_08051424:
+ adds r4, r1, #1
+ lsls r0, r1, #2
+ adds r0, r0, r1
+ lsls r0, r0, #1
+ adds r2, r0, r5
+ adds r1, r0, r6
+ movs r3, #9
+_08051432:
+ ldrb r0, [r2]
+ strb r0, [r1]
+ adds r2, #1
+ adds r1, #1
+ subs r3, #1
+ cmp r3, #0
+ bge _08051432
+ adds r1, r4, #0
+ cmp r1, #3
+ ble _08051424
+ bl sub_52528
+ ldr r0, _08051478 @ =0x02019C0C
+ ldr r4, [r0]
+ cmp r4, #1
+ bne _0805147C
+ ldr r3, _08051468 @ =0x02002920
+ ldr r0, _0805146C @ =0x0200B134
+ adds r0, #0xcd
+ ldrb r1, [r0]
+ adds r2, r3, #0
+ adds r2, #0x2a
+ strb r1, [r2]
+ strb r4, [r0]
+ adds r2, r3, #0
+ b _0805148C
+ .align 2, 0
+_08051468: .4byte 0x02002920
+_0805146C: .4byte 0x0200B134
+_08051470: .4byte 0x02031AF0
+_08051474: .4byte 0x08527ED6
+_08051478: .4byte 0x02019C0C
+_0805147C:
+ ldr r2, _080514B0 @ =0x02002920
+ adds r0, r2, #0
+ adds r0, #0x2a
+ movs r1, #0
+ strb r1, [r0]
+ ldr r0, _080514B4 @ =0x0200B134
+ adds r0, #0xcd
+ strb r1, [r0]
+_0805148C:
+ adds r1, r2, #0
+ adds r1, #0x2e
+ movs r0, #0
+ strb r0, [r1]
+ subs r1, #3
+ strb r0, [r1]
+ adds r1, #1
+ strb r0, [r1]
+ adds r1, #1
+ strb r0, [r1]
+ adds r1, #2
+ strb r0, [r1]
+ adds r1, #1
+ strb r0, [r1]
+ pop {r4, r5, r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080514B0: .4byte 0x02002920
+_080514B4: .4byte 0x0200B134
+
+ thumb_func_start sub_514B8
+sub_514B8: @ 0x080514B8
+ push {r4, r5, r6, r7, lr}
+ bl sub_51C9C
+ ldr r0, _080514D4 @ =0x02002920
+ movs r1, #0
+ ldrsh r0, [r0, r1]
+ cmp r0, #4
+ bls _080514CA
+ b _08051B98
+_080514CA:
+ lsls r0, r0, #2
+ ldr r1, _080514D8 @ =_080514DC
+ adds r0, r0, r1
+ ldr r0, [r0]
+ mov pc, r0
+ .align 2, 0
+_080514D4: .4byte 0x02002920
+_080514D8: .4byte _080514DC
+_080514DC: @ jump table
+ .4byte _080514F0 @ case 0
+ .4byte _080517A8 @ case 1
+ .4byte _080518D4 @ case 2
+ .4byte _08051A08 @ case 3
+ .4byte _08051AB8 @ case 4
+_080514F0:
+ ldr r0, _08051514 @ =0x0200B0C0
+ ldrh r1, [r0, #0x18]
+ movs r0, #0x40
+ ands r0, r1
+ cmp r0, #0
+ beq _0805152C
+ ldr r4, _08051518 @ =0x02002920
+ movs r2, #0xa
+ ldrsh r0, [r4, r2]
+ cmp r0, #0xd
+ beq _0805156C
+ cmp r0, #0xe
+ bne _0805151C
+ movs r0, #0x67
+ bl sub_53DA8
+ movs r0, #0xd
+ b _0805156A
+ .align 2, 0
+_08051514: .4byte 0x0200B0C0
+_08051518: .4byte 0x02002920
+_0805151C:
+ cmp r0, #0
+ ble _0805156C
+ movs r0, #0x67
+ bl sub_53DA8
+ ldrh r0, [r4, #0xa]
+ subs r0, #1
+ b _0805156A
+_0805152C:
+ movs r0, #0x80
+ ands r0, r1
+ cmp r0, #0
+ beq _0805156C
+ ldr r4, _0805154C @ =0x02002920
+ movs r3, #0xa
+ ldrsh r0, [r4, r3]
+ cmp r0, #5
+ bgt _08051550
+ movs r0, #0x67
+ bl sub_53DA8
+ ldrh r0, [r4, #0xa]
+ adds r0, #1
+ b _0805156A
+ .align 2, 0
+_0805154C: .4byte 0x02002920
+_08051550:
+ cmp r0, #0xd
+ bne _0805155E
+ movs r0, #0x67
+ bl sub_53DA8
+ movs r0, #0xe
+ b _0805156A
+_0805155E:
+ cmp r0, #0xe
+ bne _0805156C
+ movs r0, #0x67
+ bl sub_53DA8
+ movs r0, #2
+_0805156A:
+ strh r0, [r4, #0xa]
+_0805156C:
+ ldr r0, _080515E8 @ =0x0200B0C0
+ ldrh r1, [r0, #0x18]
+ movs r0, #0x10
+ ands r0, r1
+ cmp r0, #0
+ beq _08051594
+ ldr r0, _080515EC @ =0x02019C0C
+ ldr r0, [r0]
+ cmp r0, #1
+ bne _08051594
+ ldr r4, _080515F0 @ =0x02002920
+ ldrh r0, [r4, #0xa]
+ cmp r0, #1
+ bhi _08051594
+ movs r0, #0x67
+ bl sub_53DA8
+ ldrh r0, [r4, #0xa]
+ adds r0, #0xd
+ strh r0, [r4, #0xa]
+_08051594:
+ ldr r0, _080515E8 @ =0x0200B0C0
+ ldrh r1, [r0, #0x18]
+ movs r0, #0x20
+ ands r0, r1
+ cmp r0, #0
+ beq _080515C2
+ ldr r0, _080515EC @ =0x02019C0C
+ ldr r0, [r0]
+ cmp r0, #1
+ bne _080515C2
+ ldr r4, _080515F0 @ =0x02002920
+ ldrh r0, [r4, #0xa]
+ subs r0, #0xd
+ lsls r0, r0, #0x10
+ lsrs r0, r0, #0x10
+ cmp r0, #1
+ bhi _080515C2
+ movs r0, #0x67
+ bl sub_53DA8
+ ldrh r0, [r4, #0xa]
+ subs r0, #0xd
+ strh r0, [r4, #0xa]
+_080515C2:
+ ldr r4, _080515E8 @ =0x0200B0C0
+ ldrh r1, [r4, #0x18]
+ movs r0, #1
+ ands r0, r1
+ cmp r0, #0
+ bne _080515D0
+ b _0805177C
+_080515D0:
+ ldr r0, _080515F0 @ =0x02002920
+ movs r6, #0xa
+ ldrsh r0, [r0, r6]
+ cmp r0, #0xe
+ bls _080515DC
+ b _08051A96
+_080515DC:
+ lsls r0, r0, #2
+ ldr r1, _080515F4 @ =_080515F8
+ adds r0, r0, r1
+ ldr r0, [r0]
+ mov pc, r0
+ .align 2, 0
+_080515E8: .4byte 0x0200B0C0
+_080515EC: .4byte 0x02019C0C
+_080515F0: .4byte 0x02002920
+_080515F4: .4byte _080515F8
+_080515F8: @ jump table
+ .4byte _08051634 @ case 0
+ .4byte _08051674 @ case 1
+ .4byte _080516B0 @ case 2
+ .4byte _080516B0 @ case 3
+ .4byte _080516B0 @ case 4
+ .4byte _080516B0 @ case 5
+ .4byte _080516D0 @ case 6
+ .4byte _08051A96 @ case 7
+ .4byte _08051A96 @ case 8
+ .4byte _08051A96 @ case 9
+ .4byte _08051A96 @ case 10
+ .4byte _08051A96 @ case 11
+ .4byte _08051A96 @ case 12
+ .4byte _08051738 @ case 13
+ .4byte _080516F8 @ case 14
+_08051634:
+ movs r0, #0x65
+ bl sub_53DA8
+ ldr r3, _08051670 @ =0x02002920
+ movs r4, #0
+ movs r1, #0
+ movs r2, #1
+ movs r0, #1
+ strh r0, [r3]
+ strh r1, [r3, #0x18]
+ adds r0, r3, #0
+ adds r0, #0x30
+ strb r2, [r0]
+ adds r1, r3, #0
+ adds r1, #0x2e
+ movs r0, #0
+ ldrsb r0, [r1, r0]
+ cmp r0, #1
+ beq _0805165C
+ b _08051A96
+_0805165C:
+ adds r0, r3, #0
+ adds r0, #0x2b
+ strb r4, [r0]
+ adds r0, #2
+ strb r4, [r0]
+ subs r0, #1
+ strb r4, [r0]
+ strb r4, [r1]
+ b _08051A96
+ .align 2, 0
+_08051670: .4byte 0x02002920
+_08051674:
+ movs r0, #0x65
+ bl sub_53DA8
+ ldr r2, _080516AC @ =0x02002920
+ movs r3, #0
+ movs r1, #0
+ movs r0, #2
+ strh r0, [r2]
+ strh r1, [r2, #0x18]
+ adds r1, r2, #0
+ adds r1, #0x30
+ movs r0, #1
+ strb r0, [r1]
+ subs r1, #2
+ movs r0, #0
+ ldrsb r0, [r1, r0]
+ cmp r0, #1
+ beq _0805169A
+ b _08051A96
+_0805169A:
+ adds r0, r2, #0
+ adds r0, #0x2b
+ strb r3, [r0]
+ adds r0, #2
+ strb r3, [r0]
+ subs r0, #1
+ strb r3, [r0]
+ strb r3, [r1]
+ b _08051A96
+ .align 2, 0
+_080516AC: .4byte 0x02002920
+_080516B0:
+ movs r0, #0x65
+ bl sub_53DA8
+ ldr r0, _080516C8 @ =0x02002920
+ ldrh r1, [r0, #0xa]
+ subs r1, #2
+ strh r1, [r0, #0xc]
+ ldr r0, _080516CC @ =0x0200B134
+ adds r0, #0xcf
+ strb r1, [r0]
+ b _08051A96
+ .align 2, 0
+_080516C8: .4byte 0x02002920
+_080516CC: .4byte 0x0200B134
+_080516D0:
+ movs r0, #0x65
+ bl sub_53DA8
+ ldr r2, _080516F0 @ =0x02002920
+ ldrh r1, [r2, #0xa]
+ subs r1, #2
+ strh r1, [r2, #0xc]
+ ldr r0, _080516F4 @ =0x0200B134
+ adds r0, #0xcf
+ strb r1, [r0]
+ movs r0, #7
+ strh r0, [r2, #0xa]
+ movs r0, #3
+ strh r0, [r2]
+ b _08051A96
+ .align 2, 0
+_080516F0: .4byte 0x02002920
+_080516F4: .4byte 0x0200B134
+_080516F8:
+ ldr r0, _08051730 @ =0x02019C0C
+ ldr r0, [r0]
+ cmp r0, #1
+ beq _08051702
+ b _08051A96
+_08051702:
+ movs r0, #0x65
+ bl sub_53DA8
+ ldr r1, _08051734 @ =0x02002920
+ adds r0, r1, #0
+ adds r0, #0x2d
+ movs r2, #0
+ strb r2, [r0]
+ adds r3, r1, #0
+ adds r3, #0x2e
+ movs r0, #0
+ ldrsb r0, [r3, r0]
+ cmp r0, #1
+ bne _08051720
+ strb r2, [r3]
+_08051720:
+ adds r0, r1, #0
+ adds r0, #0x2b
+ strb r2, [r0]
+ adds r0, #1
+ strb r2, [r0]
+ subs r0, #2
+ strb r2, [r0]
+ b _08051A96
+ .align 2, 0
+_08051730: .4byte 0x02019C0C
+_08051734: .4byte 0x02002920
+_08051738:
+ ldr r0, _08051774 @ =0x02019C0C
+ ldr r4, [r0]
+ cmp r4, #1
+ beq _08051742
+ b _08051A96
+_08051742:
+ movs r0, #0x65
+ bl sub_53DA8
+ movs r0, #0xb
+ bl sub_11B0
+ ldr r2, _08051778 @ =0x02002920
+ adds r1, r2, #0
+ adds r1, #0x2e
+ movs r0, #0
+ ldrsb r0, [r1, r0]
+ cmp r0, #0
+ bne _0805175E
+ strb r4, [r1]
+_0805175E:
+ adds r1, r2, #0
+ adds r1, #0x2b
+ movs r0, #0
+ strb r0, [r1]
+ adds r1, #1
+ strb r0, [r1]
+ adds r0, r2, #0
+ adds r0, #0x2a
+ strb r4, [r0]
+ b _08051A96
+ .align 2, 0
+_08051774: .4byte 0x02019C0C
+_08051778: .4byte 0x02002920
+_0805177C:
+ movs r0, #2
+ ands r0, r1
+ cmp r0, #0
+ bne _08051786
+ b _08051A96
+_08051786:
+ movs r0, #0x66
+ bl sub_53DA8
+ ldrb r0, [r4, #3]
+ adds r0, #1
+ strb r0, [r4, #3]
+ ldr r7, _080517A4 @ =0x00000143
+ adds r0, r4, r7
+ ldrb r0, [r0]
+ lsls r0, r0, #0x18
+ asrs r0, r0, #0x18
+ bl sub_525CC
+ b _08051A96
+ .align 2, 0
+_080517A4: .4byte 0x00000143
+_080517A8:
+ ldr r1, _080517C8 @ =0x0200B0C0
+ ldrh r2, [r1, #0x1c]
+ movs r0, #0x20
+ ands r0, r2
+ adds r3, r1, #0
+ cmp r0, #0
+ beq _080517D0
+ ldr r0, _080517CC @ =0x02002920
+ movs r2, #0x18
+ ldrsh r1, [r0, r2]
+ adds r4, r0, #0
+ cmp r1, #0
+ bne _080517EC
+ ldrh r0, [r4, #0xe]
+ subs r0, #1
+ b _080517E6
+ .align 2, 0
+_080517C8: .4byte 0x0200B0C0
+_080517CC: .4byte 0x02002920
+_080517D0:
+ movs r0, #0x10
+ ands r0, r2
+ ldr r4, _080517FC @ =0x02002920
+ cmp r0, #0
+ beq _080517EC
+ movs r6, #0x18
+ ldrsh r0, [r4, r6]
+ cmp r0, #0
+ bne _080517EC
+ ldrh r0, [r4, #0xe]
+ adds r0, #1
+_080517E6:
+ strh r0, [r4, #0xe]
+ movs r0, #0xa
+ strh r0, [r4, #0x18]
+_080517EC:
+ ldrh r1, [r3, #0x18]
+ movs r0, #0x40
+ ands r0, r1
+ cmp r0, #0
+ beq _08051800
+ ldrh r0, [r4, #0xe]
+ adds r0, #0xa
+ b _0805180C
+ .align 2, 0
+_080517FC: .4byte 0x02002920
+_08051800:
+ movs r0, #0x80
+ ands r0, r1
+ cmp r0, #0
+ beq _0805180E
+ ldrh r0, [r4, #0xe]
+ subs r0, #0xa
+_0805180C:
+ strh r0, [r4, #0xe]
+_0805180E:
+ ldr r5, _08051880 @ =0x02002920
+ movs r7, #0xe
+ ldrsh r0, [r5, r7]
+ cmp r0, #0
+ bge _0805181C
+ movs r0, #0x21
+ strh r0, [r5, #0xe]
+_0805181C:
+ movs r1, #0xe
+ ldrsh r0, [r5, r1]
+ cmp r0, #0x21
+ ble _08051828
+ movs r0, #0
+ strh r0, [r5, #0xe]
+_08051828:
+ ldrh r4, [r5, #0xe]
+ adds r4, #1
+ lsls r4, r4, #0x10
+ asrs r4, r4, #0x10
+ adds r0, r4, #0
+ movs r1, #0x64
+ bl sub_556D0
+ strb r0, [r5, #0x12]
+ adds r0, r4, #0
+ movs r1, #0x64
+ bl sub_55768
+ adds r4, r0, #0
+ lsls r4, r4, #0x10
+ asrs r4, r4, #0x10
+ adds r0, r4, #0
+ movs r1, #0xa
+ bl sub_556D0
+ strb r0, [r5, #0x13]
+ adds r0, r4, #0
+ movs r1, #0xa
+ bl sub_55768
+ strb r0, [r5, #0x14]
+ ldr r0, _08051884 @ =0x0200B0C0
+ ldrh r1, [r0, #0x18]
+ movs r4, #1
+ ands r4, r1
+ cmp r4, #0
+ beq _0805188C
+ bl sub_53EDC
+ ldr r0, _08051888 @ =0x08527D22
+ movs r2, #0xe
+ ldrsh r1, [r5, r2]
+ lsls r1, r1, #1
+ adds r1, r1, r0
+ ldrh r0, [r1]
+ bl sub_53DA8
+ b _080518AA
+ .align 2, 0
+_08051880: .4byte 0x02002920
+_08051884: .4byte 0x0200B0C0
+_08051888: .4byte 0x08527D22
+_0805188C:
+ movs r0, #2
+ ands r0, r1
+ cmp r0, #0
+ beq _080518AA
+ bl sub_53EDC
+ movs r0, #0x66
+ bl sub_53DA8
+ movs r1, #0
+ strh r4, [r5, #4]
+ adds r0, r5, #0
+ adds r0, #0x30
+ strb r1, [r0]
+ strh r4, [r5]
+_080518AA:
+ ldr r0, _080518CC @ =0x0200B0C0
+ ldr r0, [r0, #0x4c]
+ movs r1, #7
+ ands r0, r1
+ cmp r0, #0
+ bne _080518C0
+ ldr r2, _080518D0 @ =0x02002920
+ ldrh r1, [r2, #4]
+ movs r0, #1
+ subs r0, r0, r1
+ strh r0, [r2, #4]
+_080518C0:
+ ldr r1, _080518D0 @ =0x02002920
+ ldrh r2, [r1, #0x18]
+ movs r3, #0x18
+ ldrsh r0, [r1, r3]
+ b _080519F4
+ .align 2, 0
+_080518CC: .4byte 0x0200B0C0
+_080518D0: .4byte 0x02002920
+_080518D4:
+ ldr r1, _080518F4 @ =0x0200B0C0
+ ldrh r2, [r1, #0x1c]
+ movs r0, #0x20
+ ands r0, r2
+ adds r3, r1, #0
+ cmp r0, #0
+ beq _080518FC
+ ldr r0, _080518F8 @ =0x02002920
+ movs r6, #0x18
+ ldrsh r1, [r0, r6]
+ adds r4, r0, #0
+ cmp r1, #0
+ bne _08051918
+ ldrh r0, [r4, #0x10]
+ subs r0, #1
+ b _08051912
+ .align 2, 0
+_080518F4: .4byte 0x0200B0C0
+_080518F8: .4byte 0x02002920
+_080518FC:
+ movs r0, #0x10
+ ands r0, r2
+ ldr r4, _08051928 @ =0x02002920
+ cmp r0, #0
+ beq _08051918
+ movs r7, #0x18
+ ldrsh r0, [r4, r7]
+ cmp r0, #0
+ bne _08051918
+ ldrh r0, [r4, #0x10]
+ adds r0, #1
+_08051912:
+ strh r0, [r4, #0x10]
+ movs r0, #0xa
+ strh r0, [r4, #0x18]
+_08051918:
+ ldrh r1, [r3, #0x18]
+ movs r0, #0x40
+ ands r0, r1
+ cmp r0, #0
+ beq _0805192C
+ ldrh r0, [r4, #0x10]
+ adds r0, #0xa
+ b _08051938
+ .align 2, 0
+_08051928: .4byte 0x02002920
+_0805192C:
+ movs r0, #0x80
+ ands r0, r1
+ cmp r0, #0
+ beq _0805193A
+ ldrh r0, [r4, #0x10]
+ subs r0, #0xa
+_08051938:
+ strh r0, [r4, #0x10]
+_0805193A:
+ ldr r5, _080519AC @ =0x02002920
+ movs r1, #0x10
+ ldrsh r0, [r5, r1]
+ cmp r0, #0
+ bge _08051948
+ movs r0, #0xb7
+ strh r0, [r5, #0x10]
+_08051948:
+ movs r2, #0x10
+ ldrsh r0, [r5, r2]
+ cmp r0, #0xb7
+ ble _08051954
+ movs r0, #0
+ strh r0, [r5, #0x10]
+_08051954:
+ ldrh r4, [r5, #0x10]
+ adds r4, #1
+ lsls r4, r4, #0x10
+ asrs r4, r4, #0x10
+ adds r0, r4, #0
+ movs r1, #0x64
+ bl sub_556D0
+ strb r0, [r5, #0x15]
+ adds r0, r4, #0
+ movs r1, #0x64
+ bl sub_55768
+ adds r4, r0, #0
+ lsls r4, r4, #0x10
+ asrs r4, r4, #0x10
+ adds r0, r4, #0
+ movs r1, #0xa
+ bl sub_556D0
+ strb r0, [r5, #0x16]
+ adds r0, r4, #0
+ movs r1, #0xa
+ bl sub_55768
+ strb r0, [r5, #0x17]
+ ldr r0, _080519B0 @ =0x0200B0C0
+ ldrh r1, [r0, #0x18]
+ movs r4, #1
+ ands r4, r1
+ cmp r4, #0
+ beq _080519B8
+ bl sub_53EDC
+ ldr r0, _080519B4 @ =0x08527D66
+ movs r3, #0x10
+ ldrsh r1, [r5, r3]
+ lsls r1, r1, #1
+ adds r1, r1, r0
+ ldrh r0, [r1]
+ bl sub_53DA8
+ b _080519D6
+ .align 2, 0
+_080519AC: .4byte 0x02002920
+_080519B0: .4byte 0x0200B0C0
+_080519B4: .4byte 0x08527D66
+_080519B8:
+ movs r0, #2
+ ands r0, r1
+ cmp r0, #0
+ beq _080519D6
+ bl sub_53EDC
+ movs r0, #0x66
+ bl sub_53DA8
+ movs r1, #0
+ strh r4, [r5, #4]
+ adds r0, r5, #0
+ adds r0, #0x30
+ strb r1, [r0]
+ strh r4, [r5]
+_080519D6:
+ ldr r0, _08051A00 @ =0x0200B0C0
+ ldr r0, [r0, #0x4c]
+ movs r1, #7
+ ands r0, r1
+ cmp r0, #0
+ bne _080519EC
+ ldr r2, _08051A04 @ =0x02002920
+ ldrh r1, [r2, #4]
+ movs r0, #1
+ subs r0, r0, r1
+ strh r0, [r2, #4]
+_080519EC:
+ ldr r1, _08051A04 @ =0x02002920
+ ldrh r2, [r1, #0x18]
+ movs r6, #0x18
+ ldrsh r0, [r1, r6]
+_080519F4:
+ cmp r0, #0
+ bgt _080519FA
+ b _08051B98
+_080519FA:
+ subs r0, r2, #1
+ strh r0, [r1, #0x18]
+ b _08051B98
+ .align 2, 0
+_08051A00: .4byte 0x0200B0C0
+_08051A04: .4byte 0x02002920
+_08051A08:
+ ldr r0, _08051A2C @ =0x0200B0C0
+ ldrh r1, [r0, #0x18]
+ movs r0, #0x40
+ ands r0, r1
+ cmp r0, #0
+ beq _08051A34
+ ldr r4, _08051A30 @ =0x02002920
+ movs r7, #0xa
+ ldrsh r0, [r4, r7]
+ cmp r0, #7
+ ble _08051A52
+ movs r0, #0x67
+ bl sub_53DA8
+ ldrh r0, [r4, #0xa]
+ subs r0, #1
+ b _08051A50
+ .align 2, 0
+_08051A2C: .4byte 0x0200B0C0
+_08051A30: .4byte 0x02002920
+_08051A34:
+ movs r0, #0x80
+ ands r0, r1
+ cmp r0, #0
+ beq _08051A52
+ ldr r4, _08051A78 @ =0x02002920
+ movs r1, #0xa
+ ldrsh r0, [r4, r1]
+ cmp r0, #0xa
+ bgt _08051A52
+ movs r0, #0x67
+ bl sub_53DA8
+ ldrh r0, [r4, #0xa]
+ adds r0, #1
+_08051A50:
+ strh r0, [r4, #0xa]
+_08051A52:
+ ldr r0, _08051A7C @ =0x0200B0C0
+ ldrh r1, [r0, #0x18]
+ movs r4, #1
+ ands r4, r1
+ cmp r4, #0
+ beq _08051A80
+ movs r0, #0x65
+ bl sub_53DA8
+ ldr r0, _08051A78 @ =0x02002920
+ movs r1, #4
+ strh r1, [r0]
+ movs r2, #0xa
+ ldrsh r1, [r0, r2]
+ adds r0, r0, r1
+ movs r1, #1
+ strb r1, [r0, #0x13]
+ b _08051A96
+ .align 2, 0
+_08051A78: .4byte 0x02002920
+_08051A7C: .4byte 0x0200B0C0
+_08051A80:
+ movs r0, #2
+ ands r0, r1
+ cmp r0, #0
+ beq _08051A96
+ movs r0, #0x66
+ bl sub_53DA8
+ ldr r1, _08051AB0 @ =0x02002920
+ movs r0, #6
+ strh r0, [r1, #0xa]
+ strh r4, [r1]
+_08051A96:
+ ldr r0, _08051AB4 @ =0x0200B0C0
+ ldr r0, [r0, #0x4c]
+ movs r1, #7
+ ands r0, r1
+ cmp r0, #0
+ bne _08051B98
+ ldr r2, _08051AB0 @ =0x02002920
+ ldrh r1, [r2, #2]
+ movs r0, #1
+ subs r0, r0, r1
+ strh r0, [r2, #2]
+ b _08051B98
+ .align 2, 0
+_08051AB0: .4byte 0x02002920
+_08051AB4: .4byte 0x0200B0C0
+_08051AB8:
+ ldr r4, _08051BF4 @ =0x02002920
+ ldrh r0, [r4, #8]
+ adds r0, #1
+ movs r5, #0
+ strh r0, [r4, #8]
+ lsls r0, r0, #0x10
+ asrs r0, r0, #0x10
+ cmp r0, #0x18
+ ble _08051AD4
+ strh r5, [r4, #8]
+ ldrh r1, [r4, #6]
+ movs r0, #1
+ subs r0, r0, r1
+ strh r0, [r4, #6]
+_08051AD4:
+ ldr r0, _08051BF8 @ =0x0200B0C0
+ ldrh r1, [r0, #0x18]
+ ldr r0, _08051BFC @ =0x000003F7
+ ands r0, r1
+ cmp r0, #0
+ beq _08051B0E
+ movs r0, #0x65
+ bl sub_53DA8
+ movs r0, #0xa
+ strh r0, [r4, #0x20]
+ strh r5, [r4, #0x22]
+ movs r0, #0
+ adds r3, r4, #0
+ adds r3, #0x24
+ movs r2, #0xa
+_08051AF4:
+ lsls r1, r0, #0x10
+ asrs r1, r1, #0x10
+ lsls r0, r1, #1
+ adds r0, r0, r3
+ strh r2, [r0]
+ adds r1, #1
+ lsls r1, r1, #0x10
+ lsrs r0, r1, #0x10
+ asrs r1, r1, #0x10
+ cmp r1, #1
+ ble _08051AF4
+ movs r0, #0
+ strh r0, [r4, #0x28]
+_08051B0E:
+ ldr r4, _08051BF4 @ =0x02002920
+ movs r3, #0x20
+ ldrsh r0, [r4, r3]
+ cmp r0, #0
+ ble _08051B98
+ bl sub_524BC
+ ldrh r0, [r4, #0x20]
+ subs r0, #1
+ strh r0, [r4, #0x20]
+ lsls r0, r0, #0x10
+ asrs r5, r0, #0x10
+ cmp r5, #0
+ bne _08051B98
+ ldr r2, _08051C00 @ =0x02031AF0
+ movs r6, #0xa
+ ldrsh r0, [r4, r6]
+ subs r0, #7
+ lsls r0, r0, #1
+ adds r2, #0x28
+ adds r0, r0, r2
+ ldrh r1, [r4, #0x24]
+ strb r1, [r0]
+ movs r7, #0xa
+ ldrsh r0, [r4, r7]
+ subs r0, #7
+ lsls r0, r0, #1
+ adds r0, #1
+ adds r0, r0, r2
+ ldrh r1, [r4, #0x26]
+ strb r1, [r0]
+ ldr r2, _08051C04 @ =0x0200B134
+ movs r0, #0xa
+ ldrsh r1, [r4, r0]
+ subs r1, #7
+ lsls r1, r1, #2
+ adds r0, r2, #0
+ adds r0, #0xd0
+ adds r1, r1, r0
+ ldr r3, _08051C08 @ =0x086BB910
+ movs r6, #0x24
+ ldrsh r0, [r4, r6]
+ lsls r0, r0, #3
+ adds r0, r0, r3
+ ldrh r0, [r0]
+ strh r0, [r1]
+ movs r7, #0xa
+ ldrsh r1, [r4, r7]
+ subs r1, #7
+ lsls r1, r1, #2
+ adds r2, #0xd2
+ adds r1, r1, r2
+ movs r2, #0x26
+ ldrsh r0, [r4, r2]
+ lsls r0, r0, #3
+ adds r0, r0, r3
+ ldrh r0, [r0]
+ strh r0, [r1]
+ movs r0, #3
+ strh r0, [r4]
+ movs r3, #0xa
+ ldrsh r0, [r4, r3]
+ adds r0, r4, r0
+ adds r0, #0x13
+ movs r1, #0
+ strb r1, [r0]
+ strh r5, [r4, #8]
+ movs r0, #1
+ strh r0, [r4, #6]
+_08051B98:
+ ldr r2, _08051BF4 @ =0x02002920
+ movs r6, #0x2e
+ adds r6, r6, r2
+ mov ip, r6
+ movs r0, #0
+ ldrsb r0, [r6, r0]
+ cmp r0, #1
+ bne _08051C10
+ adds r4, r2, #0
+ adds r4, #0x2b
+ ldrb r0, [r4]
+ adds r0, #1
+ movs r5, #0
+ strb r0, [r4]
+ lsls r0, r0, #0x18
+ ldr r6, _08051C0C @ =0x086BB9B4
+ adds r3, r2, #0
+ adds r3, #0x2c
+ movs r1, #0
+ ldrsb r1, [r3, r1]
+ lsls r1, r1, #2
+ adds r1, r1, r6
+ asrs r0, r0, #0x18
+ movs r7, #2
+ ldrsh r1, [r1, r7]
+ cmp r0, r1
+ ble _08051C30
+ strb r5, [r4]
+ ldrb r0, [r3]
+ adds r0, #1
+ strb r0, [r3]
+ lsls r0, r0, #0x18
+ asrs r0, r0, #0x18
+ adds r2, #0x2d
+ cmp r0, #0xc
+ ble _08051BE8
+ strb r5, [r3]
+ strb r5, [r2]
+ mov r0, ip
+ strb r5, [r0]
+_08051BE8:
+ movs r0, #0
+ ldrsb r0, [r3, r0]
+ lsls r0, r0, #2
+ adds r0, r0, r6
+ ldrb r0, [r0]
+ b _08051C2E
+ .align 2, 0
+_08051BF4: .4byte 0x02002920
+_08051BF8: .4byte 0x0200B0C0
+_08051BFC: .4byte 0x000003F7
+_08051C00: .4byte 0x02031AF0
+_08051C04: .4byte 0x0200B134
+_08051C08: .4byte 0x086BB910
+_08051C0C: .4byte 0x086BB9B4
+_08051C10:
+ adds r1, r2, #0
+ adds r1, #0x2b
+ ldrb r0, [r1]
+ adds r0, #1
+ strb r0, [r1]
+ lsls r0, r0, #0x18
+ asrs r0, r0, #0x18
+ cmp r0, #0x12
+ ble _08051C30
+ movs r0, #0
+ strb r0, [r1]
+ adds r2, #0x2d
+ ldrb r1, [r2]
+ movs r0, #1
+ subs r0, r0, r1
+_08051C2E:
+ strb r0, [r2]
+_08051C30:
+ bl sub_11FC
+ pop {r4, r5, r6, r7}
+ pop {r0}
+ bx r0
+
+ thumb_func_start sub_51C3C
+sub_51C3C: @ 0x08051C3C
+ push {lr}
+ bl sub_111C
+ bl sub_1170
+ cmp r0, #0
+ beq _08051C56
+ bl sub_1198
+ ldr r1, _08051C5C @ =0x0200B0C0
+ ldrb r0, [r1, #3]
+ adds r0, #1
+ strb r0, [r1, #3]
+_08051C56:
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08051C5C: .4byte 0x0200B0C0
+
+ thumb_func_start sub_51C60
+sub_51C60: @ 0x08051C60
+ push {lr}
+ ldr r1, _08051C90 @ =0x0200B134
+ ldr r0, _08051C94 @ =0x02002920
+ adds r0, #0x2a
+ ldrb r0, [r0]
+ adds r1, #0xcd
+ strb r0, [r1]
+ bl sub_52B30
+ bl sub_2B4
+ bl sub_53EDC
+ bl sub_D10
+ ldr r1, _08051C98 @ =0x0201A4B4
+ movs r0, #1
+ strb r0, [r1]
+ movs r0, #1
+ bl sub_23C
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08051C90: .4byte 0x0200B134
+_08051C94: .4byte 0x02002920
+_08051C98: .4byte 0x0201A4B4
+
+ thumb_func_start sub_51C9C
+sub_51C9C: @ 0x08051C9C
+ push {r4, r5, r6, r7, lr}
+ mov r7, sl
+ mov r6, sb
+ mov r5, r8
+ push {r5, r6, r7}
+ sub sp, #0x8c
+ ldr r0, _08051D38 @ =0x0200B3B8
+ mov r8, r0
+ ldr r2, _08051D3C @ =0x02002920
+ movs r3, #4
+ ldrsh r1, [r2, r3]
+ movs r0, #0xe6
+ lsls r0, r0, #4
+ muls r1, r0, r1
+ movs r0, #0xa1
+ lsls r0, r0, #3
+ add r0, r8
+ adds r1, r1, r0
+ str r1, [sp, #0x60]
+ add r4, sp, #0xc
+ mov sl, r4
+ mov r6, sp
+ adds r6, #0x18
+ str r6, [sp, #0x6c]
+ mov r7, sp
+ adds r7, #0x1c
+ str r7, [sp, #0x74]
+ mov r0, sp
+ adds r0, #0x20
+ str r0, [sp, #0x7c]
+ movs r0, #0xb8
+ lsls r0, r0, #2
+ add r0, r8
+ mov r3, sl
+ mov r1, r8
+ adds r1, #0xb8
+ mov r2, sp
+ movs r4, #2
+ mov ip, r4
+_08051CEA:
+ stm r2!, {r1}
+ stm r3!, {r0}
+ adds r0, #0xb8
+ adds r1, #0xb8
+ movs r6, #1
+ rsbs r6, r6, #0
+ add ip, r6
+ mov r7, ip
+ cmp r7, #0
+ bge _08051CEA
+ movs r0, #0
+ mov ip, r0
+ movs r1, #8
+ add r1, r8
+ mov sb, r1
+ ldr r2, _08051D40 @ =0x0200B978
+ adds r2, #8
+ str r2, [sp, #0x70]
+ ldr r0, _08051D44 @ =0x0200BAE8
+ adds r4, r0, #0
+ adds r4, #0xb8
+ adds r5, r0, #0
+ movs r3, #0
+ ldr r1, [sp, #0x6c]
+ adds r2, r5, #0
+ subs r2, #0xb8
+_08051D1E:
+ ldr r0, _08051D48 @ =0x0200293A
+ add r0, ip
+ ldrb r0, [r0]
+ cmp r0, #1
+ bne _08051D50
+ ldr r6, _08051D3C @ =0x02002920
+ movs r7, #6
+ ldrsh r0, [r6, r7]
+ cmp r0, #1
+ bne _08051D50
+ ldr r0, _08051D4C @ =0x0200C7D8
+ str r0, [r1]
+ b _08051D52
+ .align 2, 0
+_08051D38: .4byte 0x0200B3B8
+_08051D3C: .4byte 0x02002920
+_08051D40: .4byte 0x0200B978
+_08051D44: .4byte 0x0200BAE8
+_08051D48: .4byte 0x0200293A
+_08051D4C: .4byte 0x0200C7D8
+_08051D50:
+ str r2, [r1]
+_08051D52:
+ ldr r6, [sp, #0x74]
+ adds r0, r6, r3
+ str r5, [r0]
+ ldr r7, [sp, #0x7c]
+ adds r0, r7, r3
+ str r4, [r0]
+ movs r0, #0x8a
+ lsls r0, r0, #2
+ adds r4, r4, r0
+ adds r5, r5, r0
+ adds r2, r2, r0
+ adds r3, #0xc
+ adds r1, #0xc
+ movs r6, #1
+ add ip, r6
+ mov r7, ip
+ cmp r7, #5
+ ble _08051D1E
+ ldr r0, _08051F64 @ =0x0200C890
+ str r0, [sp, #0x64]
+ movs r0, #1
+ mov r1, r8
+ strh r0, [r1]
+ movs r2, #1
+ mov r1, sp
+ movs r3, #2
+ mov ip, r3
+_08051D88:
+ ldm r1!, {r0}
+ strh r2, [r0]
+ movs r4, #1
+ rsbs r4, r4, #0
+ add ip, r4
+ mov r6, ip
+ cmp r6, #0
+ bge _08051D88
+ ldr r7, [sp, #0x64]
+ adds r7, #8
+ str r7, [sp, #0x78]
+ movs r2, #1
+ mov r1, sl
+ movs r0, #2
+ mov ip, r0
+_08051DA6:
+ ldm r1!, {r0}
+ strh r2, [r0]
+ movs r3, #1
+ rsbs r3, r3, #0
+ add ip, r3
+ mov r4, ip
+ cmp r4, #0
+ bge _08051DA6
+ movs r0, #1
+ ldr r6, [sp, #0x60]
+ strh r0, [r6]
+ ldr r7, _08051F68 @ =0x0200B978
+ strh r0, [r7]
+ movs r0, #0
+ mov ip, r0
+ ldr r6, [sp, #0x6c]
+ movs r3, #1
+ movs r2, #0
+_08051DCA:
+ adds r1, r2, r6
+ movs r5, #2
+_08051DCE:
+ ldm r1!, {r0}
+ strh r3, [r0]
+ subs r5, #1
+ cmp r5, #0
+ bge _08051DCE
+ adds r2, #0xc
+ movs r1, #1
+ add ip, r1
+ mov r4, ip
+ cmp r4, #5
+ ble _08051DCA
+ movs r0, #1
+ ldr r6, [sp, #0x64]
+ strh r0, [r6]
+ ldr r7, _08051F6C @ =0x0200C948
+ strh r0, [r7]
+ ldr r5, _08051F70 @ =0x02002920
+ adds r0, r5, #0
+ adds r0, #0x30
+ ldrb r0, [r0]
+ lsls r0, r0, #0x18
+ asrs r0, r0, #0x18
+ ldr r1, _08051F74 @ =0x0200CA00
+ strh r0, [r1]
+ ldr r0, _08051F78 @ =0x086BB9EC
+ movs r1, #0x20
+ ldr r2, _08051F7C @ =0x0200B3B8
+ bl sub_358
+ ldr r2, _08051F80 @ =0x086BB968
+ movs r3, #0xa
+ ldrsh r1, [r5, r3]
+ lsls r1, r1, #2
+ adds r1, r1, r2
+ ldrh r0, [r5, #2]
+ ldrh r1, [r1]
+ adds r0, r0, r1
+ mov r4, r8
+ strh r0, [r4, #2]
+ movs r6, #0xa
+ ldrsh r0, [r5, r6]
+ lsls r0, r0, #2
+ adds r0, r0, r2
+ ldrh r0, [r0, #2]
+ strh r0, [r4, #4]
+ mov r7, sb
+ ldr r4, _08051F84 @ =0x03005000
+ mov r0, r8
+ ldrh r2, [r0, #8]
+ lsls r2, r2, #3
+ adds r2, r2, r4
+ movs r3, #2
+ ldrsh r1, [r7, r3]
+ movs r6, #2
+ ldrsh r0, [r0, r6]
+ adds r1, r1, r0
+ ldr r3, _08051F88 @ =0x000001FF
+ adds r0, r3, #0
+ ands r1, r0
+ ldrh r3, [r2, #2]
+ ldr r6, _08051F8C @ =0xFFFFFE00
+ adds r0, r6, #0
+ ands r0, r3
+ orrs r0, r1
+ strh r0, [r2, #2]
+ mov r0, r8
+ ldrh r1, [r0, #8]
+ lsls r1, r1, #3
+ adds r1, r1, r4
+ ldrb r0, [r0, #4]
+ ldrb r7, [r7, #4]
+ adds r0, r0, r7
+ strb r0, [r1]
+ movs r1, #0
+ mov ip, r1
+ mov r8, r4
+ mov r5, sp
+ movs r2, #0x48
+ mov sb, r2
+_08051E6C:
+ ldr r0, [r5]
+ mov r3, sb
+ strh r3, [r0, #2]
+ ldr r1, [r5]
+ movs r0, #0x20
+ strh r0, [r1, #4]
+ ldr r4, [r5]
+ adds r7, r4, #0
+ adds r7, #8
+ ldrh r2, [r4, #8]
+ lsls r2, r2, #3
+ add r2, r8
+ ldr r0, _08051F90 @ =0x02002932
+ add r0, ip
+ ldrb r1, [r0]
+ adds r1, #0x16
+ ldrh r3, [r2, #4]
+ ldr r0, _08051F94 @ =0xFFFFFC00
+ ands r0, r3
+ orrs r0, r1
+ strh r0, [r2, #4]
+ ldrh r3, [r4, #8]
+ lsls r3, r3, #3
+ add r3, r8
+ movs r0, #2
+ ldrsh r1, [r7, r0]
+ ldr r0, [r5]
+ movs r2, #2
+ ldrsh r0, [r0, r2]
+ adds r1, r1, r0
+ ldr r2, _08051F88 @ =0x000001FF
+ adds r0, r2, #0
+ ands r1, r0
+ ldrh r2, [r3, #2]
+ adds r0, r6, #0
+ ands r0, r2
+ orrs r0, r1
+ strh r0, [r3, #2]
+ ldrh r1, [r4, #8]
+ lsls r1, r1, #3
+ add r1, r8
+ ldm r5!, {r0}
+ ldrb r0, [r0, #4]
+ ldrb r7, [r7, #4]
+ adds r0, r0, r7
+ strb r0, [r1]
+ movs r3, #7
+ add sb, r3
+ movs r4, #1
+ add ip, r4
+ mov r7, ip
+ cmp r7, #2
+ ble _08051E6C
+ movs r0, #0
+ mov ip, r0
+ ldr r1, _08051F84 @ =0x03005000
+ mov r8, r1
+ movs r6, #0x48
+ mov r5, sl
+_08051EE2:
+ ldr r0, [r5]
+ strh r6, [r0, #2]
+ ldr r0, [r5]
+ movs r2, #0x2c
+ mov sb, r2
+ mov r3, sb
+ strh r3, [r0, #4]
+ ldr r4, [r5]
+ adds r7, r4, #0
+ adds r7, #8
+ ldrh r2, [r4, #8]
+ lsls r2, r2, #3
+ add r2, r8
+ ldr r0, _08051F98 @ =0x02002935
+ add r0, ip
+ ldrb r1, [r0]
+ adds r1, #0x16
+ ldrh r3, [r2, #4]
+ ldr r0, _08051F94 @ =0xFFFFFC00
+ ands r0, r3
+ orrs r0, r1
+ strh r0, [r2, #4]
+ ldrh r3, [r4, #8]
+ lsls r3, r3, #3
+ add r3, r8
+ movs r0, #2
+ ldrsh r1, [r7, r0]
+ ldr r0, [r5]
+ movs r2, #2
+ ldrsh r0, [r0, r2]
+ adds r1, r1, r0
+ ldr r2, _08051F88 @ =0x000001FF
+ adds r0, r2, #0
+ ands r1, r0
+ ldrh r2, [r3, #2]
+ ldr r0, _08051F8C @ =0xFFFFFE00
+ ands r0, r2
+ orrs r0, r1
+ strh r0, [r3, #2]
+ ldrh r1, [r4, #8]
+ lsls r1, r1, #3
+ add r1, r8
+ ldm r5!, {r0}
+ ldrb r0, [r0, #4]
+ ldrb r7, [r7, #4]
+ adds r0, r0, r7
+ strb r0, [r1]
+ adds r6, #7
+ movs r3, #1
+ add ip, r3
+ mov r4, ip
+ cmp r4, #2
+ ble _08051EE2
+ movs r0, #0x48
+ ldr r6, [sp, #0x60]
+ strh r0, [r6, #2]
+ ldr r7, _08051F70 @ =0x02002920
+ movs r1, #0xa
+ ldrsh r0, [r7, r1]
+ cmp r0, #0
+ bne _08051F9C
+ movs r0, #0x20
+ strh r0, [r6, #4]
+ b _08051FA6
+ .align 2, 0
+_08051F64: .4byte 0x0200C890
+_08051F68: .4byte 0x0200B978
+_08051F6C: .4byte 0x0200C948
+_08051F70: .4byte 0x02002920
+_08051F74: .4byte 0x0200CA00
+_08051F78: .4byte 0x086BB9EC
+_08051F7C: .4byte 0x0200B3B8
+_08051F80: .4byte 0x086BB968
+_08051F84: .4byte 0x03005000
+_08051F88: .4byte 0x000001FF
+_08051F8C: .4byte 0xFFFFFE00
+_08051F90: .4byte 0x02002932
+_08051F94: .4byte 0xFFFFFC00
+_08051F98: .4byte 0x02002935
+_08051F9C:
+ cmp r0, #1
+ bne _08051FA6
+ mov r3, sb
+ ldr r2, [sp, #0x60]
+ strh r3, [r2, #4]
+_08051FA6:
+ ldr r5, _080520D0 @ =0x03005000
+ ldr r7, _080520D4 @ =0xFFFFFE00
+ ldr r4, [sp, #0x60]
+ adds r4, #8
+ movs r6, #1
+ mov ip, r6
+_08051FB2:
+ ldrh r3, [r4]
+ lsls r3, r3, #3
+ adds r3, r3, r5
+ movs r0, #2
+ ldrsh r1, [r4, r0]
+ ldr r2, [sp, #0x60]
+ movs r6, #2
+ ldrsh r0, [r2, r6]
+ adds r1, r1, r0
+ ldr r0, _080520D8 @ =0x000001FF
+ adds r6, r0, #0
+ ands r1, r6
+ ldrh r2, [r3, #2]
+ adds r0, r7, #0
+ ands r0, r2
+ orrs r0, r1
+ strh r0, [r3, #2]
+ ldrh r1, [r4]
+ lsls r1, r1, #3
+ adds r1, r1, r5
+ ldr r2, [sp, #0x60]
+ ldrb r0, [r2, #4]
+ ldrb r3, [r4, #4]
+ adds r0, r0, r3
+ strb r0, [r1]
+ adds r4, #8
+ movs r0, #1
+ rsbs r0, r0, #0
+ add ip, r0
+ mov r1, ip
+ cmp r1, #0
+ bge _08051FB2
+ movs r0, #0x48
+ ldr r2, _080520DC @ =0x0200B978
+ strh r0, [r2, #2]
+ ldr r3, _080520E0 @ =0x02002920
+ movs r4, #0xc
+ ldrsh r0, [r3, r4]
+ lsls r0, r0, #1
+ ldr r7, _080520E4 @ =0x086BB9A8
+ adds r0, r0, r7
+ ldrh r0, [r0]
+ strh r0, [r2, #4]
+ ldr r7, [sp, #0x70]
+ ldrh r2, [r2, #8]
+ lsls r2, r2, #3
+ ldr r0, _080520D0 @ =0x03005000
+ adds r2, r2, r0
+ movs r3, #2
+ ldrsh r1, [r7, r3]
+ adds r1, #0x48
+ ands r1, r6
+ ldrh r3, [r2, #2]
+ ldr r0, _080520D4 @ =0xFFFFFE00
+ ands r0, r3
+ orrs r0, r1
+ strh r0, [r2, #2]
+ ldr r4, _080520DC @ =0x0200B978
+ ldrh r1, [r4, #8]
+ lsls r1, r1, #3
+ ldr r6, _080520D0 @ =0x03005000
+ adds r1, r1, r6
+ ldrb r0, [r4, #4]
+ ldrb r7, [r7, #4]
+ adds r0, r0, r7
+ strb r0, [r1]
+ movs r7, #0
+ mov ip, r7
+ ldr r0, _080520E0 @ =0x02002920
+ str r0, [sp, #0x68]
+ movs r1, #0x54
+ str r1, [sp, #0x80]
+ movs r2, #0
+ str r2, [sp, #0x84]
+ movs r3, #0
+ str r3, [sp, #0x88]
+ ldr r4, [sp, #0x6c]
+ mov r8, r4
+_0805204E:
+ ldr r0, [sp, #0x68]
+ adds r0, #0x1a
+ add r0, ip
+ ldrb r0, [r0]
+ cmp r0, #1
+ bne _080520E8
+ mov r6, r8
+ ldr r1, [r6]
+ movs r0, #0x9c
+ strh r0, [r1, #2]
+ ldr r0, [r6]
+ add r7, sp, #0x80
+ ldrh r7, [r7]
+ strh r7, [r0, #4]
+ movs r5, #0
+ ldr r1, [sp, #0x68]
+ movs r2, #6
+ ldrsh r0, [r1, r2]
+ adds r0, #1
+ cmp r5, r0
+ blt _0805207A
+ b _080522E2
+_0805207A:
+ ldr r3, [sp, #0x6c]
+ ldr r6, [sp, #0x84]
+ adds r4, r3, r6
+ ldr r7, _080520D0 @ =0x03005000
+ mov sb, r7
+ movs r6, #8
+ ldr r0, _080520D4 @ =0xFFFFFE00
+ mov sl, r0
+_0805208A:
+ ldr r0, [r4]
+ adds r7, r0, r6
+ ldrh r2, [r7]
+ lsls r2, r2, #3
+ add r2, sb
+ movs r3, #2
+ ldrsh r1, [r7, r3]
+ movs r3, #2
+ ldrsh r0, [r0, r3]
+ adds r1, r1, r0
+ ldr r3, _080520D8 @ =0x000001FF
+ adds r0, r3, #0
+ ands r1, r0
+ ldrh r3, [r2, #2]
+ mov r0, sl
+ ands r0, r3
+ orrs r0, r1
+ strh r0, [r2, #2]
+ ldrh r1, [r7]
+ lsls r1, r1, #3
+ add r1, sb
+ ldr r0, [r4]
+ ldrb r0, [r0, #4]
+ ldrb r7, [r7, #4]
+ adds r0, r0, r7
+ strb r0, [r1]
+ adds r6, #8
+ adds r5, #1
+ ldr r7, [sp, #0x68]
+ movs r1, #6
+ ldrsh r0, [r7, r1]
+ adds r0, #1
+ cmp r5, r0
+ blt _0805208A
+ b _080522E2
+ .align 2, 0
+_080520D0: .4byte 0x03005000
+_080520D4: .4byte 0xFFFFFE00
+_080520D8: .4byte 0x000001FF
+_080520DC: .4byte 0x0200B978
+_080520E0: .4byte 0x02002920
+_080520E4: .4byte 0x086BB9A8
+_080520E8:
+ mov r2, r8
+ ldr r1, [r2]
+ movs r0, #0x9c
+ strh r0, [r1, #2]
+ ldr r0, [r2]
+ add r3, sp, #0x80
+ ldrh r3, [r3]
+ strh r3, [r0, #4]
+ ldr r4, [r2]
+ adds r7, r4, #0
+ adds r7, #8
+ ldr r6, [sp, #0x68]
+ movs r0, #0xc
+ ldrsh r1, [r6, r0]
+ lsls r0, r1, #2
+ adds r0, r0, r1
+ lsls r0, r0, #1
+ ldr r1, [sp, #0x88]
+ adds r0, r1, r0
+ ldr r2, _08052490 @ =0x02031AF0
+ adds r0, r0, r2
+ ldrb r0, [r0]
+ ldrh r2, [r4, #8]
+ lsls r2, r2, #3
+ ldr r3, _08052494 @ =0x03005000
+ adds r2, r2, r3
+ lsls r0, r0, #3
+ ldr r1, _08052498 @ =0x086BB910
+ adds r6, r0, r1
+ ldrh r0, [r6, #2]
+ ldr r1, _0805249C @ =0x000003FF
+ ands r1, r0
+ ldrh r3, [r2, #4]
+ ldr r0, _080524A0 @ =0xFFFFFC00
+ ands r0, r3
+ orrs r0, r1
+ strh r0, [r2, #4]
+ ldrh r1, [r4, #8]
+ lsls r1, r1, #3
+ ldr r2, _08052494 @ =0x03005000
+ adds r1, r1, r2
+ ldrb r2, [r6, #4]
+ lsls r2, r2, #6
+ ldrb r3, [r1, #1]
+ movs r0, #0x3f
+ mov sl, r0
+ ands r0, r3
+ orrs r0, r2
+ strb r0, [r1, #1]
+ ldrh r2, [r4, #8]
+ lsls r2, r2, #3
+ ldr r1, _08052494 @ =0x03005000
+ adds r2, r2, r1
+ ldrb r1, [r6, #5]
+ lsls r1, r1, #6
+ ldrb r3, [r2, #3]
+ mov r0, sl
+ ands r0, r3
+ orrs r0, r1
+ strb r0, [r2, #3]
+ ldrh r2, [r4, #8]
+ lsls r2, r2, #3
+ ldr r3, _08052494 @ =0x03005000
+ adds r2, r2, r3
+ movs r0, #2
+ ldrsh r1, [r7, r0]
+ mov r3, r8
+ ldr r0, [r3]
+ movs r3, #2
+ ldrsh r0, [r0, r3]
+ adds r1, r1, r0
+ ldr r0, _080524A4 @ =0x000001FF
+ ands r1, r0
+ ldrh r3, [r2, #2]
+ ldr r0, _080524A8 @ =0xFFFFFE00
+ ands r0, r3
+ orrs r0, r1
+ strh r0, [r2, #2]
+ ldrh r1, [r4, #8]
+ lsls r1, r1, #3
+ ldr r2, _08052494 @ =0x03005000
+ adds r1, r1, r2
+ mov r3, r8
+ ldr r0, [r3]
+ ldrb r0, [r0, #4]
+ ldrb r7, [r7, #4]
+ adds r0, r0, r7
+ strb r0, [r1]
+ ldr r4, [sp, #0x68]
+ movs r7, #0xc
+ ldrsh r1, [r4, r7]
+ lsls r0, r1, #2
+ adds r0, r0, r1
+ lsls r0, r0, #1
+ adds r0, #1
+ ldr r1, [sp, #0x88]
+ adds r0, r1, r0
+ ldr r2, _08052490 @ =0x02031AF0
+ adds r0, r0, r2
+ ldrb r0, [r0]
+ mov sb, r0
+ cmp r0, #0xa
+ bne _080521B8
+ b _080522E2
+_080521B8:
+ ldr r3, [sp, #0x74]
+ ldr r4, [sp, #0x84]
+ adds r5, r3, r4
+ ldr r1, [r5]
+ mov r7, r8
+ ldr r0, [r7]
+ ldrh r0, [r0, #2]
+ ldrb r6, [r6, #6]
+ adds r0, r0, r6
+ strh r0, [r1, #2]
+ ldr r1, [r5]
+ ldr r0, [r7]
+ ldrh r0, [r0, #4]
+ strh r0, [r1, #4]
+ ldr r4, [r5]
+ adds r7, r4, #0
+ adds r7, #8
+ ldrh r2, [r4, #8]
+ lsls r2, r2, #3
+ ldr r0, _08052494 @ =0x03005000
+ adds r2, r2, r0
+ ldrh r1, [r2, #4]
+ ldr r0, _080524A0 @ =0xFFFFFC00
+ ands r0, r1
+ movs r1, #0x2a
+ orrs r0, r1
+ strh r0, [r2, #4]
+ ldrh r1, [r4, #8]
+ lsls r1, r1, #3
+ ldr r2, _08052494 @ =0x03005000
+ adds r1, r1, r2
+ ldrb r2, [r1, #1]
+ mov r0, sl
+ ands r0, r2
+ strb r0, [r1, #1]
+ ldrh r1, [r4, #8]
+ lsls r1, r1, #3
+ ldr r3, _08052494 @ =0x03005000
+ adds r1, r1, r3
+ ldrb r2, [r1, #3]
+ mov r0, sl
+ ands r0, r2
+ strb r0, [r1, #3]
+ ldrh r3, [r4, #8]
+ lsls r3, r3, #3
+ ldr r6, _08052494 @ =0x03005000
+ adds r3, r3, r6
+ movs r0, #2
+ ldrsh r1, [r7, r0]
+ ldr r0, [r5]
+ movs r2, #2
+ ldrsh r0, [r0, r2]
+ adds r1, r1, r0
+ ldr r6, _080524A4 @ =0x000001FF
+ ands r1, r6
+ ldrh r2, [r3, #2]
+ ldr r0, _080524A8 @ =0xFFFFFE00
+ ands r0, r2
+ orrs r0, r1
+ strh r0, [r3, #2]
+ ldrh r1, [r4, #8]
+ lsls r1, r1, #3
+ ldr r0, _08052494 @ =0x03005000
+ adds r1, r1, r0
+ ldr r0, [r5]
+ ldrb r0, [r0, #4]
+ ldrb r7, [r7, #4]
+ adds r0, r0, r7
+ strb r0, [r1]
+ ldr r1, [sp, #0x7c]
+ ldr r2, [sp, #0x84]
+ adds r6, r1, r2
+ ldr r1, [r6]
+ ldr r0, [r5]
+ ldrh r0, [r0, #2]
+ adds r0, #8
+ strh r0, [r1, #2]
+ ldr r1, [r6]
+ mov r3, r8
+ ldr r0, [r3]
+ ldrh r0, [r0, #4]
+ strh r0, [r1, #4]
+ ldr r5, [r6]
+ adds r7, r5, #0
+ adds r7, #8
+ ldrh r3, [r5, #8]
+ lsls r3, r3, #3
+ ldr r4, _08052494 @ =0x03005000
+ adds r3, r3, r4
+ mov r0, sb
+ lsls r4, r0, #3
+ ldr r1, _08052498 @ =0x086BB910
+ adds r4, r4, r1
+ ldrh r0, [r4, #2]
+ ldr r1, _0805249C @ =0x000003FF
+ ands r1, r0
+ ldrh r2, [r3, #4]
+ ldr r0, _080524A0 @ =0xFFFFFC00
+ ands r0, r2
+ orrs r0, r1
+ strh r0, [r3, #4]
+ ldrh r2, [r5, #8]
+ lsls r2, r2, #3
+ ldr r3, _08052494 @ =0x03005000
+ adds r2, r2, r3
+ ldrb r1, [r4, #4]
+ lsls r1, r1, #6
+ ldrb r3, [r2, #1]
+ mov r0, sl
+ ands r0, r3
+ orrs r0, r1
+ strb r0, [r2, #1]
+ ldrh r2, [r5, #8]
+ lsls r2, r2, #3
+ ldr r0, _08052494 @ =0x03005000
+ adds r2, r2, r0
+ ldrb r1, [r4, #5]
+ lsls r1, r1, #6
+ ldrb r3, [r2, #3]
+ mov r0, sl
+ ands r0, r3
+ orrs r0, r1
+ strb r0, [r2, #3]
+ ldrh r3, [r5, #8]
+ lsls r3, r3, #3
+ ldr r1, _08052494 @ =0x03005000
+ adds r3, r3, r1
+ movs r2, #2
+ ldrsh r1, [r7, r2]
+ ldr r0, [r6]
+ movs r4, #2
+ ldrsh r0, [r0, r4]
+ adds r1, r1, r0
+ ldr r0, _080524A4 @ =0x000001FF
+ ands r1, r0
+ ldrh r2, [r3, #2]
+ ldr r0, _080524A8 @ =0xFFFFFE00
+ ands r0, r2
+ orrs r0, r1
+ strh r0, [r3, #2]
+ ldrh r1, [r5, #8]
+ lsls r1, r1, #3
+ ldr r2, _08052494 @ =0x03005000
+ adds r1, r1, r2
+ ldr r0, [r6]
+ ldrb r0, [r0, #4]
+ ldrb r7, [r7, #4]
+ adds r0, r0, r7
+ strb r0, [r1]
+_080522E2:
+ ldr r3, [sp, #0x80]
+ adds r3, #0xc
+ str r3, [sp, #0x80]
+ ldr r4, [sp, #0x84]
+ adds r4, #0xc
+ str r4, [sp, #0x84]
+ ldr r6, [sp, #0x88]
+ adds r6, #2
+ str r6, [sp, #0x88]
+ movs r7, #0xc
+ add r8, r7
+ movs r0, #1
+ add ip, r0
+ mov r1, ip
+ cmp r1, #4
+ bgt _08052304
+ b _0805204E
+_08052304:
+ movs r5, #8
+ movs r0, #0xaa
+ ldr r2, [sp, #0x64]
+ strh r0, [r2, #2]
+ ldr r0, _080524AC @ =0x02002920
+ adds r0, #0x2a
+ ldrb r0, [r0]
+ lsls r1, r0, #1
+ adds r1, r1, r0
+ lsls r1, r1, #2
+ movs r0, #0x2c
+ subs r0, r0, r1
+ strh r0, [r2, #4]
+ ldr r7, [sp, #0x78]
+ ldrh r2, [r2, #8]
+ lsls r2, r2, #3
+ ldr r3, _08052494 @ =0x03005000
+ adds r2, r2, r3
+ movs r4, #2
+ ldrsh r1, [r7, r4]
+ adds r1, #0xaa
+ ldr r6, _080524A4 @ =0x000001FF
+ adds r0, r6, #0
+ ands r1, r0
+ ldrh r3, [r2, #2]
+ ldr r4, _080524A8 @ =0xFFFFFE00
+ adds r0, r4, #0
+ ands r0, r3
+ orrs r0, r1
+ strh r0, [r2, #2]
+ ldr r0, [sp, #0x64]
+ ldrh r1, [r0, #8]
+ lsls r1, r1, #3
+ ldr r2, _08052494 @ =0x03005000
+ adds r1, r1, r2
+ ldrb r0, [r0, #4]
+ ldrb r7, [r7, #4]
+ adds r0, r0, r7
+ strb r0, [r1]
+ movs r0, #0xc0
+ ldr r3, _080524B0 @ =0x0200C948
+ strh r0, [r3, #2]
+ strh r5, [r3, #4]
+ ldr r6, _080524AC @ =0x02002920
+ adds r6, #0x2d
+ mov sl, r6
+ adds r5, r3, #0
+ adds r5, #8
+ movs r6, #0x40
+ mov sb, r4
+ movs r7, #1
+ mov ip, r7
+_0805236C:
+ ldrh r3, [r5]
+ lsls r3, r3, #3
+ ldr r0, _08052494 @ =0x03005000
+ adds r3, r3, r0
+ mov r2, sl
+ movs r1, #0
+ ldrsb r1, [r2, r1]
+ lsls r1, r1, #2
+ adds r1, r6, r1
+ ldr r7, _0805249C @ =0x000003FF
+ adds r4, r7, #0
+ ands r1, r4
+ ldrh r2, [r3, #4]
+ ldr r0, _080524A0 @ =0xFFFFFC00
+ ands r0, r2
+ orrs r0, r1
+ strh r0, [r3, #4]
+ ldrh r3, [r5]
+ lsls r3, r3, #3
+ ldr r0, _08052494 @ =0x03005000
+ adds r3, r3, r0
+ movs r2, #2
+ ldrsh r1, [r5, r2]
+ ldr r7, _080524B0 @ =0x0200C948
+ movs r2, #2
+ ldrsh r0, [r7, r2]
+ adds r1, r1, r0
+ ldr r7, _080524A4 @ =0x000001FF
+ mov r8, r7
+ mov r0, r8
+ ands r1, r0
+ ldrh r2, [r3, #2]
+ mov r0, sb
+ ands r0, r2
+ orrs r0, r1
+ strh r0, [r3, #2]
+ ldrh r1, [r5]
+ lsls r1, r1, #3
+ ldr r2, _08052494 @ =0x03005000
+ adds r1, r1, r2
+ ldr r3, _080524B0 @ =0x0200C948
+ ldrb r0, [r3, #4]
+ ldrb r7, [r5, #4]
+ adds r0, r0, r7
+ strb r0, [r1]
+ adds r5, #8
+ adds r6, #0x80
+ movs r0, #1
+ rsbs r0, r0, #0
+ add ip, r0
+ mov r1, ip
+ cmp r1, #0
+ bge _0805236C
+ ldr r2, _080524B4 @ =0x0200CA00
+ ldrh r0, [r2]
+ cmp r0, #1
+ bne _08052454
+ movs r0, #0xb0
+ strh r0, [r2, #2]
+ movs r0, #8
+ strh r0, [r2, #4]
+ adds r7, r2, #0
+ adds r7, #8
+ ldrh r2, [r2, #8]
+ lsls r2, r2, #3
+ ldr r3, _08052494 @ =0x03005000
+ adds r2, r2, r3
+ ldr r5, _080524AC @ =0x02002920
+ adds r5, #0x2f
+ movs r1, #0
+ ldrsb r1, [r5, r1]
+ lsls r1, r1, #6
+ adds r1, #0x54
+ ands r1, r4
+ ldrh r3, [r2, #4]
+ ldr r0, _080524A0 @ =0xFFFFFC00
+ ands r0, r3
+ orrs r0, r1
+ strh r0, [r2, #4]
+ ldr r4, _080524B4 @ =0x0200CA00
+ ldrh r2, [r4, #8]
+ lsls r2, r2, #3
+ ldr r6, _08052494 @ =0x03005000
+ adds r2, r2, r6
+ movs r0, #2
+ ldrsh r1, [r7, r0]
+ movs r3, #2
+ ldrsh r0, [r4, r3]
+ adds r1, r1, r0
+ mov r4, r8
+ ands r1, r4
+ ldrh r3, [r2, #2]
+ ldr r0, _080524A8 @ =0xFFFFFE00
+ ands r0, r3
+ orrs r0, r1
+ strh r0, [r2, #2]
+ ldr r6, _080524B4 @ =0x0200CA00
+ ldrh r1, [r6, #8]
+ lsls r1, r1, #3
+ ldr r0, _08052494 @ =0x03005000
+ adds r1, r1, r0
+ ldrb r0, [r6, #4]
+ ldrb r7, [r7, #4]
+ adds r0, r0, r7
+ strb r0, [r1]
+ ldr r0, _080524B8 @ =0x0200B0C0
+ ldr r0, [r0, #0x4c]
+ movs r1, #0x12
+ bl sub_558B0
+ cmp r0, #0
+ bne _08052454
+ ldrb r1, [r5]
+ movs r0, #1
+ subs r0, r0, r1
+ strb r0, [r5]
+_08052454:
+ movs r0, #0
+ ldr r1, [sp, #0x60]
+ strh r0, [r1]
+ mov ip, r0
+ ldr r4, [sp, #0x6c]
+ movs r3, #0
+_08052460:
+ mov r2, ip
+ adds r2, #1
+ mov r6, ip
+ lsls r0, r6, #1
+ add r0, ip
+ lsls r0, r0, #2
+ adds r1, r0, r4
+ movs r5, #2
+_08052470:
+ ldm r1!, {r0}
+ strh r3, [r0]
+ subs r5, #1
+ cmp r5, #0
+ bge _08052470
+ mov ip, r2
+ cmp r2, #5
+ ble _08052460
+ add sp, #0x8c
+ pop {r3, r4, r5}
+ mov r8, r3
+ mov sb, r4
+ mov sl, r5
+ pop {r4, r5, r6, r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08052490: .4byte 0x02031AF0
+_08052494: .4byte 0x03005000
+_08052498: .4byte 0x086BB910
+_0805249C: .4byte 0x000003FF
+_080524A0: .4byte 0xFFFFFC00
+_080524A4: .4byte 0x000001FF
+_080524A8: .4byte 0xFFFFFE00
+_080524AC: .4byte 0x02002920
+_080524B0: .4byte 0x0200C948
+_080524B4: .4byte 0x0200CA00
+_080524B8: .4byte 0x0200B0C0
+
+ thumb_func_start sub_524BC
+sub_524BC: @ 0x080524BC
+ push {r4, r5, lr}
+ ldr r1, _0805251C @ =0x02002920
+ movs r2, #0x28
+ ldrsh r0, [r1, r2]
+ adds r2, r1, #0
+ cmp r0, #1
+ bgt _08052514
+ ldr r0, _08052520 @ =0x0200B0C0
+ ldrh r0, [r0, #0x1c]
+ ldr r4, _08052524 @ =0x000003F7
+ ands r4, r0
+ cmp r4, #0
+ beq _08052514
+ movs r3, #0
+_080524D8:
+ movs r1, #1
+ lsls r1, r3
+ ands r1, r4
+ cmp r1, #0
+ beq _0805250E
+ movs r5, #0x22
+ ldrsh r0, [r2, r5]
+ ands r0, r1
+ cmp r0, #0
+ bne _0805250E
+ ldrh r0, [r2, #0x22]
+ orrs r1, r0
+ strh r1, [r2, #0x22]
+ movs r1, #0x28
+ ldrsh r0, [r2, r1]
+ lsls r0, r0, #1
+ adds r1, r2, #0
+ adds r1, #0x24
+ adds r0, r0, r1
+ strh r3, [r0]
+ ldrh r0, [r2, #0x28]
+ adds r0, #1
+ strh r0, [r2, #0x28]
+ lsls r0, r0, #0x10
+ asrs r0, r0, #0x10
+ cmp r0, #2
+ beq _08052514
+_0805250E:
+ adds r3, #1
+ cmp r3, #9
+ ble _080524D8
+_08052514:
+ pop {r4, r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0805251C: .4byte 0x02002920
+_08052520: .4byte 0x0200B0C0
+_08052524: .4byte 0x000003F7
+
+ thumb_func_start sub_52528
+sub_52528: @ 0x08052528
+ push {r4, r5, r6, r7, lr}
+ movs r0, #0
+ ldr r1, _0805255C @ =0x0200B204
+ mov ip, r1
+ ldr r6, _08052560 @ =0x02031B18
+_08052532:
+ movs r2, #0
+ lsls r4, r0, #2
+ lsls r3, r0, #1
+ adds r5, r0, #1
+_0805253A:
+ lsls r0, r2, #1
+ adds r0, r0, r4
+ add r0, ip
+ movs r7, #0
+ ldrsh r1, [r0, r7]
+ cmp r1, #0x10
+ beq _0805259A
+ cmp r1, #0x10
+ bgt _0805256A
+ cmp r1, #2
+ beq _08052592
+ cmp r1, #2
+ bgt _08052564
+ cmp r1, #1
+ beq _0805258E
+ b _080525B2
+ .align 2, 0
+_0805255C: .4byte 0x0200B204
+_08052560: .4byte 0x02031B18
+_08052564:
+ cmp r1, #4
+ beq _08052596
+ b _080525B2
+_0805256A:
+ cmp r1, #0x80
+ beq _080525A6
+ cmp r1, #0x80
+ bgt _0805257C
+ cmp r1, #0x20
+ beq _0805259E
+ cmp r1, #0x40
+ beq _080525A2
+ b _080525B2
+_0805257C:
+ movs r0, #0x80
+ lsls r0, r0, #1
+ cmp r1, r0
+ beq _080525AA
+ movs r0, #0x80
+ lsls r0, r0, #2
+ cmp r1, r0
+ beq _080525AE
+ b _080525B2
+_0805258E:
+ movs r1, #0
+ b _080525B4
+_08052592:
+ movs r1, #1
+ b _080525B4
+_08052596:
+ movs r1, #2
+ b _080525B4
+_0805259A:
+ movs r1, #4
+ b _080525B4
+_0805259E:
+ movs r1, #5
+ b _080525B4
+_080525A2:
+ movs r1, #6
+ b _080525B4
+_080525A6:
+ movs r1, #7
+ b _080525B4
+_080525AA:
+ movs r1, #8
+ b _080525B4
+_080525AE:
+ movs r1, #9
+ b _080525B4
+_080525B2:
+ movs r1, #0xa
+_080525B4:
+ adds r0, r3, r2
+ adds r0, r0, r6
+ strb r1, [r0]
+ adds r2, #1
+ cmp r2, #1
+ ble _0805253A
+ adds r0, r5, #0
+ cmp r0, #4
+ ble _08052532
+ pop {r4, r5, r6, r7}
+ pop {r0}
+ bx r0
+
+ thumb_func_start sub_525CC
+sub_525CC: @ 0x080525CC
+ push {r4, r5, r6, lr}
+ lsls r0, r0, #0x18
+ movs r1, #0x80
+ lsls r1, r1, #0x11
+ adds r0, r0, r1
+ asrs r0, r0, #0x18
+ cmp r0, #5
+ bls _080525DE
+ b _080528A2
+_080525DE:
+ lsls r0, r0, #2
+ ldr r1, _080525E8 @ =_080525EC
+ adds r0, r0, r1
+ ldr r0, [r0]
+ mov pc, r0
+ .align 2, 0
+_080525E8: .4byte _080525EC
+_080525EC: @ jump table
+ .4byte _08052604 @ case 0
+ .4byte _080526CC @ case 1
+ .4byte _08052720 @ case 2
+ .4byte _08052770 @ case 3
+ .4byte _080527C0 @ case 4
+ .4byte _08052814 @ case 5
+_08052604:
+ ldr r0, _080526BC @ =0x0200B0C0
+ mov ip, r0
+ ldr r6, _080526C0 @ =0x086BB910
+ ldrh r5, [r6, #0x28]
+ adds r0, #0x60
+ strh r5, [r0]
+ adds r0, r6, #0
+ adds r0, #0x50
+ ldrh r2, [r0]
+ mov r0, ip
+ adds r0, #0x62
+ strh r2, [r0]
+ ldrh r4, [r6]
+ adds r0, #2
+ strh r4, [r0]
+ adds r0, #2
+ strh r2, [r0]
+ adds r0, r6, #0
+ adds r0, #0x48
+ ldrh r3, [r0]
+ mov r0, ip
+ adds r0, #0x68
+ strh r3, [r0]
+ adds r0, #2
+ strh r2, [r0]
+ adds r0, r6, #0
+ adds r0, #0x40
+ ldrh r1, [r0]
+ mov r0, ip
+ adds r0, #0x6c
+ strh r1, [r0]
+ adds r0, #2
+ strh r2, [r0]
+ adds r0, #2
+ strh r3, [r0]
+ adds r0, #2
+ strh r1, [r0]
+ ldrh r1, [r6, #8]
+ movs r0, #0xa2
+ lsls r0, r0, #1
+ add r0, ip
+ strh r1, [r0]
+ movs r0, #0xa3
+ lsls r0, r0, #1
+ add r0, ip
+ strh r2, [r0]
+ movs r0, #0xa4
+ lsls r0, r0, #1
+ add r0, ip
+ strh r4, [r0]
+ movs r0, #0xa5
+ lsls r0, r0, #1
+ add r0, ip
+ strh r2, [r0]
+ movs r0, #0xa6
+ lsls r0, r0, #1
+ add r0, ip
+ strh r5, [r0]
+ movs r0, #0xa7
+ lsls r0, r0, #1
+ add r0, ip
+ strh r2, [r0]
+ ldrh r1, [r6, #0x20]
+ movs r0, #0xa8
+ lsls r0, r0, #1
+ add r0, ip
+ strh r1, [r0]
+ movs r0, #0xa9
+ lsls r0, r0, #1
+ add r0, ip
+ strh r2, [r0]
+ ldrh r1, [r6, #0x30]
+ movs r0, #0xaa
+ lsls r0, r0, #1
+ add r0, ip
+ strh r1, [r0]
+ movs r0, #0xab
+ lsls r0, r0, #1
+ add r0, ip
+ strh r2, [r0]
+ movs r2, #0
+ ldr r4, _080526C4 @ =0x02031B18
+ ldr r3, _080526C8 @ =0x08527EFE
+_080526AA:
+ adds r0, r2, r4
+ adds r1, r2, r3
+ ldrb r1, [r1]
+ strb r1, [r0]
+ adds r2, #1
+ cmp r2, #9
+ ble _080526AA
+ b _080528A2
+ .align 2, 0
+_080526BC: .4byte 0x0200B0C0
+_080526C0: .4byte 0x086BB910
+_080526C4: .4byte 0x02031B18
+_080526C8: .4byte 0x08527EFE
+_080526CC:
+ ldr r4, _08052718 @ =0x0200B0C0
+ ldr r5, _0805271C @ =0x086BB910
+ ldrh r1, [r5, #0x28]
+ adds r0, r4, #0
+ adds r0, #0x60
+ strh r1, [r0]
+ adds r0, r5, #0
+ adds r0, #0x50
+ ldrh r2, [r0]
+ adds r0, r4, #0
+ adds r0, #0x62
+ strh r2, [r0]
+ ldrh r1, [r5]
+ adds r0, #2
+ strh r1, [r0]
+ adds r0, #2
+ strh r2, [r0]
+ adds r0, r5, #0
+ adds r0, #0x48
+ ldrh r3, [r0]
+ adds r0, r4, #0
+ adds r0, #0x68
+ strh r3, [r0]
+ adds r0, #2
+ strh r2, [r0]
+ adds r0, r5, #0
+ adds r0, #0x40
+ ldrh r1, [r0]
+ adds r0, r4, #0
+ adds r0, #0x6c
+ strh r1, [r0]
+ adds r0, #2
+ strh r2, [r0]
+ adds r0, #2
+ strh r3, [r0]
+ adds r0, #2
+ b _080528A0
+ .align 2, 0
+_08052718: .4byte 0x0200B0C0
+_0805271C: .4byte 0x086BB910
+_08052720:
+ ldr r3, _08052768 @ =0x0200B0C0
+ ldr r4, _0805276C @ =0x086BB910
+ ldrh r1, [r4, #0x28]
+ adds r0, r3, #0
+ adds r0, #0x60
+ strh r1, [r0]
+ adds r0, r4, #0
+ adds r0, #0x50
+ ldrh r2, [r0]
+ adds r0, r3, #0
+ adds r0, #0x62
+ strh r2, [r0]
+ ldrh r1, [r4]
+ adds r0, #2
+ strh r1, [r0]
+ adds r0, #2
+ strh r2, [r0]
+ adds r0, r4, #0
+ adds r0, #0x48
+ ldrh r1, [r0]
+ adds r0, r3, #0
+ adds r0, #0x68
+ strh r1, [r0]
+ adds r0, #2
+ strh r2, [r0]
+ adds r0, r4, #0
+ adds r0, #0x40
+ ldrh r1, [r0]
+ adds r0, r3, #0
+ adds r0, #0x6c
+ strh r1, [r0]
+ adds r0, #2
+ strh r2, [r0]
+ ldrh r1, [r4, #8]
+ b _08052802
+ .align 2, 0
+_08052768: .4byte 0x0200B0C0
+_0805276C: .4byte 0x086BB910
+_08052770:
+ ldr r4, _080527B8 @ =0x0200B0C0
+ ldr r5, _080527BC @ =0x086BB910
+ adds r0, r5, #0
+ adds r0, #0x48
+ ldrh r1, [r0]
+ adds r0, r4, #0
+ adds r0, #0x60
+ strh r1, [r0]
+ adds r0, r5, #0
+ adds r0, #0x50
+ ldrh r2, [r0]
+ adds r0, r4, #0
+ adds r0, #0x62
+ strh r2, [r0]
+ adds r0, r5, #0
+ adds r0, #0x40
+ ldrh r1, [r0]
+ adds r0, r4, #0
+ adds r0, #0x64
+ strh r1, [r0]
+ adds r0, #2
+ strh r2, [r0]
+ ldrh r3, [r5, #0x28]
+ adds r0, #2
+ strh r3, [r0]
+ adds r0, #2
+ strh r2, [r0]
+ ldrh r1, [r5]
+ adds r0, #2
+ strh r1, [r0]
+ adds r0, #2
+ strh r2, [r0]
+ adds r0, #2
+ strh r3, [r0]
+ adds r0, #2
+ b _080528A0
+ .align 2, 0
+_080527B8: .4byte 0x0200B0C0
+_080527BC: .4byte 0x086BB910
+_080527C0:
+ ldr r3, _0805280C @ =0x0200B0C0
+ ldr r4, _08052810 @ =0x086BB910
+ adds r0, r4, #0
+ adds r0, #0x48
+ ldrh r1, [r0]
+ adds r0, r3, #0
+ adds r0, #0x60
+ strh r1, [r0]
+ adds r0, r4, #0
+ adds r0, #0x50
+ ldrh r2, [r0]
+ adds r0, r3, #0
+ adds r0, #0x62
+ strh r2, [r0]
+ adds r0, r4, #0
+ adds r0, #0x40
+ ldrh r1, [r0]
+ adds r0, r3, #0
+ adds r0, #0x64
+ strh r1, [r0]
+ adds r0, #2
+ strh r2, [r0]
+ ldrh r1, [r4, #0x28]
+ adds r0, #2
+ strh r1, [r0]
+ adds r0, #2
+ strh r2, [r0]
+ ldrh r1, [r4, #0x20]
+ adds r0, #2
+ strh r1, [r0]
+ adds r0, #2
+ strh r2, [r0]
+ ldrh r1, [r4, #0x30]
+_08052802:
+ adds r0, #2
+ strh r1, [r0]
+ adds r0, #2
+ strh r2, [r0]
+ b _080528A2
+ .align 2, 0
+_0805280C: .4byte 0x0200B0C0
+_08052810: .4byte 0x086BB910
+_08052814:
+ ldr r2, _080528A8 @ =0x0200B0C0
+ movs r1, #0xa2
+ lsls r1, r1, #1
+ adds r0, r2, r1
+ ldrh r1, [r0]
+ adds r0, r2, #0
+ adds r0, #0x60
+ strh r1, [r0]
+ movs r1, #0xa3
+ lsls r1, r1, #1
+ adds r0, r2, r1
+ ldrh r0, [r0]
+ adds r1, r2, #0
+ adds r1, #0x62
+ strh r0, [r1]
+ movs r1, #0xa4
+ lsls r1, r1, #1
+ adds r0, r2, r1
+ ldrh r1, [r0]
+ adds r0, r2, #0
+ adds r0, #0x64
+ strh r1, [r0]
+ movs r1, #0xa5
+ lsls r1, r1, #1
+ adds r0, r2, r1
+ ldrh r0, [r0]
+ adds r1, r2, #0
+ adds r1, #0x66
+ strh r0, [r1]
+ movs r1, #0xa6
+ lsls r1, r1, #1
+ adds r0, r2, r1
+ ldrh r1, [r0]
+ adds r0, r2, #0
+ adds r0, #0x68
+ strh r1, [r0]
+ movs r1, #0xa7
+ lsls r1, r1, #1
+ adds r0, r2, r1
+ ldrh r0, [r0]
+ adds r1, r2, #0
+ adds r1, #0x6a
+ strh r0, [r1]
+ movs r1, #0xa8
+ lsls r1, r1, #1
+ adds r0, r2, r1
+ ldrh r1, [r0]
+ adds r0, r2, #0
+ adds r0, #0x6c
+ strh r1, [r0]
+ movs r1, #0xa9
+ lsls r1, r1, #1
+ adds r0, r2, r1
+ ldrh r0, [r0]
+ adds r1, r2, #0
+ adds r1, #0x6e
+ strh r0, [r1]
+ movs r1, #0xaa
+ lsls r1, r1, #1
+ adds r0, r2, r1
+ ldrh r1, [r0]
+ adds r0, r2, #0
+ adds r0, #0x70
+ strh r1, [r0]
+ movs r1, #0xab
+ lsls r1, r1, #1
+ adds r0, r2, r1
+ ldrh r1, [r0]
+ adds r0, r2, #0
+ adds r0, #0x72
+_080528A0:
+ strh r1, [r0]
+_080528A2:
+ pop {r4, r5, r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080528A8: .4byte 0x0200B0C0
+
+ thumb_func_start sub_528AC
+sub_528AC: @ 0x080528AC
+ lsls r0, r0, #0x10
+ lsrs r0, r0, #0x10
+ adds r1, r0, #0
+ cmp r0, #0xfa
+ bls _080528DA
+ ldr r0, _080528CC @ =0x00000113
+ cmp r1, r0
+ bls _080528D8
+ ldr r0, _080528D0 @ =0x08527F18
+ ldr r2, _080528D4 @ =0xFFFFFEEC
+ adds r1, r1, r2
+ lsls r1, r1, #1
+ adds r1, r1, r0
+ ldrh r0, [r1]
+ b _080528DA
+ .align 2, 0
+_080528CC: .4byte 0x00000113
+_080528D0: .4byte 0x08527F18
+_080528D4: .4byte 0xFFFFFEEC
+_080528D8:
+ movs r0, #0xc8
+_080528DA:
+ bx lr
+
+ thumb_func_start sub_528DC
+sub_528DC: @ 0x080528DC
+ push {r4, r5, lr}
+ sub sp, #4
+ adds r5, r0, #0
+ adds r4, r1, #0
+ lsls r5, r5, #0x10
+ lsrs r5, r5, #0x10
+ lsls r4, r4, #0x18
+ lsrs r4, r4, #0x18
+ ldr r0, _08052914 @ =0x02032EE0
+ ldr r1, _08052918 @ =0x0000FFFF
+ movs r2, #0x99
+ bl sub_54D94
+ lsls r4, r4, #0x18
+ asrs r4, r4, #0x18
+ movs r0, #0
+ str r0, [sp]
+ adds r0, r5, #0
+ adds r1, r4, #0
+ movs r2, #0x7d
+ movs r3, #0xa
+ bl sub_52940
+ add sp, #4
+ pop {r4, r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08052914: .4byte 0x02032EE0
+_08052918: .4byte 0x0000FFFF
+
+ thumb_func_start sub_5291C
+sub_5291C: @ 0x0805291C
+ push {r4, lr}
+ sub sp, #4
+ lsls r0, r0, #0x10
+ lsrs r0, r0, #0x10
+ lsls r3, r3, #0x18
+ lsrs r3, r3, #0x18
+ lsls r1, r1, #0x18
+ asrs r1, r1, #0x18
+ lsls r2, r2, #0x18
+ asrs r2, r2, #0x18
+ movs r4, #0
+ str r4, [sp]
+ bl sub_52940
+ add sp, #4
+ pop {r4}
+ pop {r0}
+ bx r0
+
+ thumb_func_start sub_52940
+sub_52940: @ 0x08052940
+ push {r4, r5, r6, lr}
+ mov r6, r8
+ push {r6}
+ adds r5, r0, #0
+ adds r4, r1, #0
+ adds r0, r2, #0
+ adds r6, r3, #0
+ lsls r5, r5, #0x10
+ lsls r4, r4, #0x18
+ lsrs r4, r4, #0x18
+ lsls r6, r6, #0x18
+ lsrs r6, r6, #0x18
+ ldr r1, _080529BC @ =0xFFFF0000
+ adds r5, r5, r1
+ lsrs r5, r5, #0x10
+ movs r1, #0xf0
+ lsls r1, r1, #6
+ mov r8, r1
+ lsls r0, r0, #0x18
+ lsrs r0, r0, #0x18
+ bl sub_553BC
+ lsls r4, r4, #0x18
+ asrs r4, r4, #0x18
+ adds r0, r4, #0
+ bl sub_553D0
+ mov r0, r8
+ bl sub_553E8
+ movs r0, #0x8c
+ bl sub_55420
+ movs r0, #0
+ bl sub_55438
+ movs r0, #0
+ bl sub_5542C
+ movs r0, #0
+ bl sub_5545C
+ adds r0, r6, #0
+ bl sub_554C8
+ adds r0, r5, #0
+ bl sub_528AC
+ movs r1, #0x7f
+ ands r1, r0
+ lsrs r0, r0, #7
+ lsls r0, r0, #0x18
+ lsrs r0, r0, #0x18
+ adds r2, r0, #0
+ cmp r0, #1
+ beq _080529D8
+ cmp r0, #1
+ bgt _080529C0
+ cmp r0, #0
+ beq _080529CA
+ b _08052A0A
+ .align 2, 0
+_080529BC: .4byte 0xFFFF0000
+_080529C0:
+ cmp r2, #2
+ beq _080529E8
+ cmp r2, #3
+ beq _080529FC
+ b _08052A0A
+_080529CA:
+ lsls r0, r1, #1
+ adds r0, r0, r1
+ lsls r0, r0, #2
+ ldr r1, _080529D4 @ =0x08532D6C
+ b _080529F0
+ .align 2, 0
+_080529D4: .4byte 0x08532D6C
+_080529D8:
+ lsls r0, r1, #1
+ adds r0, r0, r1
+ lsls r0, r0, #2
+ ldr r1, _080529E4 @ =0x08533360
+ b _080529F0
+ .align 2, 0
+_080529E4: .4byte 0x08533360
+_080529E8:
+ lsls r0, r1, #1
+ adds r0, r0, r1
+ lsls r0, r0, #2
+ ldr r1, _080529F8 @ =0x08533960
+_080529F0:
+ adds r0, r0, r1
+ bl sub_552EC
+ b _08052A0A
+ .align 2, 0
+_080529F8: .4byte 0x08533960
+_080529FC:
+ lsls r0, r1, #1
+ adds r0, r0, r1
+ lsls r0, r0, #2
+ ldr r1, _08052A14 @ =0x08533F60
+ adds r0, r0, r1
+ bl sub_552EC
+_08052A0A:
+ pop {r3}
+ mov r8, r3
+ pop {r4, r5, r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08052A14: .4byte 0x08533F60
+
+ thumb_func_start sub_52A18
+sub_52A18: @ 0x08052A18
+ push {r4, lr}
+ bl sub_555BC
+ ldr r4, _08052A4C @ =0x0200B0C0
+ movs r0, #0
+ strb r0, [r4, #0xc]
+ bl sub_52A68
+ lsls r0, r0, #0x10
+ cmp r0, #0
+ bne _08052A50
+ bl sub_52C64
+ bl sub_52B30
+ bl sub_52A68
+ lsls r0, r0, #0x10
+ cmp r0, #0
+ bne _08052A5E
+ movs r0, #1
+ strb r0, [r4, #0xc]
+ bl sub_52C64
+ b _08052A5E
+ .align 2, 0
+_08052A4C: .4byte 0x0200B0C0
+_08052A50:
+ ldr r1, _08052A64 @ =0x00000143
+ adds r0, r4, r1
+ ldrb r0, [r0]
+ lsls r0, r0, #0x18
+ asrs r0, r0, #0x18
+ bl sub_525CC
+_08052A5E:
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08052A64: .4byte 0x00000143
+
+ thumb_func_start sub_52A68
+sub_52A68: @ 0x08052A68
+ push {r4, r5, r6, r7, lr}
+ mov r7, sb
+ mov r6, r8
+ push {r6, r7}
+ movs r0, #0
+ mov r8, r0
+ movs r7, #0
+ ldr r1, _08052B04 @ =0x02032FF0
+ mov sb, r1
+_08052A7A:
+ ldr r5, _08052B08 @ =0x0200B134
+ movs r4, #0x9d
+ lsls r4, r4, #2
+ lsls r0, r7, #2
+ adds r0, r0, r7
+ lsls r0, r0, #2
+ adds r0, r0, r7
+ lsls r0, r0, #5
+ ldr r3, _08052B0C @ =0x0E000004
+ adds r0, r0, r3
+ mov r6, sb
+ ldr r3, [r6]
+ adds r1, r5, #0
+ adds r2, r4, #0
+ bl sub_556A0
+ movs r2, #0
+ movs r0, #0x99
+ lsls r0, r0, #2
+ adds r3, r5, r0
+ movs r0, #0
+ ldrsb r0, [r3, r0]
+ ldr r1, _08052B10 @ =0x086BBA6C
+ ldrb r6, [r1]
+ cmp r0, r6
+ bne _08052ACA
+ adds r6, r3, #0
+ adds r3, r1, #0
+_08052AB2:
+ adds r0, r2, #1
+ lsls r0, r0, #0x10
+ lsrs r2, r0, #0x10
+ cmp r2, #9
+ bhi _08052ACA
+ adds r0, r2, r6
+ movs r1, #0
+ ldrsb r1, [r0, r1]
+ adds r0, r2, r3
+ ldrb r0, [r0]
+ cmp r1, r0
+ beq _08052AB2
+_08052ACA:
+ cmp r2, #0xa
+ bne _08052B18
+ movs r2, #0
+ cmp r4, #1
+ bls _08052AE0
+_08052AD4:
+ ldrh r0, [r5]
+ adds r2, r2, r0
+ adds r5, #2
+ subs r4, #2
+ cmp r4, #1
+ bhi _08052AD4
+_08052AE0:
+ cmp r4, #0
+ beq _08052AF0
+ ldrh r1, [r5]
+ movs r3, #0xff
+ lsls r3, r3, #8
+ adds r0, r3, #0
+ ands r0, r1
+ adds r2, r2, r0
+_08052AF0:
+ ldr r0, _08052B14 @ =0x0000FFFF
+ adds r1, r2, #0
+ ands r1, r0
+ lsrs r2, r2, #0x10
+ adds r2, r1, r2
+ cmp r2, r0
+ bne _08052B18
+ movs r6, #1
+ mov r8, r6
+ b _08052B22
+ .align 2, 0
+_08052B04: .4byte 0x02032FF0
+_08052B08: .4byte 0x0200B134
+_08052B0C: .4byte 0x0E000004
+_08052B10: .4byte 0x086BBA6C
+_08052B14: .4byte 0x0000FFFF
+_08052B18:
+ adds r0, r7, #1
+ lsls r0, r0, #0x10
+ lsrs r7, r0, #0x10
+ cmp r7, #1
+ bls _08052A7A
+_08052B22:
+ mov r0, r8
+ pop {r3, r4}
+ mov r8, r3
+ mov sb, r4
+ pop {r4, r5, r6, r7}
+ pop {r1}
+ bx r1
+
+ thumb_func_start sub_52B30
+sub_52B30: @ 0x08052B30
+ push {r4, r5, lr}
+ ldr r3, _08052B9C @ =0x0200B134
+ movs r4, #0x9d
+ lsls r4, r4, #2
+ movs r0, #0x9c
+ lsls r0, r0, #2
+ adds r1, r3, r0
+ ldr r0, [r1]
+ adds r0, #1
+ str r0, [r1]
+ ldr r2, _08052BA0 @ =0x0000026E
+ adds r1, r3, r2
+ movs r0, #0
+ strh r0, [r1]
+ movs r2, #0
+ adds r5, r3, #0
+_08052B50:
+ ldrh r0, [r3]
+ adds r2, r2, r0
+ adds r3, #2
+ subs r4, #2
+ cmp r4, #1
+ bhi _08052B50
+ cmp r4, #0
+ beq _08052B6A
+ ldrh r1, [r3]
+ movs r0, #0xff
+ lsls r0, r0, #8
+ ands r0, r1
+ adds r2, r2, r0
+_08052B6A:
+ ldr r0, _08052BA4 @ =0x0000FFFF
+ ands r0, r2
+ lsrs r1, r2, #0x10
+ adds r2, r0, r1
+ lsrs r0, r2, #0x10
+ adds r0, r0, r2
+ mvns r0, r0
+ ldr r2, _08052BA0 @ =0x0000026E
+ adds r1, r5, r2
+ strh r0, [r1]
+ ldr r1, _08052BA8 @ =0x0E000004
+ movs r4, #0x9d
+ lsls r4, r4, #2
+ adds r0, r5, #0
+ adds r2, r4, #0
+ bl sub_55654
+ ldr r1, _08052BAC @ =0x0E0002A4
+ adds r0, r5, #0
+ adds r2, r4, #0
+ bl sub_55654
+ pop {r4, r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08052B9C: .4byte 0x0200B134
+_08052BA0: .4byte 0x0000026E
+_08052BA4: .4byte 0x0000FFFF
+_08052BA8: .4byte 0x0E000004
+_08052BAC: .4byte 0x0E0002A4
+
+ thumb_func_start sub_52BB0
+sub_52BB0: @ 0x08052BB0
+ push {r4, r5, r6, lr}
+ lsls r1, r1, #0x18
+ lsrs r5, r1, #0x18
+ ldr r3, _08052C30 @ =0x0200B134
+ movs r4, #0x9d
+ lsls r4, r4, #2
+ lsls r0, r0, #0x10
+ asrs r0, r0, #0x10
+ adds r2, r0, r3
+ ldrb r0, [r2]
+ adds r6, r3, #0
+ cmp r0, r5
+ bhs _08052C28
+ movs r0, #0x9c
+ lsls r0, r0, #2
+ adds r1, r6, r0
+ ldr r0, [r1]
+ adds r0, #1
+ str r0, [r1]
+ movs r1, #0
+ strb r5, [r2]
+ ldr r2, _08052C34 @ =0x0000026E
+ adds r0, r6, r2
+ strh r1, [r0]
+ movs r2, #0
+_08052BE2:
+ ldrh r0, [r3]
+ adds r2, r2, r0
+ adds r3, #2
+ subs r4, #2
+ cmp r4, #1
+ bhi _08052BE2
+ cmp r4, #0
+ beq _08052BFC
+ ldrh r1, [r3]
+ movs r0, #0xff
+ lsls r0, r0, #8
+ ands r0, r1
+ adds r2, r2, r0
+_08052BFC:
+ ldr r0, _08052C38 @ =0x0000FFFF
+ ands r0, r2
+ lsrs r1, r2, #0x10
+ adds r2, r0, r1
+ lsrs r0, r2, #0x10
+ adds r0, r0, r2
+ mvns r0, r0
+ ldr r2, _08052C34 @ =0x0000026E
+ adds r1, r6, r2
+ strh r0, [r1]
+ ldr r1, _08052C3C @ =0x0E000004
+ movs r4, #0x9d
+ lsls r4, r4, #2
+ adds r0, r6, #0
+ adds r2, r4, #0
+ bl sub_55654
+ ldr r1, _08052C40 @ =0x0E0002A4
+ adds r0, r6, #0
+ adds r2, r4, #0
+ bl sub_55654
+_08052C28:
+ pop {r4, r5, r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08052C30: .4byte 0x0200B134
+_08052C34: .4byte 0x0000026E
+_08052C38: .4byte 0x0000FFFF
+_08052C3C: .4byte 0x0E000004
+_08052C40: .4byte 0x0E0002A4
+
+ thumb_func_start sub_52C44
+sub_52C44: @ 0x08052C44
+ push {lr}
+ ldr r2, _08052C58 @ =0x02032FF0
+ ldr r0, _08052C5C @ =0x0E000544
+ ldr r1, _08052C60 @ =0x0200B100
+ ldr r3, [r2]
+ movs r2, #4
+ bl sub_556A0
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08052C58: .4byte 0x02032FF0
+_08052C5C: .4byte 0x0E000544
+_08052C60: .4byte 0x0200B100
+
+ thumb_func_start sub_52C64
+sub_52C64: @ 0x08052C64
+ push {r4, r5, lr}
+ movs r1, #0
+ ldr r5, _08052CBC @ =0x0200B134
+ movs r0, #0x99
+ lsls r0, r0, #2
+ adds r4, r5, r0
+ ldr r3, _08052CC0 @ =0x086BBA6C
+_08052C72:
+ lsls r0, r1, #0x10
+ asrs r0, r0, #0x10
+ adds r2, r0, r4
+ adds r1, r0, r3
+ ldrb r1, [r1]
+ strb r1, [r2]
+ adds r0, #1
+ lsls r0, r0, #0x10
+ lsrs r1, r0, #0x10
+ asrs r0, r0, #0x10
+ cmp r0, #9
+ ble _08052C72
+ movs r1, #0x9c
+ lsls r1, r1, #2
+ adds r0, r5, r1
+ movs r4, #0
+ str r4, [r0]
+ adds r0, r5, #0
+ adds r0, #0xcd
+ strb r4, [r0]
+ adds r0, #1
+ strb r4, [r0]
+ movs r0, #1
+ rsbs r0, r0, #0
+ bl sub_525CC
+ bl sub_F6E0
+ bl sub_8ABC
+ adds r0, r5, #0
+ adds r0, #0xcf
+ strb r4, [r0]
+ pop {r4, r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08052CBC: .4byte 0x0200B134
+_08052CC0: .4byte 0x086BBA6C
diff --git a/asm/rom.s b/asm/rom.s
index 20beab7..7d9294e 100755
--- a/asm/rom.s
+++ b/asm/rom.s
@@ -1,3 +1,3 @@
.text
-.incbin "baserom.gba", 0x41580, 0x67AA50
+.incbin "baserom.gba", 0x52CC4, 0x66930C
diff --git a/asm/start.s b/asm/start.s
index b23c4c8..ec036b0 100755
--- a/asm/start.s
+++ b/asm/start.s
@@ -28,6 +28,7 @@ sp_sys: .4byte IWRAM_END - 0x100
sp_irq: .4byte IWRAM_END - 0x60
.pool
+ .global IntrMain
IntrMain: @ 8000104
mov r3, REG_BASE
add r3, r3, OFFSET_REG_IE