diff options
author | Marcus Huderle <huderlem@gmail.com> | 2018-10-12 09:46:01 -0500 |
---|---|---|
committer | Marcus Huderle <huderlem@gmail.com> | 2018-10-12 09:46:01 -0500 |
commit | e6318b44aac1d1fe94aedb7dba1b03553d192647 (patch) | |
tree | 097352a24da11eb1a165c4e769c71598b24adebf | |
parent | f5d6fb1bc7097dcc9d122d4b490ca6e9c26d5994 (diff) |
Dump more assembly and fixup some labels
-rwxr-xr-x | asm/main.s | 34644 | ||||
-rwxr-xr-x | asm/rom.s | 2 | ||||
-rwxr-xr-x | asm/start.s | 1 |
3 files changed, 34450 insertions, 197 deletions
@@ -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 @@ -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 |