diff options
author | sceptillion <33798691+sceptillion@users.noreply.github.com> | 2017-12-16 23:54:22 -0800 |
---|---|---|
committer | sceptillion <33798691+sceptillion@users.noreply.github.com> | 2017-12-16 23:54:22 -0800 |
commit | 670fef77ac4d9116d5fdc28c0da40622919a062b (patch) | |
tree | 61c0e925f059404473826ac775305ba5e2706ab1 /asm/battle_controller_player.s |
first commit
Diffstat (limited to 'asm/battle_controller_player.s')
-rw-r--r-- | asm/battle_controller_player.s | 11027 |
1 files changed, 11027 insertions, 0 deletions
diff --git a/asm/battle_controller_player.s b/asm/battle_controller_player.s new file mode 100644 index 000000000..3e97fc6e4 --- /dev/null +++ b/asm/battle_controller_player.s @@ -0,0 +1,11027 @@ + .include "asm/macros.inc" + .include "constants/constants.inc" + + .syntax unified + + .text + + thumb_func_start nullsub_13 +nullsub_13: @ 802E310 + bx lr + thumb_func_end nullsub_13 + + thumb_func_start sub_802E314 +sub_802E314: @ 802E314 + ldr r1, _0802E32C @ =gUnknown_3004FE0 + ldr r0, _0802E330 @ =gUnknown_2023BC4 + ldrb r0, [r0] + lsls r0, 2 + adds r0, r1 + ldr r1, _0802E334 @ =sub_802E3B4 + str r1, [r0] + ldr r1, _0802E338 @ =gUnknown_2024005 + movs r0, 0 + strb r0, [r1] + bx lr + .align 2, 0 +_0802E32C: .4byte gUnknown_3004FE0 +_0802E330: .4byte gUnknown_2023BC4 +_0802E334: .4byte sub_802E3B4 +_0802E338: .4byte gUnknown_2024005 + thumb_func_end sub_802E314 + + thumb_func_start sub_802E33C +sub_802E33C: @ 802E33C + push {r4,lr} + sub sp, 0x4 + ldr r1, _0802E37C @ =gUnknown_3004FE0 + ldr r4, _0802E380 @ =gUnknown_2023BC4 + ldrb r0, [r4] + lsls r0, 2 + adds r0, r1 + ldr r1, _0802E384 @ =sub_802E3B4 + str r1, [r0] + ldr r0, _0802E388 @ =gUnknown_2022B4C + ldr r0, [r0] + movs r1, 0x2 + ands r0, r1 + cmp r0, 0 + beq _0802E390 + bl sub_800A404 + mov r1, sp + strb r0, [r1] + movs r0, 0x2 + movs r1, 0x4 + mov r2, sp + bl sub_800D9EC + ldr r1, _0802E38C @ =gUnknown_2022BC4 + ldrb r0, [r4] + lsls r0, 9 + adds r0, r1 + movs r1, 0x38 + strb r1, [r0] + b _0802E3A2 + .align 2, 0 +_0802E37C: .4byte gUnknown_3004FE0 +_0802E380: .4byte gUnknown_2023BC4 +_0802E384: .4byte sub_802E3B4 +_0802E388: .4byte gUnknown_2022B4C +_0802E38C: .4byte gUnknown_2022BC4 +_0802E390: + ldr r2, _0802E3AC @ =gUnknown_2023BC8 + ldr r1, _0802E3B0 @ =gUnknown_825E45C + ldrb r0, [r4] + lsls r0, 2 + adds r0, r1 + ldr r1, [r0] + ldr r0, [r2] + bics r0, r1 + str r0, [r2] +_0802E3A2: + add sp, 0x4 + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_0802E3AC: .4byte gUnknown_2023BC8 +_0802E3B0: .4byte gUnknown_825E45C + thumb_func_end sub_802E33C + + thumb_func_start sub_802E3B4 +sub_802E3B4: @ 802E3B4 + push {lr} + ldr r2, _0802E3E8 @ =gUnknown_2023BC8 + ldr r1, _0802E3EC @ =gUnknown_825E45C + ldr r0, _0802E3F0 @ =gUnknown_2023BC4 + ldrb r3, [r0] + lsls r0, r3, 2 + adds r0, r1 + ldr r1, [r2] + ldr r0, [r0] + ands r1, r0 + cmp r1, 0 + beq _0802E400 + ldr r0, _0802E3F4 @ =gUnknown_2022BC4 + lsls r1, r3, 9 + adds r1, r0 + ldrb r0, [r1] + cmp r0, 0x38 + bhi _0802E3FC + ldr r0, _0802E3F8 @ =gUnknown_825089C + ldrb r1, [r1] + lsls r1, 2 + adds r1, r0 + ldr r0, [r1] + bl _call_via_r0 + b _0802E400 + .align 2, 0 +_0802E3E8: .4byte gUnknown_2023BC8 +_0802E3EC: .4byte gUnknown_825E45C +_0802E3F0: .4byte gUnknown_2023BC4 +_0802E3F4: .4byte gUnknown_2022BC4 +_0802E3F8: .4byte gUnknown_825089C +_0802E3FC: + bl sub_802E33C +_0802E400: + pop {r0} + bx r0 + thumb_func_end sub_802E3B4 + + thumb_func_start sub_802E404 +sub_802E404: @ 802E404 + push {lr} + ldr r2, _0802E42C @ =gUnknown_202063C + ldr r1, _0802E430 @ =gUnknown_2023D44 + ldr r0, _0802E434 @ =gUnknown_2023BC4 + ldrb r0, [r0] + adds r0, r1 + ldrb r1, [r0] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r2 + movs r1, 0x24 + ldrsh r0, [r0, r1] + cmp r0, 0 + bne _0802E426 + bl sub_802E33C +_0802E426: + pop {r0} + bx r0 + .align 2, 0 +_0802E42C: .4byte gUnknown_202063C +_0802E430: .4byte gUnknown_2023D44 +_0802E434: .4byte gUnknown_2023BC4 + thumb_func_end sub_802E404 + + thumb_func_start sub_802E438 +sub_802E438: @ 802E438 + push {r4-r7,lr} + mov r7, r8 + push {r7} + ldr r7, _0802E498 @ =gUnknown_2022BC4 + ldr r4, _0802E49C @ =gUnknown_2023BC4 + ldrb r0, [r4] + lsls r2, r0, 9 + adds r1, r7, 0x2 + adds r1, r2, r1 + ldrb r5, [r1] + adds r1, r7, 0x3 + adds r2, r1 + ldrb r1, [r2] + lsls r1, 8 + orrs r5, r1 + movs r1, 0x1 + movs r2, 0x7 + movs r3, 0x1 + bl sub_8012138 + ldrb r0, [r4] + movs r1, 0 + movs r2, 0x7 + movs r3, 0x1 + bl sub_8012138 + ldr r0, _0802E4A0 @ =gUnknown_30030F0 + ldrh r1, [r0, 0x2E] + movs r2, 0x1 + adds r0, r2, 0 + ands r0, r1 + cmp r0, 0 + beq _0802E4D0 + movs r0, 0x5 + bl sub_80722CC + ldr r1, _0802E4A4 @ =gUnknown_2023FF8 + ldrb r0, [r4] + adds r0, r1 + ldrb r0, [r0] + cmp r0, 0x1 + beq _0802E4B8 + cmp r0, 0x1 + bgt _0802E4A8 + cmp r0, 0 + beq _0802E4B2 + b _0802E616 + .align 2, 0 +_0802E498: .4byte gUnknown_2022BC4 +_0802E49C: .4byte gUnknown_2023BC4 +_0802E4A0: .4byte gUnknown_30030F0 +_0802E4A4: .4byte gUnknown_2023FF8 +_0802E4A8: + cmp r0, 0x2 + beq _0802E4BE + cmp r0, 0x3 + beq _0802E4C4 + b _0802E616 +_0802E4B2: + movs r0, 0x1 + movs r1, 0 + b _0802E610 +_0802E4B8: + movs r0, 0x1 + movs r1, 0x1 + b _0802E610 +_0802E4BE: + movs r0, 0x1 + movs r1, 0x2 + b _0802E610 +_0802E4C4: + movs r0, 0x1 + movs r1, 0x3 + movs r2, 0 + bl sub_800E848 + b _0802E616 +_0802E4D0: + movs r0, 0x20 + ands r0, r1 + cmp r0, 0 + beq _0802E508 + ldr r5, _0802E504 @ =gUnknown_2023FF8 + ldrb r0, [r4] + adds r0, r5 + ldrb r1, [r0] + adds r0, r2, 0 + ands r0, r1 + cmp r0, 0 + bne _0802E4EA + b _0802E634 +_0802E4EA: + movs r0, 0x5 + bl sub_80722CC + ldrb r0, [r4] + adds r0, r5 + ldrb r0, [r0] + bl sub_8030A98 + ldrb r1, [r4] + adds r1, r5 + ldrb r0, [r1] + movs r2, 0x1 + b _0802E590 + .align 2, 0 +_0802E504: .4byte gUnknown_2023FF8 +_0802E508: + movs r0, 0x10 + ands r0, r1 + cmp r0, 0 + beq _0802E540 + ldr r5, _0802E53C @ =gUnknown_2023FF8 + ldrb r0, [r4] + adds r0, r5 + ldrb r1, [r0] + adds r0, r2, 0 + ands r0, r1 + cmp r0, 0 + beq _0802E522 + b _0802E634 +_0802E522: + movs r0, 0x5 + bl sub_80722CC + ldrb r0, [r4] + adds r0, r5 + ldrb r0, [r0] + bl sub_8030A98 + ldrb r1, [r4] + adds r1, r5 + ldrb r0, [r1] + movs r2, 0x1 + b _0802E590 + .align 2, 0 +_0802E53C: .4byte gUnknown_2023FF8 +_0802E540: + movs r0, 0x40 + mov r8, r0 + ands r0, r1 + cmp r0, 0 + beq _0802E560 + ldr r5, _0802E55C @ =gUnknown_2023FF8 + ldrb r0, [r4] + adds r0, r5 + ldrb r1, [r0] + movs r0, 0x2 + ands r0, r1 + cmp r0, 0 + beq _0802E634 + b _0802E578 + .align 2, 0 +_0802E55C: .4byte gUnknown_2023FF8 +_0802E560: + movs r0, 0x80 + ands r0, r1 + cmp r0, 0 + beq _0802E5A8 + ldr r5, _0802E5A4 @ =gUnknown_2023FF8 + ldrb r0, [r4] + adds r0, r5 + ldrb r1, [r0] + movs r0, 0x2 + ands r0, r1 + cmp r0, 0 + bne _0802E634 +_0802E578: + movs r0, 0x5 + bl sub_80722CC + ldrb r0, [r4] + adds r0, r5 + ldrb r0, [r0] + bl sub_8030A98 + ldrb r1, [r4] + adds r1, r5 + ldrb r0, [r1] + movs r2, 0x2 +_0802E590: + eors r0, r2 + strb r0, [r1] + ldrb r0, [r4] + adds r0, r5 + ldrb r0, [r0] + movs r1, 0 + bl sub_8030A54 + b _0802E634 + .align 2, 0 +_0802E5A4: .4byte gUnknown_2023FF8 +_0802E5A8: + movs r0, 0x2 + ands r0, r1 + cmp r0, 0 + beq _0802E628 + ldr r6, _0802E61C @ =gUnknown_2022B4C + ldr r0, [r6] + ands r0, r2 + cmp r0, 0 + beq _0802E634 + ldrb r0, [r4] + bl sub_80751D8 + lsls r0, 24 + lsrs r0, 24 + cmp r0, 0x2 + bne _0802E634 + movs r0, 0 + bl sub_80751E8 + ldr r1, _0802E620 @ =gUnknown_2023D70 + ldrb r1, [r1] + ldr r2, _0802E624 @ =gUnknown_825E45C + lsls r0, 24 + lsrs r0, 22 + adds r0, r2 + ldr r0, [r0] + ands r1, r0 + cmp r1, 0 + bne _0802E634 + ldr r0, [r6] + mov r1, r8 + ands r0, r1 + cmp r0, 0 + bne _0802E634 + ldrb r0, [r4] + lsls r0, 9 + adds r1, r7, 0x1 + adds r0, r1 + ldrb r0, [r0] + cmp r0, 0x1 + bne _0802E606 + cmp r5, 0xC + bhi _0802E634 + adds r0, r5, 0 + movs r1, 0x1 + bl sub_809A084 +_0802E606: + movs r0, 0x5 + bl sub_80722CC + movs r0, 0x1 + movs r1, 0xC +_0802E610: + movs r2, 0 + bl sub_800E848 +_0802E616: + bl sub_802E33C + b _0802E634 + .align 2, 0 +_0802E61C: .4byte gUnknown_2022B4C +_0802E620: .4byte gUnknown_2023D70 +_0802E624: .4byte gUnknown_825E45C +_0802E628: + movs r0, 0x8 + ands r0, r1 + cmp r0, 0 + beq _0802E634 + bl sub_8048A4C +_0802E634: + pop {r3} + mov r8, r3 + pop {r4-r7} + pop {r0} + bx r0 + thumb_func_end sub_802E438 + + thumb_func_start sub_802E640 +sub_802E640: @ 802E640 + push {r4,lr} + ldr r4, _0802E668 @ =gUnknown_2023BC4 + ldrb r0, [r4] + movs r1, 0x1 + bl sub_8012258 + ldrb r0, [r4] + movs r1, 0 + bl sub_8012258 + ldr r1, _0802E66C @ =gUnknown_3004FE0 + ldrb r0, [r4] + lsls r0, 2 + adds r0, r1 + ldr r1, _0802E670 @ =sub_802E674 + str r1, [r0] + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_0802E668: .4byte gUnknown_2023BC4 +_0802E66C: .4byte gUnknown_3004FE0 +_0802E670: .4byte sub_802E674 + thumb_func_end sub_802E640 + + thumb_func_start sub_802E674 +sub_802E674: @ 802E674 + push {r4,r5,lr} + sub sp, 0x4 + ldr r1, _0802E708 @ =gUnknown_8250980 + mov r0, sp + movs r2, 0x4 + bl memcpy + ldr r0, _0802E70C @ =gUnknown_3004FF4 + ldrb r0, [r0] + movs r1, 0x1 + movs r2, 0xF + movs r3, 0x1 + bl sub_8012138 + movs r4, 0 + ldr r0, _0802E710 @ =gUnknown_2023BCC + ldrb r0, [r0] + cmp r0, 0 + beq _0802E6B6 +_0802E69A: + ldr r0, _0802E70C @ =gUnknown_3004FF4 + ldrb r0, [r0] + cmp r4, r0 + beq _0802E6AC + lsls r0, r4, 24 + lsrs r0, 24 + movs r1, 0x1 + bl sub_8012258 +_0802E6AC: + adds r4, 0x1 + ldr r0, _0802E710 @ =gUnknown_2023BCC + ldrb r0, [r0] + cmp r4, r0 + blt _0802E69A +_0802E6B6: + ldr r0, _0802E714 @ =gUnknown_30030F0 + ldrh r1, [r0, 0x2E] + movs r0, 0x1 + ands r0, r1 + cmp r0, 0 + beq _0802E72C + movs r0, 0x5 + bl sub_80722CC + ldr r2, _0802E718 @ =gUnknown_202063C + ldr r1, _0802E71C @ =gUnknown_2023D44 + ldr r4, _0802E70C @ =gUnknown_3004FF4 + ldrb r0, [r4] + adds r0, r1 + ldrb r1, [r0] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r2, 0x1C + adds r0, r2 + ldr r1, _0802E720 @ =sub_8012098 + str r1, [r0] + ldr r1, _0802E724 @ =gUnknown_2023FFC + ldr r0, _0802E728 @ =gUnknown_2023BC4 + ldrb r0, [r0] + adds r0, r1 + ldrb r2, [r0] + ldrb r0, [r4] + lsls r0, 8 + orrs r2, r0 + movs r0, 0x1 + movs r1, 0xA + bl sub_800E848 + ldrb r0, [r4] + movs r1, 0x1 + bl sub_8012258 + bl sub_802E33C + b _0802E9DC + .align 2, 0 +_0802E708: .4byte gUnknown_8250980 +_0802E70C: .4byte gUnknown_3004FF4 +_0802E710: .4byte gUnknown_2023BCC +_0802E714: .4byte gUnknown_30030F0 +_0802E718: .4byte gUnknown_202063C +_0802E71C: .4byte gUnknown_2023D44 +_0802E720: .4byte sub_8012098 +_0802E724: .4byte gUnknown_2023FFC +_0802E728: .4byte gUnknown_2023BC4 +_0802E72C: + movs r0, 0x2 + ands r0, r1 + cmp r0, 0 + beq _0802E7A0 + movs r0, 0x5 + bl sub_80722CC + ldr r2, _0802E784 @ =gUnknown_202063C + ldr r1, _0802E788 @ =gUnknown_2023D44 + ldr r5, _0802E78C @ =gUnknown_3004FF4 + ldrb r0, [r5] + adds r0, r1 + ldrb r1, [r0] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r2, 0x1C + adds r0, r2 + ldr r1, _0802E790 @ =sub_8012098 + str r1, [r0] + ldr r1, _0802E794 @ =gUnknown_3004FE0 + ldr r4, _0802E798 @ =gUnknown_2023BC4 + ldrb r0, [r4] + lsls r0, 2 + adds r0, r1 + ldr r1, _0802E79C @ =sub_802EA10 + str r1, [r0] + ldrb r0, [r4] + movs r1, 0x1 + movs r2, 0x7 + movs r3, 0x1 + bl sub_8012138 + ldrb r0, [r4] + movs r1, 0 + movs r2, 0x7 + movs r3, 0x1 + bl sub_8012138 + ldrb r0, [r5] + movs r1, 0x1 + bl sub_8012258 + b _0802E9DC + .align 2, 0 +_0802E784: .4byte gUnknown_202063C +_0802E788: .4byte gUnknown_2023D44 +_0802E78C: .4byte gUnknown_3004FF4 +_0802E790: .4byte sub_8012098 +_0802E794: .4byte gUnknown_3004FE0 +_0802E798: .4byte gUnknown_2023BC4 +_0802E79C: .4byte sub_802EA10 +_0802E7A0: + movs r0, 0x60 + ands r0, r1 + cmp r0, 0 + bne _0802E7AA + b _0802E8C4 +_0802E7AA: + movs r0, 0x5 + bl sub_80722CC + ldr r2, _0802E7DC @ =gUnknown_202063C + ldr r1, _0802E7E0 @ =gUnknown_2023D44 + ldr r3, _0802E7E4 @ =gUnknown_3004FF4 + ldrb r0, [r3] + adds r0, r1 + ldrb r1, [r0] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r2, 0x1C + adds r0, r2 + ldr r1, _0802E7E8 @ =sub_8012098 + str r1, [r0] + adds r5, r3, 0 +_0802E7CC: + ldrb r0, [r5] + bl sub_80751D8 + lsls r0, 24 + lsrs r1, r0, 24 + movs r4, 0 + mov r0, sp + b _0802E7F6 + .align 2, 0 +_0802E7DC: .4byte gUnknown_202063C +_0802E7E0: .4byte gUnknown_2023D44 +_0802E7E4: .4byte gUnknown_3004FF4 +_0802E7E8: .4byte sub_8012098 +_0802E7EC: + adds r4, 0x1 + cmp r4, 0x3 + bgt _0802E7FC + mov r2, sp + adds r0, r2, r4 +_0802E7F6: + ldrb r0, [r0] + cmp r1, r0 + bne _0802E7EC +_0802E7FC: + subs r4, 0x1 + cmp r4, 0 + bge _0802E804 + movs r4, 0x4 +_0802E804: + mov r1, sp + adds r0, r1, r4 + ldrb r0, [r0] + bl sub_80751E8 + strb r0, [r5] + ldr r1, _0802E838 @ =gUnknown_2023BCC + lsls r0, 24 + lsrs r0, 24 + ldrb r1, [r1] + cmp r0, r1 + beq _0802E7FC + movs r4, 0 + ldrb r0, [r5] + bl sub_80751D8 + lsls r0, 24 + lsrs r0, 24 + cmp r0, 0x1 + beq _0802E882 + cmp r0, 0x1 + bgt _0802E83C + cmp r0, 0 + beq _0802E846 + b _0802E884 + .align 2, 0 +_0802E838: .4byte gUnknown_2023BCC +_0802E83C: + cmp r0, 0x2 + beq _0802E846 + cmp r0, 0x3 + beq _0802E882 + b _0802E884 +_0802E846: + ldr r2, _0802E8A4 @ =gUnknown_2023BC4 + ldrb r0, [r2] + ldrb r1, [r5] + cmp r0, r1 + bne _0802E882 + ldr r1, _0802E8A8 @ =gUnknown_2023BCE + ldrb r2, [r2] + lsls r0, r2, 1 + adds r0, r1 + ldrh r1, [r0] + movs r0, 0x64 + muls r0, r1 + ldr r1, _0802E8AC @ =gUnknown_2024284 + adds r0, r1 + ldr r1, _0802E8B0 @ =gUnknown_2023FFC + adds r2, r1 + ldrb r1, [r2] + adds r1, 0xD + bl sub_803FBE8 + ldr r2, _0802E8B4 @ =gUnknown_8250C04 + lsls r1, r0, 1 + adds r1, r0 + lsls r1, 2 + adds r1, r2 + ldrb r1, [r1, 0x6] + movs r0, 0x2 + ands r0, r1 + cmp r0, 0 + beq _0802E884 +_0802E882: + adds r4, 0x1 +_0802E884: + ldr r0, _0802E8B8 @ =gUnknown_2023D70 + ldrb r1, [r0] + ldr r2, _0802E8BC @ =gUnknown_825E45C + ldrb r0, [r5] + lsls r0, 2 + adds r0, r2 + ldr r0, [r0] + ands r1, r0 + ldr r0, _0802E8C0 @ =gUnknown_3004FF4 + cmp r1, 0 + beq _0802E89C + movs r4, 0 +_0802E89C: + cmp r4, 0 + beq _0802E7CC + b _0802E9C4 + .align 2, 0 +_0802E8A4: .4byte gUnknown_2023BC4 +_0802E8A8: .4byte gUnknown_2023BCE +_0802E8AC: .4byte gUnknown_2024284 +_0802E8B0: .4byte gUnknown_2023FFC +_0802E8B4: .4byte gUnknown_8250C04 +_0802E8B8: .4byte gUnknown_2023D70 +_0802E8BC: .4byte gUnknown_825E45C +_0802E8C0: .4byte gUnknown_3004FF4 +_0802E8C4: + movs r0, 0x90 + ands r0, r1 + cmp r0, 0 + bne _0802E8CE + b _0802E9DC +_0802E8CE: + movs r0, 0x5 + bl sub_80722CC + ldr r2, _0802E900 @ =gUnknown_202063C + ldr r1, _0802E904 @ =gUnknown_2023D44 + ldr r3, _0802E908 @ =gUnknown_3004FF4 + ldrb r0, [r3] + adds r0, r1 + ldrb r1, [r0] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r2, 0x1C + adds r0, r2 + ldr r1, _0802E90C @ =sub_8012098 + str r1, [r0] + adds r5, r3, 0 +_0802E8F0: + ldrb r0, [r5] + bl sub_80751D8 + lsls r0, 24 + lsrs r1, r0, 24 + movs r4, 0 + mov r0, sp + b _0802E91A + .align 2, 0 +_0802E900: .4byte gUnknown_202063C +_0802E904: .4byte gUnknown_2023D44 +_0802E908: .4byte gUnknown_3004FF4 +_0802E90C: .4byte sub_8012098 +_0802E910: + adds r4, 0x1 + cmp r4, 0x3 + bgt _0802E920 + mov r2, sp + adds r0, r2, r4 +_0802E91A: + ldrb r0, [r0] + cmp r1, r0 + bne _0802E910 +_0802E920: + adds r4, 0x1 + cmp r4, 0x3 + ble _0802E928 + movs r4, 0 +_0802E928: + mov r1, sp + adds r0, r1, r4 + ldrb r0, [r0] + bl sub_80751E8 + strb r0, [r5] + ldr r1, _0802E95C @ =gUnknown_2023BCC + lsls r0, 24 + lsrs r0, 24 + ldrb r1, [r1] + cmp r0, r1 + beq _0802E920 + movs r4, 0 + ldrb r0, [r5] + bl sub_80751D8 + lsls r0, 24 + lsrs r0, 24 + cmp r0, 0x1 + beq _0802E9A6 + cmp r0, 0x1 + bgt _0802E960 + cmp r0, 0 + beq _0802E96A + b _0802E9A8 + .align 2, 0 +_0802E95C: .4byte gUnknown_2023BCC +_0802E960: + cmp r0, 0x2 + beq _0802E96A + cmp r0, 0x3 + beq _0802E9A6 + b _0802E9A8 +_0802E96A: + ldr r2, _0802E9E4 @ =gUnknown_2023BC4 + ldrb r0, [r2] + ldrb r1, [r5] + cmp r0, r1 + bne _0802E9A6 + ldr r1, _0802E9E8 @ =gUnknown_2023BCE + ldrb r2, [r2] + lsls r0, r2, 1 + adds r0, r1 + ldrh r1, [r0] + movs r0, 0x64 + muls r0, r1 + ldr r1, _0802E9EC @ =gUnknown_2024284 + adds r0, r1 + ldr r1, _0802E9F0 @ =gUnknown_2023FFC + adds r2, r1 + ldrb r1, [r2] + adds r1, 0xD + bl sub_803FBE8 + ldr r2, _0802E9F4 @ =gUnknown_8250C04 + lsls r1, r0, 1 + adds r1, r0 + lsls r1, 2 + adds r1, r2 + ldrb r1, [r1, 0x6] + movs r0, 0x2 + ands r0, r1 + cmp r0, 0 + beq _0802E9A8 +_0802E9A6: + adds r4, 0x1 +_0802E9A8: + ldr r0, _0802E9F8 @ =gUnknown_2023D70 + ldrb r1, [r0] + ldr r2, _0802E9FC @ =gUnknown_825E45C + ldrb r0, [r5] + lsls r0, 2 + adds r0, r2 + ldr r0, [r0] + ands r1, r0 + ldr r0, _0802EA00 @ =gUnknown_3004FF4 + cmp r1, 0 + beq _0802E9C0 + movs r4, 0 +_0802E9C0: + cmp r4, 0 + beq _0802E8F0 +_0802E9C4: + ldr r2, _0802EA04 @ =gUnknown_202063C + ldr r1, _0802EA08 @ =gUnknown_2023D44 + ldrb r0, [r0] + adds r0, r1 + ldrb r1, [r0] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r2, 0x1C + adds r0, r2 + ldr r1, _0802EA0C @ =sub_8012044 + str r1, [r0] +_0802E9DC: + add sp, 0x4 + pop {r4,r5} + pop {r0} + bx r0 + .align 2, 0 +_0802E9E4: .4byte gUnknown_2023BC4 +_0802E9E8: .4byte gUnknown_2023BCE +_0802E9EC: .4byte gUnknown_2024284 +_0802E9F0: .4byte gUnknown_2023FFC +_0802E9F4: .4byte gUnknown_8250C04 +_0802E9F8: .4byte gUnknown_2023D70 +_0802E9FC: .4byte gUnknown_825E45C +_0802EA00: .4byte gUnknown_3004FF4 +_0802EA04: .4byte gUnknown_202063C +_0802EA08: .4byte gUnknown_2023D44 +_0802EA0C: .4byte sub_8012044 + thumb_func_end sub_802E674 + + thumb_func_start sub_802EA10 +sub_802EA10: @ 802EA10 + push {r4-r7,lr} + mov r7, r8 + push {r7} + sub sp, 0x4 + movs r0, 0 + mov r8, r0 + ldr r6, _0802EA6C @ =gUnknown_2023BC4 + ldrb r0, [r6] + lsls r0, 9 + ldr r1, _0802EA70 @ =gUnknown_2022BC8 + adds r7, r0, r1 + bl sub_8033AC8 + ldr r0, _0802EA74 @ =gUnknown_30030F0 + ldrh r1, [r0, 0x2E] + movs r5, 0x1 + adds r0, r5, 0 + ands r0, r1 + cmp r0, 0 + bne _0802EA3A + b _0802EC10 +_0802EA3A: + movs r0, 0x5 + bl sub_80722CC + ldr r1, _0802EA78 @ =gUnknown_2023FFC + ldrb r0, [r6] + adds r0, r1 + ldrb r0, [r0] + lsls r0, 1 + adds r1, r7, r0 + ldrh r0, [r1] + cmp r0, 0xAE + bne _0802EA7C + ldrb r0, [r7, 0x12] + movs r4, 0 + cmp r0, 0x7 + beq _0802EA8A + ldrb r1, [r7, 0x13] + movs r0, 0x7 + eors r1, r0 + negs r0, r1 + orrs r0, r1 + asrs r4, r0, 31 + movs r0, 0x10 + ands r4, r0 + b _0802EA8A + .align 2, 0 +_0802EA6C: .4byte gUnknown_2023BC4 +_0802EA70: .4byte gUnknown_2022BC8 +_0802EA74: .4byte gUnknown_30030F0 +_0802EA78: .4byte gUnknown_2023FFC +_0802EA7C: + ldr r2, _0802EA9C @ =gUnknown_8250C04 + ldrh r1, [r1] + lsls r0, r1, 1 + adds r0, r1 + lsls r0, 2 + adds r0, r2 + ldrb r4, [r0, 0x6] +_0802EA8A: + movs r0, 0x10 + ands r0, r4 + cmp r0, 0 + beq _0802EAA8 + ldr r0, _0802EAA0 @ =gUnknown_3004FF4 + ldr r1, _0802EAA4 @ =gUnknown_2023BC4 + ldrb r1, [r1] + strb r1, [r0] + b _0802EAC2 + .align 2, 0 +_0802EA9C: .4byte gUnknown_8250C04 +_0802EAA0: .4byte gUnknown_3004FF4 +_0802EAA4: .4byte gUnknown_2023BC4 +_0802EAA8: + ldr r0, _0802EAEC @ =gUnknown_2023BC4 + ldrb r0, [r0] + bl sub_80751D8 + adds r1, r0, 0 + movs r2, 0x1 + movs r0, 0x1 + ands r0, r1 + eors r0, r2 + bl sub_80751E8 + ldr r1, _0802EAF0 @ =gUnknown_3004FF4 + strb r0, [r1] +_0802EAC2: + ldr r3, _0802EAF4 @ =gUnknown_2022BC4 + ldr r5, _0802EAEC @ =gUnknown_2023BC4 + ldrb r2, [r5] + lsls r1, r2, 9 + adds r0, r3, 0x1 + adds r0, r1, r0 + ldrb r0, [r0] + cmp r0, 0 + bne _0802EAF8 + movs r0, 0x2 + ands r0, r4 + cmp r0, 0 + beq _0802EB3A + adds r0, r3, 0x2 + adds r0, r1, r0 + ldrb r0, [r0] + cmp r0, 0 + bne _0802EB3A + movs r0, 0x1 + add r8, r0 + b _0802EB3A + .align 2, 0 +_0802EAEC: .4byte gUnknown_2023BC4 +_0802EAF0: .4byte gUnknown_3004FF4 +_0802EAF4: .4byte gUnknown_2022BC4 +_0802EAF8: + movs r0, 0x7D + ands r0, r4 + cmp r0, 0 + bne _0802EB04 + movs r0, 0x1 + add r8, r0 +_0802EB04: + ldr r0, _0802EB78 @ =gUnknown_2023FFC + adds r0, r2, r0 + adds r1, r7, 0 + adds r1, 0x8 + ldrb r0, [r0] + adds r1, r0 + ldrb r0, [r1] + cmp r0, 0 + beq _0802EB36 + movs r0, 0x12 + ands r0, r4 + cmp r0, 0 + bne _0802EB3A + movs r0, 0 + bl sub_803F5B4 + lsls r0, 24 + lsrs r0, 24 + cmp r0, 0x1 + bhi _0802EB3A + ldrb r0, [r5] + bl sub_803F6A0 + ldr r1, _0802EB7C @ =gUnknown_3004FF4 + strb r0, [r1] +_0802EB36: + movs r0, 0 + mov r8, r0 +_0802EB3A: + bl sub_8070A84 + movs r0, 0xF0 + lsls r0, 12 + ldr r1, _0802EB80 @ =0x00007fff + str r1, [sp] + movs r1, 0 + movs r2, 0 + movs r3, 0 + bl sub_8070588 + mov r0, r8 + cmp r0, 0 + bne _0802EB88 + ldr r1, _0802EB78 @ =gUnknown_2023FFC + ldr r0, _0802EB84 @ =gUnknown_2023BC4 + ldrb r0, [r0] + adds r0, r1 + ldrb r2, [r0] + ldr r0, _0802EB7C @ =gUnknown_3004FF4 + ldrb r0, [r0] + lsls r0, 8 + orrs r2, r0 + movs r0, 0x1 + movs r1, 0xA + bl sub_800E848 + bl sub_802E33C + b _0802EDBA + .align 2, 0 +_0802EB78: .4byte gUnknown_2023FFC +_0802EB7C: .4byte gUnknown_3004FF4 +_0802EB80: .4byte 0x00007fff +_0802EB84: .4byte gUnknown_2023BC4 +_0802EB88: + ldr r1, _0802EBA4 @ =gUnknown_3004FE0 + ldr r2, _0802EBA8 @ =gUnknown_2023BC4 + ldrb r0, [r2] + lsls r0, 2 + adds r0, r1 + ldr r1, _0802EBAC @ =sub_802E674 + str r1, [r0] + movs r0, 0x12 + ands r4, r0 + cmp r4, 0 + beq _0802EBB4 + ldr r1, _0802EBB0 @ =gUnknown_3004FF4 + ldrb r0, [r2] + b _0802EBE4 + .align 2, 0 +_0802EBA4: .4byte gUnknown_3004FE0 +_0802EBA8: .4byte gUnknown_2023BC4 +_0802EBAC: .4byte sub_802E674 +_0802EBB0: .4byte gUnknown_3004FF4 +_0802EBB4: + movs r0, 0x1 + bl sub_80751E8 + ldr r1, _0802EBD4 @ =gUnknown_2023D70 + ldrb r1, [r1] + ldr r2, _0802EBD8 @ =gUnknown_825E45C + lsls r0, 24 + lsrs r0, 22 + adds r0, r2 + ldr r0, [r0] + ands r1, r0 + cmp r1, 0 + beq _0802EBDC + movs r0, 0x3 + b _0802EBDE + .align 2, 0 +_0802EBD4: .4byte gUnknown_2023D70 +_0802EBD8: .4byte gUnknown_825E45C +_0802EBDC: + movs r0, 0x1 +_0802EBDE: + bl sub_80751E8 + ldr r1, _0802EC00 @ =gUnknown_3004FF4 +_0802EBE4: + strb r0, [r1] + ldr r2, _0802EC04 @ =gUnknown_202063C + ldr r1, _0802EC08 @ =gUnknown_2023D44 + ldr r0, _0802EC00 @ =gUnknown_3004FF4 + ldrb r0, [r0] + adds r0, r1 + ldrb r1, [r0] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r2, 0x1C + adds r0, r2 + ldr r1, _0802EC0C @ =sub_8012044 + b _0802EDB8 + .align 2, 0 +_0802EC00: .4byte gUnknown_3004FF4 +_0802EC04: .4byte gUnknown_202063C +_0802EC08: .4byte gUnknown_2023D44 +_0802EC0C: .4byte sub_8012044 +_0802EC10: + movs r7, 0x2 + adds r0, r7, 0 + ands r0, r1 + cmp r0, 0 + beq _0802EC38 + movs r0, 0x5 + bl sub_80722CC + ldr r2, _0802EC34 @ =0x0000ffff + movs r0, 0x1 + movs r1, 0xA + bl sub_800E848 + bl sub_802E33C + bl sub_8070A84 + b _0802ED2C + .align 2, 0 +_0802EC34: .4byte 0x0000ffff +_0802EC38: + movs r0, 0x20 + ands r0, r1 + cmp r0, 0 + beq _0802EC68 + ldr r4, _0802EC64 @ =gUnknown_2023FFC + ldrb r0, [r6] + adds r2, r0, r4 + ldrb r1, [r2] + adds r0, r5, 0 + ands r0, r1 + cmp r0, 0 + bne _0802EC52 + b _0802EDBA +_0802EC52: + ldrb r0, [r2] + bl sub_8030A14 + ldrb r1, [r6] + adds r1, r4 + ldrb r0, [r1] + movs r2, 0x1 + eors r0, r2 + b _0802ED10 + .align 2, 0 +_0802EC64: .4byte gUnknown_2023FFC +_0802EC68: + movs r0, 0x10 + ands r0, r1 + cmp r0, 0 + beq _0802ECAC + ldr r4, _0802ECA4 @ =gUnknown_2023FFC + ldrb r0, [r6] + adds r3, r0, r4 + ldrb r2, [r3] + movs r7, 0x1 + adds r0, r5, 0 + ands r0, r2 + cmp r0, 0 + beq _0802EC84 + b _0802EDBA +_0802EC84: + ldr r1, _0802ECA8 @ =gUnknown_3004FF8 + adds r0, r7, 0 + eors r0, r2 + ldrb r1, [r1] + cmp r0, r1 + bcc _0802EC92 + b _0802EDBA +_0802EC92: + ldrb r0, [r3] + bl sub_8030A14 + ldrb r1, [r6] + adds r1, r4 + ldrb r0, [r1] + eors r0, r7 + b _0802ED10 + .align 2, 0 +_0802ECA4: .4byte gUnknown_2023FFC +_0802ECA8: .4byte gUnknown_3004FF8 +_0802ECAC: + movs r0, 0x40 + ands r0, r1 + cmp r0, 0 + beq _0802ECDC + ldr r4, _0802ECD8 @ =gUnknown_2023FFC + ldrb r0, [r6] + adds r2, r0, r4 + ldrb r1, [r2] + adds r0, r7, 0 + ands r0, r1 + cmp r0, 0 + bne _0802ECC6 + b _0802EDBA +_0802ECC6: + ldrb r0, [r2] + bl sub_8030A14 + ldrb r1, [r6] + adds r1, r4 + ldrb r0, [r1] + movs r2, 0x2 + eors r0, r2 + b _0802ED10 + .align 2, 0 +_0802ECD8: .4byte gUnknown_2023FFC +_0802ECDC: + movs r0, 0x80 + ands r0, r1 + cmp r0, 0 + beq _0802ED4C + ldr r4, _0802ED40 @ =gUnknown_2023FFC + ldrb r0, [r6] + adds r3, r0, r4 + ldrb r2, [r3] + movs r5, 0x2 + adds r0, r7, 0 + ands r0, r2 + cmp r0, 0 + bne _0802EDBA + ldr r1, _0802ED44 @ =gUnknown_3004FF8 + adds r0, r5, 0 + eors r0, r2 + ldrb r1, [r1] + cmp r0, r1 + bcs _0802EDBA + ldrb r0, [r3] + bl sub_8030A14 + ldrb r1, [r6] + adds r1, r4 + ldrb r0, [r1] + eors r0, r5 +_0802ED10: + strb r0, [r1] + movs r0, 0x5 + bl sub_80722CC + ldrb r0, [r6] + adds r0, r4 + ldrb r0, [r0] + movs r1, 0 + bl sub_80309CC + bl sub_80308CC + bl sub_8030940 +_0802ED2C: + movs r0, 0xF0 + lsls r0, 12 + ldr r1, _0802ED48 @ =0x00007fff + str r1, [sp] + movs r1, 0 + movs r2, 0 + movs r3, 0 + bl sub_8070588 + b _0802EDBA + .align 2, 0 +_0802ED40: .4byte gUnknown_2023FFC +_0802ED44: .4byte gUnknown_3004FF8 +_0802ED48: .4byte 0x00007fff +_0802ED4C: + movs r0, 0x4 + ands r0, r1 + cmp r0, 0 + beq _0802EDBA + ldr r0, _0802ED84 @ =gUnknown_3004FF8 + ldrb r0, [r0] + cmp r0, 0x1 + bls _0802EDBA + ldr r0, _0802ED88 @ =gUnknown_2022B4C + ldr r5, [r0] + ands r5, r7 + cmp r5, 0 + bne _0802EDBA + ldr r4, _0802ED8C @ =gUnknown_2023FFC + ldrb r0, [r6] + adds r0, r4 + ldrb r0, [r0] + movs r1, 0x1D + bl sub_80309CC + ldrb r0, [r6] + adds r0, r4 + ldrb r0, [r0] + cmp r0, 0 + beq _0802ED94 + ldr r0, _0802ED90 @ =gUnknown_3004FF4 + strb r5, [r0] + b _0802ED9C + .align 2, 0 +_0802ED84: .4byte gUnknown_3004FF8 +_0802ED88: .4byte gUnknown_2022B4C +_0802ED8C: .4byte gUnknown_2023FFC +_0802ED90: .4byte gUnknown_3004FF4 +_0802ED94: + ldr r1, _0802EDC8 @ =gUnknown_3004FF4 + adds r0, 0x1 + strb r0, [r1] + adds r0, r1, 0 +_0802ED9C: + ldrb r0, [r0] + movs r1, 0x1B + bl sub_80309CC + ldr r0, _0802EDCC @ =gUnknown_83FE7A0 + movs r1, 0xB + bl sub_80D87BC + ldr r1, _0802EDD0 @ =gUnknown_3004FE0 + ldr r0, _0802EDD4 @ =gUnknown_2023BC4 + ldrb r0, [r0] + lsls r0, 2 + adds r0, r1 + ldr r1, _0802EDD8 @ =sub_802EF58 +_0802EDB8: + str r1, [r0] +_0802EDBA: + add sp, 0x4 + pop {r3} + mov r8, r3 + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_0802EDC8: .4byte gUnknown_3004FF4 +_0802EDCC: .4byte gUnknown_83FE7A0 +_0802EDD0: .4byte gUnknown_3004FE0 +_0802EDD4: .4byte gUnknown_2023BC4 +_0802EDD8: .4byte sub_802EF58 + thumb_func_end sub_802EA10 + + thumb_func_start sub_802EDDC +sub_802EDDC: @ 802EDDC + push {r4-r7,lr} + movs r7, 0 + ldr r4, _0802EF40 @ =gUnknown_30030F0 + ldrh r1, [r4, 0x2E] + movs r6, 0x1 + adds r0, r6, 0 + ands r0, r1 + cmp r0, 0 + beq _0802EDF6 + movs r0, 0x5 + bl sub_80722CC + movs r7, 0x1 +_0802EDF6: + ldrh r1, [r4, 0x2E] + movs r0, 0x2 + ands r0, r1 + cmp r0, 0 + beq _0802EE18 + movs r0, 0x5 + bl sub_80722CC + ldr r1, _0802EF44 @ =gUnknown_2022974 + movs r0, 0 + strh r0, [r1] + ldr r1, _0802EF48 @ =gUnknown_2022976 + movs r2, 0xA0 + lsls r2, 1 + adds r0, r2, 0 + strh r0, [r1] + movs r7, 0xFF +_0802EE18: + ldrh r1, [r4, 0x2E] + movs r0, 0x20 + ands r0, r1 + cmp r0, 0 + beq _0802EE58 + ldr r5, _0802EF4C @ =gUnknown_2023FFC + ldr r4, _0802EF50 @ =gUnknown_2023BC4 + ldrb r0, [r4] + adds r2, r0, r5 + ldrb r1, [r2] + adds r0, r6, 0 + ands r0, r1 + cmp r0, 0 + beq _0802EE58 + ldrb r0, [r2] + bl sub_8030A14 + ldrb r1, [r4] + adds r1, r5 + ldrb r0, [r1] + movs r2, 0x1 + eors r0, r2 + strb r0, [r1] + movs r0, 0x5 + bl sub_80722CC + ldrb r0, [r4] + adds r0, r5 + ldrb r0, [r0] + movs r1, 0 + bl sub_80309CC +_0802EE58: + ldr r0, _0802EF40 @ =gUnknown_30030F0 + ldrh r1, [r0, 0x2E] + movs r0, 0x10 + ands r0, r1 + cmp r0, 0 + beq _0802EEA6 + ldr r5, _0802EF4C @ =gUnknown_2023FFC + ldr r4, _0802EF50 @ =gUnknown_2023BC4 + ldrb r0, [r4] + adds r3, r0, r5 + ldrb r2, [r3] + movs r6, 0x1 + movs r0, 0x1 + ands r0, r2 + cmp r0, 0 + bne _0802EEA6 + ldr r1, _0802EF54 @ =gUnknown_3004FF8 + adds r0, r6, 0 + eors r0, r2 + ldrb r1, [r1] + cmp r0, r1 + bcs _0802EEA6 + ldrb r0, [r3] + bl sub_8030A14 + ldrb r1, [r4] + adds r1, r5 + ldrb r0, [r1] + eors r0, r6 + strb r0, [r1] + movs r0, 0x5 + bl sub_80722CC + ldrb r0, [r4] + adds r0, r5 + ldrb r0, [r0] + movs r1, 0 + bl sub_80309CC +_0802EEA6: + ldr r0, _0802EF40 @ =gUnknown_30030F0 + ldrh r1, [r0, 0x2E] + movs r0, 0x40 + ands r0, r1 + cmp r0, 0 + beq _0802EEE8 + ldr r5, _0802EF4C @ =gUnknown_2023FFC + ldr r4, _0802EF50 @ =gUnknown_2023BC4 + ldrb r0, [r4] + adds r2, r0, r5 + ldrb r1, [r2] + movs r0, 0x2 + ands r0, r1 + cmp r0, 0 + beq _0802EEE8 + ldrb r0, [r2] + bl sub_8030A14 + ldrb r1, [r4] + adds r1, r5 + ldrb r0, [r1] + movs r2, 0x2 + eors r0, r2 + strb r0, [r1] + movs r0, 0x5 + bl sub_80722CC + ldrb r0, [r4] + adds r0, r5 + ldrb r0, [r0] + movs r1, 0 + bl sub_80309CC +_0802EEE8: + ldr r0, _0802EF40 @ =gUnknown_30030F0 + ldrh r1, [r0, 0x2E] + movs r0, 0x80 + ands r0, r1 + cmp r0, 0 + beq _0802EF36 + ldr r5, _0802EF4C @ =gUnknown_2023FFC + ldr r4, _0802EF50 @ =gUnknown_2023BC4 + ldrb r0, [r4] + adds r3, r0, r5 + ldrb r2, [r3] + movs r6, 0x2 + movs r0, 0x2 + ands r0, r2 + cmp r0, 0 + bne _0802EF36 + ldr r1, _0802EF54 @ =gUnknown_3004FF8 + adds r0, r6, 0 + eors r0, r2 + ldrb r1, [r1] + cmp r0, r1 + bcs _0802EF36 + ldrb r0, [r3] + bl sub_8030A14 + ldrb r1, [r4] + adds r1, r5 + ldrb r0, [r1] + eors r0, r6 + strb r0, [r1] + movs r0, 0x5 + bl sub_80722CC + ldrb r0, [r4] + adds r0, r5 + ldrb r0, [r0] + movs r1, 0 + bl sub_80309CC +_0802EF36: + adds r0, r7, 0 + pop {r4-r7} + pop {r1} + bx r1 + .align 2, 0 +_0802EF40: .4byte gUnknown_30030F0 +_0802EF44: .4byte gUnknown_2022974 +_0802EF48: .4byte gUnknown_2022976 +_0802EF4C: .4byte gUnknown_2023FFC +_0802EF50: .4byte gUnknown_2023BC4 +_0802EF54: .4byte gUnknown_3004FF8 + thumb_func_end sub_802EDDC + + thumb_func_start sub_802EF58 +sub_802EF58: @ 802EF58 + push {r4-r7,lr} + mov r7, r10 + mov r6, r9 + mov r5, r8 + push {r5-r7} + sub sp, 0x24 + ldr r0, _0802F2E4 @ =gUnknown_30030F0 + ldrh r1, [r0, 0x2E] + movs r0, 0x5 + ands r0, r1 + cmp r0, 0 + bne _0802EF72 + b _0802F34C +_0802EF72: + movs r0, 0x5 + bl sub_80722CC + ldr r0, _0802F2E8 @ =gUnknown_2023FFC + mov r10, r0 + ldr r1, _0802F2EC @ =gUnknown_2023BC4 + mov r8, r1 + ldrb r1, [r1] + adds r2, r1, r0 + ldr r5, _0802F2F0 @ =gUnknown_3004FF4 + ldrb r0, [r2] + ldrb r3, [r5] + cmp r0, r3 + bne _0802EF90 + b _0802F2C8 +_0802EF90: + lsls r1, 9 + ldr r0, _0802F2F4 @ =gUnknown_2022BC8 + adds r1, r0 + mov r9, r1 + ldrb r1, [r2] + lsls r1, 1 + add r1, r9 + ldrh r6, [r1] + ldrb r0, [r5] + lsls r0, 1 + add r0, r9 + ldrh r0, [r0] + strh r0, [r1] + ldrb r0, [r5] + lsls r0, 1 + add r0, r9 + strh r6, [r0] + mov r1, r8 + ldrb r0, [r1] + add r0, r10 + ldrb r1, [r0] + mov r7, r9 + adds r7, 0x8 + adds r1, r7, r1 + ldrb r6, [r1] + ldrb r0, [r5] + adds r0, r7, r0 + ldrb r0, [r0] + strb r0, [r1] + ldrb r0, [r5] + adds r0, r7, r0 + strb r6, [r0] + mov r2, r8 + ldrb r0, [r2] + add r0, r10 + ldrb r1, [r0] + mov r2, r9 + adds r2, 0xC + adds r1, r2, r1 + ldrb r6, [r1] + ldrb r0, [r5] + adds r0, r2, r0 + ldrb r0, [r0] + strb r0, [r1] + ldrb r0, [r5] + adds r2, r0 + strb r6, [r2] + mov r3, r8 + ldrb r1, [r3] + lsls r0, r1, 3 + subs r0, r1 + lsls r0, 2 + ldr r2, _0802F2F8 @ =gUnknown_2023E0C + adds r6, r0, r2 + ldrb r4, [r6, 0x18] + lsls r3, r4, 24 + lsrs r2, r3, 28 + ldr r0, _0802F2FC @ =gUnknown_825E45C + mov r12, r0 + add r1, r10 + ldrb r0, [r1] + lsls r0, 2 + add r0, r12 + ldr r0, [r0] + ands r2, r0 + cmp r2, 0 + beq _0802F04A + lsrs r1, r3, 28 + bics r1, r0 + lsls r1, 4 + movs r2, 0xF + adds r0, r2, 0 + ands r0, r4 + orrs r0, r1 + strb r0, [r6, 0x18] + mov r1, r8 + ldrb r0, [r1] + lsls r1, r0, 3 + subs r1, r0 + lsls r1, 2 + ldr r3, _0802F2F8 @ =gUnknown_2023E0C + adds r1, r3 + ldrb r4, [r1, 0x18] + lsrs r3, r4, 4 + ldrb r0, [r5] + lsls r0, 2 + add r0, r12 + ldr r0, [r0] + orrs r0, r3 + lsls r0, 4 + ands r2, r4 + orrs r2, r0 + strb r2, [r1, 0x18] +_0802F04A: + bl sub_8030830 + movs r6, 0 + mov r12, r7 + mov r5, sp + adds r5, 0x18 + str r5, [sp, 0x1C] + ldr r2, _0802F300 @ =gUnknown_2023BE4 + mov r0, r8 + ldrb r1, [r0] + movs r0, 0x58 + muls r0, r1 + adds r0, r2 + adds r4, r0, 0 + adds r4, 0x3B + mov r7, r8 + mov r10, r2 + movs r5, 0x3 +_0802F06E: + mov r1, sp + adds r3, r1, r6 + ldrb r1, [r4] + lsls r2, r6, 1 + adds r0, r5, 0 + lsls r0, r2 + ands r1, r0 + asrs r1, r2 + strb r1, [r3] + adds r6, 0x1 + cmp r6, 0x3 + ble _0802F06E + ldr r1, _0802F2E8 @ =gUnknown_2023FFC + ldrb r0, [r7] + adds r0, r1 + ldrb r0, [r0] + add r0, sp + ldrb r0, [r0] + ldr r2, [sp, 0x1C] + strb r0, [r2] + ldrb r0, [r7] + adds r0, r1 + ldrb r0, [r0] + mov r3, sp + adds r2, r3, r0 + ldr r1, _0802F2F0 @ =gUnknown_3004FF4 + ldrb r0, [r1] + add r0, sp + ldrb r0, [r0] + movs r3, 0 + strb r0, [r2] + ldrb r0, [r1] + mov r5, sp + adds r1, r5, r0 + ldr r2, [sp, 0x1C] + ldrb r0, [r2] + strb r0, [r1] + strb r3, [r2] + movs r6, 0 + ldr r2, [sp, 0x1C] +_0802F0BE: + mov r3, sp + adds r0, r3, r6 + ldrb r1, [r0] + lsls r0, r6, 1 + lsls r1, r0 + ldrb r0, [r2] + orrs r0, r1 + strb r0, [r2] + adds r6, 0x1 + cmp r6, 0x3 + ble _0802F0BE + ldrb r1, [r7] + movs r0, 0x58 + muls r0, r1 + add r0, r10 + adds r0, 0x3B + ldr r5, [sp, 0x1C] + ldrb r1, [r5] + strb r1, [r0] + movs r6, 0 + adds r4, r7, 0 + movs r3, 0x58 + movs r0, 0x24 + add r0, r10 + mov r8, r0 + mov r2, r9 + mov r7, r10 + adds r7, 0xC + mov r5, r12 +_0802F0F8: + lsls r1, r6, 1 + ldrb r0, [r4] + muls r0, r3 + adds r1, r0 + adds r1, r7 + ldrh r0, [r2] + strh r0, [r1] + ldrb r0, [r4] + adds r1, r0, 0 + muls r1, r3 + adds r1, r6, r1 + add r1, r8 + adds r0, r5, r6 + ldrb r0, [r0] + strb r0, [r1] + adds r2, 0x2 + adds r6, 0x1 + cmp r6, 0x3 + ble _0802F0F8 + ldr r2, _0802F2EC @ =gUnknown_2023BC4 + ldrb r1, [r2] + movs r0, 0x58 + muls r0, r1 + mov r1, r10 + adds r1, 0x50 + adds r0, r1 + ldr r0, [r0] + movs r1, 0x80 + lsls r1, 14 + ands r0, r1 + cmp r0, 0 + beq _0802F13A + b _0802F2C8 +_0802F13A: + movs r6, 0 + mov r1, sp + adds r1, 0x4 + str r1, [sp, 0x20] + add r3, sp, 0xC + mov r10, r3 + ldr r5, _0802F304 @ =gUnknown_2023BCE + mov r9, r5 + mov r8, r2 + movs r7, 0x64 + ldr r5, _0802F308 @ =gUnknown_2024284 + adds r4, r1, 0 +_0802F152: + mov r1, r8 + ldrb r0, [r1] + lsls r0, 1 + add r0, r9 + ldrh r0, [r0] + muls r0, r7 + adds r0, r5 + adds r1, r6, 0 + adds r1, 0xD + bl sub_803FBE8 + strh r0, [r4] + mov r2, r8 + ldrb r0, [r2] + lsls r0, 1 + add r0, r9 + ldrh r0, [r0] + muls r0, r7 + adds r0, r5 + adds r1, r6, 0 + adds r1, 0x11 + bl sub_803FBE8 + mov r3, r10 + adds r1, r3, r6 + strb r0, [r1] + adds r4, 0x2 + adds r6, 0x1 + cmp r6, 0x3 + ble _0802F152 + ldr r1, _0802F304 @ =gUnknown_2023BCE + ldr r0, _0802F2EC @ =gUnknown_2023BC4 + ldrb r0, [r0] + lsls r0, 1 + adds r0, r1 + ldrh r1, [r0] + movs r0, 0x64 + muls r0, r1 + ldr r1, _0802F308 @ =gUnknown_2024284 + adds r0, r1 + movs r1, 0x15 + bl sub_803FBE8 + ldr r5, [sp, 0x1C] + strb r0, [r5] + movs r6, 0 + movs r5, 0x3 + ldr r4, [sp, 0x1C] +_0802F1B2: + mov r0, sp + adds r3, r0, r6 + lsls r2, r6, 1 + adds r1, r5, 0 + lsls r1, r2 + ldrb r0, [r4] + ands r0, r1 + asrs r0, r2 + strb r0, [r3] + adds r6, 0x1 + cmp r6, 0x3 + ble _0802F1B2 + ldr r4, _0802F2E8 @ =gUnknown_2023FFC + ldr r3, _0802F2EC @ =gUnknown_2023BC4 + ldrb r0, [r3] + adds r0, r4 + ldrb r1, [r0] + lsls r1, 1 + ldr r2, [sp, 0x20] + adds r1, r2, r1 + ldrh r6, [r1] + ldr r2, _0802F2F0 @ =gUnknown_3004FF4 + ldrb r0, [r2] + lsls r0, 1 + ldr r5, [sp, 0x20] + adds r0, r5, r0 + ldrh r0, [r0] + movs r5, 0 + strh r0, [r1] + ldrb r0, [r2] + lsls r0, 1 + ldr r1, [sp, 0x20] + adds r0, r1, r0 + strh r6, [r0] + ldrb r0, [r3] + adds r0, r4 + ldrb r1, [r0] + add r1, r10 + ldrb r6, [r1] + ldrb r0, [r2] + add r0, r10 + ldrb r0, [r0] + strb r0, [r1] + ldrb r0, [r2] + add r0, r10 + strb r6, [r0] + ldrb r0, [r3] + adds r0, r4 + ldrb r0, [r0] + add r0, sp + ldrb r0, [r0] + ldr r1, [sp, 0x1C] + strb r0, [r1] + ldrb r0, [r3] + adds r0, r4 + ldrb r0, [r0] + mov r3, sp + adds r1, r3, r0 + ldrb r0, [r2] + add r0, sp + ldrb r0, [r0] + strb r0, [r1] + ldrb r0, [r2] + adds r1, r3, r0 + ldr r2, [sp, 0x1C] + ldrb r0, [r2] + strb r0, [r1] + strb r5, [r2] + movs r6, 0 + ldr r2, [sp, 0x1C] +_0802F23E: + mov r3, sp + adds r0, r3, r6 + ldrb r1, [r0] + lsls r0, r6, 1 + lsls r1, r0 + ldrb r0, [r2] + orrs r0, r1 + strb r0, [r2] + adds r6, 0x1 + cmp r6, 0x3 + ble _0802F23E + movs r6, 0 + ldr r5, _0802F304 @ =gUnknown_2023BCE + mov r10, r5 + ldr r0, _0802F2EC @ =gUnknown_2023BC4 + mov r9, r0 + movs r1, 0x64 + mov r8, r1 + ldr r7, _0802F308 @ =gUnknown_2024284 + ldr r5, [sp, 0x20] + adds r5, 0x8 + ldr r4, [sp, 0x20] +_0802F26A: + mov r2, r9 + ldrb r0, [r2] + lsls r0, 1 + add r0, r10 + ldrh r0, [r0] + mov r3, r8 + muls r3, r0 + adds r0, r3, 0 + adds r0, r7 + adds r1, r6, 0 + adds r1, 0xD + adds r2, r4, 0 + bl sub_804037C + mov r1, r9 + ldrb r0, [r1] + lsls r0, 1 + add r0, r10 + ldrh r0, [r0] + mov r2, r8 + muls r2, r0 + adds r0, r2, 0 + adds r0, r7 + adds r1, r6, 0 + adds r1, 0x11 + adds r2, r5, 0 + bl sub_804037C + adds r5, 0x1 + adds r4, 0x2 + adds r6, 0x1 + cmp r6, 0x3 + ble _0802F26A + ldr r1, _0802F304 @ =gUnknown_2023BCE + ldr r0, _0802F2EC @ =gUnknown_2023BC4 + ldrb r0, [r0] + lsls r0, 1 + adds r0, r1 + ldrh r1, [r0] + movs r0, 0x64 + muls r0, r1 + ldr r1, _0802F308 @ =gUnknown_2024284 + adds r0, r1 + movs r1, 0x15 + ldr r2, [sp, 0x1C] + bl sub_804037C +_0802F2C8: + ldr r0, _0802F30C @ =gUnknown_2022B4C + ldr r0, [r0] + movs r1, 0x10 + ands r0, r1 + cmp r0, 0 + beq _0802F318 + ldr r1, _0802F310 @ =gUnknown_3004FE0 + ldr r2, _0802F2EC @ =gUnknown_2023BC4 + ldrb r0, [r2] + lsls r0, 2 + adds r0, r1 + ldr r1, _0802F314 @ =sub_80E7988 + b _0802F324 + .align 2, 0 +_0802F2E4: .4byte gUnknown_30030F0 +_0802F2E8: .4byte gUnknown_2023FFC +_0802F2EC: .4byte gUnknown_2023BC4 +_0802F2F0: .4byte gUnknown_3004FF4 +_0802F2F4: .4byte gUnknown_2022BC8 +_0802F2F8: .4byte gUnknown_2023E0C +_0802F2FC: .4byte gUnknown_825E45C +_0802F300: .4byte gUnknown_2023BE4 +_0802F304: .4byte gUnknown_2023BCE +_0802F308: .4byte gUnknown_2024284 +_0802F30C: .4byte gUnknown_2022B4C +_0802F310: .4byte gUnknown_3004FE0 +_0802F314: .4byte sub_80E7988 +_0802F318: + ldr r1, _0802F390 @ =gUnknown_3004FE0 + ldr r2, _0802F394 @ =gUnknown_2023BC4 + ldrb r0, [r2] + lsls r0, 2 + adds r0, r1 + ldr r1, _0802F398 @ =sub_802EA10 +_0802F324: + str r1, [r0] + adds r7, r2, 0 + ldr r2, _0802F39C @ =gUnknown_2023FFC + ldrb r0, [r7] + adds r0, r2 + ldr r1, _0802F3A0 @ =gUnknown_3004FF4 + ldrb r1, [r1] + strb r1, [r0] + ldrb r0, [r7] + adds r0, r2 + ldrb r0, [r0] + movs r1, 0 + bl sub_80309CC + bl sub_80308A8 + bl sub_80308CC + bl sub_8030940 +_0802F34C: + ldr r0, _0802F3A4 @ =gUnknown_30030F0 + ldrh r1, [r0, 0x2E] + movs r0, 0x2 + ands r0, r1 + cmp r0, 0 + beq _0802F3C8 + movs r0, 0x5 + bl sub_80722CC + ldr r0, _0802F3A0 @ =gUnknown_3004FF4 + ldrb r0, [r0] + bl sub_8030A14 + ldr r1, _0802F39C @ =gUnknown_2023FFC + ldr r4, _0802F394 @ =gUnknown_2023BC4 + ldrb r0, [r4] + adds r0, r1 + ldrb r0, [r0] + movs r1, 0 + bl sub_80309CC + ldr r0, _0802F3A8 @ =gUnknown_2022B4C + ldr r0, [r0] + movs r1, 0x10 + ands r0, r1 + cmp r0, 0 + beq _0802F3B0 + ldr r0, _0802F390 @ =gUnknown_3004FE0 + ldrb r1, [r4] + lsls r1, 2 + adds r1, r0 + ldr r0, _0802F3AC @ =sub_80E7988 + b _0802F3BA + .align 2, 0 +_0802F390: .4byte gUnknown_3004FE0 +_0802F394: .4byte gUnknown_2023BC4 +_0802F398: .4byte sub_802EA10 +_0802F39C: .4byte gUnknown_2023FFC +_0802F3A0: .4byte gUnknown_3004FF4 +_0802F3A4: .4byte gUnknown_30030F0 +_0802F3A8: .4byte gUnknown_2022B4C +_0802F3AC: .4byte sub_80E7988 +_0802F3B0: + ldr r0, _0802F3F8 @ =gUnknown_3004FE0 + ldrb r1, [r4] + lsls r1, 2 + adds r1, r0 + ldr r0, _0802F3FC @ =sub_802EA10 +_0802F3BA: + str r0, [r1] + bl sub_80308A8 + bl sub_80308CC + bl sub_8030940 +_0802F3C8: + ldr r0, _0802F400 @ =gUnknown_30030F0 + ldrh r1, [r0, 0x2E] + movs r0, 0x20 + ands r0, r1 + cmp r0, 0 + beq _0802F454 + ldr r3, _0802F404 @ =gUnknown_3004FF4 + ldrb r2, [r3] + movs r0, 0x1 + ands r0, r2 + cmp r0, 0 + beq _0802F454 + ldr r0, _0802F408 @ =gUnknown_2023FFC + ldr r1, _0802F40C @ =gUnknown_2023BC4 + ldrb r1, [r1] + adds r1, r0 + ldrb r5, [r1] + cmp r2, r5 + bne _0802F410 + ldrb r0, [r1] + movs r1, 0x1D + bl sub_80309CC + b _0802F416 + .align 2, 0 +_0802F3F8: .4byte gUnknown_3004FE0 +_0802F3FC: .4byte sub_802EA10 +_0802F400: .4byte gUnknown_30030F0 +_0802F404: .4byte gUnknown_3004FF4 +_0802F408: .4byte gUnknown_2023FFC +_0802F40C: .4byte gUnknown_2023BC4 +_0802F410: + ldrb r0, [r3] + bl sub_8030A14 +_0802F416: + ldr r4, _0802F440 @ =gUnknown_3004FF4 + ldrb r0, [r4] + movs r1, 0x1 + eors r0, r1 + strb r0, [r4] + movs r0, 0x5 + bl sub_80722CC + ldr r1, _0802F444 @ =gUnknown_2023FFC + ldr r0, _0802F448 @ =gUnknown_2023BC4 + ldrb r0, [r0] + adds r0, r1 + ldrb r1, [r4] + ldrb r0, [r0] + cmp r1, r0 + bne _0802F44C + adds r0, r1, 0 + movs r1, 0 + bl sub_80309CC + b _0802F454 + .align 2, 0 +_0802F440: .4byte gUnknown_3004FF4 +_0802F444: .4byte gUnknown_2023FFC +_0802F448: .4byte gUnknown_2023BC4 +_0802F44C: + ldrb r0, [r4] + movs r1, 0x1B + bl sub_80309CC +_0802F454: + ldr r0, _0802F490 @ =gUnknown_30030F0 + ldrh r1, [r0, 0x2E] + movs r0, 0x10 + ands r0, r1 + cmp r0, 0 + beq _0802F4E8 + ldr r3, _0802F494 @ =gUnknown_3004FF4 + ldrb r2, [r3] + movs r0, 0x1 + ands r0, r2 + cmp r0, 0 + bne _0802F4E8 + ldr r1, _0802F498 @ =gUnknown_3004FF8 + movs r0, 0x1 + eors r0, r2 + ldrb r1, [r1] + cmp r0, r1 + bcs _0802F4E8 + ldr r0, _0802F49C @ =gUnknown_2023FFC + ldr r1, _0802F4A0 @ =gUnknown_2023BC4 + ldrb r1, [r1] + adds r1, r0 + ldrb r0, [r1] + cmp r2, r0 + bne _0802F4A4 + ldrb r0, [r1] + movs r1, 0x1D + bl sub_80309CC + b _0802F4AA + .align 2, 0 +_0802F490: .4byte gUnknown_30030F0 +_0802F494: .4byte gUnknown_3004FF4 +_0802F498: .4byte gUnknown_3004FF8 +_0802F49C: .4byte gUnknown_2023FFC +_0802F4A0: .4byte gUnknown_2023BC4 +_0802F4A4: + ldrb r0, [r3] + bl sub_8030A14 +_0802F4AA: + ldr r4, _0802F4D4 @ =gUnknown_3004FF4 + ldrb r0, [r4] + movs r1, 0x1 + eors r0, r1 + strb r0, [r4] + movs r0, 0x5 + bl sub_80722CC + ldr r1, _0802F4D8 @ =gUnknown_2023FFC + ldr r0, _0802F4DC @ =gUnknown_2023BC4 + ldrb r0, [r0] + adds r0, r1 + ldrb r1, [r4] + ldrb r0, [r0] + cmp r1, r0 + bne _0802F4E0 + adds r0, r1, 0 + movs r1, 0 + bl sub_80309CC + b _0802F4E8 + .align 2, 0 +_0802F4D4: .4byte gUnknown_3004FF4 +_0802F4D8: .4byte gUnknown_2023FFC +_0802F4DC: .4byte gUnknown_2023BC4 +_0802F4E0: + ldrb r0, [r4] + movs r1, 0x1B + bl sub_80309CC +_0802F4E8: + ldr r0, _0802F518 @ =gUnknown_30030F0 + ldrh r1, [r0, 0x2E] + movs r0, 0x40 + ands r0, r1 + cmp r0, 0 + beq _0802F56C + ldr r3, _0802F51C @ =gUnknown_3004FF4 + ldrb r2, [r3] + movs r0, 0x2 + ands r0, r2 + cmp r0, 0 + beq _0802F56C + ldr r0, _0802F520 @ =gUnknown_2023FFC + ldr r1, _0802F524 @ =gUnknown_2023BC4 + ldrb r1, [r1] + adds r1, r0 + ldrb r5, [r1] + cmp r2, r5 + bne _0802F528 + ldrb r0, [r1] + movs r1, 0x1D + bl sub_80309CC + b _0802F52E + .align 2, 0 +_0802F518: .4byte gUnknown_30030F0 +_0802F51C: .4byte gUnknown_3004FF4 +_0802F520: .4byte gUnknown_2023FFC +_0802F524: .4byte gUnknown_2023BC4 +_0802F528: + ldrb r0, [r3] + bl sub_8030A14 +_0802F52E: + ldr r4, _0802F558 @ =gUnknown_3004FF4 + ldrb r0, [r4] + movs r1, 0x2 + eors r0, r1 + strb r0, [r4] + movs r0, 0x5 + bl sub_80722CC + ldr r1, _0802F55C @ =gUnknown_2023FFC + ldr r0, _0802F560 @ =gUnknown_2023BC4 + ldrb r0, [r0] + adds r0, r1 + ldrb r1, [r4] + ldrb r0, [r0] + cmp r1, r0 + bne _0802F564 + adds r0, r1, 0 + movs r1, 0 + bl sub_80309CC + b _0802F56C + .align 2, 0 +_0802F558: .4byte gUnknown_3004FF4 +_0802F55C: .4byte gUnknown_2023FFC +_0802F560: .4byte gUnknown_2023BC4 +_0802F564: + ldrb r0, [r4] + movs r1, 0x1B + bl sub_80309CC +_0802F56C: + ldr r0, _0802F5A8 @ =gUnknown_30030F0 + ldrh r1, [r0, 0x2E] + movs r0, 0x80 + ands r0, r1 + cmp r0, 0 + beq _0802F600 + ldr r3, _0802F5AC @ =gUnknown_3004FF4 + ldrb r2, [r3] + movs r0, 0x2 + ands r0, r2 + cmp r0, 0 + bne _0802F600 + ldr r1, _0802F5B0 @ =gUnknown_3004FF8 + movs r0, 0x2 + eors r0, r2 + ldrb r1, [r1] + cmp r0, r1 + bcs _0802F600 + ldr r0, _0802F5B4 @ =gUnknown_2023FFC + ldr r1, _0802F5B8 @ =gUnknown_2023BC4 + ldrb r1, [r1] + adds r1, r0 + ldrb r0, [r1] + cmp r2, r0 + bne _0802F5BC + ldrb r0, [r1] + movs r1, 0x1D + bl sub_80309CC + b _0802F5C2 + .align 2, 0 +_0802F5A8: .4byte gUnknown_30030F0 +_0802F5AC: .4byte gUnknown_3004FF4 +_0802F5B0: .4byte gUnknown_3004FF8 +_0802F5B4: .4byte gUnknown_2023FFC +_0802F5B8: .4byte gUnknown_2023BC4 +_0802F5BC: + ldrb r0, [r3] + bl sub_8030A14 +_0802F5C2: + ldr r4, _0802F5EC @ =gUnknown_3004FF4 + ldrb r0, [r4] + movs r1, 0x2 + eors r0, r1 + strb r0, [r4] + movs r0, 0x5 + bl sub_80722CC + ldr r1, _0802F5F0 @ =gUnknown_2023FFC + ldr r0, _0802F5F4 @ =gUnknown_2023BC4 + ldrb r0, [r0] + adds r0, r1 + ldrb r1, [r4] + ldrb r0, [r0] + cmp r1, r0 + bne _0802F5F8 + adds r0, r1, 0 + movs r1, 0 + bl sub_80309CC + b _0802F600 + .align 2, 0 +_0802F5EC: .4byte gUnknown_3004FF4 +_0802F5F0: .4byte gUnknown_2023FFC +_0802F5F4: .4byte gUnknown_2023BC4 +_0802F5F8: + ldrb r0, [r4] + movs r1, 0x1B + bl sub_80309CC +_0802F600: + add sp, 0x24 + pop {r3-r5} + mov r8, r3 + mov r9, r4 + mov r10, r5 + pop {r4-r7} + pop {r0} + bx r0 + thumb_func_end sub_802EF58 + + thumb_func_start sub_802F610 +sub_802F610: @ 802F610 + push {lr} + ldr r0, _0802F64C @ =gUnknown_3003F3C + ldrb r0, [r0] + cmp r0, 0 + bne _0802F664 + ldr r0, _0802F650 @ =gUnknown_3003F64 + ldrb r0, [r0] + cmp r0, 0 + bne _0802F694 + movs r0, 0x53 + bl m4aSongNumStop + ldr r3, _0802F654 @ =gUnknown_30030F0 + ldr r0, _0802F658 @ =0x00000439 + adds r2, r3, r0 + ldrb r1, [r2] + movs r0, 0x3 + negs r0, r0 + ands r0, r1 + strb r0, [r2] + ldr r0, _0802F65C @ =gUnknown_3004F80 + ldr r0, [r0] + str r0, [r3] + ldr r0, _0802F660 @ =sub_8011A1C + bl sub_8000544 + bl sub_8003ECC + b _0802F694 + .align 2, 0 +_0802F64C: .4byte gUnknown_3003F3C +_0802F650: .4byte gUnknown_3003F64 +_0802F654: .4byte gUnknown_30030F0 +_0802F658: .4byte 0x00000439 +_0802F65C: .4byte gUnknown_3004F80 +_0802F660: .4byte sub_8011A1C +_0802F664: + bl sub_800A4BC + lsls r0, 24 + cmp r0, 0 + beq _0802F694 + movs r0, 0x53 + bl m4aSongNumStop + ldr r3, _0802F698 @ =gUnknown_30030F0 + ldr r0, _0802F69C @ =0x00000439 + adds r2, r3, r0 + ldrb r1, [r2] + movs r0, 0x3 + negs r0, r0 + ands r0, r1 + strb r0, [r2] + ldr r0, _0802F6A0 @ =gUnknown_3004F80 + ldr r0, [r0] + str r0, [r3] + ldr r0, _0802F6A4 @ =sub_8011A1C + bl sub_8000544 + bl sub_8003ECC +_0802F694: + pop {r0} + bx r0 + .align 2, 0 +_0802F698: .4byte gUnknown_30030F0 +_0802F69C: .4byte 0x00000439 +_0802F6A0: .4byte gUnknown_3004F80 +_0802F6A4: .4byte sub_8011A1C + thumb_func_end sub_802F610 + + thumb_func_start sub_802F6A8 +sub_802F6A8: @ 802F6A8 + push {lr} + ldr r0, _0802F6D0 @ =gUnknown_2037AB8 + ldrb r1, [r0, 0x7] + movs r0, 0x80 + ands r0, r1 + cmp r0, 0 + bne _0802F71E + ldr r0, _0802F6D4 @ =gUnknown_2022B4C + ldr r0, [r0] + movs r1, 0x2 + ands r0, r1 + cmp r0, 0 + beq _0802F6FC + ldr r0, _0802F6D8 @ =gUnknown_3003F3C + ldrb r0, [r0] + cmp r0, 0 + bne _0802F6DC + bl sub_800AAC0 + b _0802F6E0 + .align 2, 0 +_0802F6D0: .4byte gUnknown_2037AB8 +_0802F6D4: .4byte gUnknown_2022B4C +_0802F6D8: .4byte gUnknown_3003F3C +_0802F6DC: + bl sub_800AB9C +_0802F6E0: + ldr r1, _0802F6F0 @ =gUnknown_3004FE0 + ldr r0, _0802F6F4 @ =gUnknown_2023BC4 + ldrb r0, [r0] + lsls r0, 2 + adds r0, r1 + ldr r1, _0802F6F8 @ =sub_802F610 + str r1, [r0] + b _0802F71E + .align 2, 0 +_0802F6F0: .4byte gUnknown_3004FE0 +_0802F6F4: .4byte gUnknown_2023BC4 +_0802F6F8: .4byte sub_802F610 +_0802F6FC: + movs r0, 0x53 + bl m4aSongNumStop + ldr r2, _0802F724 @ =gUnknown_30030F0 + ldr r0, _0802F728 @ =0x00000439 + adds r3, r2, r0 + ldrb r1, [r3] + movs r0, 0x3 + negs r0, r0 + ands r0, r1 + strb r0, [r3] + ldr r0, _0802F72C @ =gUnknown_3004F80 + ldr r0, [r0] + str r0, [r2] + ldr r0, [r2, 0x8] + bl sub_8000544 +_0802F71E: + pop {r0} + bx r0 + .align 2, 0 +_0802F724: .4byte gUnknown_30030F0 +_0802F728: .4byte 0x00000439 +_0802F72C: .4byte gUnknown_3004F80 + thumb_func_end sub_802F6A8 + + thumb_func_start sub_802F730 +sub_802F730: @ 802F730 + push {lr} + ldr r2, _0802F758 @ =gUnknown_202063C + ldr r1, _0802F75C @ =gUnknown_2023D44 + ldr r0, _0802F760 @ =gUnknown_2023BC4 + ldrb r0, [r0] + adds r0, r1 + ldrb r1, [r0] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r2, 0x1C + adds r0, r2 + ldr r1, [r0] + ldr r0, _0802F764 @ =nullsub_8 + cmp r1, r0 + bne _0802F754 + bl sub_802E33C +_0802F754: + pop {r0} + bx r0 + .align 2, 0 +_0802F758: .4byte gUnknown_202063C +_0802F75C: .4byte gUnknown_2023D44 +_0802F760: .4byte gUnknown_2023BC4 +_0802F764: .4byte nullsub_8 + thumb_func_end sub_802F730 + + thumb_func_start sub_802F768 +sub_802F768: @ 802F768 + push {lr} + ldr r2, _0802F790 @ =gUnknown_202063C + ldr r1, _0802F794 @ =gUnknown_2023D44 + ldr r0, _0802F798 @ =gUnknown_2023BC4 + ldrb r0, [r0] + adds r0, r1 + ldrb r1, [r0] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r2, 0x1C + adds r0, r2 + ldr r1, [r0] + ldr r0, _0802F79C @ =nullsub_8 + cmp r1, r0 + bne _0802F78C + bl sub_802E33C +_0802F78C: + pop {r0} + bx r0 + .align 2, 0 +_0802F790: .4byte gUnknown_202063C +_0802F794: .4byte gUnknown_2023D44 +_0802F798: .4byte gUnknown_2023BC4 +_0802F79C: .4byte nullsub_8 + thumb_func_end sub_802F768 + + thumb_func_start sub_802F7A0 +sub_802F7A0: @ 802F7A0 + push {r4-r6,lr} + ldr r6, _0802F7FC @ =gUnknown_202063C + ldr r5, _0802F800 @ =gUnknown_2023D44 + ldr r4, _0802F804 @ =gUnknown_2023BC4 + ldrb r0, [r4] + adds r0, r5 + ldrb r1, [r0] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r1, r6, 0 + adds r1, 0x1C + adds r0, r1 + ldr r1, [r0] + ldr r0, _0802F808 @ =nullsub_8 + cmp r1, r0 + bne _0802F7F4 + ldr r0, _0802F80C @ =gUnknown_300500C + ldr r0, [r0] + ldrb r0, [r0, 0x8] + bl nullsub_16 + ldrb r0, [r4] + adds r0, r5 + ldrb r1, [r0] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r6 + bl sub_80077D8 + ldrb r0, [r4] + adds r0, r5 + ldrb r1, [r0] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r6 + bl sub_8007280 + bl sub_802E33C +_0802F7F4: + pop {r4-r6} + pop {r0} + bx r0 + .align 2, 0 +_0802F7FC: .4byte gUnknown_202063C +_0802F800: .4byte gUnknown_2023D44 +_0802F804: .4byte gUnknown_2023BC4 +_0802F808: .4byte nullsub_8 +_0802F80C: .4byte gUnknown_300500C + thumb_func_end sub_802F7A0 + + thumb_func_start sub_802F810 +sub_802F810: @ 802F810 + push {r4,lr} + ldr r4, _0802F850 @ =gUnknown_2024018 + ldr r1, [r4] + ldr r3, _0802F854 @ =gUnknown_2023BC4 + ldrb r0, [r3] + ldr r2, [r1, 0x4] + lsls r1, r0, 1 + adds r1, r0 + lsls r1, 2 + adds r1, r2 + ldrb r0, [r1, 0x9] + subs r0, 0x1 + strb r0, [r1, 0x9] + lsls r0, 24 + lsrs r0, 24 + cmp r0, 0xFF + bne _0802F848 + ldr r0, [r4] + ldrb r1, [r3] + ldr r2, [r0, 0x4] + lsls r0, r1, 1 + adds r0, r1 + lsls r0, 2 + adds r0, r2 + movs r1, 0 + strb r1, [r0, 0x9] + bl sub_802E33C +_0802F848: + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_0802F850: .4byte gUnknown_2024018 +_0802F854: .4byte gUnknown_2023BC4 + thumb_func_end sub_802F810 + + thumb_func_start sub_802F858 +sub_802F858: @ 802F858 + push {r4-r7,lr} + movs r6, 0 + bl sub_8075290 + lsls r0, 24 + cmp r0, 0 + beq _0802F87C + bl sub_8075290 + lsls r0, 24 + cmp r0, 0 + beq _0802F8B0 + ldr r0, _0802F89C @ =gUnknown_2022B4C + ldr r0, [r0] + movs r1, 0x40 + ands r0, r1 + cmp r0, 0 + beq _0802F8B0 +_0802F87C: + ldr r2, _0802F8A0 @ =gUnknown_202063C + ldr r1, _0802F8A4 @ =gUnknown_3004FF0 + ldr r0, _0802F8A8 @ =gUnknown_2023BC4 + ldrb r0, [r0] + adds r0, r1 + ldrb r1, [r0] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r2, 0x1C + adds r0, r2 + ldr r1, [r0] + ldr r0, _0802F8AC @ =nullsub_8 + cmp r1, r0 + bne _0802F8E6 + b _0802F8E4 + .align 2, 0 +_0802F89C: .4byte gUnknown_2022B4C +_0802F8A0: .4byte gUnknown_202063C +_0802F8A4: .4byte gUnknown_3004FF0 +_0802F8A8: .4byte gUnknown_2023BC4 +_0802F8AC: .4byte nullsub_8 +_0802F8B0: + ldr r2, _0802F9B0 @ =gUnknown_202063C + ldr r5, _0802F9B4 @ =gUnknown_3004FF0 + ldr r0, _0802F9B8 @ =gUnknown_2023BC4 + ldrb r3, [r0] + adds r0, r3, r5 + ldrb r1, [r0] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r2, 0x1C + adds r0, r2 + ldr r4, [r0] + ldr r0, _0802F9BC @ =nullsub_8 + cmp r4, r0 + bne _0802F8E6 + movs r0, 0x2 + eors r3, r0 + adds r0, r3, r5 + ldrb r1, [r0] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r2 + ldr r0, [r0] + cmp r0, r4 + bne _0802F8E6 +_0802F8E4: + movs r6, 0x1 +_0802F8E6: + bl sub_80721F0 + lsls r0, 24 + cmp r0, 0 + beq _0802F8F2 + movs r6, 0 +_0802F8F2: + cmp r6, 0 + bne _0802F8F8 + b _0802FA32 +_0802F8F8: + ldr r0, _0802F9C0 @ =gUnknown_2024018 + mov r12, r0 + ldr r0, [r0] + ldr r7, _0802F9B8 @ =gUnknown_2023BC4 + ldrb r2, [r7] + ldr r3, [r0, 0x4] + lsls r0, r2, 1 + adds r0, r2 + lsls r0, 2 + adds r4, r0, r3 + ldrb r1, [r4, 0x1] + movs r5, 0x1 + adds r0, r5, 0 + ands r0, r1 + cmp r0, 0 + bne _0802F91A + b _0802FA32 +_0802F91A: + movs r6, 0x2 + adds r1, r6, 0 + eors r1, r2 + lsls r0, r1, 1 + adds r0, r1 + lsls r0, 2 + adds r0, r3 + ldrb r1, [r0, 0x1] + adds r0, r5, 0 + ands r0, r1 + cmp r0, 0 + bne _0802F934 + b _0802FA32 +_0802F934: + ldrb r1, [r4] + movs r3, 0x7F + adds r0, r3, 0 + ands r0, r1 + strb r0, [r4] + mov r1, r12 + ldr r0, [r1] + ldrb r2, [r7] + ldr r0, [r0, 0x4] + lsls r1, r2, 1 + adds r1, r2 + lsls r1, 2 + adds r1, r0 + ldrb r2, [r1, 0x1] + movs r4, 0x2 + negs r4, r4 + adds r0, r4, 0 + ands r0, r2 + strb r0, [r1, 0x1] + mov r0, r12 + ldr r2, [r0] + ldrb r0, [r7] + adds r1, r6, 0 + eors r1, r0 + ldr r2, [r2, 0x4] + lsls r0, r1, 1 + adds r0, r1 + lsls r0, 2 + adds r0, r2 + ldrb r1, [r0] + ands r3, r1 + strb r3, [r0] + mov r1, r12 + ldr r2, [r1] + ldrb r0, [r7] + adds r1, r6, 0 + eors r1, r0 + ldr r2, [r2, 0x4] + lsls r0, r1, 1 + adds r0, r1 + lsls r0, 2 + adds r0, r2 + ldrb r1, [r0, 0x1] + ands r4, r1 + strb r4, [r0, 0x1] + ldr r4, _0802F9C4 @ =0x000027f9 + adds r0, r4, 0 + bl sub_800874C + adds r0, r4, 0 + bl sub_8008A30 + ldr r0, _0802F9C8 @ =gUnknown_2022B4C + ldr r0, [r0] + movs r1, 0x40 + ands r0, r1 + cmp r0, 0 + beq _0802F9D0 + ldr r0, _0802F9CC @ =gMPlay_BGM + bl m4aMPlayContinue + b _0802F9DC + .align 2, 0 +_0802F9B0: .4byte gUnknown_202063C +_0802F9B4: .4byte gUnknown_3004FF0 +_0802F9B8: .4byte gUnknown_2023BC4 +_0802F9BC: .4byte nullsub_8 +_0802F9C0: .4byte gUnknown_2024018 +_0802F9C4: .4byte 0x000027f9 +_0802F9C8: .4byte gUnknown_2022B4C +_0802F9CC: .4byte gMPlay_BGM +_0802F9D0: + ldr r0, _0802FA38 @ =gMPlay_BGM + ldr r1, _0802FA3C @ =0x0000ffff + movs r2, 0x80 + lsls r2, 1 + bl m4aMPlayVolumeControl +_0802F9DC: + ldr r7, _0802FA40 @ =gUnknown_2023BCE + ldr r4, _0802FA44 @ =gUnknown_2023BC4 + ldrb r1, [r4] + lsls r0, r1, 1 + adds r0, r7 + ldrh r0, [r0] + movs r6, 0x64 + muls r0, r6 + ldr r5, _0802FA48 @ =gUnknown_2024284 + adds r0, r5 + bl sub_8035244 + bl sub_8075290 + lsls r0, 24 + cmp r0, 0 + beq _0802FA12 + ldrb r0, [r4] + movs r1, 0x2 + eors r1, r0 + lsls r0, r1, 1 + adds r0, r7 + ldrh r0, [r0] + muls r0, r6 + adds r0, r5 + bl sub_8035244 +_0802FA12: + ldr r0, _0802FA4C @ =gUnknown_2024018 + ldr r0, [r0] + ldrb r1, [r4] + ldr r2, [r0, 0x4] + lsls r0, r1, 1 + adds r0, r1 + lsls r0, 2 + adds r0, r2 + movs r1, 0x3 + strb r1, [r0, 0x9] + ldr r1, _0802FA50 @ =gUnknown_3004FE0 + ldrb r0, [r4] + lsls r0, 2 + adds r0, r1 + ldr r1, _0802FA54 @ =sub_802F810 + str r1, [r0] +_0802FA32: + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_0802FA38: .4byte gMPlay_BGM +_0802FA3C: .4byte 0x0000ffff +_0802FA40: .4byte gUnknown_2023BCE +_0802FA44: .4byte gUnknown_2023BC4 +_0802FA48: .4byte gUnknown_2024284 +_0802FA4C: .4byte gUnknown_2024018 +_0802FA50: .4byte gUnknown_3004FE0 +_0802FA54: .4byte sub_802F810 + thumb_func_end sub_802F858 + + thumb_func_start sub_802FA58 +sub_802FA58: @ 802FA58 + push {r4-r7,lr} + mov r7, r9 + mov r6, r8 + push {r6,r7} + ldr r0, _0802FBCC @ =gUnknown_2024018 + mov r9, r0 + ldr r0, [r0] + ldr r1, _0802FBD0 @ =gUnknown_2023BC4 + mov r8, r1 + ldrb r2, [r1] + ldr r3, [r0, 0x4] + lsls r5, r2, 1 + adds r0, r5, r2 + lsls r0, 2 + adds r0, r3 + ldrb r4, [r0] + movs r6, 0x8 + adds r0, r6, 0 + ands r0, r4 + cmp r0, 0 + beq _0802FA84 + b _0802FBBE +_0802FA84: + movs r7, 0x2 + adds r1, r2, 0 + eors r1, r7 + lsls r0, r1, 1 + adds r0, r1 + lsls r0, 2 + adds r0, r3 + ldrb r1, [r0] + adds r0, r6, 0 + ands r0, r1 + cmp r0, 0 + beq _0802FA9E + b _0802FBBE +_0802FA9E: + movs r6, 0x80 + adds r0, r6, 0 + ands r0, r4 + cmp r0, 0 + bne _0802FABC + ldr r0, _0802FBD4 @ =gUnknown_2023BCE + adds r0, r5, r0 + ldrh r1, [r0] + movs r0, 0x64 + muls r1, r0 + ldr r0, _0802FBD8 @ =gUnknown_2024284 + adds r1, r0 + adds r0, r2, 0 + bl sub_80F1720 +_0802FABC: + mov r2, r9 + ldr r1, [r2] + mov r2, r8 + ldrb r0, [r2] + adds r2, r7, 0 + eors r2, r0 + ldr r1, [r1, 0x4] + lsls r3, r2, 1 + adds r0, r3, r2 + lsls r0, 2 + adds r0, r1 + ldrb r1, [r0] + adds r0, r6, 0 + ands r0, r1 + cmp r0, 0 + bne _0802FAF0 + ldr r0, _0802FBD4 @ =gUnknown_2023BCE + adds r0, r3, r0 + ldrh r1, [r0] + movs r0, 0x64 + muls r1, r0 + ldr r0, _0802FBD8 @ =gUnknown_2024284 + adds r1, r0 + adds r0, r2, 0 + bl sub_80F1720 +_0802FAF0: + bl sub_8075290 + lsls r0, 24 + cmp r0, 0 + beq _0802FB5C + ldr r0, _0802FBDC @ =gUnknown_2022B4C + ldr r0, [r0] + movs r1, 0x40 + ands r0, r1 + cmp r0, 0 + bne _0802FB5C + ldr r1, _0802FBE0 @ =gUnknown_3004FFC + mov r2, r8 + ldrb r0, [r2] + eors r0, r7 + adds r0, r1 + ldrb r1, [r0] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + ldr r1, _0802FBE4 @ =gUnknown_202063C + adds r0, r1 + bl sub_8007280 + ldr r4, _0802FBE8 @ =gUnknown_3004FF0 + mov r1, r8 + ldrb r0, [r1] + adds r1, r7, 0 + eors r1, r0 + adds r0, r1, r4 + ldrb r0, [r0] + ldr r2, _0802FBD4 @ =gUnknown_2023BCE + lsls r1, 1 + adds r1, r2 + ldrh r2, [r1] + movs r1, 0x64 + muls r1, r2 + ldr r2, _0802FBD8 @ =gUnknown_2024284 + adds r1, r2 + movs r2, 0 + bl sub_8049D98 + mov r2, r8 + ldrb r0, [r2] + eors r0, r7 + bl sub_804BD94 + mov r1, r8 + ldrb r0, [r1] + eors r0, r7 + adds r0, r4 + ldrb r0, [r0] + bl sub_80481D4 +_0802FB5C: + ldr r1, _0802FBE0 @ =gUnknown_3004FFC + ldr r4, _0802FBD0 @ =gUnknown_2023BC4 + ldrb r0, [r4] + adds r0, r1 + ldrb r1, [r0] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + ldr r1, _0802FBE4 @ =gUnknown_202063C + adds r0, r1 + bl sub_8007280 + ldr r5, _0802FBE8 @ =gUnknown_3004FF0 + ldrb r1, [r4] + adds r0, r1, r5 + ldrb r0, [r0] + ldr r2, _0802FBD4 @ =gUnknown_2023BCE + lsls r1, 1 + adds r1, r2 + ldrh r2, [r1] + movs r1, 0x64 + muls r1, r2 + ldr r2, _0802FBD8 @ =gUnknown_2024284 + adds r1, r2 + movs r2, 0 + bl sub_8049D98 + ldrb r0, [r4] + bl sub_804BD94 + ldrb r0, [r4] + adds r0, r5 + ldrb r0, [r0] + bl sub_80481D4 + ldr r0, _0802FBCC @ =gUnknown_2024018 + ldr r0, [r0] + ldr r2, [r0, 0x8] + ldrb r1, [r2, 0x9] + movs r0, 0x2 + negs r0, r0 + ands r0, r1 + strb r0, [r2, 0x9] + ldr r1, _0802FBEC @ =gUnknown_3004FE0 + ldrb r0, [r4] + lsls r0, 2 + adds r0, r1 + ldr r1, _0802FBF0 @ =sub_802F858 + str r1, [r0] +_0802FBBE: + pop {r3,r4} + mov r8, r3 + mov r9, r4 + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_0802FBCC: .4byte gUnknown_2024018 +_0802FBD0: .4byte gUnknown_2023BC4 +_0802FBD4: .4byte gUnknown_2023BCE +_0802FBD8: .4byte gUnknown_2024284 +_0802FBDC: .4byte gUnknown_2022B4C +_0802FBE0: .4byte gUnknown_3004FFC +_0802FBE4: .4byte gUnknown_202063C +_0802FBE8: .4byte gUnknown_3004FF0 +_0802FBEC: .4byte gUnknown_3004FE0 +_0802FBF0: .4byte sub_802F858 + thumb_func_end sub_802FA58 + + thumb_func_start sub_802FBF4 +sub_802FBF4: @ 802FBF4 + push {r4-r6,lr} + ldr r2, _0802FC8C @ =gUnknown_202063C + ldr r0, _0802FC90 @ =gUnknown_3004FF0 + ldr r6, _0802FC94 @ =gUnknown_2023BC4 + ldrb r3, [r6] + adds r0, r3, r0 + ldrb r1, [r0] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r2, 0x1C + adds r0, r2 + ldr r1, [r0] + ldr r0, _0802FC98 @ =nullsub_8 + cmp r1, r0 + bne _0802FC84 + ldr r5, _0802FC9C @ =gUnknown_2024018 + ldr r0, [r5] + ldr r1, [r0, 0x4] + lsls r0, r3, 1 + adds r0, r3 + lsls r0, 2 + adds r2, r0, r1 + ldrb r1, [r2, 0x1] + movs r0, 0x1 + ands r0, r1 + cmp r0, 0 + beq _0802FC84 + ldrb r1, [r2] + movs r0, 0x7F + ands r0, r1 + strb r0, [r2] + ldr r0, [r5] + ldrb r2, [r6] + ldr r0, [r0, 0x4] + lsls r1, r2, 1 + adds r1, r2 + lsls r1, 2 + adds r1, r0 + ldrb r2, [r1, 0x1] + movs r0, 0x2 + negs r0, r0 + ands r0, r2 + strb r0, [r1, 0x1] + ldr r4, _0802FCA0 @ =0x000027f9 + adds r0, r4, 0 + bl sub_800874C + adds r0, r4, 0 + bl sub_8008A30 + ldr r0, [r5] + ldrb r2, [r6] + ldr r1, [r0] + lsls r0, r2, 2 + adds r0, r1 + ldrb r1, [r0] + movs r0, 0x4 + ands r0, r1 + cmp r0, 0 + beq _0802FC78 + adds r0, r2, 0 + adds r1, r2, 0 + movs r3, 0x6 + bl sub_80341D8 +_0802FC78: + ldr r0, _0802FCA4 @ =gUnknown_3004FE0 + ldrb r1, [r6] + lsls r1, 2 + adds r1, r0 + ldr r0, _0802FCA8 @ =sub_802FCAC + str r0, [r1] +_0802FC84: + pop {r4-r6} + pop {r0} + bx r0 + .align 2, 0 +_0802FC8C: .4byte gUnknown_202063C +_0802FC90: .4byte gUnknown_3004FF0 +_0802FC94: .4byte gUnknown_2023BC4 +_0802FC98: .4byte nullsub_8 +_0802FC9C: .4byte gUnknown_2024018 +_0802FCA0: .4byte 0x000027f9 +_0802FCA4: .4byte gUnknown_3004FE0 +_0802FCA8: .4byte sub_802FCAC + thumb_func_end sub_802FBF4 + + thumb_func_start sub_802FCAC +sub_802FCAC: @ 802FCAC + push {r4,lr} + ldr r0, _0802FD00 @ =gUnknown_2024018 + ldr r0, [r0] + ldr r4, _0802FD04 @ =gUnknown_2023BC4 + ldrb r1, [r4] + ldr r2, [r0, 0x4] + lsls r0, r1, 1 + adds r0, r1 + lsls r0, 2 + adds r0, r2 + ldrb r1, [r0] + movs r0, 0x40 + ands r0, r1 + cmp r0, 0 + bne _0802FCFA + bl sub_80721F0 + lsls r0, 24 + cmp r0, 0 + bne _0802FCFA + ldr r0, _0802FD08 @ =gMPlay_BGM + ldr r1, _0802FD0C @ =0x0000ffff + movs r2, 0x80 + lsls r2, 1 + bl m4aMPlayVolumeControl + ldr r2, _0802FD10 @ =gUnknown_2023BCE + ldrb r1, [r4] + lsls r0, r1, 1 + adds r0, r2 + ldrh r2, [r0] + movs r0, 0x64 + muls r0, r2 + ldr r2, _0802FD14 @ =gUnknown_2024284 + adds r0, r2 + bl sub_8035244 + bl sub_802E33C +_0802FCFA: + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_0802FD00: .4byte gUnknown_2024018 +_0802FD04: .4byte gUnknown_2023BC4 +_0802FD08: .4byte gMPlay_BGM +_0802FD0C: .4byte 0x0000ffff +_0802FD10: .4byte gUnknown_2023BCE +_0802FD14: .4byte gUnknown_2024284 + thumb_func_end sub_802FCAC + + thumb_func_start sub_802FD18 +sub_802FD18: @ 802FD18 + push {r4-r6,lr} + ldr r6, _0802FDCC @ =gUnknown_2024018 + ldr r0, [r6] + ldr r5, _0802FDD0 @ =gUnknown_2023BC4 + ldrb r2, [r5] + ldr r1, [r0, 0x4] + lsls r3, r2, 1 + adds r0, r3, r2 + lsls r0, 2 + adds r0, r1 + ldrb r1, [r0] + movs r0, 0x88 + ands r0, r1 + cmp r0, 0 + bne _0802FD4A + ldr r0, _0802FDD4 @ =gUnknown_2023BCE + adds r0, r3, r0 + ldrh r1, [r0] + movs r0, 0x64 + muls r1, r0 + ldr r0, _0802FDD8 @ =gUnknown_2024284 + adds r1, r0 + adds r0, r2, 0 + bl sub_80F1720 +_0802FD4A: + ldr r4, _0802FDDC @ =gUnknown_202063C + ldr r0, _0802FDE0 @ =gUnknown_3004FFC + ldrb r2, [r5] + adds r0, r2, r0 + ldrb r1, [r0] + lsls r0, r1, 4 + adds r0, r1 + lsls r3, r0, 2 + adds r0, r4, 0 + adds r0, 0x1C + adds r0, r3, r0 + ldr r1, [r0] + ldr r0, _0802FDE4 @ =nullsub_8 + cmp r1, r0 + bne _0802FDC4 + ldr r0, [r6] + ldr r1, [r0, 0x4] + lsls r0, r2, 1 + adds r0, r2 + lsls r0, 2 + adds r0, r1 + ldrb r1, [r0] + movs r0, 0x8 + ands r0, r1 + cmp r0, 0 + bne _0802FDC4 + adds r0, r3, r4 + bl sub_8007280 + ldr r4, _0802FDE8 @ =gUnknown_3004FF0 + ldrb r1, [r5] + adds r0, r1, r4 + ldrb r0, [r0] + ldr r2, _0802FDD4 @ =gUnknown_2023BCE + lsls r1, 1 + adds r1, r2 + ldrh r2, [r1] + movs r1, 0x64 + muls r1, r2 + ldr r2, _0802FDD8 @ =gUnknown_2024284 + adds r1, r2 + movs r2, 0 + bl sub_8049D98 + ldrb r0, [r5] + bl sub_804BD94 + ldrb r0, [r5] + adds r0, r4 + ldrb r0, [r0] + bl sub_80481D4 + ldrb r0, [r5] + bl sub_8034BB4 + ldr r1, _0802FDEC @ =gUnknown_3004FE0 + ldrb r0, [r5] + lsls r0, 2 + adds r0, r1 + ldr r1, _0802FDF0 @ =sub_802FBF4 + str r1, [r0] +_0802FDC4: + pop {r4-r6} + pop {r0} + bx r0 + .align 2, 0 +_0802FDCC: .4byte gUnknown_2024018 +_0802FDD0: .4byte gUnknown_2023BC4 +_0802FDD4: .4byte gUnknown_2023BCE +_0802FDD8: .4byte gUnknown_2024284 +_0802FDDC: .4byte gUnknown_202063C +_0802FDE0: .4byte gUnknown_3004FFC +_0802FDE4: .4byte nullsub_8 +_0802FDE8: .4byte gUnknown_3004FF0 +_0802FDEC: .4byte gUnknown_3004FE0 +_0802FDF0: .4byte sub_802FBF4 + thumb_func_end sub_802FD18 + + thumb_func_start sub_802FDF4 +sub_802FDF4: @ 802FDF4 + push {r4,lr} + lsls r0, 24 + lsrs r4, r0, 24 + bl sub_80721F0 + lsls r0, 24 + cmp r0, 0 + bne _0802FE16 + ldr r0, _0802FE1C @ =gMPlay_BGM + ldr r1, _0802FE20 @ =0x0000ffff + movs r2, 0x80 + lsls r2, 1 + bl m4aMPlayVolumeControl + adds r0, r4, 0 + bl sub_8077508 +_0802FE16: + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_0802FE1C: .4byte gMPlay_BGM +_0802FE20: .4byte 0x0000ffff + thumb_func_end sub_802FDF4 + + thumb_func_start sub_802FE24 +sub_802FE24: @ 802FE24 + push {r4-r6,lr} + ldr r5, _0802FE64 @ =gUnknown_2023BC4 + ldrb r0, [r5] + ldr r6, _0802FE68 @ =gUnknown_3004FF0 + adds r1, r0, r6 + ldrb r1, [r1] + movs r2, 0 + movs r3, 0 + bl sub_8049FD8 + adds r4, r0, 0 + lsls r4, 16 + lsrs r4, 16 + ldrb r0, [r5] + adds r0, r6 + ldrb r0, [r0] + bl sub_80481D4 + lsls r4, 16 + asrs r1, r4, 16 + movs r0, 0x1 + negs r0, r0 + cmp r1, r0 + beq _0802FE6C + ldrb r0, [r5] + adds r0, r6 + ldrb r0, [r0] + movs r2, 0 + bl sub_8048440 + b _0802FE86 + .align 2, 0 +_0802FE64: .4byte gUnknown_2023BC4 +_0802FE68: .4byte gUnknown_3004FF0 +_0802FE6C: + ldr r2, _0802FE8C @ =gUnknown_2023BCE + ldrb r1, [r5] + lsls r0, r1, 1 + adds r0, r2 + ldrh r2, [r0] + movs r0, 0x64 + muls r0, r2 + ldr r2, _0802FE90 @ =gUnknown_2024284 + adds r0, r2 + bl sub_8035244 + bl sub_802E33C +_0802FE86: + pop {r4-r6} + pop {r0} + bx r0 + .align 2, 0 +_0802FE8C: .4byte gUnknown_2023BCE +_0802FE90: .4byte gUnknown_2024284 + thumb_func_end sub_802FE24 + + thumb_func_start sub_802FE94 +sub_802FE94: @ 802FE94 + push {lr} + movs r0, 0 + bl sub_8002E64 + lsls r0, 16 + cmp r0, 0 + bne _0802FEA6 + bl sub_802E33C +_0802FEA6: + pop {r0} + bx r0 + thumb_func_end sub_802FE94 + + thumb_func_start sub_802FEAC +sub_802FEAC: @ 802FEAC + push {r4-r7,lr} + mov r7, r10 + mov r6, r9 + mov r5, r8 + push {r5-r7} + sub sp, 0x10 + lsls r0, 24 + lsrs r0, 24 + mov r9, r0 + ldr r1, _0802FFAC @ =gUnknown_3005090 + lsls r0, 2 + add r0, r9 + lsls r0, 3 + adds r0, r1 + mov r8, r0 + ldrb r0, [r0, 0x8] + mov r10, r0 + mov r1, r8 + ldrb r7, [r1, 0xC] + str r7, [sp, 0x8] + ldrh r2, [r1, 0xA] + str r2, [sp, 0xC] + bl sub_8075290 + lsls r0, 24 + lsrs r0, 24 + cmp r0, 0x1 + beq _0802FEF2 + ldr r1, _0802FFB0 @ =gUnknown_2023BCE + lsls r0, r7, 1 + adds r0, r1 + ldrh r0, [r0] + cmp r10, r0 + bne _0802FEF2 + b _08030008 +_0802FEF2: + movs r0, 0x64 + mov r1, r10 + muls r1, r0 + ldr r0, _0802FFB4 @ =gUnknown_2024284 + adds r6, r1, r0 + adds r0, r6, 0 + movs r1, 0xB + bl sub_803FBE8 + adds r5, r0, 0 + lsls r5, 16 + lsrs r5, 16 + adds r0, r6, 0 + movs r1, 0x38 + bl sub_803FBE8 + adds r4, r0, 0 + lsls r4, 24 + lsrs r4, 24 + adds r0, r6, 0 + movs r1, 0x19 + bl sub_803FBE8 + str r0, [sp, 0x4] + ldr r3, _0802FFB8 @ =gUnknown_8253AE4 + adds r4, 0x1 + lsls r4, 2 + ldr r2, _0802FFBC @ =gUnknown_8254784 + lsls r1, r5, 3 + subs r1, r5 + lsls r1, 2 + adds r1, r2 + ldrb r2, [r1, 0x13] + movs r1, 0xCA + lsls r1, 1 + muls r1, r2 + adds r4, r1 + adds r4, r3 + ldr r2, [r4] + str r2, [sp] + ldr r3, [sp, 0xC] + lsls r1, r3, 16 + asrs r1, 16 + adds r0, r1 + cmp r0, r2 + bcc _0802FFE0 + adds r0, r6, 0 + movs r1, 0x19 + mov r2, sp + bl sub_804037C + adds r0, r6, 0 + bl sub_803E47C + ldr r2, [sp] + add r0, sp, 0x4 + ldrh r0, [r0] + subs r2, r0 + ldr r0, [sp, 0xC] + subs r2, r0, r2 + ldr r4, _0802FFC0 @ =gUnknown_2023BC4 + ldrb r5, [r4] + strb r7, [r4] + lsls r2, 16 + lsrs r2, 16 + movs r0, 0x1 + movs r1, 0xB + bl sub_800E848 + strb r5, [r4] + bl sub_8075290 + lsls r0, 24 + lsrs r0, 24 + cmp r0, 0x1 + bne _0802FFC8 + ldr r2, _0802FFB0 @ =gUnknown_2023BCE + lsls r0, r7, 1 + adds r0, r2 + mov r1, r10 + ldrh r0, [r0] + cmp r1, r0 + beq _0802FFA6 + movs r0, 0x2 + eors r7, r0 + lsls r0, r7, 1 + adds r0, r2 + ldrh r0, [r0] + cmp r1, r0 + bne _0802FFC8 +_0802FFA6: + ldr r0, _0802FFC4 @ =sub_8030238 + b _0803000A + .align 2, 0 +_0802FFAC: .4byte gUnknown_3005090 +_0802FFB0: .4byte gUnknown_2023BCE +_0802FFB4: .4byte gUnknown_2024284 +_0802FFB8: .4byte gUnknown_8253AE4 +_0802FFBC: .4byte gUnknown_8254784 +_0802FFC0: .4byte gUnknown_2023BC4 +_0802FFC4: .4byte sub_8030238 +_0802FFC8: + ldr r0, _0802FFD8 @ =gUnknown_3005090 + mov r2, r9 + lsls r1, r2, 2 + add r1, r9 + lsls r1, 3 + adds r1, r0 + ldr r0, _0802FFDC @ =sub_8030350 + b _0803000C + .align 2, 0 +_0802FFD8: .4byte gUnknown_3005090 +_0802FFDC: .4byte sub_8030350 +_0802FFE0: + str r0, [sp, 0x4] + add r2, sp, 0x4 + adds r0, r6, 0 + movs r1, 0x19 + bl sub_804037C + ldr r1, _08030000 @ =gUnknown_3004FE0 + ldr r3, [sp, 0x8] + lsls r0, r3, 2 + adds r0, r1 + ldr r1, _08030004 @ =sub_802FE94 + str r1, [r0] + mov r0, r9 + bl sub_8077508 + b _0803000E + .align 2, 0 +_08030000: .4byte gUnknown_3004FE0 +_08030004: .4byte sub_802FE94 +_08030008: + ldr r0, _08030020 @ =sub_8030024 +_0803000A: + mov r1, r8 +_0803000C: + str r0, [r1] +_0803000E: + add sp, 0x10 + pop {r3-r5} + mov r8, r3 + mov r9, r4 + mov r10, r5 + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_08030020: .4byte sub_8030024 + thumb_func_end sub_802FEAC + + thumb_func_start sub_8030024 +sub_8030024: @ 8030024 + push {r4-r6,lr} + mov r6, r10 + mov r5, r9 + mov r4, r8 + push {r4-r6} + sub sp, 0x4 + lsls r0, 24 + lsrs r0, 24 + ldr r1, _080300DC @ =gUnknown_3005090 + lsls r2, r0, 2 + mov r8, r2 + add r8, r0 + mov r0, r8 + lsls r0, 3 + mov r8, r0 + add r8, r1 + mov r2, r8 + ldrb r1, [r2, 0x8] + movs r0, 0xA + ldrsh r2, [r2, r0] + mov r9, r2 + mov r2, r8 + ldrb r2, [r2, 0xC] + mov r10, r2 + movs r0, 0x64 + adds r6, r1, 0 + muls r6, r0 + ldr r0, _080300E0 @ =gUnknown_2024284 + adds r6, r0 + adds r0, r6, 0 + movs r1, 0x38 + bl sub_803FBE8 + adds r4, r0, 0 + lsls r4, 24 + lsrs r4, 24 + adds r0, r6, 0 + movs r1, 0xB + bl sub_803FBE8 + adds r5, r0, 0 + lsls r5, 16 + lsrs r5, 16 + adds r0, r6, 0 + movs r1, 0x19 + bl sub_803FBE8 + adds r3, r0, 0 + ldr r6, _080300E4 @ =gUnknown_8253AE4 + lsls r1, r4, 2 + ldr r2, _080300E8 @ =gUnknown_8254784 + lsls r0, r5, 3 + subs r0, r5 + lsls r0, 2 + adds r0, r2 + ldrb r2, [r0, 0x13] + movs r0, 0xCA + lsls r0, 1 + muls r0, r2 + adds r1, r0 + adds r1, r6 + ldr r1, [r1] + subs r3, r1 + adds r4, 0x1 + lsls r4, 2 + adds r4, r0 + adds r4, r6 + ldr r2, [r4] + subs r2, r1 + ldr r0, _080300EC @ =gUnknown_3004FF0 + add r0, r10 + ldrb r1, [r0] + mov r0, r9 + negs r0, r0 + str r0, [sp] + mov r0, r10 + bl sub_8048150 + movs r0, 0x1B + bl sub_80722CC + ldr r0, _080300F0 @ =sub_80300F4 + mov r1, r8 + str r0, [r1] + add sp, 0x4 + pop {r3-r5} + mov r8, r3 + mov r9, r4 + mov r10, r5 + pop {r4-r6} + pop {r0} + bx r0 + .align 2, 0 +_080300DC: .4byte gUnknown_3005090 +_080300E0: .4byte gUnknown_2024284 +_080300E4: .4byte gUnknown_8253AE4 +_080300E8: .4byte gUnknown_8254784 +_080300EC: .4byte gUnknown_3004FF0 +_080300F0: .4byte sub_80300F4 + thumb_func_end sub_8030024 + + thumb_func_start sub_80300F4 +sub_80300F4: @ 80300F4 + push {r4-r7,lr} + mov r7, r10 + mov r6, r9 + mov r5, r8 + push {r5-r7} + sub sp, 0x8 + lsls r0, 24 + lsrs r0, 24 + mov r8, r0 + ldr r1, _08030120 @ =gUnknown_3005090 + lsls r0, 2 + add r0, r8 + lsls r0, 3 + adds r6, r0, r1 + ldrh r1, [r6, 0x1C] + movs r2, 0x1C + ldrsh r0, [r6, r2] + cmp r0, 0xC + bgt _08030124 + adds r0, r1, 0x1 + strh r0, [r6, 0x1C] + b _08030220 + .align 2, 0 +_08030120: .4byte gUnknown_3005090 +_08030124: + ldrb r0, [r6, 0x8] + mov r9, r0 + ldrh r2, [r6, 0xA] + mov r10, r2 + ldrb r7, [r6, 0xC] + ldr r5, _080301EC @ =gUnknown_3004FF0 + adds r5, r7, r5 + ldrb r1, [r5] + adds r0, r7, 0 + movs r2, 0x1 + movs r3, 0 + bl sub_8049FD8 + adds r4, r0, 0 + lsls r4, 16 + lsrs r4, 16 + ldrb r0, [r5] + bl sub_80481D4 + lsls r4, 16 + asrs r4, 16 + movs r0, 0x1 + negs r0, r0 + cmp r4, r0 + bne _08030220 + movs r0, 0x1B + bl m4aSongNumStop + movs r0, 0x64 + mov r1, r9 + muls r1, r0 + ldr r0, _080301F0 @ =gUnknown_2024284 + adds r5, r1, r0 + adds r0, r5, 0 + movs r1, 0x38 + bl sub_803FBE8 + adds r4, r0, 0 + lsls r4, 24 + lsrs r4, 24 + adds r0, r5, 0 + movs r1, 0x19 + bl sub_803FBE8 + str r0, [sp, 0x4] + adds r0, r5, 0 + movs r1, 0xB + bl sub_803FBE8 + lsls r0, 16 + lsrs r0, 16 + ldr r3, _080301F4 @ =gUnknown_8253AE4 + adds r4, 0x1 + lsls r4, 2 + ldr r2, _080301F8 @ =gUnknown_8254784 + lsls r1, r0, 3 + subs r1, r0 + lsls r1, 2 + adds r1, r2 + ldrb r1, [r1, 0x13] + movs r0, 0xCA + lsls r0, 1 + muls r0, r1 + adds r4, r0 + adds r4, r3 + ldr r1, [r4] + str r1, [sp] + mov r2, r10 + lsls r0, r2, 16 + asrs r4, r0, 16 + ldr r0, [sp, 0x4] + adds r0, r4 + cmp r0, r1 + blt _08030204 + adds r0, r5, 0 + movs r1, 0x19 + mov r2, sp + bl sub_804037C + adds r0, r5, 0 + bl sub_803E47C + ldr r2, [sp] + add r0, sp, 0x4 + ldrh r0, [r0] + subs r2, r0 + subs r2, r4, r2 + ldr r4, _080301FC @ =gUnknown_2023BC4 + ldrb r5, [r4] + strb r7, [r4] + lsls r2, 16 + lsrs r2, 16 + movs r0, 0x1 + movs r1, 0xB + bl sub_800E848 + strb r5, [r4] + ldr r0, _08030200 @ =sub_8030238 + str r0, [r6] + b _08030220 + .align 2, 0 +_080301EC: .4byte gUnknown_3004FF0 +_080301F0: .4byte gUnknown_2024284 +_080301F4: .4byte gUnknown_8253AE4 +_080301F8: .4byte gUnknown_8254784 +_080301FC: .4byte gUnknown_2023BC4 +_08030200: .4byte sub_8030238 +_08030204: + str r0, [sp, 0x4] + add r2, sp, 0x4 + adds r0, r5, 0 + movs r1, 0x19 + bl sub_804037C + ldr r1, _08030230 @ =gUnknown_3004FE0 + lsls r0, r7, 2 + adds r0, r1 + ldr r1, _08030234 @ =sub_802FE94 + str r1, [r0] + mov r0, r8 + bl sub_8077508 +_08030220: + add sp, 0x8 + pop {r3-r5} + mov r8, r3 + mov r9, r4 + mov r10, r5 + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_08030230: .4byte gUnknown_3004FE0 +_08030234: .4byte sub_802FE94 + thumb_func_end sub_80300F4 + + thumb_func_start sub_8030238 +sub_8030238: @ 8030238 + push {r4-r6,lr} + lsls r0, 24 + lsrs r5, r0, 24 + ldr r1, _0803028C @ =gUnknown_3005090 + lsls r0, r5, 2 + adds r0, r5 + lsls r0, 3 + adds r0, r1 + ldrb r4, [r0, 0xC] + ldrb r6, [r0, 0x8] + bl sub_8075290 + lsls r0, 24 + lsrs r0, 24 + cmp r0, 0x1 + bne _0803026C + ldr r1, _08030290 @ =gUnknown_2023BCE + movs r0, 0x2 + adds r2, r4, 0 + eors r2, r0 + lsls r0, r2, 1 + adds r0, r1 + ldrh r0, [r0] + cmp r6, r0 + bne _0803026C + adds r4, r2, 0 +_0803026C: + adds r0, r4, 0 + adds r1, r4, 0 + adds r2, r4, 0 + movs r3, 0 + bl sub_80341D8 + ldr r0, _0803028C @ =gUnknown_3005090 + lsls r1, r5, 2 + adds r1, r5 + lsls r1, 3 + adds r1, r0 + ldr r0, _08030294 @ =sub_8030298 + str r0, [r1] + pop {r4-r6} + pop {r0} + bx r0 + .align 2, 0 +_0803028C: .4byte gUnknown_3005090 +_08030290: .4byte gUnknown_2023BCE +_08030294: .4byte sub_8030298 + thumb_func_end sub_8030238 + + thumb_func_start sub_8030298 +sub_8030298: @ 8030298 + push {r4-r7,lr} + lsls r0, 24 + lsrs r6, r0, 24 + ldr r1, _08030304 @ =gUnknown_3005090 + lsls r0, r6, 2 + adds r0, r6 + lsls r0, 3 + adds r2, r0, r1 + ldrb r5, [r2, 0xC] + ldr r0, _08030308 @ =gUnknown_2024018 + ldr r0, [r0] + ldr r1, [r0, 0x4] + lsls r0, r5, 1 + adds r0, r5 + lsls r0, 2 + adds r0, r1 + ldrb r1, [r0] + movs r0, 0x40 + ands r0, r1 + cmp r0, 0 + bne _0803033A + ldrb r4, [r2, 0x8] + movs r0, 0x64 + adds r1, r4, 0 + muls r1, r0 + ldr r0, _0803030C @ =gUnknown_2024284 + adds r7, r1, r0 + adds r0, r7, 0 + movs r1, 0x38 + bl sub_803FBE8 + bl sub_8075290 + lsls r0, 24 + lsrs r0, 24 + cmp r0, 0x1 + bne _08030318 + ldr r1, _08030310 @ =gUnknown_2023BCE + movs r0, 0x2 + adds r2, r5, 0 + eors r2, r0 + lsls r0, r2, 1 + adds r0, r1 + ldrh r0, [r0] + cmp r4, r0 + bne _08030318 + ldr r0, _08030314 @ =gUnknown_3004FF0 + adds r0, r2, r0 + ldrb r0, [r0] + adds r1, r7, 0 + movs r2, 0 + bl sub_8049D98 + b _0803032C + .align 2, 0 +_08030304: .4byte gUnknown_3005090 +_08030308: .4byte gUnknown_2024018 +_0803030C: .4byte gUnknown_2024284 +_08030310: .4byte gUnknown_2023BCE +_08030314: .4byte gUnknown_3004FF0 +_08030318: + ldr r0, _08030340 @ =gUnknown_3004FF0 + adds r0, r5, r0 + ldrb r0, [r0] + movs r1, 0x64 + muls r1, r4 + ldr r2, _08030344 @ =gUnknown_2024284 + adds r1, r2 + movs r2, 0 + bl sub_8049D98 +_0803032C: + ldr r0, _08030348 @ =gUnknown_3005090 + lsls r1, r6, 2 + adds r1, r6 + lsls r1, 3 + adds r1, r0 + ldr r0, _0803034C @ =sub_8030350 + str r0, [r1] +_0803033A: + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_08030340: .4byte gUnknown_3004FF0 +_08030344: .4byte gUnknown_2024284 +_08030348: .4byte gUnknown_3005090 +_0803034C: .4byte sub_8030350 + thumb_func_end sub_8030298 + + thumb_func_start sub_8030350 +sub_8030350: @ 8030350 + push {r4-r6,lr} + lsls r0, 24 + lsrs r5, r0, 24 + ldr r1, _08030380 @ =gUnknown_3005090 + lsls r0, r5, 2 + adds r0, r5 + lsls r0, 3 + adds r4, r0, r1 + movs r0, 0xC + ldrsh r6, [r4, r0] + lsls r0, r6, 24 + lsrs r0, 24 + bl sub_8072DF0 + lsls r0, 24 + lsrs r0, 24 + cmp r0, 0x1 + bne _08030388 + ldr r0, _08030384 @ =sub_80303A8 + str r0, [r4] + movs r0, 0 + strh r0, [r4, 0x26] + b _08030398 + .align 2, 0 +_08030380: .4byte gUnknown_3005090 +_08030384: .4byte sub_80303A8 +_08030388: + ldr r0, _080303A0 @ =gUnknown_3004FE0 + lsls r1, r6, 2 + adds r1, r0 + ldr r0, _080303A4 @ =sub_802FE94 + str r0, [r1] + adds r0, r5, 0 + bl sub_8077508 +_08030398: + pop {r4-r6} + pop {r0} + bx r0 + .align 2, 0 +_080303A0: .4byte gUnknown_3004FE0 +_080303A4: .4byte sub_802FE94 + thumb_func_end sub_8030350 + + thumb_func_start sub_80303A8 +sub_80303A8: @ 80303A8 + push {r4-r7,lr} + mov r7, r8 + push {r7} + sub sp, 0x8 + lsls r0, 24 + lsrs r0, 24 + mov r8, r0 + lsls r0, 2 + add r0, r8 + lsls r0, 3 + ldr r1, _080303FC @ =gUnknown_3005098 + adds r5, r0, r1 + ldrb r7, [r5, 0x4] + adds r0, r7, 0 + bl sub_80768B0 + lsls r0, 24 + lsrs r0, 24 + movs r1, 0x1 + eors r0, r1 + negs r1, r0 + orrs r1, r0 + lsrs r6, r1, 31 + ldr r0, _08030400 @ =gUnknown_2023D44 + adds r0, r7, r0 + ldrb r1, [r0] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + ldr r1, _08030404 @ =gUnknown_202063C + adds r4, r0, r1 + movs r1, 0x1E + ldrsh r0, [r5, r1] + cmp r0, 0x6 + bls _080303F0 + b _0803051C +_080303F0: + lsls r0, 2 + ldr r1, _08030408 @ =_0803040C + adds r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_080303FC: .4byte gUnknown_3005098 +_08030400: .4byte gUnknown_2023D44 +_08030404: .4byte gUnknown_202063C +_08030408: .4byte _0803040C + .align 2, 0 +_0803040C: + .4byte _08030428 + .4byte _0803047C + .4byte _08030486 + .4byte _080304C0 + .4byte _080304E0 + .4byte _080304DA + .4byte _080304E8 +_08030428: + movs r0, 0 + bl sub_8002E64 + lsls r0, 16 + cmp r0, 0 + bne _0803051C + cmp r6, 0 + bne _0803044C + ldr r1, _08030444 @ =gUnknown_2022978 + ldrh r0, [r1] + strh r0, [r5, 0x1C] + ldr r2, _08030448 @ =gUnknown_202297A + b _08030454 + .align 2, 0 +_08030444: .4byte gUnknown_2022978 +_08030448: .4byte gUnknown_202297A +_0803044C: + ldr r1, _08030474 @ =gUnknown_202297C + ldrh r0, [r1] + strh r0, [r5, 0x1C] + ldr r2, _08030478 @ =gUnknown_202297E +_08030454: + ldrh r0, [r2] + strh r0, [r5, 0x1A] + ldrh r0, [r4, 0x24] + ldrh r3, [r4, 0x20] + adds r0, r3 + negs r0, r0 + adds r0, 0x20 + strh r0, [r1] + ldrh r0, [r4, 0x26] + ldrh r4, [r4, 0x22] + adds r0, r4 + negs r0, r0 + adds r0, 0x20 + strh r0, [r2] + b _080304E0 + .align 2, 0 +_08030474: .4byte gUnknown_202297C +_08030478: .4byte gUnknown_202297E +_0803047C: + adds r0, r7, 0 + adds r1, r6, 0 + bl sub_8072E48 + b _080304E0 +_08030486: + movs r0, 0x58 + bl sub_80722CC + bl sub_802679C + cmp r0, 0 + beq _080304E0 + ldrh r0, [r4, 0x24] + ldrh r1, [r4, 0x20] + adds r0, r1 + lsls r0, 16 + lsrs r0, 16 + ldrh r1, [r4, 0x26] + ldrh r4, [r4, 0x22] + adds r1, r4 + lsls r1, 16 + lsrs r1, 16 + ldr r3, _080304BC @ =0x00002710 + movs r2, 0x1 + str r2, [sp] + movs r2, 0 + str r2, [sp, 0x4] + adds r2, r3, 0 + bl sub_811E5B8 + b _080304E0 + .align 2, 0 +_080304BC: .4byte 0x00002710 +_080304C0: + bl sub_811E680 + lsls r0, 24 + cmp r0, 0 + bne _0803051C + adds r2, r4, 0 + adds r2, 0x3E + ldrb r1, [r2] + movs r0, 0x5 + negs r0, r0 + ands r0, r1 + strb r0, [r2] + b _080304E0 +_080304DA: + adds r0, r6, 0 + bl sub_8073128 +_080304E0: + ldrh r0, [r5, 0x1E] + adds r0, 0x1 + strh r0, [r5, 0x1E] + b _0803051C +_080304E8: + cmp r6, 0 + bne _08030500 + ldr r1, _080304F8 @ =gUnknown_2022978 + ldrh r0, [r5, 0x1C] + strh r0, [r1] + ldr r1, _080304FC @ =gUnknown_202297A + b _08030508 + .align 2, 0 +_080304F8: .4byte gUnknown_2022978 +_080304FC: .4byte gUnknown_202297A +_08030500: + ldr r1, _08030528 @ =gUnknown_202297C + ldrh r0, [r5, 0x1C] + strh r0, [r1] + ldr r1, _0803052C @ =gUnknown_202297E +_08030508: + ldrh r0, [r5, 0x1A] + strh r0, [r1] + ldr r0, _08030530 @ =gUnknown_3004FE0 + lsls r1, r7, 2 + adds r1, r0 + ldr r0, _08030534 @ =sub_802FE94 + str r0, [r1] + mov r0, r8 + bl sub_8077508 +_0803051C: + add sp, 0x8 + pop {r3} + mov r8, r3 + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_08030528: .4byte gUnknown_202297C +_0803052C: .4byte gUnknown_202297E +_08030530: .4byte gUnknown_3004FE0 +_08030534: .4byte sub_802FE94 + thumb_func_end sub_80303A8 + + thumb_func_start sub_8030538 +sub_8030538: @ 8030538 + push {r4-r6,lr} + ldr r6, _08030590 @ =gUnknown_202063C + ldr r5, _08030594 @ =gUnknown_2023D44 + ldr r4, _08030598 @ =gUnknown_2023BC4 + ldrb r0, [r4] + adds r0, r5 + ldrb r1, [r0] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r2, r0, r6 + movs r1, 0x22 + ldrsh r0, [r2, r1] + movs r3, 0x26 + ldrsh r1, [r2, r3] + adds r0, r1 + cmp r0, 0xA0 + ble _08030588 + ldrb r0, [r2, 0x3] + lsls r0, 26 + lsrs r0, 27 + bl sub_80085CC + ldrb r0, [r4] + adds r0, r5 + ldrb r1, [r0] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r6 + bl sub_8007280 + ldr r1, _0803059C @ =gUnknown_3004FF0 + ldrb r0, [r4] + adds r0, r1 + ldrb r0, [r0] + bl sub_8048188 + bl sub_802E33C +_08030588: + pop {r4-r6} + pop {r0} + bx r0 + .align 2, 0 +_08030590: .4byte gUnknown_202063C +_08030594: .4byte gUnknown_2023D44 +_08030598: .4byte gUnknown_2023BC4 +_0803059C: .4byte gUnknown_3004FF0 + thumb_func_end sub_8030538 + + thumb_func_start sub_80305A0 +sub_80305A0: @ 80305A0 + push {r4-r6,lr} + ldr r0, _080305FC @ =gUnknown_2024018 + ldr r0, [r0] + ldr r6, _08030600 @ =gUnknown_2023BC4 + ldrb r2, [r6] + ldr r1, [r0, 0x4] + lsls r0, r2, 1 + adds r0, r2 + lsls r0, 2 + adds r0, r1 + ldrb r1, [r0] + movs r0, 0x40 + ands r0, r1 + cmp r0, 0 + bne _080305F4 + ldr r5, _08030604 @ =gUnknown_2023D44 + adds r0, r2, r5 + ldrb r1, [r0] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + ldr r4, _08030608 @ =gUnknown_202063C + adds r0, r4 + bl sub_80077D8 + ldrb r0, [r6] + adds r0, r5 + ldrb r1, [r0] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r4 + bl sub_8007280 + ldr r1, _0803060C @ =gUnknown_3004FF0 + ldrb r0, [r6] + adds r0, r1 + ldrb r0, [r0] + bl sub_8048188 + bl sub_802E33C +_080305F4: + pop {r4-r6} + pop {r0} + bx r0 + .align 2, 0 +_080305FC: .4byte gUnknown_2024018 +_08030600: .4byte gUnknown_2023BC4 +_08030604: .4byte gUnknown_2023D44 +_08030608: .4byte gUnknown_202063C +_0803060C: .4byte gUnknown_3004FF0 + thumb_func_end sub_80305A0 + + thumb_func_start sub_8030610 +sub_8030610: @ 8030610 + push {lr} + movs r0, 0 + bl sub_8002E64 + lsls r0, 16 + cmp r0, 0 + bne _08030622 + bl sub_802E33C +_08030622: + pop {r0} + bx r0 + thumb_func_end sub_8030610 + + thumb_func_start sub_8030628 +sub_8030628: @ 8030628 + push {r4,lr} + ldr r0, _0803066C @ =gUnknown_2037AB8 + ldrb r1, [r0, 0x7] + movs r0, 0x80 + ands r0, r1 + cmp r0, 0 + bne _08030666 + ldr r1, _08030670 @ =gUnknown_3004FE0 + ldr r2, _08030674 @ =gUnknown_2023BC4 + ldrb r0, [r2] + lsls r0, 2 + adds r0, r1 + ldr r1, _08030678 @ =sub_8030684 + str r1, [r0] + ldr r3, _0803067C @ =gUnknown_3005090 + ldr r1, _08030680 @ =gUnknown_3004FFC + ldrb r0, [r2] + adds r0, r1 + ldrb r0, [r0] + lsls r1, r0, 2 + adds r1, r0 + lsls r1, 3 + adds r1, r3 + ldrb r4, [r1, 0x8] + bl sub_8077508 + bl sub_8003ECC + adds r0, r4, 0 + bl sub_81278DC +_08030666: + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_0803066C: .4byte gUnknown_2037AB8 +_08030670: .4byte gUnknown_3004FE0 +_08030674: .4byte gUnknown_2023BC4 +_08030678: .4byte sub_8030684 +_0803067C: .4byte gUnknown_3005090 +_08030680: .4byte gUnknown_3004FFC + thumb_func_end sub_8030628 + + thumb_func_start sub_8030684 +sub_8030684: @ 8030684 + push {lr} + ldr r0, _080306B4 @ =gUnknown_30030F0 + ldr r1, [r0, 0x4] + ldr r0, _080306B8 @ =sub_8011100 + cmp r1, r0 + bne _080306F4 + ldr r0, _080306BC @ =gUnknown_2037AB8 + ldrb r1, [r0, 0x7] + movs r0, 0x80 + ands r0, r1 + cmp r0, 0 + bne _080306F4 + ldr r0, _080306C0 @ =gUnknown_203B0C0 + ldrb r0, [r0] + cmp r0, 0x1 + bne _080306CC + ldr r0, _080306C4 @ =gUnknown_203B0C1 + ldrb r1, [r0] + ldr r2, _080306C8 @ =gUnknown_203B0DC + movs r0, 0x1 + bl sub_800E874 + b _080306D6 + .align 2, 0 +_080306B4: .4byte gUnknown_30030F0 +_080306B8: .4byte sub_8011100 +_080306BC: .4byte gUnknown_2037AB8 +_080306C0: .4byte gUnknown_203B0C0 +_080306C4: .4byte gUnknown_203B0C1 +_080306C8: .4byte gUnknown_203B0DC +_080306CC: + movs r0, 0x1 + movs r1, 0x6 + movs r2, 0 + bl sub_800E874 +_080306D6: + ldr r1, _080306F8 @ =gUnknown_2022BC4 + ldr r0, _080306FC @ =gUnknown_2023BC4 + ldrb r0, [r0] + lsls r0, 9 + adds r1, 0x1 + adds r0, r1 + ldrb r1, [r0] + movs r0, 0xF + ands r0, r1 + cmp r0, 0x1 + bne _080306F0 + bl sub_8030B5C +_080306F0: + bl sub_802E33C +_080306F4: + pop {r0} + bx r0 + .align 2, 0 +_080306F8: .4byte gUnknown_2022BC4 +_080306FC: .4byte gUnknown_2023BC4 + thumb_func_end sub_8030684 + + thumb_func_start sub_8030700 +sub_8030700: @ 8030700 + push {lr} + ldr r0, _0803072C @ =gUnknown_2037AB8 + ldrb r1, [r0, 0x7] + movs r0, 0x80 + ands r0, r1 + cmp r0, 0 + bne _08030728 + ldr r1, _08030730 @ =gUnknown_3004FE0 + ldr r0, _08030734 @ =gUnknown_2023BC4 + ldrb r0, [r0] + lsls r0, 2 + adds r0, r1 + ldr r1, _08030738 @ =sub_803073C + str r1, [r0] + bl nullsub_44 + bl sub_8003ECC + bl sub_8107ECC +_08030728: + pop {r0} + bx r0 + .align 2, 0 +_0803072C: .4byte gUnknown_2037AB8 +_08030730: .4byte gUnknown_3004FE0 +_08030734: .4byte gUnknown_2023BC4 +_08030738: .4byte sub_803073C + thumb_func_end sub_8030700 + + thumb_func_start sub_803073C +sub_803073C: @ 803073C + push {lr} + ldr r0, _08030768 @ =gUnknown_30030F0 + ldr r1, [r0, 0x4] + ldr r0, _0803076C @ =sub_8011100 + cmp r1, r0 + bne _08030762 + ldr r0, _08030770 @ =gUnknown_2037AB8 + ldrb r1, [r0, 0x7] + movs r0, 0x80 + ands r0, r1 + cmp r0, 0 + bne _08030762 + ldr r0, _08030774 @ =gUnknown_203AD30 + ldrh r1, [r0] + movs r0, 0x1 + bl sub_800E8AC + bl sub_802E33C +_08030762: + pop {r0} + bx r0 + .align 2, 0 +_08030768: .4byte gUnknown_30030F0 +_0803076C: .4byte sub_8011100 +_08030770: .4byte gUnknown_2037AB8 +_08030774: .4byte gUnknown_203AD30 + thumb_func_end sub_803073C + + thumb_func_start sub_8030778 +sub_8030778: @ 8030778 + push {lr} + ldr r0, _080307A8 @ =gUnknown_2024005 + ldrb r0, [r0] + cmp r0, 0 + beq _0803079E + ldr r0, _080307AC @ =gUnknown_2024018 + ldr r2, [r0] + ldr r0, _080307B0 @ =gUnknown_2023BC4 + ldrb r1, [r0] + ldr r2, [r2, 0x4] + lsls r0, r1, 1 + adds r0, r1 + lsls r0, 2 + adds r0, r2 + ldrb r1, [r0] + movs r0, 0x40 + ands r0, r1 + cmp r0, 0 + bne _080307A2 +_0803079E: + bl sub_802E33C +_080307A2: + pop {r0} + bx r0 + .align 2, 0 +_080307A8: .4byte gUnknown_2024005 +_080307AC: .4byte gUnknown_2024018 +_080307B0: .4byte gUnknown_2023BC4 + thumb_func_end sub_8030778 + + thumb_func_start sub_80307B4 +sub_80307B4: @ 80307B4 + push {r4,lr} + ldr r1, _080307F0 @ =gUnknown_2023D44 + ldr r0, _080307F4 @ =gUnknown_2023BC4 + ldrb r0, [r0] + adds r0, r1 + ldrb r1, [r0] + ldr r2, _080307F8 @ =gUnknown_202063C + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r4, r0, r2 + movs r1, 0x30 + ldrsh r0, [r4, r1] + cmp r0, 0x20 + bne _08030800 + movs r3, 0 + movs r0, 0 + strh r0, [r4, 0x30] + adds r2, r4, 0 + adds r2, 0x3E + ldrb r1, [r2] + subs r0, 0x5 + ands r0, r1 + strb r0, [r2] + ldr r0, _080307FC @ =gUnknown_2024005 + strb r3, [r0] + bl sub_802E33C + b _0803082A + .align 2, 0 +_080307F0: .4byte gUnknown_2023D44 +_080307F4: .4byte gUnknown_2023BC4 +_080307F8: .4byte gUnknown_202063C +_080307FC: .4byte gUnknown_2024005 +_08030800: + ldrh r0, [r4, 0x30] + movs r1, 0x3 + ands r0, r1 + cmp r0, 0 + bne _08030824 + adds r3, r4, 0 + adds r3, 0x3E + ldrb r2, [r3] + lsls r0, r2, 29 + lsrs r0, 31 + movs r1, 0x1 + eors r1, r0 + lsls r1, 2 + movs r0, 0x5 + negs r0, r0 + ands r0, r2 + orrs r0, r1 + strb r0, [r3] +_08030824: + ldrh r0, [r4, 0x30] + adds r0, 0x1 + strh r0, [r4, 0x30] +_0803082A: + pop {r4} + pop {r0} + bx r0 + thumb_func_end sub_80307B4 + + thumb_func_start sub_8030830 +sub_8030830: @ 8030830 + push {r4-r7,lr} + ldr r0, _08030890 @ =gUnknown_2023BC4 + ldrb r1, [r0] + lsls r1, 9 + ldr r3, _08030894 @ =gUnknown_2022BC8 + ldr r2, _08030898 @ =gUnknown_3004FF8 + movs r0, 0 + strb r0, [r2] + movs r5, 0 + ldr r6, _0803089C @ =gUnknown_202298C + adds r4, r1, r3 + adds r7, r2, 0 +_08030848: + lsls r0, r5, 24 + lsrs r0, 24 + bl sub_8030A14 + adds r0, r6, 0 + ldr r1, _080308A0 @ =gUnknown_83FE770 + bl sub_8008D84 + ldrh r1, [r4] + movs r0, 0xD + muls r1, r0 + ldr r0, _080308A4 @ =gUnknown_8247094 + adds r1, r0 + adds r0, r6, 0 + bl sub_8008DA4 + adds r1, r5, 0x3 + lsls r1, 24 + lsrs r1, 24 + adds r0, r6, 0 + bl sub_80D87BC + ldrh r0, [r4] + cmp r0, 0 + beq _08030880 + ldrb r0, [r7] + adds r0, 0x1 + strb r0, [r7] +_08030880: + adds r4, 0x2 + adds r5, 0x1 + cmp r5, 0x3 + ble _08030848 + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_08030890: .4byte gUnknown_2023BC4 +_08030894: .4byte gUnknown_2022BC8 +_08030898: .4byte gUnknown_3004FF8 +_0803089C: .4byte gUnknown_202298C +_080308A0: .4byte gUnknown_83FE770 +_080308A4: .4byte gUnknown_8247094 + thumb_func_end sub_8030830 + + thumb_func_start sub_80308A8 +sub_80308A8: @ 80308A8 + push {r4,lr} + ldr r4, _080308C4 @ =gUnknown_202298C + ldr r1, _080308C8 @ =gUnknown_83FE766 + adds r0, r4, 0 + bl sub_8008D84 + adds r0, r4, 0 + movs r1, 0x7 + bl sub_80D87BC + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_080308C4: .4byte gUnknown_202298C +_080308C8: .4byte gUnknown_83FE766 + thumb_func_end sub_80308A8 + + thumb_func_start sub_80308CC +sub_80308CC: @ 80308CC + push {r4-r7,lr} + ldr r5, _08030930 @ =gUnknown_2022BC4 + ldr r7, _08030934 @ =gUnknown_2023BC4 + ldrb r0, [r7] + lsls r0, 9 + adds r1, r5, 0x2 + adds r0, r1 + ldrb r0, [r0] + cmp r0, 0x1 + beq _08030928 + bl sub_80D89DC + ldrb r1, [r7] + lsls r4, r1, 9 + adds r0, r5, 0x4 + adds r4, r0 + ldr r6, _08030938 @ =gUnknown_202298C + ldr r5, _0803093C @ =gUnknown_2023FFC + adds r1, r5 + adds r0, r4, 0 + adds r0, 0x8 + ldrb r1, [r1] + adds r0, r1 + ldrb r1, [r0] + adds r0, r6, 0 + movs r2, 0x1 + movs r3, 0x2 + bl sub_8008E78 + movs r1, 0xBA + strb r1, [r0] + adds r0, 0x1 + ldrb r1, [r7] + adds r1, r5 + adds r4, 0xC + ldrb r1, [r1] + adds r4, r1 + ldrb r1, [r4] + movs r2, 0x1 + movs r3, 0x2 + bl sub_8008E78 + adds r0, r6, 0 + movs r1, 0x9 + bl sub_80D87BC +_08030928: + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_08030930: .4byte gUnknown_2022BC4 +_08030934: .4byte gUnknown_2023BC4 +_08030938: .4byte gUnknown_202298C +_0803093C: .4byte gUnknown_2023FFC + thumb_func_end sub_80308CC + + thumb_func_start sub_8030940 +sub_8030940: @ 8030940 + push {r4-r6,lr} + ldr r5, _080309AC @ =gUnknown_2023BC4 + ldrb r4, [r5] + lsls r4, 9 + ldr r0, _080309B0 @ =gUnknown_2022BC8 + adds r4, r0 + ldr r6, _080309B4 @ =gUnknown_202298C + ldr r1, _080309B8 @ =gUnknown_83FE76A + adds r0, r6, 0 + bl sub_8008D84 + adds r3, r0, 0 + movs r0, 0xFC + strb r0, [r3] + adds r3, 0x1 + movs r0, 0x6 + strb r0, [r3] + adds r3, 0x1 + movs r0, 0x1 + strb r0, [r3] + adds r3, 0x1 + ldr r1, _080309BC @ =gUnknown_83FE770 + adds r0, r3, 0 + bl sub_8008D84 + adds r3, r0, 0 + ldr r2, _080309C0 @ =gUnknown_8250C04 + ldr r1, _080309C4 @ =gUnknown_2023FFC + ldrb r0, [r5] + adds r0, r1 + ldrb r0, [r0] + lsls r0, 1 + adds r4, r0 + ldrh r1, [r4] + lsls r0, r1, 1 + adds r0, r1 + lsls r0, 2 + adds r0, r2 + ldrb r0, [r0, 0x2] + lsls r1, r0, 3 + subs r1, r0 + ldr r0, _080309C8 @ =gUnknown_824F1A0 + adds r1, r0 + adds r0, r3, 0 + bl sub_8008D84 + adds r0, r6, 0 + movs r1, 0x8 + bl sub_80D87BC + pop {r4-r6} + pop {r0} + bx r0 + .align 2, 0 +_080309AC: .4byte gUnknown_2023BC4 +_080309B0: .4byte gUnknown_2022BC8 +_080309B4: .4byte gUnknown_202298C +_080309B8: .4byte gUnknown_83FE76A +_080309BC: .4byte gUnknown_83FE770 +_080309C0: .4byte gUnknown_8250C04 +_080309C4: .4byte gUnknown_2023FFC +_080309C8: .4byte gUnknown_824F1A0 + thumb_func_end sub_8030940 + + thumb_func_start sub_80309CC +sub_80309CC: @ 80309CC + push {lr} + sub sp, 0x10 + adds r3, r0, 0 + lsls r3, 24 + lsrs r3, 24 + lsls r1, 24 + lsrs r1, 24 + add r2, sp, 0xC + adds r0, r1, 0x1 + strh r0, [r2] + adds r0, r2, 0 + adds r1, 0x2 + strh r1, [r0, 0x2] + movs r1, 0x1 + adds r0, r3, 0 + ands r0, r1 + lsls r2, r0, 3 + adds r2, r0 + adds r2, 0x1 + movs r0, 0x2 + ands r3, r0 + adds r3, 0x37 + str r1, [sp] + str r0, [sp, 0x4] + movs r0, 0x11 + str r0, [sp, 0x8] + movs r0, 0 + add r1, sp, 0xC + bl sub_8002228 + movs r0, 0 + bl sub_80020BC + add sp, 0x10 + pop {r0} + bx r0 + thumb_func_end sub_80309CC + + thumb_func_start sub_8030A14 +sub_8030A14: @ 8030A14 + push {lr} + sub sp, 0x10 + adds r3, r0, 0 + lsls r3, 24 + lsrs r3, 24 + add r0, sp, 0xC + movs r1, 0x20 + strh r1, [r0] + strh r1, [r0, 0x2] + movs r1, 0x1 + adds r0, r3, 0 + ands r0, r1 + lsls r2, r0, 3 + adds r2, r0 + adds r2, 0x1 + movs r0, 0x2 + ands r3, r0 + adds r3, 0x37 + str r1, [sp] + str r0, [sp, 0x4] + movs r0, 0x11 + str r0, [sp, 0x8] + movs r0, 0 + add r1, sp, 0xC + bl sub_8002228 + movs r0, 0 + bl sub_80020BC + add sp, 0x10 + pop {r0} + bx r0 + thumb_func_end sub_8030A14 + + thumb_func_start sub_8030A54 +sub_8030A54: @ 8030A54 + push {r4,lr} + sub sp, 0x10 + adds r3, r0, 0 + lsls r3, 24 + lsrs r3, 24 + add r0, sp, 0xC + movs r4, 0x1 + strh r4, [r0] + movs r1, 0x2 + strh r1, [r0, 0x2] + adds r0, r3, 0 + ands r0, r4 + lsls r2, r0, 3 + subs r2, r0 + adds r2, 0x10 + lsls r2, 24 + lsrs r2, 24 + ands r3, r1 + adds r3, 0x23 + str r4, [sp] + str r1, [sp, 0x4] + movs r0, 0x11 + str r0, [sp, 0x8] + movs r0, 0 + add r1, sp, 0xC + bl sub_8002228 + movs r0, 0 + bl sub_80020BC + add sp, 0x10 + pop {r4} + pop {r0} + bx r0 + thumb_func_end sub_8030A54 + + thumb_func_start sub_8030A98 +sub_8030A98: @ 8030A98 + push {lr} + sub sp, 0x10 + adds r3, r0, 0 + lsls r3, 24 + lsrs r3, 24 + add r0, sp, 0xC + movs r1, 0x20 + strh r1, [r0] + strh r1, [r0, 0x2] + movs r1, 0x1 + adds r0, r3, 0 + ands r0, r1 + lsls r2, r0, 3 + subs r2, r0 + adds r2, 0x10 + lsls r2, 24 + lsrs r2, 24 + movs r0, 0x2 + ands r3, r0 + adds r3, 0x23 + str r1, [sp] + str r0, [sp, 0x4] + movs r0, 0x11 + str r0, [sp, 0x8] + movs r0, 0 + add r1, sp, 0xC + bl sub_8002228 + movs r0, 0 + bl sub_80020BC + add sp, 0x10 + pop {r0} + bx r0 + thumb_func_end sub_8030A98 + + thumb_func_start sub_8030ADC +sub_8030ADC: @ 8030ADC + push {lr} + ldr r0, _08030AE8 @ =sub_8077764 + bl sub_8000544 + pop {r0} + bx r0 + .align 2, 0 +_08030AE8: .4byte sub_8077764 + thumb_func_end sub_8030ADC + + thumb_func_start sub_8030AEC +sub_8030AEC: @ 8030AEC + push {lr} + ldr r0, _08030AF8 @ =sub_8077764 + bl sub_8000544 + pop {r0} + bx r0 + .align 2, 0 +_08030AF8: .4byte sub_8077764 + thumb_func_end sub_8030AEC + + thumb_func_start sub_8030AFC +sub_8030AFC: @ 8030AFC + push {lr} + ldr r0, _08030B24 @ =gUnknown_2024018 + ldr r2, [r0] + ldr r0, _08030B28 @ =gUnknown_2023BC4 + ldrb r1, [r0] + ldr r2, [r2, 0x4] + lsls r0, r1, 1 + adds r0, r1 + lsls r0, 2 + adds r0, r2 + ldrb r1, [r0] + movs r0, 0x10 + ands r0, r1 + cmp r0, 0 + bne _08030B1E + bl sub_802E33C +_08030B1E: + pop {r0} + bx r0 + .align 2, 0 +_08030B24: .4byte gUnknown_2024018 +_08030B28: .4byte gUnknown_2023BC4 + thumb_func_end sub_8030AFC + + thumb_func_start sub_8030B2C +sub_8030B2C: @ 8030B2C + push {lr} + ldr r0, _08030B54 @ =gUnknown_2024018 + ldr r2, [r0] + ldr r0, _08030B58 @ =gUnknown_2023BC4 + ldrb r1, [r0] + ldr r2, [r2, 0x4] + lsls r0, r1, 1 + adds r0, r1 + lsls r0, 2 + adds r0, r2 + ldrb r1, [r0] + movs r0, 0x20 + ands r0, r1 + cmp r0, 0 + bne _08030B4E + bl sub_802E33C +_08030B4E: + pop {r0} + bx r0 + .align 2, 0 +_08030B54: .4byte gUnknown_2024018 +_08030B58: .4byte gUnknown_2023BC4 + thumb_func_end sub_8030B2C + + thumb_func_start sub_8030B5C +sub_8030B5C: @ 8030B5C + push {lr} + ldr r0, _08030B80 @ =gUnknown_2022B4C + ldr r0, [r0] + movs r1, 0x2 + ands r0, r1 + cmp r0, 0 + beq _08030B7C + ldr r0, _08030B84 @ =gUnknown_2022974 + movs r1, 0 + strh r1, [r0] + ldr r0, _08030B88 @ =gUnknown_2022976 + strh r1, [r0] + ldr r0, _08030B8C @ =gUnknown_83FE714 + movs r1, 0 + bl sub_80D87BC +_08030B7C: + pop {r0} + bx r0 + .align 2, 0 +_08030B80: .4byte gUnknown_2022B4C +_08030B84: .4byte gUnknown_2022974 +_08030B88: .4byte gUnknown_2022976 +_08030B8C: .4byte gUnknown_83FE714 + thumb_func_end sub_8030B5C + + thumb_func_start sub_8030B90 +sub_8030B90: @ 8030B90 + push {r4-r6,lr} + sub sp, 0x100 + movs r6, 0 + ldr r1, _08030BBC @ =gUnknown_2022BC4 + ldr r0, _08030BC0 @ =gUnknown_2023BC4 + ldrb r2, [r0] + lsls r0, r2, 9 + adds r1, 0x2 + adds r1, r0, r1 + ldrb r0, [r1] + cmp r0, 0 + bne _08030BC8 + ldr r0, _08030BC4 @ =gUnknown_2023BCE + lsls r1, r2, 1 + adds r1, r0 + ldrb r0, [r1] + mov r1, sp + bl sub_8030C04 + adds r6, r0, 0 + b _08030BEA + .align 2, 0 +_08030BBC: .4byte gUnknown_2022BC4 +_08030BC0: .4byte gUnknown_2023BC4 +_08030BC4: .4byte gUnknown_2023BCE +_08030BC8: + ldrb r4, [r1] + movs r5, 0 +_08030BCC: + movs r0, 0x1 + ands r0, r4 + cmp r0, 0 + beq _08030BE2 + lsls r0, r5, 24 + lsrs r0, 24 + mov r2, sp + adds r1, r2, r6 + bl sub_8030C04 + adds r6, r0 +_08030BE2: + lsrs r4, 1 + adds r5, 0x1 + cmp r5, 0x5 + ble _08030BCC +_08030BEA: + lsls r1, r6, 16 + lsrs r1, 16 + movs r0, 0x1 + mov r2, sp + bl sub_800E708 + bl sub_802E33C + add sp, 0x100 + pop {r4-r6} + pop {r0} + bx r0 + thumb_func_end sub_8030B90 + + thumb_func_start sub_8030C04 +sub_8030C04: @ 8030C04 + push {r4-r7,lr} + mov r7, r10 + mov r6, r9 + mov r5, r8 + push {r5-r7} + sub sp, 0x90 + adds r7, r1, 0 + lsls r0, 24 + lsrs r5, r0, 24 + movs r6, 0 + ldr r2, _08030C38 @ =gUnknown_2022BC4 + ldr r3, _08030C3C @ =gUnknown_2023BC4 + ldrb r0, [r3] + lsls r0, 9 + adds r1, r2, 0x1 + adds r0, r1 + ldrb r0, [r0] + cmp r0, 0x3B + bls _08030C2E + bl _0803139A +_08030C2E: + lsls r0, 2 + ldr r1, _08030C40 @ =_08030C44 + adds r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_08030C38: .4byte gUnknown_2022BC4 +_08030C3C: .4byte gUnknown_2023BC4 +_08030C40: .4byte _08030C44 + .align 2, 0 +_08030C44: + .4byte _08030D34 + .4byte _08030F58 + .4byte _08030F68 + .4byte _08030F78 + .4byte _08030FE0 + .4byte _08030FE0 + .4byte _08030FE0 + .4byte _08030FE0 + .4byte _08030FFC + .4byte _08031038 + .4byte _08031038 + .4byte _08031038 + .4byte _08031038 + .4byte _0803139A + .4byte _0803139A + .4byte _0803139A + .4byte _0803139A + .4byte _08031054 + .4byte _08031064 + .4byte _08031094 + .4byte _080310A4 + .4byte _080310B4 + .4byte _080310C4 + .4byte _080310D4 + .4byte _080310E4 + .4byte _080310F4 + .4byte _08031104 + .4byte _08031114 + .4byte _08031124 + .4byte _08031134 + .4byte _08031144 + .4byte _08031154 + .4byte _080311A4 + .4byte _080311B4 + .4byte _080311C4 + .4byte _080311D4 + .4byte _080311E4 + .4byte _080311F4 + .4byte _08031204 + .4byte _08031214 + .4byte _08031224 + .4byte _08031258 + .4byte _08031268 + .4byte _08031278 + .4byte _08031288 + .4byte _08031298 + .4byte _080312A8 + .4byte _080312B8 + .4byte _080312C8 + .4byte _080312E8 + .4byte _080312F8 + .4byte _08031308 + .4byte _08031318 + .4byte _08031328 + .4byte _08031338 + .4byte _08031348 + .4byte _08031358 + .4byte _08031368 + .4byte _08031378 + .4byte _08031388 +_08030D34: + movs r0, 0x64 + adds r4, r5, 0 + muls r4, r0 + ldr r0, _08030F48 @ =gUnknown_2024284 + adds r4, r0 + adds r0, r4, 0 + movs r1, 0xB + bl sub_803FBE8 + mov r1, sp + strh r0, [r1] + adds r0, r4, 0 + movs r1, 0xC + bl sub_803FBE8 + mov r1, sp + strh r0, [r1, 0x2E] + movs r6, 0 + add r0, sp, 0x24 + mov r9, r0 + movs r1, 0x3B + add r1, sp + mov r10, r1 + mov r2, sp + adds r2, 0x2B + str r2, [sp, 0x80] + mov r0, sp + adds r0, 0x2A + str r0, [sp, 0x7C] + mov r1, sp + adds r1, 0x68 + str r1, [sp, 0x8C] + adds r2, 0x5 + str r2, [sp, 0x84] + adds r0, 0x12 + str r0, [sp, 0x88] + mov r8, r4 + add r4, sp, 0xC +_08030D80: + adds r1, r6, 0 + adds r1, 0xD + mov r0, r8 + bl sub_803FBE8 + strh r0, [r4] + adds r1, r6, 0 + adds r1, 0x11 + mov r0, r8 + bl sub_803FBE8 + mov r2, r9 + adds r1, r2, r6 + strb r0, [r1] + adds r4, 0x2 + adds r6, 0x1 + cmp r6, 0x3 + ble _08030D80 + movs r0, 0x64 + adds r4, r5, 0 + muls r4, r0 + ldr r0, _08030F48 @ =gUnknown_2024284 + adds r4, r0 + adds r0, r4, 0 + movs r1, 0x15 + bl sub_803FBE8 + mov r1, r10 + strb r0, [r1] + adds r0, r4, 0 + movs r1, 0x20 + bl sub_803FBE8 + ldr r2, [sp, 0x80] + strb r0, [r2] + adds r0, r4, 0 + movs r1, 0x19 + bl sub_803FBE8 + str r0, [sp, 0x44] + adds r0, r4, 0 + movs r1, 0x27 + bl sub_803FBE8 + mov r3, sp + movs r5, 0x1F + ands r0, r5 + ldrb r2, [r3, 0x14] + movs r1, 0x20 + negs r1, r1 + ands r1, r2 + orrs r1, r0 + strb r1, [r3, 0x14] + adds r0, r4, 0 + movs r1, 0x28 + bl sub_803FBE8 + mov r3, sp + movs r6, 0x1F + ands r0, r6 + lsls r0, 5 + ldrh r2, [r3, 0x14] + ldr r1, _08030F4C @ =0xfffffc1f + ands r1, r2 + orrs r1, r0 + strh r1, [r3, 0x14] + adds r0, r4, 0 + movs r1, 0x29 + bl sub_803FBE8 + mov r3, sp + ands r0, r5 + lsls r0, 2 + ldrb r2, [r3, 0x15] + movs r1, 0x7D + negs r1, r1 + ands r1, r2 + orrs r1, r0 + strb r1, [r3, 0x15] + adds r0, r4, 0 + movs r1, 0x2A + bl sub_803FBE8 + movs r1, 0x1F + ands r1, r0 + lsls r1, 15 + ldr r0, [sp, 0x14] + ldr r2, _08030F50 @ =0xfff07fff + ands r0, r2 + orrs r0, r1 + str r0, [sp, 0x14] + adds r0, r4, 0 + movs r1, 0x2B + bl sub_803FBE8 + mov r3, sp + ands r0, r6 + lsls r0, 4 + ldrh r2, [r3, 0x16] + ldr r1, _08030F54 @ =0xfffffe0f + ands r1, r2 + orrs r1, r0 + strh r1, [r3, 0x16] + adds r0, r4, 0 + movs r1, 0x2C + bl sub_803FBE8 + mov r3, sp + ands r0, r5 + lsls r0, 1 + ldrb r2, [r3, 0x17] + movs r1, 0x3F + negs r1, r1 + ands r1, r2 + orrs r1, r0 + strb r1, [r3, 0x17] + adds r0, r4, 0 + movs r1, 0 + bl sub_803FBE8 + str r0, [sp, 0x48] + adds r0, r4, 0 + movs r1, 0x37 + bl sub_803FBE8 + str r0, [sp, 0x4C] + adds r0, r4, 0 + movs r1, 0x38 + bl sub_803FBE8 + ldr r1, [sp, 0x7C] + strb r0, [r1] + adds r0, r4, 0 + movs r1, 0x39 + bl sub_803FBE8 + mov r1, sp + strh r0, [r1, 0x28] + adds r0, r4, 0 + movs r1, 0x3A + bl sub_803FBE8 + mov r1, sp + strh r0, [r1, 0x2C] + adds r0, r4, 0 + movs r1, 0x3B + bl sub_803FBE8 + mov r1, sp + strh r0, [r1, 0x2] + adds r0, r4, 0 + movs r1, 0x3C + bl sub_803FBE8 + mov r1, sp + strh r0, [r1, 0x4] + adds r0, r4, 0 + movs r1, 0x3D + bl sub_803FBE8 + mov r1, sp + strh r0, [r1, 0x6] + adds r0, r4, 0 + movs r1, 0x3E + bl sub_803FBE8 + mov r1, sp + strh r0, [r1, 0x8] + adds r0, r4, 0 + movs r1, 0x3F + bl sub_803FBE8 + mov r1, sp + strh r0, [r1, 0xA] + adds r0, r4, 0 + movs r1, 0x2D + bl sub_803FBE8 + mov r3, sp + movs r1, 0x1 + ands r0, r1 + lsls r0, 6 + ldrb r2, [r3, 0x17] + movs r1, 0x41 + negs r1, r1 + ands r1, r2 + orrs r1, r0 + strb r1, [r3, 0x17] + adds r0, r4, 0 + movs r1, 0x2E + bl sub_803FBE8 + mov r3, sp + lsls r0, 7 + ldrb r2, [r3, 0x17] + movs r1, 0x7F + ands r1, r2 + orrs r1, r0 + strb r1, [r3, 0x17] + adds r0, r4, 0 + movs r1, 0x1 + bl sub_803FBE8 + str r0, [sp, 0x54] + adds r0, r4, 0 + movs r1, 0x2 + ldr r2, [sp, 0x8C] + bl sub_803FBE8 + ldr r0, [sp, 0x84] + ldr r1, [sp, 0x8C] + bl sub_8008CF4 + adds r0, r4, 0 + movs r1, 0x7 + ldr r2, [sp, 0x88] + bl sub_803FBE8 + mov r2, sp + movs r6, 0 +_08030F38: + adds r0, r7, r6 + adds r1, r2, r6 + ldrb r1, [r1] + strb r1, [r0] + adds r6, 0x1 + cmp r6, 0x57 + bls _08030F38 + b _0803139A + .align 2, 0 +_08030F48: .4byte gUnknown_2024284 +_08030F4C: .4byte 0xfffffc1f +_08030F50: .4byte 0xfff07fff +_08030F54: .4byte 0xfffffe0f +_08030F58: + movs r0, 0x64 + muls r0, r5 + ldr r1, _08030F64 @ =gUnknown_2024284 + adds r0, r1 + movs r1, 0xB + b _080312D2 + .align 2, 0 +_08030F64: .4byte gUnknown_2024284 +_08030F68: + movs r0, 0x64 + muls r0, r5 + ldr r1, _08030F74 @ =gUnknown_2024284 + adds r0, r1 + movs r1, 0xC + b _080312D2 + .align 2, 0 +_08030F74: .4byte gUnknown_2024284 +_08030F78: + movs r6, 0 + add r2, sp, 0x58 + mov r9, r2 + add r0, sp, 0x60 + mov r10, r0 + movs r0, 0x64 + adds r1, r5, 0 + muls r1, r0 + ldr r0, _08030FDC @ =gUnknown_2024284 + adds r4, r1, r0 + mov r8, r9 +_08030F8E: + adds r1, r6, 0 + adds r1, 0xD + adds r0, r4, 0 + bl sub_803FBE8 + mov r1, r8 + strh r0, [r1] + adds r1, r6, 0 + adds r1, 0x11 + adds r0, r4, 0 + bl sub_803FBE8 + mov r2, r10 + adds r1, r2, r6 + strb r0, [r1] + movs r0, 0x2 + add r8, r0 + adds r6, 0x1 + cmp r6, 0x3 + ble _08030F8E + movs r0, 0x64 + muls r0, r5 + ldr r1, _08030FDC @ =gUnknown_2024284 + adds r0, r1 + movs r1, 0x15 + bl sub_803FBE8 + mov r1, r9 + strb r0, [r1, 0xC] + mov r2, r9 + movs r6, 0 +_08030FCC: + adds r0, r7, r6 + adds r1, r2, r6 + ldrb r1, [r1] + strb r1, [r0] + adds r6, 0x1 + cmp r6, 0xF + bls _08030FCC + b _0803139A + .align 2, 0 +_08030FDC: .4byte gUnknown_2024284 +_08030FE0: + movs r0, 0x64 + muls r0, r5 + ldr r1, _08030FF8 @ =gUnknown_2024284 + adds r0, r1 + ldrb r1, [r3] + lsls r1, 9 + adds r2, 0x1 + adds r1, r2 + ldrb r1, [r1] + adds r1, 0x9 + b _080312D2 + .align 2, 0 +_08030FF8: .4byte gUnknown_2024284 +_08030FFC: + movs r6, 0 + movs r0, 0x64 + adds r4, r5, 0 + muls r4, r0 + ldr r2, _08031034 @ =gUnknown_2024284 + mov r8, r2 +_08031008: + adds r1, r6, 0 + adds r1, 0x11 + mov r2, r8 + adds r0, r4, r2 + bl sub_803FBE8 + adds r1, r7, r6 + strb r0, [r1] + adds r6, 0x1 + cmp r6, 0x3 + ble _08031008 + movs r0, 0x64 + muls r0, r5 + ldr r1, _08031034 @ =gUnknown_2024284 + adds r0, r1 + movs r1, 0x15 + bl sub_803FBE8 + adds r1, r7, r6 + strb r0, [r1] + adds r6, 0x1 + b _0803139A + .align 2, 0 +_08031034: .4byte gUnknown_2024284 +_08031038: + movs r0, 0x64 + muls r0, r5 + ldr r1, _08031050 @ =gUnknown_2024284 + adds r0, r1 + ldrb r1, [r3] + lsls r1, 9 + adds r2, 0x1 + adds r1, r2 + ldrb r1, [r1] + adds r1, 0x8 + b _08031392 + .align 2, 0 +_08031050: .4byte gUnknown_2024284 +_08031054: + movs r0, 0x64 + muls r0, r5 + ldr r1, _08031060 @ =gUnknown_2024284 + adds r0, r1 + movs r1, 0x1 + b _0803106E + .align 2, 0 +_08031060: .4byte gUnknown_2024284 +_08031064: + movs r0, 0x64 + muls r0, r5 + ldr r1, _08031090 @ =gUnknown_2024284 + adds r0, r1 + movs r1, 0x19 +_0803106E: + bl sub_803FBE8 + adds r1, r0, 0 + strb r1, [r7] + movs r0, 0xFF + lsls r0, 8 + ands r0, r1 + lsrs r0, 8 + strb r0, [r7, 0x1] + movs r0, 0xFF + lsls r0, 16 + ands r0, r1 + lsrs r0, 16 + strb r0, [r7, 0x2] + movs r6, 0x3 + b _0803139A + .align 2, 0 +_08031090: .4byte gUnknown_2024284 +_08031094: + movs r0, 0x64 + muls r0, r5 + ldr r1, _080310A0 @ =gUnknown_2024284 + adds r0, r1 + movs r1, 0x1A + b _08031392 + .align 2, 0 +_080310A0: .4byte gUnknown_2024284 +_080310A4: + movs r0, 0x64 + muls r0, r5 + ldr r1, _080310B0 @ =gUnknown_2024284 + adds r0, r1 + movs r1, 0x1B + b _08031392 + .align 2, 0 +_080310B0: .4byte gUnknown_2024284 +_080310B4: + movs r0, 0x64 + muls r0, r5 + ldr r1, _080310C0 @ =gUnknown_2024284 + adds r0, r1 + movs r1, 0x1C + b _08031392 + .align 2, 0 +_080310C0: .4byte gUnknown_2024284 +_080310C4: + movs r0, 0x64 + muls r0, r5 + ldr r1, _080310D0 @ =gUnknown_2024284 + adds r0, r1 + movs r1, 0x1D + b _08031392 + .align 2, 0 +_080310D0: .4byte gUnknown_2024284 +_080310D4: + movs r0, 0x64 + muls r0, r5 + ldr r1, _080310E0 @ =gUnknown_2024284 + adds r0, r1 + movs r1, 0x1E + b _08031392 + .align 2, 0 +_080310E0: .4byte gUnknown_2024284 +_080310E4: + movs r0, 0x64 + muls r0, r5 + ldr r1, _080310F0 @ =gUnknown_2024284 + adds r0, r1 + movs r1, 0x1F + b _08031392 + .align 2, 0 +_080310F0: .4byte gUnknown_2024284 +_080310F4: + movs r0, 0x64 + muls r0, r5 + ldr r1, _08031100 @ =gUnknown_2024284 + adds r0, r1 + movs r1, 0x20 + b _08031392 + .align 2, 0 +_08031100: .4byte gUnknown_2024284 +_08031104: + movs r0, 0x64 + muls r0, r5 + ldr r1, _08031110 @ =gUnknown_2024284 + adds r0, r1 + movs r1, 0x22 + b _08031392 + .align 2, 0 +_08031110: .4byte gUnknown_2024284 +_08031114: + movs r0, 0x64 + muls r0, r5 + ldr r1, _08031120 @ =gUnknown_2024284 + adds r0, r1 + movs r1, 0x23 + b _08031392 + .align 2, 0 +_08031120: .4byte gUnknown_2024284 +_08031124: + movs r0, 0x64 + muls r0, r5 + ldr r1, _08031130 @ =gUnknown_2024284 + adds r0, r1 + movs r1, 0x24 + b _08031392 + .align 2, 0 +_08031130: .4byte gUnknown_2024284 +_08031134: + movs r0, 0x64 + muls r0, r5 + ldr r1, _08031140 @ =gUnknown_2024284 + adds r0, r1 + movs r1, 0x25 + b _08031392 + .align 2, 0 +_08031140: .4byte gUnknown_2024284 +_08031144: + movs r0, 0x64 + muls r0, r5 + ldr r1, _08031150 @ =gUnknown_2024284 + adds r0, r1 + movs r1, 0x26 + b _08031392 + .align 2, 0 +_08031150: .4byte gUnknown_2024284 +_08031154: + movs r0, 0x64 + adds r4, r5, 0 + muls r4, r0 + ldr r0, _080311A0 @ =gUnknown_2024284 + adds r4, r0 + adds r0, r4, 0 + movs r1, 0x27 + bl sub_803FBE8 + strb r0, [r7] + adds r0, r4, 0 + movs r1, 0x28 + bl sub_803FBE8 + strb r0, [r7, 0x1] + adds r0, r4, 0 + movs r1, 0x29 + bl sub_803FBE8 + strb r0, [r7, 0x2] + adds r0, r4, 0 + movs r1, 0x2A + bl sub_803FBE8 + strb r0, [r7, 0x3] + adds r0, r4, 0 + movs r1, 0x2B + bl sub_803FBE8 + strb r0, [r7, 0x4] + adds r0, r4, 0 + movs r1, 0x2C + bl sub_803FBE8 + strb r0, [r7, 0x5] + movs r6, 0x6 + b _0803139A + .align 2, 0 +_080311A0: .4byte gUnknown_2024284 +_080311A4: + movs r0, 0x64 + muls r0, r5 + ldr r1, _080311B0 @ =gUnknown_2024284 + adds r0, r1 + movs r1, 0x27 + b _08031392 + .align 2, 0 +_080311B0: .4byte gUnknown_2024284 +_080311B4: + movs r0, 0x64 + muls r0, r5 + ldr r1, _080311C0 @ =gUnknown_2024284 + adds r0, r1 + movs r1, 0x28 + b _08031392 + .align 2, 0 +_080311C0: .4byte gUnknown_2024284 +_080311C4: + movs r0, 0x64 + muls r0, r5 + ldr r1, _080311D0 @ =gUnknown_2024284 + adds r0, r1 + movs r1, 0x29 + b _08031392 + .align 2, 0 +_080311D0: .4byte gUnknown_2024284 +_080311D4: + movs r0, 0x64 + muls r0, r5 + ldr r1, _080311E0 @ =gUnknown_2024284 + adds r0, r1 + movs r1, 0x2A + b _08031392 + .align 2, 0 +_080311E0: .4byte gUnknown_2024284 +_080311E4: + movs r0, 0x64 + muls r0, r5 + ldr r1, _080311F0 @ =gUnknown_2024284 + adds r0, r1 + movs r1, 0x2B + b _08031392 + .align 2, 0 +_080311F0: .4byte gUnknown_2024284 +_080311F4: + movs r0, 0x64 + muls r0, r5 + ldr r1, _08031200 @ =gUnknown_2024284 + adds r0, r1 + movs r1, 0x2C + b _08031392 + .align 2, 0 +_08031200: .4byte gUnknown_2024284 +_08031204: + movs r0, 0x64 + muls r0, r5 + ldr r1, _08031210 @ =gUnknown_2024284 + adds r0, r1 + movs r1, 0 + b _0803122E + .align 2, 0 +_08031210: .4byte gUnknown_2024284 +_08031214: + movs r0, 0x64 + muls r0, r5 + ldr r1, _08031220 @ =gUnknown_2024284 + adds r0, r1 + movs r1, 0x9 + b _080312D2 + .align 2, 0 +_08031220: .4byte gUnknown_2024284 +_08031224: + movs r0, 0x64 + muls r0, r5 + ldr r1, _08031254 @ =gUnknown_2024284 + adds r0, r1 + movs r1, 0x37 +_0803122E: + bl sub_803FBE8 + adds r1, r0, 0 + strb r1, [r7] + movs r0, 0xFF + lsls r0, 8 + ands r0, r1 + lsrs r0, 8 + strb r0, [r7, 0x1] + movs r0, 0xFF + lsls r0, 16 + ands r0, r1 + lsrs r0, 16 + strb r0, [r7, 0x2] + lsrs r0, r1, 24 + strb r0, [r7, 0x3] + movs r6, 0x4 + b _0803139A + .align 2, 0 +_08031254: .4byte gUnknown_2024284 +_08031258: + movs r0, 0x64 + muls r0, r5 + ldr r1, _08031264 @ =gUnknown_2024284 + adds r0, r1 + movs r1, 0x38 + b _08031392 + .align 2, 0 +_08031264: .4byte gUnknown_2024284 +_08031268: + movs r0, 0x64 + muls r0, r5 + ldr r1, _08031274 @ =gUnknown_2024284 + adds r0, r1 + movs r1, 0x39 + b _080312D2 + .align 2, 0 +_08031274: .4byte gUnknown_2024284 +_08031278: + movs r0, 0x64 + muls r0, r5 + ldr r1, _08031284 @ =gUnknown_2024284 + adds r0, r1 + movs r1, 0x3A + b _080312D2 + .align 2, 0 +_08031284: .4byte gUnknown_2024284 +_08031288: + movs r0, 0x64 + muls r0, r5 + ldr r1, _08031294 @ =gUnknown_2024284 + adds r0, r1 + movs r1, 0x3B + b _080312D2 + .align 2, 0 +_08031294: .4byte gUnknown_2024284 +_08031298: + movs r0, 0x64 + muls r0, r5 + ldr r1, _080312A4 @ =gUnknown_2024284 + adds r0, r1 + movs r1, 0x3C + b _080312D2 + .align 2, 0 +_080312A4: .4byte gUnknown_2024284 +_080312A8: + movs r0, 0x64 + muls r0, r5 + ldr r1, _080312B4 @ =gUnknown_2024284 + adds r0, r1 + movs r1, 0x3D + b _080312D2 + .align 2, 0 +_080312B4: .4byte gUnknown_2024284 +_080312B8: + movs r0, 0x64 + muls r0, r5 + ldr r1, _080312C4 @ =gUnknown_2024284 + adds r0, r1 + movs r1, 0x3E + b _080312D2 + .align 2, 0 +_080312C4: .4byte gUnknown_2024284 +_080312C8: + movs r0, 0x64 + muls r0, r5 + ldr r1, _080312E4 @ =gUnknown_2024284 + adds r0, r1 + movs r1, 0x3F +_080312D2: + bl sub_803FBE8 + lsls r0, 16 + lsrs r0, 16 + strb r0, [r7] + lsrs r0, 8 + strb r0, [r7, 0x1] + movs r6, 0x2 + b _0803139A + .align 2, 0 +_080312E4: .4byte gUnknown_2024284 +_080312E8: + movs r0, 0x64 + muls r0, r5 + ldr r1, _080312F4 @ =gUnknown_2024284 + adds r0, r1 + movs r1, 0x16 + b _08031392 + .align 2, 0 +_080312F4: .4byte gUnknown_2024284 +_080312F8: + movs r0, 0x64 + muls r0, r5 + ldr r1, _08031304 @ =gUnknown_2024284 + adds r0, r1 + movs r1, 0x17 + b _08031392 + .align 2, 0 +_08031304: .4byte gUnknown_2024284 +_08031308: + movs r0, 0x64 + muls r0, r5 + ldr r1, _08031314 @ =gUnknown_2024284 + adds r0, r1 + movs r1, 0x18 + b _08031392 + .align 2, 0 +_08031314: .4byte gUnknown_2024284 +_08031318: + movs r0, 0x64 + muls r0, r5 + ldr r1, _08031324 @ =gUnknown_2024284 + adds r0, r1 + movs r1, 0x21 + b _08031392 + .align 2, 0 +_08031324: .4byte gUnknown_2024284 +_08031328: + movs r0, 0x64 + muls r0, r5 + ldr r1, _08031334 @ =gUnknown_2024284 + adds r0, r1 + movs r1, 0x2F + b _08031392 + .align 2, 0 +_08031334: .4byte gUnknown_2024284 +_08031338: + movs r0, 0x64 + muls r0, r5 + ldr r1, _08031344 @ =gUnknown_2024284 + adds r0, r1 + movs r1, 0x30 + b _08031392 + .align 2, 0 +_08031344: .4byte gUnknown_2024284 +_08031348: + movs r0, 0x64 + muls r0, r5 + ldr r1, _08031354 @ =gUnknown_2024284 + adds r0, r1 + movs r1, 0x32 + b _08031392 + .align 2, 0 +_08031354: .4byte gUnknown_2024284 +_08031358: + movs r0, 0x64 + muls r0, r5 + ldr r1, _08031364 @ =gUnknown_2024284 + adds r0, r1 + movs r1, 0x33 + b _08031392 + .align 2, 0 +_08031364: .4byte gUnknown_2024284 +_08031368: + movs r0, 0x64 + muls r0, r5 + ldr r1, _08031374 @ =gUnknown_2024284 + adds r0, r1 + movs r1, 0x34 + b _08031392 + .align 2, 0 +_08031374: .4byte gUnknown_2024284 +_08031378: + movs r0, 0x64 + muls r0, r5 + ldr r1, _08031384 @ =gUnknown_2024284 + adds r0, r1 + movs r1, 0x35 + b _08031392 + .align 2, 0 +_08031384: .4byte gUnknown_2024284 +_08031388: + movs r0, 0x64 + muls r0, r5 + ldr r1, _080313AC @ =gUnknown_2024284 + adds r0, r1 + movs r1, 0x36 +_08031392: + bl sub_803FBE8 + strb r0, [r7] + movs r6, 0x1 +_0803139A: + adds r0, r6, 0 + add sp, 0x90 + pop {r3-r5} + mov r8, r3 + mov r9, r4 + mov r10, r5 + pop {r4-r7} + pop {r1} + bx r1 + .align 2, 0 +_080313AC: .4byte gUnknown_2024284 + thumb_func_end sub_8030C04 + + thumb_func_start sub_80313B0 +sub_80313B0: @ 80313B0 + push {r4-r7,lr} + sub sp, 0x58 + ldr r2, _08031428 @ =gUnknown_2023BCE + ldr r5, _0803142C @ =gUnknown_2023BC4 + ldrb r1, [r5] + lsls r0, r1, 1 + adds r0, r2 + ldrh r2, [r0] + movs r0, 0x64 + adds r4, r2, 0 + muls r4, r0 + ldr r3, _08031430 @ =gUnknown_2022BC4 + lsls r1, 9 + adds r0, r3, 0x1 + adds r0, r1, r0 + ldrb r2, [r0] + ldr r0, _08031434 @ =gUnknown_2024284 + adds r0, r2, r0 + adds r6, r4, r0 + mov r0, sp + adds r4, r0, r2 + movs r2, 0 + adds r0, r3, 0x2 + adds r1, r0 + adds r7, r5, 0 + mov r12, r3 + ldrb r1, [r1] + cmp r2, r1 + bcs _08031406 + adds r3, r0, 0 +_080313EC: + adds r1, r4, r2 + adds r0, r6, r2 + ldrb r0, [r0] + strb r0, [r1] + adds r0, r2, 0x1 + lsls r0, 24 + lsrs r2, r0, 24 + ldrb r0, [r5] + lsls r0, 9 + adds r0, r3 + ldrb r0, [r0] + cmp r2, r0 + bcc _080313EC +_08031406: + ldrb r0, [r7] + lsls r0, 9 + mov r1, r12 + adds r1, 0x2 + adds r0, r1 + ldrb r1, [r0] + movs r0, 0x1 + adds r2, r4, 0 + bl sub_800E708 + bl sub_802E33C + add sp, 0x58 + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_08031428: .4byte gUnknown_2023BCE +_0803142C: .4byte gUnknown_2023BC4 +_08031430: .4byte gUnknown_2022BC4 +_08031434: .4byte gUnknown_2024284 + thumb_func_end sub_80313B0 + + thumb_func_start sub_8031438 +sub_8031438: @ 8031438 + push {r4,r5,lr} + ldr r1, _0803145C @ =gUnknown_2022BC4 + ldr r0, _08031460 @ =gUnknown_2023BC4 + ldrb r2, [r0] + lsls r0, r2, 9 + adds r1, 0x2 + adds r1, r0, r1 + ldrb r0, [r1] + cmp r0, 0 + bne _08031468 + ldr r0, _08031464 @ =gUnknown_2023BCE + lsls r1, r2, 1 + adds r1, r0 + ldrb r0, [r1] + bl sub_8031490 + b _08031486 + .align 2, 0 +_0803145C: .4byte gUnknown_2022BC4 +_08031460: .4byte gUnknown_2023BC4 +_08031464: .4byte gUnknown_2023BCE +_08031468: + ldrb r4, [r1] + movs r5, 0 +_0803146C: + movs r0, 0x1 + ands r0, r4 + cmp r0, 0 + beq _0803147A + adds r0, r5, 0 + bl sub_8031490 +_0803147A: + lsrs r4, 1 + adds r0, r5, 0x1 + lsls r0, 24 + lsrs r5, r0, 24 + cmp r5, 0x5 + bls _0803146C +_08031486: + bl sub_802E33C + pop {r4,r5} + pop {r0} + bx r0 + thumb_func_end sub_8031438 + + thumb_func_start sub_8031490 +sub_8031490: @ 8031490 + push {r4-r7,lr} + mov r7, r10 + mov r6, r9 + mov r5, r8 + push {r5-r7} + sub sp, 0x34 + lsls r0, 24 + lsrs r5, r0, 24 + ldr r0, _080314C8 @ =gUnknown_2023BC4 + ldrb r0, [r0] + lsls r0, 9 + ldr r2, _080314CC @ =gUnknown_2022BC7 + adds r3, r0, r2 + adds r6, r3, 0 + subs r1, r2, 0x2 + adds r0, r1 + ldrb r0, [r0] + adds r7, r2, 0 + cmp r0, 0x3B + bls _080314BC + bl _08031E56 +_080314BC: + lsls r0, 2 + ldr r1, _080314D0 @ =_080314D4 + adds r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_080314C8: .4byte gUnknown_2023BC4 +_080314CC: .4byte gUnknown_2022BC7 +_080314D0: .4byte _080314D4 + .align 2, 0 +_080314D4: + .4byte _080315C4 + .4byte _0803175C + .4byte _0803177C + .4byte _0803179C + .4byte _080317F4 + .4byte _080317F4 + .4byte _080317F4 + .4byte _080317F4 + .4byte _0803181C + .4byte _08031880 + .4byte _08031880 + .4byte _08031880 + .4byte _08031880 + .4byte _08031E56 + .4byte _08031E56 + .4byte _08031E56 + .4byte _08031E56 + .4byte _080318B0 + .4byte _080318D0 + .4byte _080318F0 + .4byte _08031910 + .4byte _08031930 + .4byte _08031950 + .4byte _08031970 + .4byte _08031990 + .4byte _080319B0 + .4byte _080319D0 + .4byte _080319F0 + .4byte _08031A10 + .4byte _08031A30 + .4byte _08031A50 + .4byte _08031A70 + .4byte _08031AE0 + .4byte _08031B00 + .4byte _08031B20 + .4byte _08031B40 + .4byte _08031B60 + .4byte _08031B80 + .4byte _08031BA0 + .4byte _08031BC0 + .4byte _08031BE0 + .4byte _08031C00 + .4byte _08031C20 + .4byte _08031C40 + .4byte _08031C60 + .4byte _08031C80 + .4byte _08031CA0 + .4byte _08031CC0 + .4byte _08031CE0 + .4byte _08031D00 + .4byte _08031D20 + .4byte _08031D40 + .4byte _08031D60 + .4byte _08031D80 + .4byte _08031DA0 + .4byte _08031DC0 + .4byte _08031DE0 + .4byte _08031E00 + .4byte _08031E20 + .4byte _08031E40 +_080315C4: + movs r0, 0x64 + adds r4, r5, 0 + muls r4, r0 + ldr r0, _08031758 @ =gUnknown_2024284 + adds r4, r0 + adds r0, r4, 0 + movs r1, 0xB + adds r2, r6, 0 + bl sub_804037C + adds r2, r6, 0 + adds r2, 0x2E + adds r0, r4, 0 + movs r1, 0xC + bl sub_804037C + movs r0, 0 + mov r8, r0 + movs r0, 0x3B + adds r0, r6 + mov r10, r0 + adds r0, r6, 0 + adds r0, 0x2B + str r0, [sp, 0x20] + adds r0, 0x19 + str r0, [sp, 0x28] + adds r0, 0x4 + str r0, [sp, 0x2C] + adds r0, 0x4 + str r0, [sp, 0x30] + subs r0, 0x22 + str r0, [sp, 0x1C] + subs r0, 0x2 + str r0, [sp, 0x18] + adds r0, 0x4 + str r0, [sp, 0x24] + adds r0, r6, 0x2 + str r0, [sp, 0x4] + adds r0, r6, 0x4 + str r0, [sp, 0x8] + adds r0, r6, 0x6 + str r0, [sp, 0xC] + adds r0, 0x2 + str r0, [sp, 0x10] + adds r0, 0x2 + str r0, [sp, 0x14] + mov r9, r4 + adds r7, r6, 0 + adds r7, 0x24 + adds r4, r6, 0 + adds r4, 0xC +_0803162A: + mov r1, r8 + adds r1, 0xD + mov r0, r9 + adds r2, r4, 0 + bl sub_804037C + mov r1, r8 + adds r1, 0x11 + mov r0, r9 + adds r2, r7, 0 + bl sub_804037C + adds r7, 0x1 + adds r4, 0x2 + movs r0, 0x1 + add r8, r0 + mov r0, r8 + cmp r0, 0x3 + ble _0803162A + movs r0, 0x64 + adds r4, r5, 0 + muls r4, r0 + ldr r0, _08031758 @ =gUnknown_2024284 + adds r4, r0 + adds r0, r4, 0 + movs r1, 0x15 + mov r2, r10 + bl sub_804037C + adds r0, r4, 0 + movs r1, 0x20 + ldr r2, [sp, 0x20] + bl sub_804037C + adds r0, r4, 0 + movs r1, 0x19 + ldr r2, [sp, 0x28] + bl sub_804037C + ldrb r0, [r6, 0x14] + lsls r0, 27 + lsrs r0, 27 + mov r1, sp + strb r0, [r1] + adds r0, r4, 0 + movs r1, 0x27 + mov r2, sp + bl sub_804037C + mov r1, sp + ldrh r0, [r6, 0x14] + lsls r0, 22 + lsrs r0, 27 + strb r0, [r1] + adds r0, r4, 0 + movs r1, 0x28 + mov r2, sp + bl sub_804037C + mov r1, sp + ldrb r0, [r6, 0x15] + lsls r0, 25 + lsrs r0, 27 + strb r0, [r1] + adds r0, r4, 0 + movs r1, 0x29 + mov r2, sp + bl sub_804037C + mov r1, sp + ldr r0, [r6, 0x14] + lsls r0, 12 + lsrs r0, 27 + strb r0, [r1] + adds r0, r4, 0 + movs r1, 0x2A + mov r2, sp + bl sub_804037C + mov r1, sp + ldrh r0, [r6, 0x16] + lsls r0, 23 + lsrs r0, 27 + strb r0, [r1] + adds r0, r4, 0 + movs r1, 0x2B + mov r2, sp + bl sub_804037C + mov r1, sp + ldrb r0, [r6, 0x17] + lsls r0, 26 + lsrs r0, 27 + strb r0, [r1] + adds r0, r4, 0 + movs r1, 0x2C + mov r2, sp + bl sub_804037C + adds r0, r4, 0 + movs r1, 0 + ldr r2, [sp, 0x2C] + bl sub_804037C + adds r0, r4, 0 + movs r1, 0x37 + ldr r2, [sp, 0x30] + bl sub_804037C + adds r0, r4, 0 + movs r1, 0x38 + ldr r2, [sp, 0x1C] + bl sub_804037C + adds r0, r4, 0 + movs r1, 0x39 + ldr r2, [sp, 0x18] + bl sub_804037C + adds r0, r4, 0 + movs r1, 0x3A + ldr r2, [sp, 0x24] + bl sub_804037C + adds r0, r4, 0 + movs r1, 0x3B + ldr r2, [sp, 0x4] + bl sub_804037C + adds r0, r4, 0 + movs r1, 0x3C + ldr r2, [sp, 0x8] + bl sub_804037C + adds r0, r4, 0 + movs r1, 0x3D + ldr r2, [sp, 0xC] + bl sub_804037C + adds r0, r4, 0 + movs r1, 0x3E + ldr r2, [sp, 0x10] + bl sub_804037C + adds r0, r4, 0 + movs r1, 0x3F + ldr r2, [sp, 0x14] + bl sub_804037C + b _08031E56 + .align 2, 0 +_08031758: .4byte gUnknown_2024284 +_0803175C: + movs r0, 0x64 + muls r0, r5 + ldr r1, _08031774 @ =gUnknown_2024284 + adds r0, r1 + ldr r1, _08031778 @ =gUnknown_2023BC4 + ldrb r2, [r1] + lsls r2, 9 + adds r2, r7 + movs r1, 0xB + bl sub_804037C + b _08031E56 + .align 2, 0 +_08031774: .4byte gUnknown_2024284 +_08031778: .4byte gUnknown_2023BC4 +_0803177C: + movs r0, 0x64 + muls r0, r5 + ldr r1, _08031794 @ =gUnknown_2024284 + adds r0, r1 + ldr r1, _08031798 @ =gUnknown_2023BC4 + ldrb r2, [r1] + lsls r2, 9 + adds r2, r7 + movs r1, 0xC + bl sub_804037C + b _08031E56 + .align 2, 0 +_08031794: .4byte gUnknown_2024284 +_08031798: .4byte gUnknown_2023BC4 +_0803179C: + movs r0, 0 + mov r8, r0 + movs r0, 0xC + adds r0, r3 + mov r9, r0 + movs r0, 0x64 + adds r1, r5, 0 + muls r1, r0 + ldr r0, _080317F0 @ =gUnknown_2024284 + adds r7, r1, r0 + adds r6, r3, 0 + adds r6, 0x8 + adds r4, r3, 0 +_080317B6: + mov r1, r8 + adds r1, 0xD + adds r0, r7, 0 + adds r2, r4, 0 + bl sub_804037C + mov r1, r8 + adds r1, 0x11 + adds r0, r7, 0 + adds r2, r6, 0 + bl sub_804037C + adds r6, 0x1 + adds r4, 0x2 + movs r0, 0x1 + add r8, r0 + mov r0, r8 + cmp r0, 0x3 + ble _080317B6 + movs r0, 0x64 + muls r0, r5 + ldr r1, _080317F0 @ =gUnknown_2024284 + adds r0, r1 + movs r1, 0x15 + mov r2, r9 + bl sub_804037C + b _08031E56 + .align 2, 0 +_080317F0: .4byte gUnknown_2024284 +_080317F4: + movs r0, 0x64 + muls r0, r5 + ldr r1, _08031810 @ =gUnknown_2024284 + adds r0, r1 + ldr r3, _08031814 @ =gUnknown_2022BC4 + ldr r1, _08031818 @ =gUnknown_2023BC4 + ldrb r2, [r1] + lsls r2, 9 + adds r1, r3, 0x1 + adds r1, r2, r1 + ldrb r1, [r1] + adds r1, 0x9 + b _08031898 + .align 2, 0 +_08031810: .4byte gUnknown_2024284 +_08031814: .4byte gUnknown_2022BC4 +_08031818: .4byte gUnknown_2023BC4 +_0803181C: + movs r0, 0x64 + adds r4, r5, 0 + muls r4, r0 + ldr r0, _08031878 @ =gUnknown_2024284 + adds r4, r0 + ldr r5, _0803187C @ =gUnknown_2023BC4 + ldrb r2, [r5] + lsls r2, 9 + adds r2, r7 + adds r0, r4, 0 + movs r1, 0x11 + bl sub_804037C + ldrb r2, [r5] + lsls r2, 9 + adds r0, r7, 0x1 + adds r2, r0 + adds r0, r4, 0 + movs r1, 0x12 + bl sub_804037C + ldrb r2, [r5] + lsls r2, 9 + adds r0, r7, 0x2 + adds r2, r0 + adds r0, r4, 0 + movs r1, 0x13 + bl sub_804037C + ldrb r2, [r5] + lsls r2, 9 + adds r0, r7, 0x3 + adds r2, r0 + adds r0, r4, 0 + movs r1, 0x14 + bl sub_804037C + ldrb r2, [r5] + lsls r2, 9 + adds r0, r7, 0x4 + adds r2, r0 + adds r0, r4, 0 + movs r1, 0x15 + bl sub_804037C + b _08031E56 + .align 2, 0 +_08031878: .4byte gUnknown_2024284 +_0803187C: .4byte gUnknown_2023BC4 +_08031880: + movs r0, 0x64 + muls r0, r5 + ldr r1, _080318A4 @ =gUnknown_2024284 + adds r0, r1 + ldr r3, _080318A8 @ =gUnknown_2022BC4 + ldr r1, _080318AC @ =gUnknown_2023BC4 + ldrb r2, [r1] + lsls r2, 9 + adds r1, r3, 0x1 + adds r1, r2, r1 + ldrb r1, [r1] + adds r1, 0x8 +_08031898: + adds r3, 0x3 + adds r2, r3 + bl sub_804037C + b _08031E56 + .align 2, 0 +_080318A4: .4byte gUnknown_2024284 +_080318A8: .4byte gUnknown_2022BC4 +_080318AC: .4byte gUnknown_2023BC4 +_080318B0: + movs r0, 0x64 + muls r0, r5 + ldr r1, _080318C8 @ =gUnknown_2024284 + adds r0, r1 + ldr r1, _080318CC @ =gUnknown_2023BC4 + ldrb r2, [r1] + lsls r2, 9 + adds r2, r7 + movs r1, 0x1 + bl sub_804037C + b _08031E56 + .align 2, 0 +_080318C8: .4byte gUnknown_2024284 +_080318CC: .4byte gUnknown_2023BC4 +_080318D0: + movs r0, 0x64 + muls r0, r5 + ldr r1, _080318E8 @ =gUnknown_2024284 + adds r0, r1 + ldr r1, _080318EC @ =gUnknown_2023BC4 + ldrb r2, [r1] + lsls r2, 9 + adds r2, r7 + movs r1, 0x19 + bl sub_804037C + b _08031E56 + .align 2, 0 +_080318E8: .4byte gUnknown_2024284 +_080318EC: .4byte gUnknown_2023BC4 +_080318F0: + movs r0, 0x64 + muls r0, r5 + ldr r1, _08031908 @ =gUnknown_2024284 + adds r0, r1 + ldr r1, _0803190C @ =gUnknown_2023BC4 + ldrb r2, [r1] + lsls r2, 9 + adds r2, r7 + movs r1, 0x1A + bl sub_804037C + b _08031E56 + .align 2, 0 +_08031908: .4byte gUnknown_2024284 +_0803190C: .4byte gUnknown_2023BC4 +_08031910: + movs r0, 0x64 + muls r0, r5 + ldr r1, _08031928 @ =gUnknown_2024284 + adds r0, r1 + ldr r1, _0803192C @ =gUnknown_2023BC4 + ldrb r2, [r1] + lsls r2, 9 + adds r2, r7 + movs r1, 0x1B + bl sub_804037C + b _08031E56 + .align 2, 0 +_08031928: .4byte gUnknown_2024284 +_0803192C: .4byte gUnknown_2023BC4 +_08031930: + movs r0, 0x64 + muls r0, r5 + ldr r1, _08031948 @ =gUnknown_2024284 + adds r0, r1 + ldr r1, _0803194C @ =gUnknown_2023BC4 + ldrb r2, [r1] + lsls r2, 9 + adds r2, r7 + movs r1, 0x1C + bl sub_804037C + b _08031E56 + .align 2, 0 +_08031948: .4byte gUnknown_2024284 +_0803194C: .4byte gUnknown_2023BC4 +_08031950: + movs r0, 0x64 + muls r0, r5 + ldr r1, _08031968 @ =gUnknown_2024284 + adds r0, r1 + ldr r1, _0803196C @ =gUnknown_2023BC4 + ldrb r2, [r1] + lsls r2, 9 + adds r2, r7 + movs r1, 0x1D + bl sub_804037C + b _08031E56 + .align 2, 0 +_08031968: .4byte gUnknown_2024284 +_0803196C: .4byte gUnknown_2023BC4 +_08031970: + movs r0, 0x64 + muls r0, r5 + ldr r1, _08031988 @ =gUnknown_2024284 + adds r0, r1 + ldr r1, _0803198C @ =gUnknown_2023BC4 + ldrb r2, [r1] + lsls r2, 9 + adds r2, r7 + movs r1, 0x1E + bl sub_804037C + b _08031E56 + .align 2, 0 +_08031988: .4byte gUnknown_2024284 +_0803198C: .4byte gUnknown_2023BC4 +_08031990: + movs r0, 0x64 + muls r0, r5 + ldr r1, _080319A8 @ =gUnknown_2024284 + adds r0, r1 + ldr r1, _080319AC @ =gUnknown_2023BC4 + ldrb r2, [r1] + lsls r2, 9 + adds r2, r7 + movs r1, 0x1F + bl sub_804037C + b _08031E56 + .align 2, 0 +_080319A8: .4byte gUnknown_2024284 +_080319AC: .4byte gUnknown_2023BC4 +_080319B0: + movs r0, 0x64 + muls r0, r5 + ldr r1, _080319C8 @ =gUnknown_2024284 + adds r0, r1 + ldr r1, _080319CC @ =gUnknown_2023BC4 + ldrb r2, [r1] + lsls r2, 9 + adds r2, r7 + movs r1, 0x20 + bl sub_804037C + b _08031E56 + .align 2, 0 +_080319C8: .4byte gUnknown_2024284 +_080319CC: .4byte gUnknown_2023BC4 +_080319D0: + movs r0, 0x64 + muls r0, r5 + ldr r1, _080319E8 @ =gUnknown_2024284 + adds r0, r1 + ldr r1, _080319EC @ =gUnknown_2023BC4 + ldrb r2, [r1] + lsls r2, 9 + adds r2, r7 + movs r1, 0x22 + bl sub_804037C + b _08031E56 + .align 2, 0 +_080319E8: .4byte gUnknown_2024284 +_080319EC: .4byte gUnknown_2023BC4 +_080319F0: + movs r0, 0x64 + muls r0, r5 + ldr r1, _08031A08 @ =gUnknown_2024284 + adds r0, r1 + ldr r1, _08031A0C @ =gUnknown_2023BC4 + ldrb r2, [r1] + lsls r2, 9 + adds r2, r7 + movs r1, 0x23 + bl sub_804037C + b _08031E56 + .align 2, 0 +_08031A08: .4byte gUnknown_2024284 +_08031A0C: .4byte gUnknown_2023BC4 +_08031A10: + movs r0, 0x64 + muls r0, r5 + ldr r1, _08031A28 @ =gUnknown_2024284 + adds r0, r1 + ldr r1, _08031A2C @ =gUnknown_2023BC4 + ldrb r2, [r1] + lsls r2, 9 + adds r2, r7 + movs r1, 0x24 + bl sub_804037C + b _08031E56 + .align 2, 0 +_08031A28: .4byte gUnknown_2024284 +_08031A2C: .4byte gUnknown_2023BC4 +_08031A30: + movs r0, 0x64 + muls r0, r5 + ldr r1, _08031A48 @ =gUnknown_2024284 + adds r0, r1 + ldr r1, _08031A4C @ =gUnknown_2023BC4 + ldrb r2, [r1] + lsls r2, 9 + adds r2, r7 + movs r1, 0x25 + bl sub_804037C + b _08031E56 + .align 2, 0 +_08031A48: .4byte gUnknown_2024284 +_08031A4C: .4byte gUnknown_2023BC4 +_08031A50: + movs r0, 0x64 + muls r0, r5 + ldr r1, _08031A68 @ =gUnknown_2024284 + adds r0, r1 + ldr r1, _08031A6C @ =gUnknown_2023BC4 + ldrb r2, [r1] + lsls r2, 9 + adds r2, r7 + movs r1, 0x26 + bl sub_804037C + b _08031E56 + .align 2, 0 +_08031A68: .4byte gUnknown_2024284 +_08031A6C: .4byte gUnknown_2023BC4 +_08031A70: + movs r0, 0x64 + adds r4, r5, 0 + muls r4, r0 + ldr r0, _08031AD8 @ =gUnknown_2024284 + adds r4, r0 + ldr r5, _08031ADC @ =gUnknown_2023BC4 + ldrb r2, [r5] + lsls r2, 9 + adds r2, r7 + adds r0, r4, 0 + movs r1, 0x27 + bl sub_804037C + ldrb r2, [r5] + lsls r2, 9 + adds r0, r7, 0x1 + adds r2, r0 + adds r0, r4, 0 + movs r1, 0x28 + bl sub_804037C + ldrb r2, [r5] + lsls r2, 9 + adds r0, r7, 0x2 + adds r2, r0 + adds r0, r4, 0 + movs r1, 0x29 + bl sub_804037C + ldrb r2, [r5] + lsls r2, 9 + adds r0, r7, 0x3 + adds r2, r0 + adds r0, r4, 0 + movs r1, 0x2A + bl sub_804037C + ldrb r2, [r5] + lsls r2, 9 + adds r0, r7, 0x4 + adds r2, r0 + adds r0, r4, 0 + movs r1, 0x2B + bl sub_804037C + ldrb r2, [r5] + lsls r2, 9 + adds r0, r7, 0x5 + adds r2, r0 + adds r0, r4, 0 + b _08031B90 + .align 2, 0 +_08031AD8: .4byte gUnknown_2024284 +_08031ADC: .4byte gUnknown_2023BC4 +_08031AE0: + movs r0, 0x64 + muls r0, r5 + ldr r1, _08031AF8 @ =gUnknown_2024284 + adds r0, r1 + ldr r1, _08031AFC @ =gUnknown_2023BC4 + ldrb r2, [r1] + lsls r2, 9 + adds r2, r7 + movs r1, 0x27 + bl sub_804037C + b _08031E56 + .align 2, 0 +_08031AF8: .4byte gUnknown_2024284 +_08031AFC: .4byte gUnknown_2023BC4 +_08031B00: + movs r0, 0x64 + muls r0, r5 + ldr r1, _08031B18 @ =gUnknown_2024284 + adds r0, r1 + ldr r1, _08031B1C @ =gUnknown_2023BC4 + ldrb r2, [r1] + lsls r2, 9 + adds r2, r7 + movs r1, 0x28 + bl sub_804037C + b _08031E56 + .align 2, 0 +_08031B18: .4byte gUnknown_2024284 +_08031B1C: .4byte gUnknown_2023BC4 +_08031B20: + movs r0, 0x64 + muls r0, r5 + ldr r1, _08031B38 @ =gUnknown_2024284 + adds r0, r1 + ldr r1, _08031B3C @ =gUnknown_2023BC4 + ldrb r2, [r1] + lsls r2, 9 + adds r2, r7 + movs r1, 0x29 + bl sub_804037C + b _08031E56 + .align 2, 0 +_08031B38: .4byte gUnknown_2024284 +_08031B3C: .4byte gUnknown_2023BC4 +_08031B40: + movs r0, 0x64 + muls r0, r5 + ldr r1, _08031B58 @ =gUnknown_2024284 + adds r0, r1 + ldr r1, _08031B5C @ =gUnknown_2023BC4 + ldrb r2, [r1] + lsls r2, 9 + adds r2, r7 + movs r1, 0x2A + bl sub_804037C + b _08031E56 + .align 2, 0 +_08031B58: .4byte gUnknown_2024284 +_08031B5C: .4byte gUnknown_2023BC4 +_08031B60: + movs r0, 0x64 + muls r0, r5 + ldr r1, _08031B78 @ =gUnknown_2024284 + adds r0, r1 + ldr r1, _08031B7C @ =gUnknown_2023BC4 + ldrb r2, [r1] + lsls r2, 9 + adds r2, r7 + movs r1, 0x2B + bl sub_804037C + b _08031E56 + .align 2, 0 +_08031B78: .4byte gUnknown_2024284 +_08031B7C: .4byte gUnknown_2023BC4 +_08031B80: + movs r0, 0x64 + muls r0, r5 + ldr r1, _08031B98 @ =gUnknown_2024284 + adds r0, r1 + ldr r1, _08031B9C @ =gUnknown_2023BC4 + ldrb r2, [r1] + lsls r2, 9 + adds r2, r7 +_08031B90: + movs r1, 0x2C + bl sub_804037C + b _08031E56 + .align 2, 0 +_08031B98: .4byte gUnknown_2024284 +_08031B9C: .4byte gUnknown_2023BC4 +_08031BA0: + movs r0, 0x64 + muls r0, r5 + ldr r1, _08031BB8 @ =gUnknown_2024284 + adds r0, r1 + ldr r1, _08031BBC @ =gUnknown_2023BC4 + ldrb r2, [r1] + lsls r2, 9 + adds r2, r7 + movs r1, 0 + bl sub_804037C + b _08031E56 + .align 2, 0 +_08031BB8: .4byte gUnknown_2024284 +_08031BBC: .4byte gUnknown_2023BC4 +_08031BC0: + movs r0, 0x64 + muls r0, r5 + ldr r1, _08031BD8 @ =gUnknown_2024284 + adds r0, r1 + ldr r1, _08031BDC @ =gUnknown_2023BC4 + ldrb r2, [r1] + lsls r2, 9 + adds r2, r7 + movs r1, 0x9 + bl sub_804037C + b _08031E56 + .align 2, 0 +_08031BD8: .4byte gUnknown_2024284 +_08031BDC: .4byte gUnknown_2023BC4 +_08031BE0: + movs r0, 0x64 + muls r0, r5 + ldr r1, _08031BF8 @ =gUnknown_2024284 + adds r0, r1 + ldr r1, _08031BFC @ =gUnknown_2023BC4 + ldrb r2, [r1] + lsls r2, 9 + adds r2, r7 + movs r1, 0x37 + bl sub_804037C + b _08031E56 + .align 2, 0 +_08031BF8: .4byte gUnknown_2024284 +_08031BFC: .4byte gUnknown_2023BC4 +_08031C00: + movs r0, 0x64 + muls r0, r5 + ldr r1, _08031C18 @ =gUnknown_2024284 + adds r0, r1 + ldr r1, _08031C1C @ =gUnknown_2023BC4 + ldrb r2, [r1] + lsls r2, 9 + adds r2, r7 + movs r1, 0x38 + bl sub_804037C + b _08031E56 + .align 2, 0 +_08031C18: .4byte gUnknown_2024284 +_08031C1C: .4byte gUnknown_2023BC4 +_08031C20: + movs r0, 0x64 + muls r0, r5 + ldr r1, _08031C38 @ =gUnknown_2024284 + adds r0, r1 + ldr r1, _08031C3C @ =gUnknown_2023BC4 + ldrb r2, [r1] + lsls r2, 9 + adds r2, r7 + movs r1, 0x39 + bl sub_804037C + b _08031E56 + .align 2, 0 +_08031C38: .4byte gUnknown_2024284 +_08031C3C: .4byte gUnknown_2023BC4 +_08031C40: + movs r0, 0x64 + muls r0, r5 + ldr r1, _08031C58 @ =gUnknown_2024284 + adds r0, r1 + ldr r1, _08031C5C @ =gUnknown_2023BC4 + ldrb r2, [r1] + lsls r2, 9 + adds r2, r7 + movs r1, 0x3A + bl sub_804037C + b _08031E56 + .align 2, 0 +_08031C58: .4byte gUnknown_2024284 +_08031C5C: .4byte gUnknown_2023BC4 +_08031C60: + movs r0, 0x64 + muls r0, r5 + ldr r1, _08031C78 @ =gUnknown_2024284 + adds r0, r1 + ldr r1, _08031C7C @ =gUnknown_2023BC4 + ldrb r2, [r1] + lsls r2, 9 + adds r2, r7 + movs r1, 0x3B + bl sub_804037C + b _08031E56 + .align 2, 0 +_08031C78: .4byte gUnknown_2024284 +_08031C7C: .4byte gUnknown_2023BC4 +_08031C80: + movs r0, 0x64 + muls r0, r5 + ldr r1, _08031C98 @ =gUnknown_2024284 + adds r0, r1 + ldr r1, _08031C9C @ =gUnknown_2023BC4 + ldrb r2, [r1] + lsls r2, 9 + adds r2, r7 + movs r1, 0x3C + bl sub_804037C + b _08031E56 + .align 2, 0 +_08031C98: .4byte gUnknown_2024284 +_08031C9C: .4byte gUnknown_2023BC4 +_08031CA0: + movs r0, 0x64 + muls r0, r5 + ldr r1, _08031CB8 @ =gUnknown_2024284 + adds r0, r1 + ldr r1, _08031CBC @ =gUnknown_2023BC4 + ldrb r2, [r1] + lsls r2, 9 + adds r2, r7 + movs r1, 0x3D + bl sub_804037C + b _08031E56 + .align 2, 0 +_08031CB8: .4byte gUnknown_2024284 +_08031CBC: .4byte gUnknown_2023BC4 +_08031CC0: + movs r0, 0x64 + muls r0, r5 + ldr r1, _08031CD8 @ =gUnknown_2024284 + adds r0, r1 + ldr r1, _08031CDC @ =gUnknown_2023BC4 + ldrb r2, [r1] + lsls r2, 9 + adds r2, r7 + movs r1, 0x3E + bl sub_804037C + b _08031E56 + .align 2, 0 +_08031CD8: .4byte gUnknown_2024284 +_08031CDC: .4byte gUnknown_2023BC4 +_08031CE0: + movs r0, 0x64 + muls r0, r5 + ldr r1, _08031CF8 @ =gUnknown_2024284 + adds r0, r1 + ldr r1, _08031CFC @ =gUnknown_2023BC4 + ldrb r2, [r1] + lsls r2, 9 + adds r2, r7 + movs r1, 0x3F + bl sub_804037C + b _08031E56 + .align 2, 0 +_08031CF8: .4byte gUnknown_2024284 +_08031CFC: .4byte gUnknown_2023BC4 +_08031D00: + movs r0, 0x64 + muls r0, r5 + ldr r1, _08031D18 @ =gUnknown_2024284 + adds r0, r1 + ldr r1, _08031D1C @ =gUnknown_2023BC4 + ldrb r2, [r1] + lsls r2, 9 + adds r2, r7 + movs r1, 0x16 + bl sub_804037C + b _08031E56 + .align 2, 0 +_08031D18: .4byte gUnknown_2024284 +_08031D1C: .4byte gUnknown_2023BC4 +_08031D20: + movs r0, 0x64 + muls r0, r5 + ldr r1, _08031D38 @ =gUnknown_2024284 + adds r0, r1 + ldr r1, _08031D3C @ =gUnknown_2023BC4 + ldrb r2, [r1] + lsls r2, 9 + adds r2, r7 + movs r1, 0x17 + bl sub_804037C + b _08031E56 + .align 2, 0 +_08031D38: .4byte gUnknown_2024284 +_08031D3C: .4byte gUnknown_2023BC4 +_08031D40: + movs r0, 0x64 + muls r0, r5 + ldr r1, _08031D58 @ =gUnknown_2024284 + adds r0, r1 + ldr r1, _08031D5C @ =gUnknown_2023BC4 + ldrb r2, [r1] + lsls r2, 9 + adds r2, r7 + movs r1, 0x18 + bl sub_804037C + b _08031E56 + .align 2, 0 +_08031D58: .4byte gUnknown_2024284 +_08031D5C: .4byte gUnknown_2023BC4 +_08031D60: + movs r0, 0x64 + muls r0, r5 + ldr r1, _08031D78 @ =gUnknown_2024284 + adds r0, r1 + ldr r1, _08031D7C @ =gUnknown_2023BC4 + ldrb r2, [r1] + lsls r2, 9 + adds r2, r7 + movs r1, 0x21 + bl sub_804037C + b _08031E56 + .align 2, 0 +_08031D78: .4byte gUnknown_2024284 +_08031D7C: .4byte gUnknown_2023BC4 +_08031D80: + movs r0, 0x64 + muls r0, r5 + ldr r1, _08031D98 @ =gUnknown_2024284 + adds r0, r1 + ldr r1, _08031D9C @ =gUnknown_2023BC4 + ldrb r2, [r1] + lsls r2, 9 + adds r2, r7 + movs r1, 0x2F + bl sub_804037C + b _08031E56 + .align 2, 0 +_08031D98: .4byte gUnknown_2024284 +_08031D9C: .4byte gUnknown_2023BC4 +_08031DA0: + movs r0, 0x64 + muls r0, r5 + ldr r1, _08031DB8 @ =gUnknown_2024284 + adds r0, r1 + ldr r1, _08031DBC @ =gUnknown_2023BC4 + ldrb r2, [r1] + lsls r2, 9 + adds r2, r7 + movs r1, 0x30 + bl sub_804037C + b _08031E56 + .align 2, 0 +_08031DB8: .4byte gUnknown_2024284 +_08031DBC: .4byte gUnknown_2023BC4 +_08031DC0: + movs r0, 0x64 + muls r0, r5 + ldr r1, _08031DD8 @ =gUnknown_2024284 + adds r0, r1 + ldr r1, _08031DDC @ =gUnknown_2023BC4 + ldrb r2, [r1] + lsls r2, 9 + adds r2, r7 + movs r1, 0x32 + bl sub_804037C + b _08031E56 + .align 2, 0 +_08031DD8: .4byte gUnknown_2024284 +_08031DDC: .4byte gUnknown_2023BC4 +_08031DE0: + movs r0, 0x64 + muls r0, r5 + ldr r1, _08031DF8 @ =gUnknown_2024284 + adds r0, r1 + ldr r1, _08031DFC @ =gUnknown_2023BC4 + ldrb r2, [r1] + lsls r2, 9 + adds r2, r7 + movs r1, 0x33 + bl sub_804037C + b _08031E56 + .align 2, 0 +_08031DF8: .4byte gUnknown_2024284 +_08031DFC: .4byte gUnknown_2023BC4 +_08031E00: + movs r0, 0x64 + muls r0, r5 + ldr r1, _08031E18 @ =gUnknown_2024284 + adds r0, r1 + ldr r1, _08031E1C @ =gUnknown_2023BC4 + ldrb r2, [r1] + lsls r2, 9 + adds r2, r7 + movs r1, 0x34 + bl sub_804037C + b _08031E56 + .align 2, 0 +_08031E18: .4byte gUnknown_2024284 +_08031E1C: .4byte gUnknown_2023BC4 +_08031E20: + movs r0, 0x64 + muls r0, r5 + ldr r1, _08031E38 @ =gUnknown_2024284 + adds r0, r1 + ldr r1, _08031E3C @ =gUnknown_2023BC4 + ldrb r2, [r1] + lsls r2, 9 + adds r2, r7 + movs r1, 0x35 + bl sub_804037C + b _08031E56 + .align 2, 0 +_08031E38: .4byte gUnknown_2024284 +_08031E3C: .4byte gUnknown_2023BC4 +_08031E40: + movs r0, 0x64 + muls r0, r5 + ldr r1, _08031E80 @ =gUnknown_2024284 + adds r0, r1 + ldr r1, _08031E84 @ =gUnknown_2023BC4 + ldrb r2, [r1] + lsls r2, 9 + adds r2, r7 + movs r1, 0x36 + bl sub_804037C +_08031E56: + ldr r2, _08031E88 @ =gUnknown_2023BCE + ldr r0, _08031E84 @ =gUnknown_2023BC4 + ldrb r1, [r0] + lsls r0, r1, 1 + adds r0, r2 + ldrh r2, [r0] + movs r0, 0x64 + muls r0, r2 + ldr r2, _08031E80 @ =gUnknown_2024284 + adds r0, r2 + bl sub_8035244 + add sp, 0x34 + pop {r3-r5} + mov r8, r3 + mov r9, r4 + mov r10, r5 + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_08031E80: .4byte gUnknown_2024284 +_08031E84: .4byte gUnknown_2023BC4 +_08031E88: .4byte gUnknown_2023BCE + thumb_func_end sub_8031490 + + thumb_func_start sub_8031E8C +sub_8031E8C: @ 8031E8C + push {r4-r7,lr} + ldr r1, _08031EF0 @ =gUnknown_2023BCE + ldr r7, _08031EF4 @ =gUnknown_2023BC4 + ldrb r2, [r7] + lsls r0, r2, 1 + adds r0, r1 + ldrh r1, [r0] + movs r0, 0x64 + adds r3, r1, 0 + muls r3, r0 + ldr r4, _08031EF8 @ =gUnknown_2022BC4 + lsls r2, 9 + adds r0, r4, 0x1 + adds r0, r2, r0 + ldrb r0, [r0] + ldr r1, _08031EFC @ =gUnknown_2024284 + adds r0, r1 + adds r5, r3, r0 + movs r3, 0 + adds r0, r4, 0x2 + adds r2, r0 + ldrb r2, [r2] + cmp r3, r2 + bcs _08031EE4 + adds r6, r4, 0 + adds r2, r7, 0 + adds r4, r0, 0 +_08031EC2: + adds r1, r5, r3 + ldrb r0, [r2] + lsls r0, 9 + adds r0, 0x3 + adds r0, r3, r0 + adds r0, r6 + ldrb r0, [r0] + strb r0, [r1] + adds r0, r3, 0x1 + lsls r0, 24 + lsrs r3, r0, 24 + ldrb r0, [r2] + lsls r0, 9 + adds r0, r4 + ldrb r0, [r0] + cmp r3, r0 + bcc _08031EC2 +_08031EE4: + bl sub_802E33C + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_08031EF0: .4byte gUnknown_2023BCE +_08031EF4: .4byte gUnknown_2023BC4 +_08031EF8: .4byte gUnknown_2022BC4 +_08031EFC: .4byte gUnknown_2024284 + thumb_func_end sub_8031E8C + + thumb_func_start sub_8031F00 +sub_8031F00: @ 8031F00 + push {r4,lr} + ldr r2, _08031F4C @ =gUnknown_2023BCE + ldr r4, _08031F50 @ =gUnknown_2023BC4 + ldrb r1, [r4] + lsls r0, r1, 1 + adds r0, r2 + ldrh r2, [r0] + movs r0, 0x64 + muls r0, r2 + ldr r2, _08031F54 @ =gUnknown_2024284 + adds r0, r2 + bl sub_8034498 + ldr r2, _08031F58 @ =gUnknown_202063C + ldr r0, _08031F5C @ =gUnknown_2023D44 + ldrb r3, [r4] + adds r0, r3, r0 + ldrb r0, [r0] + lsls r1, r0, 4 + adds r1, r0 + lsls r1, 2 + adds r1, r2 + lsls r3, 4 + ldrb r2, [r1, 0x5] + movs r0, 0xF + ands r0, r2 + orrs r0, r3 + strb r0, [r1, 0x5] + ldr r1, _08031F60 @ =gUnknown_3004FE0 + ldrb r0, [r4] + lsls r0, 2 + adds r0, r1 + ldr r1, _08031F64 @ =sub_802E404 + str r1, [r0] + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_08031F4C: .4byte gUnknown_2023BCE +_08031F50: .4byte gUnknown_2023BC4 +_08031F54: .4byte gUnknown_2024284 +_08031F58: .4byte gUnknown_202063C +_08031F5C: .4byte gUnknown_2023D44 +_08031F60: .4byte gUnknown_3004FE0 +_08031F64: .4byte sub_802E404 + thumb_func_end sub_8031F00 + + thumb_func_start sub_8031F68 +sub_8031F68: @ 8031F68 + push {r4-r6,lr} + ldr r5, _08031FD4 @ =gUnknown_2023BC4 + ldrb r0, [r5] + ldr r4, _08031FD8 @ =gUnknown_2022BC4 + lsls r1, r0, 9 + adds r6, r4, 0x2 + adds r1, r6 + ldrb r1, [r1] + bl sub_803589C + ldr r2, _08031FDC @ =gUnknown_2023BCE + ldrb r0, [r5] + lsls r1, r0, 1 + adds r1, r2 + lsls r0, 9 + adds r4, 0x1 + adds r0, r4 + ldrb r0, [r0] + movs r4, 0 + strh r0, [r1] + ldrb r1, [r5] + lsls r0, r1, 1 + adds r0, r2 + ldrh r2, [r0] + movs r0, 0x64 + muls r0, r2 + ldr r2, _08031FE0 @ =gUnknown_2024284 + adds r0, r2 + bl sub_8034498 + ldr r1, _08031FE4 @ =gUnknown_2023FF8 + ldrb r0, [r5] + adds r0, r1 + strb r4, [r0] + ldr r1, _08031FE8 @ =gUnknown_2023FFC + ldrb r0, [r5] + adds r0, r1 + strb r4, [r0] + ldrb r0, [r5] + lsls r1, r0, 9 + adds r1, r6 + ldrb r1, [r1] + bl sub_8031FF4 + ldr r1, _08031FEC @ =gUnknown_3004FE0 + ldrb r0, [r5] + lsls r0, 2 + adds r0, r1 + ldr r1, _08031FF0 @ =sub_802FD18 + str r1, [r0] + pop {r4-r6} + pop {r0} + bx r0 + .align 2, 0 +_08031FD4: .4byte gUnknown_2023BC4 +_08031FD8: .4byte gUnknown_2022BC4 +_08031FDC: .4byte gUnknown_2023BCE +_08031FE0: .4byte gUnknown_2024284 +_08031FE4: .4byte gUnknown_2023FF8 +_08031FE8: .4byte gUnknown_2023FFC +_08031FEC: .4byte gUnknown_3004FE0 +_08031FF0: .4byte sub_802FD18 + thumb_func_end sub_8031F68 + + thumb_func_start sub_8031FF4 +sub_8031FF4: @ 8031FF4 + push {r4-r6,lr} + mov r6, r10 + mov r5, r9 + mov r4, r8 + push {r4-r6} + adds r6, r0, 0 + lsls r6, 24 + lsrs r6, 24 + lsls r1, 24 + lsrs r1, 24 + adds r0, r6, 0 + bl sub_803589C + ldr r0, _08032138 @ =gUnknown_2023BCE + lsls r2, r6, 1 + adds r2, r0 + ldr r0, _0803213C @ =gUnknown_2022BC4 + lsls r1, r6, 9 + adds r0, 0x1 + adds r1, r0 + ldrb r0, [r1] + strh r0, [r2] + ldrh r1, [r2] + movs r0, 0x64 + muls r0, r1 + ldr r1, _08032140 @ =gUnknown_2024284 + adds r0, r1 + movs r1, 0xB + bl sub_803FBE8 + mov r8, r0 + lsls r0, 16 + lsrs r0, 16 + mov r8, r0 + ldr r0, _08032144 @ =sub_8033E3C + bl sub_8044EF8 + ldr r1, _08032148 @ =gUnknown_3004FFC + mov r9, r1 + add r9, r6 + mov r1, r9 + strb r0, [r1] + adds r0, r6, 0 + bl sub_80751D8 + adds r1, r0, 0 + lsls r1, 24 + lsrs r1, 24 + mov r0, r8 + bl sub_803F7D4 + ldr r0, _0803214C @ =gUnknown_20244DC + mov r10, r0 + adds r0, r6, 0 + movs r1, 0x2 + bl sub_8074480 + adds r5, r0, 0 + lsls r5, 24 + lsrs r5, 24 + adds r0, r6, 0 + bl sub_80748A8 + adds r4, r0, 0 + lsls r4, 24 + lsrs r4, 24 + adds r0, r6, 0 + bl sub_807685C + adds r3, r0, 0 + lsls r3, 24 + lsrs r3, 24 + mov r0, r10 + adds r1, r5, 0 + adds r2, r4, 0 + bl sub_8006F8C + ldr r4, _08032150 @ =gUnknown_2023D44 + adds r4, r6, r4 + strb r0, [r4] + ldr r5, _08032154 @ =gUnknown_202063C + mov r0, r9 + ldrb r1, [r0] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r5 + ldrb r1, [r4] + strh r1, [r0, 0x30] + ldrb r1, [r4] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r5 + strh r6, [r0, 0x2E] + ldrb r1, [r4] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r5 + mov r1, r8 + strh r1, [r0, 0x32] + ldrb r0, [r4] + lsls r1, r0, 4 + adds r1, r0 + lsls r1, 2 + adds r1, r5 + lsls r3, r6, 4 + ldrb r2, [r1, 0x5] + movs r0, 0xF + ands r0, r2 + orrs r0, r3 + strb r0, [r1, 0x5] + ldrb r1, [r4] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r5 + ldr r1, _08032158 @ =gUnknown_2024024 + adds r6, r1 + ldrb r1, [r6] + bl sub_800838C + ldrb r1, [r4] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r5 + adds r0, 0x3E + ldrb r1, [r0] + movs r2, 0x4 + orrs r1, r2 + strb r1, [r0] + ldrb r1, [r4] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r1, r5, 0 + adds r1, 0x1C + adds r0, r1 + ldr r1, _0803215C @ =nullsub_8 + str r1, [r0] + movs r0, 0 + movs r1, 0xFF + bl sub_804A938 + mov r1, r9 + ldrb r2, [r1] + lsls r1, r2, 4 + adds r1, r2 + lsls r1, 2 + adds r1, r5 + lsls r0, 24 + lsrs r0, 24 + strh r0, [r1, 0x2E] + pop {r3-r5} + mov r8, r3 + mov r9, r4 + mov r10, r5 + pop {r4-r6} + pop {r0} + bx r0 + .align 2, 0 +_08032138: .4byte gUnknown_2023BCE +_0803213C: .4byte gUnknown_2022BC4 +_08032140: .4byte gUnknown_2024284 +_08032144: .4byte sub_8033E3C +_08032148: .4byte gUnknown_3004FFC +_0803214C: .4byte gUnknown_20244DC +_08032150: .4byte gUnknown_2023D44 +_08032154: .4byte gUnknown_202063C +_08032158: .4byte gUnknown_2024024 +_0803215C: .4byte nullsub_8 + thumb_func_end sub_8031FF4 + + thumb_func_start sub_8032160 +sub_8032160: @ 8032160 + push {r4-r6,lr} + ldr r1, _08032194 @ =gUnknown_2022BC4 + ldr r6, _08032198 @ =gUnknown_2023BC4 + ldrb r2, [r6] + lsls r0, r2, 9 + adds r1, 0x1 + adds r0, r1 + ldrb r3, [r0] + cmp r3, 0 + bne _080321A8 + ldr r0, _0803219C @ =gUnknown_2024018 + ldr r0, [r0] + ldr r1, [r0, 0x4] + lsls r0, r2, 1 + adds r0, r2 + lsls r0, 2 + adds r0, r1 + strb r3, [r0, 0x4] + ldr r1, _080321A0 @ =gUnknown_3004FE0 + ldrb r0, [r6] + lsls r0, 2 + adds r0, r1 + ldr r1, _080321A4 @ =sub_80321F0 + str r1, [r0] + b _080321DE + .align 2, 0 +_08032194: .4byte gUnknown_2022BC4 +_08032198: .4byte gUnknown_2023BC4 +_0803219C: .4byte gUnknown_2024018 +_080321A0: .4byte gUnknown_3004FE0 +_080321A4: .4byte sub_80321F0 +_080321A8: + ldr r5, _080321E4 @ =gUnknown_2023D44 + adds r0, r2, r5 + ldrb r1, [r0] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + ldr r4, _080321E8 @ =gUnknown_202063C + adds r0, r4 + bl sub_80077D8 + ldrb r0, [r6] + adds r0, r5 + ldrb r1, [r0] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r4 + bl sub_8007280 + ldr r1, _080321EC @ =gUnknown_3004FF0 + ldrb r0, [r6] + adds r0, r1 + ldrb r0, [r0] + bl sub_8048188 + bl sub_802E33C +_080321DE: + pop {r4-r6} + pop {r0} + bx r0 + .align 2, 0 +_080321E4: .4byte gUnknown_2023D44 +_080321E8: .4byte gUnknown_202063C +_080321EC: .4byte gUnknown_3004FF0 + thumb_func_end sub_8032160 + + thumb_func_start sub_80321F0 +sub_80321F0: @ 80321F0 + push {r4-r6,lr} + ldr r6, _08032210 @ =gUnknown_2024018 + ldr r4, [r6] + ldr r5, _08032214 @ =gUnknown_2023BC4 + ldrb r2, [r5] + ldr r1, [r4, 0x4] + lsls r0, r2, 1 + adds r0, r2 + lsls r0, 2 + adds r3, r0, r1 + ldrb r0, [r3, 0x4] + cmp r0, 0 + beq _08032218 + cmp r0, 0x1 + beq _08032246 + b _0803226E + .align 2, 0 +_08032210: .4byte gUnknown_2024018 +_08032214: .4byte gUnknown_2023BC4 +_08032218: + ldr r1, [r4] + lsls r0, r2, 2 + adds r0, r1 + ldrb r1, [r0] + movs r0, 0x4 + ands r0, r1 + cmp r0, 0 + beq _08032232 + adds r0, r2, 0 + adds r1, r2, 0 + movs r3, 0x5 + bl sub_80341D8 +_08032232: + ldr r0, [r6] + ldrb r1, [r5] + ldr r2, [r0, 0x4] + lsls r0, r1, 1 + adds r0, r1 + lsls r0, 2 + adds r0, r2 + movs r1, 0x1 + strb r1, [r0, 0x4] + b _0803226E +_08032246: + ldrb r1, [r3] + movs r0, 0x40 + ands r0, r1 + lsls r0, 24 + lsrs r0, 24 + cmp r0, 0 + bne _0803226E + strb r0, [r3, 0x4] + ldrb r2, [r5] + adds r0, r2, 0 + adds r1, r2, 0 + movs r3, 0x1 + bl sub_80341D8 + ldr r1, _08032274 @ =gUnknown_3004FE0 + ldrb r0, [r5] + lsls r0, 2 + adds r0, r1 + ldr r1, _08032278 @ =sub_80305A0 + str r1, [r0] +_0803226E: + pop {r4-r6} + pop {r0} + bx r0 + .align 2, 0 +_08032274: .4byte gUnknown_3004FE0 +_08032278: .4byte sub_80305A0 + thumb_func_end sub_80321F0 + + thumb_func_start sub_803227C +sub_803227C: @ 803227C + push {r4-r7,lr} + mov r7, r8 + push {r7} + ldr r0, _080322A4 @ =gUnknown_2022B4C + ldr r0, [r0] + movs r1, 0x40 + ands r0, r1 + cmp r0, 0 + beq _080322AC + ldr r0, _080322A8 @ =gUnknown_2023BC4 + ldrb r0, [r0] + bl sub_80751D8 + movs r1, 0x2 + ands r1, r0 + movs r7, 0x20 + cmp r1, 0 + beq _080322AE + movs r7, 0x5A + b _080322AE + .align 2, 0 +_080322A4: .4byte gUnknown_2022B4C +_080322A8: .4byte gUnknown_2023BC4 +_080322AC: + movs r7, 0x50 +_080322AE: + ldr r0, _08032320 @ =gUnknown_2022B4C + ldr r0, [r0] + movs r1, 0x2 + ands r0, r1 + cmp r0, 0 + beq _0803233C + bl sub_800A404 + ldr r5, _08032324 @ =gUnknown_202273C + lsls r0, 24 + lsrs r0, 24 + lsls r1, r0, 3 + subs r1, r0 + lsls r1, 2 + adds r1, r5 + movs r4, 0xFF + ldrb r0, [r1] + cmp r0, 0x2 + beq _08032306 + bl sub_800A404 + lsls r0, 24 + lsrs r0, 24 + lsls r1, r0, 3 + subs r1, r0 + lsls r1, 2 + adds r1, r5 + ldrh r1, [r1] + adds r0, r4, 0 + ands r0, r1 + cmp r0, 0x1 + beq _08032306 + bl sub_800A404 + lsls r0, 24 + lsrs r0, 24 + lsls r1, r0, 3 + subs r1, r0 + lsls r1, 2 + adds r1, r5 + ldrh r0, [r1] + ands r4, r0 + cmp r4, 0x3 + bne _08032328 +_08032306: + bl sub_800A404 + ldr r2, _08032324 @ =gUnknown_202273C + lsls r0, 24 + lsrs r0, 24 + lsls r1, r0, 3 + subs r1, r0 + lsls r1, 2 + adds r1, r2 + ldrb r0, [r1, 0x13] + adds r4, r0, 0x2 + b _08032342 + .align 2, 0 +_08032320: .4byte gUnknown_2022B4C +_08032324: .4byte gUnknown_202273C +_08032328: + bl sub_800A404 + lsls r0, 24 + lsrs r0, 24 + lsls r1, r0, 3 + subs r1, r0 + lsls r1, 2 + adds r1, r5 + ldrb r4, [r1, 0x13] + b _08032342 +_0803233C: + ldr r0, _08032400 @ =gUnknown_300500C + ldr r0, [r0] + ldrb r4, [r0, 0x8] +_08032342: + ldr r5, _08032404 @ =gUnknown_2023BC4 + ldrb r1, [r5] + adds r0, r4, 0 + bl sub_8034750 + ldrb r0, [r5] + bl sub_80751D8 + adds r1, r0, 0 + lsls r1, 24 + lsrs r1, 24 + adds r0, r4, 0 + bl sub_803F864 + ldr r6, _08032408 @ =gUnknown_20244DC + mov r8, r7 + ldr r0, _0803240C @ =gUnknown_8239F8C + lsls r4, 2 + adds r4, r0 + ldrb r0, [r4] + movs r4, 0x8 + subs r4, r0 + lsls r4, 18 + movs r0, 0xA0 + lsls r0, 15 + adds r4, r0 + asrs r4, 16 + ldrb r0, [r5] + bl sub_807685C + adds r3, r0, 0 + lsls r3, 24 + lsrs r3, 24 + adds r0, r6, 0 + mov r1, r8 + adds r2, r4, 0 + bl sub_8006F8C + ldr r6, _08032410 @ =gUnknown_2023D44 + ldrb r1, [r5] + adds r1, r6 + strb r0, [r1] + ldr r4, _08032414 @ =gUnknown_202063C + ldrb r3, [r5] + adds r0, r3, r6 + ldrb r0, [r0] + lsls r1, r0, 4 + adds r1, r0 + lsls r1, 2 + adds r1, r4 + lsls r3, 4 + ldrb r2, [r1, 0x5] + movs r0, 0xF + ands r0, r2 + orrs r0, r3 + strb r0, [r1, 0x5] + ldrb r0, [r5] + adds r0, r6 + ldrb r1, [r0] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r4 + movs r1, 0xF0 + strh r1, [r0, 0x24] + ldrb r0, [r5] + adds r0, r6 + ldrb r1, [r0] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r4 + ldr r1, _08032418 @ =0x0000fffe + strh r1, [r0, 0x2E] + ldrb r0, [r5] + adds r0, r6 + ldrb r1, [r0] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r4, 0x1C + adds r0, r4 + ldr r1, _0803241C @ =sub_8033EEC + str r1, [r0] + ldr r1, _08032420 @ =gUnknown_3004FE0 + ldrb r0, [r5] + lsls r0, 2 + adds r0, r1 + ldr r1, _08032424 @ =sub_802F730 + str r1, [r0] + pop {r3} + mov r8, r3 + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_08032400: .4byte gUnknown_300500C +_08032404: .4byte gUnknown_2023BC4 +_08032408: .4byte gUnknown_20244DC +_0803240C: .4byte gUnknown_8239F8C +_08032410: .4byte gUnknown_2023D44 +_08032414: .4byte gUnknown_202063C +_08032418: .4byte 0x0000fffe +_0803241C: .4byte sub_8033EEC +_08032420: .4byte gUnknown_3004FE0 +_08032424: .4byte sub_802F730 + thumb_func_end sub_803227C + + thumb_func_start sub_8032428 +sub_8032428: @ 8032428 + push {r4-r6,lr} + ldr r0, _0803249C @ =gUnknown_2022B4C + ldr r0, [r0] + movs r1, 0x2 + ands r0, r1 + cmp r0, 0 + beq _080324B8 + bl sub_800A404 + ldr r5, _080324A0 @ =gUnknown_202273C + lsls r0, 24 + lsrs r0, 24 + lsls r1, r0, 3 + subs r1, r0 + lsls r1, 2 + adds r1, r5 + movs r4, 0xFF + ldrb r0, [r1] + cmp r0, 0x2 + beq _08032482 + bl sub_800A404 + lsls r0, 24 + lsrs r0, 24 + lsls r1, r0, 3 + subs r1, r0 + lsls r1, 2 + adds r1, r5 + ldrh r1, [r1] + adds r0, r4, 0 + ands r0, r1 + cmp r0, 0x1 + beq _08032482 + bl sub_800A404 + lsls r0, 24 + lsrs r0, 24 + lsls r1, r0, 3 + subs r1, r0 + lsls r1, 2 + adds r1, r5 + ldrh r0, [r1] + ands r4, r0 + cmp r4, 0x3 + bne _080324A4 +_08032482: + bl sub_800A404 + ldr r2, _080324A0 @ =gUnknown_202273C + lsls r0, 24 + lsrs r0, 24 + lsls r1, r0, 3 + subs r1, r0 + lsls r1, 2 + adds r1, r2 + ldrb r0, [r1, 0x13] + adds r4, r0, 0x2 + b _080324BE + .align 2, 0 +_0803249C: .4byte gUnknown_2022B4C +_080324A0: .4byte gUnknown_202273C +_080324A4: + bl sub_800A404 + lsls r0, 24 + lsrs r0, 24 + lsls r1, r0, 3 + subs r1, r0 + lsls r1, 2 + adds r1, r5 + ldrb r4, [r1, 0x13] + b _080324BE +_080324B8: + ldr r0, _08032568 @ =gUnknown_300500C + ldr r0, [r0] + ldrb r4, [r0, 0x8] +_080324BE: + ldr r5, _0803256C @ =gUnknown_2023BC4 + ldrb r1, [r5] + adds r0, r4, 0 + bl sub_8034750 + ldrb r0, [r5] + bl sub_80751D8 + adds r1, r0, 0 + lsls r1, 24 + lsrs r1, 24 + adds r0, r4, 0 + bl sub_803F864 + ldr r0, _08032570 @ =gUnknown_20244DC + ldr r1, _08032574 @ =gUnknown_8239F8C + lsls r4, 2 + adds r4, r1 + ldrb r1, [r4] + movs r2, 0x8 + subs r2, r1 + lsls r2, 18 + movs r1, 0xA0 + lsls r1, 15 + adds r2, r1 + asrs r2, 16 + movs r1, 0x50 + movs r3, 0x1E + bl sub_8006F8C + ldr r6, _08032578 @ =gUnknown_2023D44 + ldrb r1, [r5] + adds r1, r6 + strb r0, [r1] + ldr r4, _0803257C @ =gUnknown_202063C + ldrb r3, [r5] + adds r0, r3, r6 + ldrb r0, [r0] + lsls r1, r0, 4 + adds r1, r0 + lsls r1, 2 + adds r1, r4 + lsls r3, 4 + ldrb r2, [r1, 0x5] + movs r0, 0xF + ands r0, r2 + orrs r0, r3 + strb r0, [r1, 0x5] + ldrb r0, [r5] + adds r0, r6 + ldrb r1, [r0] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r4 + ldr r1, _08032580 @ =0x0000ffa0 + strh r1, [r0, 0x24] + ldrb r0, [r5] + adds r0, r6 + ldrb r1, [r0] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r4 + movs r1, 0x2 + strh r1, [r0, 0x2E] + ldrb r0, [r5] + adds r0, r6 + ldrb r1, [r0] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r4, 0x1C + adds r0, r4 + ldr r1, _08032584 @ =sub_8033EEC + str r1, [r0] + ldr r1, _08032588 @ =gUnknown_3004FE0 + ldrb r0, [r5] + lsls r0, 2 + adds r0, r1 + ldr r1, _0803258C @ =sub_802F768 + str r1, [r0] + pop {r4-r6} + pop {r0} + bx r0 + .align 2, 0 +_08032568: .4byte gUnknown_300500C +_0803256C: .4byte gUnknown_2023BC4 +_08032570: .4byte gUnknown_20244DC +_08032574: .4byte gUnknown_8239F8C +_08032578: .4byte gUnknown_2023D44 +_0803257C: .4byte gUnknown_202063C +_08032580: .4byte 0x0000ffa0 +_08032584: .4byte sub_8033EEC +_08032588: .4byte gUnknown_3004FE0 +_0803258C: .4byte sub_802F768 + thumb_func_end sub_8032428 + + thumb_func_start sub_8032590 +sub_8032590: @ 8032590 + push {r4-r6,lr} + ldr r5, _08032630 @ =gUnknown_2023D44 + ldr r6, _08032634 @ =gUnknown_2023BC4 + ldrb r0, [r6] + adds r0, r5 + ldrb r1, [r0] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + ldr r4, _08032638 @ =gUnknown_202063C + adds r0, r4 + bl sub_80750FC + ldrb r0, [r6] + adds r0, r5 + ldrb r1, [r0] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r4 + movs r1, 0x32 + strh r1, [r0, 0x2E] + ldrb r0, [r6] + adds r0, r5 + ldrb r1, [r0] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r4 + ldr r1, _0803263C @ =0x0000ffd8 + strh r1, [r0, 0x32] + ldrb r0, [r6] + adds r0, r5 + ldrb r1, [r0] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r4 + ldrh r1, [r0, 0x22] + strh r1, [r0, 0x36] + ldrb r0, [r6] + adds r0, r5 + ldrb r1, [r0] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r1, r4, 0 + adds r1, 0x1C + adds r0, r1 + ldr r1, _08032640 @ =sub_8075590 + str r1, [r0] + ldrb r0, [r6] + adds r0, r5 + ldrb r1, [r0] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r4 + ldr r1, _08032644 @ =nullsub_8 + bl sub_8074A68 + ldrb r0, [r6] + adds r0, r5 + ldrb r1, [r0] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r4 + movs r1, 0x1 + bl sub_800838C + ldr r1, _08032648 @ =gUnknown_3004FE0 + ldrb r0, [r6] + lsls r0, 2 + adds r0, r1 + ldr r1, _0803264C @ =sub_802F7A0 + str r1, [r0] + pop {r4-r6} + pop {r0} + bx r0 + .align 2, 0 +_08032630: .4byte gUnknown_2023D44 +_08032634: .4byte gUnknown_2023BC4 +_08032638: .4byte gUnknown_202063C +_0803263C: .4byte 0x0000ffd8 +_08032640: .4byte sub_8075590 +_08032644: .4byte nullsub_8 +_08032648: .4byte gUnknown_3004FE0 +_0803264C: .4byte sub_802F7A0 + thumb_func_end sub_8032590 + + thumb_func_start sub_8032650 +sub_8032650: @ 8032650 + push {r4-r6,lr} + ldr r6, _0803269C @ =gUnknown_2024018 + ldr r4, [r6] + ldr r5, _080326A0 @ =gUnknown_2023BC4 + ldrb r2, [r5] + ldr r0, [r4, 0x4] + lsls r1, r2, 1 + adds r1, r2 + lsls r1, 2 + adds r3, r1, r0 + ldrb r0, [r3, 0x4] + cmp r0, 0 + bne _080326A4 + ldr r1, [r4] + lsls r0, r2, 2 + adds r0, r1 + ldrb r1, [r0] + movs r0, 0x4 + ands r0, r1 + cmp r0, 0 + beq _08032684 + adds r0, r2, 0 + adds r1, r2, 0 + movs r3, 0x5 + bl sub_80341D8 +_08032684: + ldr r0, [r6] + ldrb r1, [r5] + ldr r2, [r0, 0x4] + lsls r0, r1, 1 + adds r0, r1 + lsls r0, 2 + adds r0, r2 + ldrb r1, [r0, 0x4] + adds r1, 0x1 + strb r1, [r0, 0x4] + b _0803271A + .align 2, 0 +_0803269C: .4byte gUnknown_2024018 +_080326A0: .4byte gUnknown_2023BC4 +_080326A4: + ldrb r1, [r3] + movs r0, 0x40 + ands r0, r1 + lsls r0, 24 + lsrs r4, r0, 24 + cmp r4, 0 + bne _0803271A + strb r4, [r3, 0x4] + ldr r2, _08032720 @ =gUnknown_2023BCE + ldrb r1, [r5] + lsls r0, r1, 1 + adds r0, r2 + ldrh r2, [r0] + movs r0, 0x64 + muls r0, r2 + ldr r2, _08032724 @ =gUnknown_2024284 + adds r0, r2 + bl sub_8035244 + movs r1, 0x40 + negs r1, r1 + movs r0, 0x10 + bl sub_80722F4 + ldr r2, _08032728 @ =gUnknown_202063C + ldr r3, _0803272C @ =gUnknown_2023D44 + ldrb r0, [r5] + adds r0, r3 + ldrb r1, [r0] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r2 + strh r4, [r0, 0x30] + ldrb r0, [r5] + adds r0, r3 + ldrb r1, [r0] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r2 + movs r1, 0x5 + strh r1, [r0, 0x32] + ldrb r0, [r5] + adds r0, r3 + ldrb r1, [r0] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r2, 0x1C + adds r0, r2 + ldr r1, _08032730 @ =sub_8012110 + str r1, [r0] + ldr r1, _08032734 @ =gUnknown_3004FE0 + ldrb r0, [r5] + lsls r0, 2 + adds r0, r1 + ldr r1, _08032738 @ =sub_8030538 + str r1, [r0] +_0803271A: + pop {r4-r6} + pop {r0} + bx r0 + .align 2, 0 +_08032720: .4byte gUnknown_2023BCE +_08032724: .4byte gUnknown_2024284 +_08032728: .4byte gUnknown_202063C +_0803272C: .4byte gUnknown_2023D44 +_08032730: .4byte sub_8012110 +_08032734: .4byte gUnknown_3004FE0 +_08032738: .4byte sub_8030538 + thumb_func_end sub_8032650 + + thumb_func_start sub_803273C +sub_803273C: @ 803273C + push {lr} + sub sp, 0x4 + movs r0, 0x1 + negs r0, r0 + movs r1, 0 + str r1, [sp] + movs r1, 0x2 + movs r2, 0 + movs r3, 0x10 + bl sub_8070588 + bl sub_802E33C + add sp, 0x4 + pop {r0} + bx r0 + thumb_func_end sub_803273C + + thumb_func_start sub_803275C +sub_803275C: @ 803275C + push {r4,r5,lr} + ldr r0, _0803279C @ =gUnknown_2024018 + ldr r0, [r0] + ldr r1, [r0, 0x8] + movs r0, 0x4 + strb r0, [r1, 0x8] + ldr r1, _080327A0 @ =gUnknown_2024005 + movs r0, 0x1 + strb r0, [r1] + ldr r5, _080327A4 @ =gUnknown_2023BC4 + ldrb r4, [r5] + movs r0, 0x1 + bl sub_80751E8 + adds r2, r0, 0 + lsls r2, 24 + lsrs r2, 24 + adds r0, r4, 0 + adds r1, r4, 0 + movs r3, 0x3 + bl sub_80341D8 + ldr r1, _080327A8 @ =gUnknown_3004FE0 + ldrb r0, [r5] + lsls r0, 2 + adds r0, r1 + ldr r1, _080327AC @ =sub_8030778 + str r1, [r0] + pop {r4,r5} + pop {r0} + bx r0 + .align 2, 0 +_0803279C: .4byte gUnknown_2024018 +_080327A0: .4byte gUnknown_2024005 +_080327A4: .4byte gUnknown_2023BC4 +_080327A8: .4byte gUnknown_3004FE0 +_080327AC: .4byte sub_8030778 + thumb_func_end sub_803275C + + thumb_func_start sub_80327B0 +sub_80327B0: @ 80327B0 + push {r4,r5,lr} + ldr r1, _080327F8 @ =gUnknown_2022BC4 + ldr r5, _080327FC @ =gUnknown_2023BC4 + ldrb r0, [r5] + lsls r0, 9 + adds r1, 0x1 + adds r0, r1 + ldrb r1, [r0] + ldr r0, _08032800 @ =gUnknown_2024018 + ldr r0, [r0] + ldr r0, [r0, 0x8] + strb r1, [r0, 0x8] + ldr r1, _08032804 @ =gUnknown_2024005 + movs r0, 0x1 + strb r0, [r1] + ldrb r4, [r5] + movs r0, 0x1 + bl sub_80751E8 + adds r2, r0, 0 + lsls r2, 24 + lsrs r2, 24 + adds r0, r4, 0 + adds r1, r4, 0 + movs r3, 0x3 + bl sub_80341D8 + ldr r1, _08032808 @ =gUnknown_3004FE0 + ldrb r0, [r5] + lsls r0, 2 + adds r0, r1 + ldr r1, _0803280C @ =sub_8030778 + str r1, [r0] + pop {r4,r5} + pop {r0} + bx r0 + .align 2, 0 +_080327F8: .4byte gUnknown_2022BC4 +_080327FC: .4byte gUnknown_2023BC4 +_08032800: .4byte gUnknown_2024018 +_08032804: .4byte gUnknown_2024005 +_08032808: .4byte gUnknown_3004FE0 +_0803280C: .4byte sub_8030778 + thumb_func_end sub_80327B0 + + thumb_func_start sub_8032810 +sub_8032810: @ 8032810 + push {lr} + ldr r1, _08032838 @ =gUnknown_2022BC4 + ldr r0, _0803283C @ =gUnknown_2023BC4 + ldrb r0, [r0] + lsls r0, 9 + adds r1, 0x1 + adds r0, r1 + ldrb r0, [r0] + cmp r0, 0 + beq _0803282E +_08032824: + subs r0, 0x1 + lsls r0, 24 + lsrs r0, 24 + cmp r0, 0 + bne _08032824 +_0803282E: + bl sub_802E33C + pop {r0} + bx r0 + .align 2, 0 +_08032838: .4byte gUnknown_2022BC4 +_0803283C: .4byte gUnknown_2023BC4 + thumb_func_end sub_8032810 + + thumb_func_start sub_8032840 +sub_8032840: @ 8032840 + push {r4-r6,lr} + ldr r6, _08032924 @ =gUnknown_2023BC4 + ldrb r0, [r6] + bl sub_80342A4 + lsls r0, 24 + cmp r0, 0 + beq _08032852 + b _08032966 +_08032852: + ldr r0, _08032928 @ =gUnknown_2022BC4 + mov r12, r0 + ldrb r2, [r6] + lsls r2, 9 + adds r0, 0x1 + adds r0, r2, r0 + ldrb r0, [r0] + mov r1, r12 + adds r1, 0x2 + adds r1, r2, r1 + ldrb r1, [r1] + lsls r1, 8 + orrs r0, r1 + ldr r5, _0803292C @ =gUnknown_2037F16 + mov r1, r12 + adds r1, 0x3 + adds r2, r1 + ldrb r1, [r2] + strb r1, [r5] + ldr r4, _08032930 @ =gUnknown_2037EEC + ldrb r2, [r6] + lsls r2, 9 + mov r1, r12 + adds r1, 0x4 + adds r1, r2, r1 + ldrb r3, [r1] + mov r1, r12 + adds r1, 0x5 + adds r2, r1 + ldrb r1, [r2] + lsls r1, 8 + orrs r3, r1 + strh r3, [r4] + ldr r4, _08032934 @ =gUnknown_2037EE8 + ldrb r2, [r6] + lsls r2, 9 + mov r1, r12 + adds r1, 0x6 + adds r1, r2, r1 + ldrb r3, [r1] + mov r1, r12 + adds r1, 0x7 + adds r1, r2, r1 + ldrb r1, [r1] + lsls r1, 8 + orrs r3, r1 + mov r1, r12 + adds r1, 0x8 + adds r1, r2, r1 + ldrb r1, [r1] + lsls r1, 16 + orrs r3, r1 + mov r1, r12 + adds r1, 0x9 + adds r2, r1 + ldrb r1, [r2] + lsls r1, 24 + orrs r3, r1 + str r3, [r4] + ldr r3, _08032938 @ =gUnknown_2037EFE + ldrb r1, [r6] + lsls r1, 9 + mov r2, r12 + adds r2, 0xA + adds r1, r2 + ldrb r1, [r1] + strb r1, [r3] + ldr r4, _0803293C @ =gUnknown_2037F00 + ldrb r2, [r6] + lsls r2, 9 + mov r1, r12 + adds r1, 0xC + adds r1, r2, r1 + ldrb r3, [r1] + mov r1, r12 + adds r1, 0xD + adds r2, r1 + ldrb r1, [r2] + lsls r1, 8 + orrs r3, r1 + strh r3, [r4] + ldr r3, _08032940 @ =gUnknown_2037EE4 + ldrb r2, [r6] + lsls r2, 9 + mov r1, r12 + adds r1, 0x10 + adds r2, r1 + str r2, [r3] + ldr r3, _08032944 @ =gUnknown_2024008 + ldrb r1, [r6] + lsls r1, 2 + adds r1, r3 + ldr r2, [r2] + str r2, [r1] + ldrb r1, [r5] + bl sub_80342A0 + lsls r0, 24 + lsrs r3, r0, 24 + cmp r3, 0 + beq _08032948 + bl sub_802E33C + b _08032966 + .align 2, 0 +_08032924: .4byte gUnknown_2023BC4 +_08032928: .4byte gUnknown_2022BC4 +_0803292C: .4byte gUnknown_2037F16 +_08032930: .4byte gUnknown_2037EEC +_08032934: .4byte gUnknown_2037EE8 +_08032938: .4byte gUnknown_2037EFE +_0803293C: .4byte gUnknown_2037F00 +_08032940: .4byte gUnknown_2037EE4 +_08032944: .4byte gUnknown_2024008 +_08032948: + ldr r0, _0803296C @ =gUnknown_2024018 + ldr r0, [r0] + ldrb r1, [r6] + ldr r2, [r0, 0x4] + lsls r0, r1, 1 + adds r0, r1 + lsls r0, 2 + adds r0, r2 + strb r3, [r0, 0x4] + ldr r1, _08032970 @ =gUnknown_3004FE0 + ldrb r0, [r6] + lsls r0, 2 + adds r0, r1 + ldr r1, _08032974 @ =sub_8032978 + str r1, [r0] +_08032966: + pop {r4-r6} + pop {r0} + bx r0 + .align 2, 0 +_0803296C: .4byte gUnknown_2024018 +_08032970: .4byte gUnknown_3004FE0 +_08032974: .4byte sub_8032978 + thumb_func_end sub_8032840 + + thumb_func_start sub_8032978 +sub_8032978: @ 8032978 + push {r4-r7,lr} + mov r7, r10 + mov r6, r9 + mov r5, r8 + push {r5-r7} + ldr r2, _080329C4 @ =gUnknown_2022BC4 + ldr r6, _080329C8 @ =gUnknown_2023BC4 + ldrb r3, [r6] + lsls r1, r3, 9 + adds r0, r2, 0x1 + mov r10, r0 + adds r0, r1, r0 + ldrb r4, [r0] + adds r5, r2, 0x2 + mov r9, r5 + adds r0, r1, r5 + ldrb r0, [r0] + lsls r0, 8 + orrs r4, r0 + adds r2, 0xB + adds r1, r2 + ldrb r1, [r1] + mov r8, r1 + ldr r7, _080329CC @ =gUnknown_2024018 + ldr r5, [r7] + ldr r1, [r5, 0x4] + lsls r0, r3, 1 + adds r0, r3 + lsls r0, 2 + adds r0, r1 + ldrb r2, [r0, 0x4] + cmp r2, 0x1 + beq _08032A10 + cmp r2, 0x1 + bgt _080329D0 + cmp r2, 0 + beq _080329DA + b _08032AEC + .align 2, 0 +_080329C4: .4byte gUnknown_2022BC4 +_080329C8: .4byte gUnknown_2023BC4 +_080329CC: .4byte gUnknown_2024018 +_080329D0: + cmp r2, 0x2 + beq _08032A3A + cmp r2, 0x3 + beq _08032AB0 + b _08032AEC +_080329DA: + ldr r1, [r5] + lsls r0, r3, 2 + adds r1, r0, r1 + ldrb r2, [r1] + movs r0, 0xC + ands r0, r2 + cmp r0, 0x4 + bne _080329FC + movs r0, 0x8 + orrs r0, r2 + strb r0, [r1] + ldrb r2, [r6] + adds r0, r2, 0 + adds r1, r2, 0 + movs r3, 0x5 + bl sub_80341D8 +_080329FC: + ldr r0, [r7] + ldrb r1, [r6] + ldr r2, [r0, 0x4] + lsls r0, r1, 1 + adds r0, r1 + lsls r0, 2 + adds r0, r2 + movs r1, 0x1 + strb r1, [r0, 0x4] + b _08032AEC +_08032A10: + ldrb r1, [r0] + movs r0, 0x40 + ands r0, r1 + cmp r0, 0 + bne _08032AEC + movs r0, 0 + bl sub_8035450 + adds r0, r4, 0 + bl sub_807259C + ldr r0, [r7] + ldrb r1, [r6] + ldr r2, [r0, 0x4] + lsls r0, r1, 1 + adds r0, r1 + lsls r0, 2 + adds r0, r2 + movs r1, 0x2 + strb r1, [r0, 0x4] + b _08032AEC +_08032A3A: + ldr r0, _08032AA0 @ =gUnknown_2037EDC + ldr r0, [r0] + bl _call_via_r0 + ldr r0, _08032AA4 @ =gUnknown_2037EE1 + ldrb r0, [r0] + cmp r0, 0 + bne _08032AEC + movs r0, 0x1 + bl sub_8035450 + ldr r0, [r7] + ldrb r2, [r6] + ldr r1, [r0] + lsls r0, r2, 2 + adds r0, r1 + ldrb r1, [r0] + movs r0, 0x4 + ands r0, r1 + cmp r0, 0 + beq _08032A88 + mov r0, r8 + cmp r0, 0x1 + bhi _08032A88 + adds r0, r2, 0 + adds r1, r2, 0 + movs r3, 0x6 + bl sub_80341D8 + ldr r0, [r7] + ldrb r1, [r6] + ldr r0, [r0] + lsls r1, 2 + adds r1, r0 + ldrb r2, [r1] + movs r0, 0x9 + negs r0, r0 + ands r0, r2 + strb r0, [r1] +_08032A88: + ldr r0, _08032AA8 @ =gUnknown_2024018 + ldr r2, [r0] + ldr r0, _08032AAC @ =gUnknown_2023BC4 + ldrb r1, [r0] + ldr r2, [r2, 0x4] + lsls r0, r1, 1 + adds r0, r1 + lsls r0, 2 + adds r0, r2 + movs r1, 0x3 + strb r1, [r0, 0x4] + b _08032AEC + .align 2, 0 +_08032AA0: .4byte gUnknown_2037EDC +_08032AA4: .4byte gUnknown_2037EE1 +_08032AA8: .4byte gUnknown_2024018 +_08032AAC: .4byte gUnknown_2023BC4 +_08032AB0: + ldrb r1, [r0] + movs r0, 0x40 + ands r0, r1 + lsls r0, 24 + lsrs r4, r0, 24 + cmp r4, 0 + bne _08032AEC + bl sub_8034B40 + ldrb r0, [r6] + lsls r2, r0, 9 + mov r3, r10 + adds r1, r2, r3 + ldrb r1, [r1] + add r2, r9 + ldrb r2, [r2] + lsls r2, 8 + orrs r1, r2 + bl sub_8035200 + ldr r0, [r7] + ldrb r1, [r6] + ldr r2, [r0, 0x4] + lsls r0, r1, 1 + adds r0, r1 + lsls r0, 2 + adds r0, r2 + strb r4, [r0, 0x4] + bl sub_802E33C +_08032AEC: + pop {r3-r5} + mov r8, r3 + mov r9, r4 + mov r10, r5 + pop {r4-r7} + pop {r0} + bx r0 + thumb_func_end sub_8032978 + + thumb_func_start sub_8032AFC +sub_8032AFC: @ 8032AFC + push {r4,lr} + ldr r0, _08032B30 @ =gUnknown_2022974 + movs r1, 0 + strh r1, [r0] + ldr r0, _08032B34 @ =gUnknown_2022976 + strh r1, [r0] + ldr r0, _08032B38 @ =gUnknown_2023BC4 + ldrb r4, [r0] + lsls r4, 9 + ldr r0, _08032B3C @ =gUnknown_2022BC6 + adds r4, r0 + ldrh r0, [r4] + bl sub_80D7274 + ldrh r0, [r4] + bl sub_80D89B0 + lsls r0, 24 + cmp r0, 0 + beq _08032B44 + ldr r0, _08032B40 @ =gUnknown_202298C + movs r1, 0x40 + bl sub_80D87BC + b _08032B4C + .align 2, 0 +_08032B30: .4byte gUnknown_2022974 +_08032B34: .4byte gUnknown_2022976 +_08032B38: .4byte gUnknown_2023BC4 +_08032B3C: .4byte gUnknown_2022BC6 +_08032B40: .4byte gUnknown_202298C +_08032B44: + ldr r0, _08032B60 @ =gUnknown_202298C + movs r1, 0 + bl sub_80D87BC +_08032B4C: + ldr r1, _08032B64 @ =gUnknown_3004FE0 + ldr r0, _08032B68 @ =gUnknown_2023BC4 + ldrb r0, [r0] + lsls r0, 2 + adds r0, r1 + ldr r1, _08032B6C @ =sub_8030610 + str r1, [r0] + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_08032B60: .4byte gUnknown_202298C +_08032B64: .4byte gUnknown_3004FE0 +_08032B68: .4byte gUnknown_2023BC4 +_08032B6C: .4byte sub_8030610 + thumb_func_end sub_8032AFC + + thumb_func_start sub_8032B70 +sub_8032B70: @ 8032B70 + push {lr} + ldr r0, _08032B88 @ =gUnknown_2023BC4 + ldrb r0, [r0] + bl sub_80751C4 + lsls r0, 24 + cmp r0, 0 + bne _08032B8C + bl sub_8032AFC + b _08032B90 + .align 2, 0 +_08032B88: .4byte gUnknown_2023BC4 +_08032B8C: + bl sub_802E33C +_08032B90: + pop {r0} + bx r0 + thumb_func_end sub_8032B70 + + thumb_func_start sub_8032B94 +sub_8032B94: @ 8032B94 + push {lr} + bl sub_8001960 + lsls r0, 24 + lsrs r1, r0, 24 + cmp r1, 0 + bne _08032BBA + ldr r0, _08032BC0 @ =gUnknown_2022974 + strh r1, [r0] + ldr r1, _08032BC4 @ =gUnknown_2022976 + movs r0, 0xA0 + strh r0, [r1] + ldr r1, _08032BC8 @ =gUnknown_3004FE0 + ldr r0, _08032BCC @ =gUnknown_2023BC4 + ldrb r0, [r0] + lsls r0, 2 + adds r0, r1 + ldr r1, _08032BD0 @ =sub_802E438 + str r1, [r0] +_08032BBA: + pop {r0} + bx r0 + .align 2, 0 +_08032BC0: .4byte gUnknown_2022974 +_08032BC4: .4byte gUnknown_2022976 +_08032BC8: .4byte gUnknown_3004FE0 +_08032BCC: .4byte gUnknown_2023BC4 +_08032BD0: .4byte sub_802E438 + thumb_func_end sub_8032B94 + + thumb_func_start sub_8032BD4 +sub_8032BD4: @ 8032BD4 + push {r4,lr} + ldr r1, _08032C28 @ =gUnknown_3004FE0 + ldr r0, _08032C2C @ =gUnknown_2023BC4 + ldrb r0, [r0] + lsls r0, 2 + adds r0, r1 + ldr r1, _08032C30 @ =sub_8032B94 + str r1, [r0] + ldr r0, _08032C34 @ =gUnknown_83FDA4C + movs r1, 0 + bl sub_80D87BC + ldr r0, _08032C38 @ =gUnknown_83FE725 + movs r1, 0x2 + bl sub_80D87BC + movs r4, 0 +_08032BF6: + lsls r0, r4, 24 + lsrs r0, 24 + bl sub_8030A98 + adds r4, 0x1 + cmp r4, 0x3 + ble _08032BF6 + ldr r1, _08032C3C @ =gUnknown_2023FF8 + ldr r0, _08032C2C @ =gUnknown_2023BC4 + ldrb r0, [r0] + adds r0, r1 + ldrb r0, [r0] + movs r1, 0 + bl sub_8030A54 + ldr r0, _08032C40 @ =gUnknown_83FE6D5 + bl sub_80D77F4 + ldr r0, _08032C44 @ =gUnknown_202298C + movs r1, 0x1 + bl sub_80D87BC + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_08032C28: .4byte gUnknown_3004FE0 +_08032C2C: .4byte gUnknown_2023BC4 +_08032C30: .4byte sub_8032B94 +_08032C34: .4byte gUnknown_83FDA4C +_08032C38: .4byte gUnknown_83FE725 +_08032C3C: .4byte gUnknown_2023FF8 +_08032C40: .4byte gUnknown_83FE6D5 +_08032C44: .4byte gUnknown_202298C + thumb_func_end sub_8032BD4 + + thumb_func_start nullsub_14 +nullsub_14: @ 8032C48 + bx lr + thumb_func_end nullsub_14 + + thumb_func_start sub_8032C4C +sub_8032C4C: @ 8032C4C + push {lr} + bl sub_8001960 + lsls r0, 24 + lsrs r1, r0, 24 + cmp r1, 0 + bne _08032C76 + ldr r0, _08032C7C @ =gUnknown_2022974 + strh r1, [r0] + ldr r1, _08032C80 @ =gUnknown_2022976 + movs r2, 0xA0 + lsls r2, 1 + adds r0, r2, 0 + strh r0, [r1] + ldr r1, _08032C84 @ =gUnknown_3004FE0 + ldr r0, _08032C88 @ =gUnknown_2023BC4 + ldrb r0, [r0] + lsls r0, 2 + adds r0, r1 + ldr r1, _08032C8C @ =sub_802EA10 + str r1, [r0] +_08032C76: + pop {r0} + bx r0 + .align 2, 0 +_08032C7C: .4byte gUnknown_2022974 +_08032C80: .4byte gUnknown_2022976 +_08032C84: .4byte gUnknown_3004FE0 +_08032C88: .4byte gUnknown_2023BC4 +_08032C8C: .4byte sub_802EA10 + thumb_func_end sub_8032C4C + + thumb_func_start sub_8032C90 +sub_8032C90: @ 8032C90 + push {lr} + bl sub_8032CB4 + ldr r1, _08032CA8 @ =gUnknown_3004FE0 + ldr r0, _08032CAC @ =gUnknown_2023BC4 + ldrb r0, [r0] + lsls r0, 2 + adds r0, r1 + ldr r1, _08032CB0 @ =sub_8032C4C + str r1, [r0] + pop {r0} + bx r0 + .align 2, 0 +_08032CA8: .4byte gUnknown_3004FE0 +_08032CAC: .4byte gUnknown_2023BC4 +_08032CB0: .4byte sub_8032C4C + thumb_func_end sub_8032C90 + + thumb_func_start sub_8032CB4 +sub_8032CB4: @ 8032CB4 + push {lr} + bl sub_8030830 + ldr r1, _08032CE0 @ =gUnknown_3004FF4 + movs r0, 0xFF + strb r0, [r1] + ldr r1, _08032CE4 @ =gUnknown_2023FFC + ldr r0, _08032CE8 @ =gUnknown_2023BC4 + ldrb r0, [r0] + adds r0, r1 + ldrb r0, [r0] + movs r1, 0 + bl sub_80309CC + bl sub_80308A8 + bl sub_80308CC + bl sub_8030940 + pop {r0} + bx r0 + .align 2, 0 +_08032CE0: .4byte gUnknown_3004FF4 +_08032CE4: .4byte gUnknown_2023FFC +_08032CE8: .4byte gUnknown_2023BC4 + thumb_func_end sub_8032CB4 + + thumb_func_start sub_8032CEC +sub_8032CEC: @ 8032CEC + push {r4,r5,lr} + sub sp, 0x4 + movs r0, 0x1 + negs r0, r0 + movs r1, 0 + str r1, [sp] + movs r2, 0 + movs r3, 0x10 + bl sub_8070588 + ldr r1, _08032D38 @ =gUnknown_3004FE0 + ldr r2, _08032D3C @ =gUnknown_2023BC4 + ldrb r0, [r2] + lsls r0, 2 + adds r0, r1 + ldr r1, _08032D40 @ =sub_8030700 + str r1, [r0] + ldr r1, _08032D44 @ =gUnknown_2024004 + ldrb r0, [r2] + strb r0, [r1] + movs r3, 0 + ldr r5, _08032D48 @ =gUnknown_203B0DC + ldr r4, _08032D4C @ =gUnknown_2022BC4 +_08032D1A: + adds r0, r3, r5 + ldrb r1, [r2] + lsls r1, 9 + adds r1, 0x1 + adds r1, r3, r1 + adds r1, r4 + ldrb r1, [r1] + strb r1, [r0] + adds r3, 0x1 + cmp r3, 0x2 + ble _08032D1A + add sp, 0x4 + pop {r4,r5} + pop {r0} + bx r0 + .align 2, 0 +_08032D38: .4byte gUnknown_3004FE0 +_08032D3C: .4byte gUnknown_2023BC4 +_08032D40: .4byte sub_8030700 +_08032D44: .4byte gUnknown_2024004 +_08032D48: .4byte gUnknown_203B0DC +_08032D4C: .4byte gUnknown_2022BC4 + thumb_func_end sub_8032CEC + + thumb_func_start sub_8032D50 +sub_8032D50: @ 8032D50 + push {r4-r6,lr} + sub sp, 0x4 + ldr r0, _08032E00 @ =nullsub_43 + movs r1, 0xFF + bl sub_807741C + ldr r3, _08032E04 @ =gUnknown_3004FFC + ldr r4, _08032E08 @ =gUnknown_2023BC4 + ldrb r1, [r4] + adds r1, r3 + strb r0, [r1] + ldr r5, _08032E0C @ =gUnknown_3005090 + ldrb r2, [r4] + adds r3, r2, r3 + ldrb r0, [r3] + lsls r1, r0, 2 + adds r1, r0 + lsls r1, 3 + adds r1, r5 + ldr r5, _08032E10 @ =gUnknown_2022BC4 + lsls r2, 9 + adds r6, r5, 0x1 + adds r2, r6 + ldrb r2, [r2] + movs r0, 0xF + ands r0, r2 + strh r0, [r1, 0x8] + ldr r3, _08032E14 @ =gUnknown_2023FE8 + ldr r1, [r3] + adds r1, 0x49 + ldrb r0, [r4] + lsls r0, 9 + adds r0, r6 + ldrb r0, [r0] + lsrs r0, 4 + strb r0, [r1] + ldr r2, [r3] + adds r2, 0x8B + ldrb r0, [r4] + lsls r0, 9 + adds r1, r5, 0x2 + adds r0, r1 + ldrb r0, [r0] + strb r0, [r2] + ldr r2, [r3] + adds r2, 0xAC + ldrb r0, [r4] + lsls r0, 9 + adds r1, r5, 0x3 + adds r0, r1 + ldrb r0, [r0] + strb r0, [r2] + movs r2, 0 + ldr r3, _08032E18 @ =gUnknown_203B0DC +_08032DBC: + adds r0, r2, r3 + ldrb r1, [r4] + lsls r1, 9 + adds r1, 0x4 + adds r1, r2, r1 + adds r1, r5 + ldrb r1, [r1] + strb r1, [r0] + adds r2, 0x1 + cmp r2, 0x2 + ble _08032DBC + movs r0, 0x1 + negs r0, r0 + movs r1, 0 + str r1, [sp] + movs r2, 0 + movs r3, 0x10 + bl sub_8070588 + ldr r1, _08032E1C @ =gUnknown_3004FE0 + ldr r2, _08032E08 @ =gUnknown_2023BC4 + ldrb r0, [r2] + lsls r0, 2 + adds r0, r1 + ldr r1, _08032E20 @ =sub_8030628 + str r1, [r0] + ldr r1, _08032E24 @ =gUnknown_2024004 + ldrb r0, [r2] + strb r0, [r1] + add sp, 0x4 + pop {r4-r6} + pop {r0} + bx r0 + .align 2, 0 +_08032E00: .4byte nullsub_43 +_08032E04: .4byte gUnknown_3004FFC +_08032E08: .4byte gUnknown_2023BC4 +_08032E0C: .4byte gUnknown_3005090 +_08032E10: .4byte gUnknown_2022BC4 +_08032E14: .4byte gUnknown_2023FE8 +_08032E18: .4byte gUnknown_203B0DC +_08032E1C: .4byte gUnknown_3004FE0 +_08032E20: .4byte sub_8030628 +_08032E24: .4byte gUnknown_2024004 + thumb_func_end sub_8032D50 + + thumb_func_start sub_8032E28 +sub_8032E28: @ 8032E28 + push {lr} + sub sp, 0x4 + bl sub_8035314 + movs r0, 0x1 + negs r0, r0 + movs r1, 0 + str r1, [sp] + movs r1, 0x2 + movs r2, 0 + movs r3, 0x10 + bl sub_8070588 + bl sub_802E33C + add sp, 0x4 + pop {r0} + bx r0 + thumb_func_end sub_8032E28 + + thumb_func_start sub_8032E4C +sub_8032E4C: @ 8032E4C + push {r4-r7,lr} + mov r7, r9 + mov r6, r8 + push {r6,r7} + sub sp, 0x4 + movs r0, 0 + bl sub_8034964 + ldr r3, _08032EC4 @ =gUnknown_2022BC4 + ldr r0, _08032EC8 @ =gUnknown_2023BC4 + mov r9, r0 + ldrb r4, [r0] + lsls r2, r4, 9 + adds r0, r3, 0x2 + adds r0, r2, r0 + ldrb r1, [r0] + adds r3, 0x3 + adds r2, r3 + ldrb r0, [r2] + lsls r0, 8 + orrs r1, r0 + lsls r1, 16 + asrs r7, r1, 16 + ldr r0, _08032ECC @ =0x00007fff + cmp r7, r0 + beq _08032EDC + ldr r6, _08032ED0 @ =gUnknown_2023BCE + lsls r0, r4, 1 + adds r0, r6 + ldrh r0, [r0] + movs r5, 0x64 + muls r0, r5 + ldr r4, _08032ED4 @ =gUnknown_2024284 + adds r0, r4 + movs r1, 0x3A + bl sub_803FBE8 + mov r8, r0 + mov r1, r9 + ldrb r0, [r1] + lsls r0, 1 + adds r0, r6 + ldrh r0, [r0] + muls r0, r5 + adds r0, r4 + movs r1, 0x39 + bl sub_803FBE8 + adds r3, r0, 0 + mov r1, r9 + ldrb r0, [r1] + ldr r1, _08032ED8 @ =gUnknown_3004FF0 + adds r1, r0, r1 + ldrb r1, [r1] + str r7, [sp] + mov r2, r8 + bl sub_8048150 + b _08032F16 + .align 2, 0 +_08032EC4: .4byte gUnknown_2022BC4 +_08032EC8: .4byte gUnknown_2023BC4 +_08032ECC: .4byte 0x00007fff +_08032ED0: .4byte gUnknown_2023BCE +_08032ED4: .4byte gUnknown_2024284 +_08032ED8: .4byte gUnknown_3004FF0 +_08032EDC: + ldr r1, _08032F34 @ =gUnknown_2023BCE + lsls r0, r4, 1 + adds r0, r1 + ldrh r1, [r0] + movs r0, 0x64 + muls r0, r1 + ldr r1, _08032F38 @ =gUnknown_2024284 + adds r0, r1 + movs r1, 0x3A + bl sub_803FBE8 + adds r2, r0, 0 + mov r1, r9 + ldrb r0, [r1] + ldr r4, _08032F3C @ =gUnknown_3004FF0 + adds r1, r0, r4 + ldrb r1, [r1] + str r7, [sp] + movs r3, 0 + bl sub_8048150 + mov r1, r9 + ldrb r0, [r1] + adds r0, r4 + ldrb r0, [r0] + movs r1, 0 + movs r2, 0 + bl sub_8048440 +_08032F16: + ldr r1, _08032F40 @ =gUnknown_3004FE0 + ldr r0, _08032F44 @ =gUnknown_2023BC4 + ldrb r0, [r0] + lsls r0, 2 + adds r0, r1 + ldr r1, _08032F48 @ =sub_802FE24 + str r1, [r0] + add sp, 0x4 + pop {r3,r4} + mov r8, r3 + mov r9, r4 + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_08032F34: .4byte gUnknown_2023BCE +_08032F38: .4byte gUnknown_2024284 +_08032F3C: .4byte gUnknown_3004FF0 +_08032F40: .4byte gUnknown_3004FE0 +_08032F44: .4byte gUnknown_2023BC4 +_08032F48: .4byte sub_802FE24 + thumb_func_end sub_8032E4C + + thumb_func_start sub_8032F4C +sub_8032F4C: @ 8032F4C + push {r4-r7,lr} + ldr r5, _08032F78 @ =gUnknown_2022BC4 + ldr r6, _08032F7C @ =gUnknown_2023BC4 + ldrb r0, [r6] + lsls r0, 9 + adds r1, r5, 0x1 + adds r0, r1 + ldrb r7, [r0] + movs r0, 0x64 + adds r1, r7, 0 + muls r1, r0 + ldr r0, _08032F80 @ =gUnknown_2024284 + adds r4, r1, r0 + adds r0, r4, 0 + movs r1, 0x38 + bl sub_803FBE8 + cmp r0, 0x63 + bls _08032F84 + bl sub_802E33C + b _08032FD0 + .align 2, 0 +_08032F78: .4byte gUnknown_2022BC4 +_08032F7C: .4byte gUnknown_2023BC4 +_08032F80: .4byte gUnknown_2024284 +_08032F84: + movs r0, 0x1 + bl sub_8034964 + adds r0, r4, 0 + movs r1, 0xB + bl sub_803FBE8 + ldrb r1, [r6] + lsls r1, 9 + adds r0, r5, 0x2 + adds r0, r1, r0 + ldrb r4, [r0] + adds r0, r5, 0x3 + adds r1, r0 + ldrb r0, [r1] + lsls r0, 8 + orrs r4, r0 + ldr r0, _08032FD8 @ =sub_802FEAC + movs r1, 0xA + bl sub_807741C + lsls r0, 24 + lsrs r0, 24 + ldr r2, _08032FDC @ =gUnknown_3005090 + lsls r1, r0, 2 + adds r1, r0 + lsls r1, 3 + adds r1, r2 + strh r7, [r1, 0x8] + strh r4, [r1, 0xA] + ldrb r0, [r6] + strh r0, [r1, 0xC] + ldr r1, _08032FE0 @ =gUnknown_3004FE0 + ldrb r0, [r6] + lsls r0, 2 + adds r0, r1 + ldr r1, _08032FE4 @ =nullsub_13 + str r1, [r0] +_08032FD0: + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_08032FD8: .4byte sub_802FEAC +_08032FDC: .4byte gUnknown_3005090 +_08032FE0: .4byte gUnknown_3004FE0 +_08032FE4: .4byte nullsub_13 + thumb_func_end sub_8032F4C + + thumb_func_start sub_8032FE8 +sub_8032FE8: @ 8032FE8 + push {r4,lr} + ldr r4, _08033044 @ =gUnknown_2023BC4 + ldrb r0, [r4] + bl sub_80342A4 + lsls r0, 24 + cmp r0, 0 + bne _0803303C + ldr r0, _08033048 @ =gUnknown_3004FF0 + ldrb r1, [r4] + adds r0, r1, r0 + ldrb r0, [r0] + ldr r2, _0803304C @ =gUnknown_2023BCE + lsls r1, 1 + adds r1, r2 + ldrh r2, [r1] + movs r1, 0x64 + muls r1, r2 + ldr r2, _08033050 @ =gUnknown_2024284 + adds r1, r2 + movs r2, 0x9 + bl sub_8049D98 + ldrb r2, [r4] + ldr r0, _08033054 @ =gUnknown_2024018 + ldr r0, [r0] + ldr r0, [r0, 0x4] + lsls r1, r2, 1 + adds r1, r2 + lsls r1, 2 + adds r1, r0 + ldrb r2, [r1] + movs r0, 0x11 + negs r0, r0 + ands r0, r2 + strb r0, [r1] + ldr r1, _08033058 @ =gUnknown_3004FE0 + ldrb r0, [r4] + lsls r0, 2 + adds r0, r1 + ldr r1, _0803305C @ =sub_8030AFC + str r1, [r0] +_0803303C: + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_08033044: .4byte gUnknown_2023BC4 +_08033048: .4byte gUnknown_3004FF0 +_0803304C: .4byte gUnknown_2023BCE +_08033050: .4byte gUnknown_2024284 +_08033054: .4byte gUnknown_2024018 +_08033058: .4byte gUnknown_3004FE0 +_0803305C: .4byte sub_8030AFC + thumb_func_end sub_8032FE8 + + thumb_func_start sub_8033060 +sub_8033060: @ 8033060 + push {r4,r5,lr} + ldr r5, _080330B8 @ =gUnknown_2023BC4 + ldrb r0, [r5] + bl sub_80342A4 + lsls r0, 24 + cmp r0, 0 + bne _080330B0 + ldr r4, _080330BC @ =gUnknown_2022BC4 + ldrb r3, [r5] + lsls r3, 9 + adds r0, r4, 0x1 + adds r0, r3, r0 + ldrb r0, [r0] + adds r1, r4, 0x2 + adds r1, r3, r1 + ldrb r1, [r1] + adds r2, r4, 0x3 + adds r2, r3, r2 + ldrb r2, [r2] + lsls r2, 8 + orrs r1, r2 + adds r2, r4, 0x4 + adds r2, r3, r2 + ldrb r2, [r2] + lsls r2, 16 + orrs r1, r2 + adds r4, 0x5 + adds r3, r4 + ldrb r2, [r3] + lsls r2, 24 + orrs r1, r2 + bl sub_8033F1C + ldr r1, _080330C0 @ =gUnknown_3004FE0 + ldrb r0, [r5] + lsls r0, 2 + adds r0, r1 + ldr r1, _080330C4 @ =sub_8030AFC + str r1, [r0] +_080330B0: + pop {r4,r5} + pop {r0} + bx r0 + .align 2, 0 +_080330B8: .4byte gUnknown_2023BC4 +_080330BC: .4byte gUnknown_2022BC4 +_080330C0: .4byte gUnknown_3004FE0 +_080330C4: .4byte sub_8030AFC + thumb_func_end sub_8033060 + + thumb_func_start sub_80330C8 +sub_80330C8: @ 80330C8 + push {r4-r6,lr} + mov r6, r8 + push {r6} + sub sp, 0x4 + ldr r0, _08033124 @ =gUnknown_2023BCE + mov r8, r0 + ldr r4, _08033128 @ =gUnknown_2023BC4 + ldrb r0, [r4] + lsls r0, 1 + add r0, r8 + ldrh r0, [r0] + movs r6, 0x64 + muls r0, r6 + ldr r5, _0803312C @ =gUnknown_2024284 + adds r0, r5 + movs r1, 0x37 + bl sub_803FBE8 + ldr r2, _08033130 @ =gUnknown_2022BC4 + ldrb r1, [r4] + lsls r1, 9 + adds r2, 0x1 + adds r1, r2 + ldrb r1, [r1] + eors r0, r1 + mov r1, sp + strb r0, [r1] + ldrb r0, [r4] + lsls r0, 1 + add r0, r8 + ldrh r0, [r0] + muls r0, r6 + adds r0, r5 + movs r1, 0x37 + mov r2, sp + bl sub_804037C + bl sub_802E33C + add sp, 0x4 + pop {r3} + mov r8, r3 + pop {r4-r6} + pop {r0} + bx r0 + .align 2, 0 +_08033124: .4byte gUnknown_2023BCE +_08033128: .4byte gUnknown_2023BC4 +_0803312C: .4byte gUnknown_2024284 +_08033130: .4byte gUnknown_2022BC4 + thumb_func_end sub_80330C8 + + thumb_func_start sub_8033134 +sub_8033134: @ 8033134 + push {lr} + bl sub_802E33C + pop {r0} + bx r0 + thumb_func_end sub_8033134 + + thumb_func_start sub_8033140 +sub_8033140: @ 8033140 + push {r4,r5,lr} + ldr r3, _080331A4 @ =gUnknown_2022BC4 + ldr r0, _080331A8 @ =gUnknown_2023BC4 + ldrb r2, [r0] + lsls r2, 9 + adds r0, r3, 0x1 + adds r0, r2, r0 + ldrb r5, [r0] + adds r0, r3, 0x2 + adds r0, r2, r0 + ldrb r0, [r0] + lsls r0, 8 + orrs r5, r0 + adds r0, r3, 0x3 + adds r0, r2, r0 + ldrb r0, [r0] + lsls r0, 16 + orrs r5, r0 + adds r0, r3, 0x4 + adds r0, r2, r0 + ldrb r4, [r0] + lsls r4, 24 + adds r0, r3, 0x5 + adds r0, r2, r0 + ldrb r1, [r0] + adds r0, r3, 0x6 + adds r0, r2, r0 + ldrb r0, [r0] + lsls r0, 8 + orrs r1, r0 + lsls r1, 16 + adds r3, 0x7 + adds r2, r3 + orrs r5, r4 + lsrs r4, r1, 16 + movs r0, 0x80 + lsls r0, 5 + cmp r4, r0 + bhi _080331B0 + ldr r0, _080331AC @ =0x040000d4 + str r2, [r0] + str r5, [r0, 0x4] + lsrs r1, 17 + movs r2, 0x80 + lsls r2, 24 + orrs r1, r2 + str r1, [r0, 0x8] + ldr r0, [r0, 0x8] + b _080331DC + .align 2, 0 +_080331A4: .4byte gUnknown_2022BC4 +_080331A8: .4byte gUnknown_2023BC4 +_080331AC: .4byte 0x040000d4 +_080331B0: + ldr r3, _080331E8 @ =0x040000d4 + str r2, [r3] + str r5, [r3, 0x4] + ldr r0, _080331EC @ =0x80000800 + str r0, [r3, 0x8] + ldr r0, [r3, 0x8] + movs r0, 0x80 + lsls r0, 5 + adds r2, r0 + adds r5, r0 + ldr r1, _080331F0 @ =0xfffff000 + adds r4, r1 + cmp r4, r0 + bhi _080331B0 + str r2, [r3] + str r5, [r3, 0x4] + lsrs r0, r4, 1 + movs r1, 0x80 + lsls r1, 24 + orrs r0, r1 + str r0, [r3, 0x8] + ldr r0, [r3, 0x8] +_080331DC: + bl sub_802E33C + pop {r4,r5} + pop {r0} + bx r0 + .align 2, 0 +_080331E8: .4byte 0x040000d4 +_080331EC: .4byte 0x80000800 +_080331F0: .4byte 0xfffff000 + thumb_func_end sub_8033140 + + thumb_func_start sub_80331F4 +sub_80331F4: @ 80331F4 + push {lr} + ldr r2, _0803321C @ =gUnknown_2022BC4 + ldr r0, _08033220 @ =gUnknown_2023BC4 + ldrb r1, [r0] + lsls r1, 9 + adds r0, r2, 0x1 + adds r0, r1, r0 + ldrb r0, [r0] + adds r2, 0x2 + adds r1, r2 + ldrb r1, [r1] + lsls r1, 8 + orrs r0, r1 + bl sub_80722A0 + bl sub_802E33C + pop {r0} + bx r0 + .align 2, 0 +_0803321C: .4byte gUnknown_2022BC4 +_08033220: .4byte gUnknown_2023BC4 + thumb_func_end sub_80331F4 + + thumb_func_start sub_8033224 +sub_8033224: @ 8033224 + push {lr} + bl sub_802E33C + pop {r0} + bx r0 + thumb_func_end sub_8033224 + + thumb_func_start sub_8033230 +sub_8033230: @ 8033230 + push {lr} + movs r0, 0x1 + movs r1, 0 + movs r2, 0 + bl sub_800E848 + bl sub_802E33C + pop {r0} + bx r0 + thumb_func_end sub_8033230 + + thumb_func_start sub_8033244 +sub_8033244: @ 8033244 + push {lr} + movs r0, 0x1 + movs r1, 0 + movs r2, 0 + bl sub_800E874 + bl sub_802E33C + pop {r0} + bx r0 + thumb_func_end sub_8033244 + + thumb_func_start sub_8033258 +sub_8033258: @ 8033258 + push {lr} + movs r0, 0x1 + movs r1, 0 + bl sub_800E8AC + bl sub_802E33C + pop {r0} + bx r0 + thumb_func_end sub_8033258 + + thumb_func_start sub_803326C +sub_803326C: @ 803326C + push {lr} + movs r0, 0x1 + movs r1, 0 + bl sub_800E8D8 + bl sub_802E33C + pop {r0} + bx r0 + thumb_func_end sub_803326C + + thumb_func_start sub_8033280 +sub_8033280: @ 8033280 + push {lr} + ldr r2, _08033298 @ =gUnknown_2022870 + ldrb r1, [r2] + movs r0, 0x80 + negs r0, r0 + ands r0, r1 + strb r0, [r2] + bl sub_802E33C + pop {r0} + bx r0 + .align 2, 0 +_08033298: .4byte gUnknown_2022870 + thumb_func_end sub_8033280 + + thumb_func_start sub_803329C +sub_803329C: @ 803329C + push {lr} + ldr r3, _080332C8 @ =gUnknown_2022870 + ldr r1, _080332CC @ =gUnknown_2022BC4 + ldr r0, _080332D0 @ =gUnknown_2023BC4 + ldrb r0, [r0] + lsls r0, 9 + adds r1, 0x1 + adds r0, r1 + ldrb r0, [r0] + movs r1, 0x7F + ands r1, r0 + ldrb r2, [r3] + movs r0, 0x80 + negs r0, r0 + ands r0, r2 + orrs r0, r1 + strb r0, [r3] + bl sub_802E33C + pop {r0} + bx r0 + .align 2, 0 +_080332C8: .4byte gUnknown_2022870 +_080332CC: .4byte gUnknown_2022BC4 +_080332D0: .4byte gUnknown_2023BC4 + thumb_func_end sub_803329C + + thumb_func_start sub_80332D4 +sub_80332D4: @ 80332D4 + push {lr} + ldr r2, _080332E8 @ =gUnknown_2022870 + ldrb r1, [r2] + movs r0, 0x7F + ands r0, r1 + strb r0, [r2] + bl sub_802E33C + pop {r0} + bx r0 + .align 2, 0 +_080332E8: .4byte gUnknown_2022870 + thumb_func_end sub_80332D4 + + thumb_func_start sub_80332EC +sub_80332EC: @ 80332EC + push {lr} + ldr r3, _08033310 @ =gUnknown_2022870 + ldr r1, [r3] + lsls r1, 24 + lsrs r1, 31 + movs r0, 0x1 + eors r1, r0 + lsls r1, 7 + ldrb r2, [r3] + movs r0, 0x7F + ands r0, r2 + orrs r0, r1 + strb r0, [r3] + bl sub_802E33C + pop {r0} + bx r0 + .align 2, 0 +_08033310: .4byte gUnknown_2022870 + thumb_func_end sub_80332EC + + thumb_func_start sub_8033314 +sub_8033314: @ 8033314 + push {r4,lr} + ldr r3, _0803333C @ =gUnknown_202063C + ldr r2, _08033340 @ =gUnknown_2023D44 + ldr r4, _08033344 @ =gUnknown_2023BC4 + ldrb r0, [r4] + adds r0, r2 + ldrb r1, [r0] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r3 + adds r0, 0x3E + ldrb r0, [r0] + lsls r0, 29 + cmp r0, 0 + bge _08033348 + bl sub_802E33C + b _08033372 + .align 2, 0 +_0803333C: .4byte gUnknown_202063C +_08033340: .4byte gUnknown_2023D44 +_08033344: .4byte gUnknown_2023BC4 +_08033348: + ldr r1, _08033378 @ =gUnknown_2024005 + movs r0, 0x1 + strb r0, [r1] + ldrb r0, [r4] + adds r0, r2 + ldrb r1, [r0] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r3 + movs r1, 0 + strh r1, [r0, 0x30] + ldrb r0, [r4] + bl sub_804BE70 + ldr r1, _0803337C @ =gUnknown_3004FE0 + ldrb r0, [r4] + lsls r0, 2 + adds r0, r1 + ldr r1, _08033380 @ =sub_80307B4 + str r1, [r0] +_08033372: + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_08033378: .4byte gUnknown_2024005 +_0803337C: .4byte gUnknown_3004FE0 +_08033380: .4byte sub_80307B4 + thumb_func_end sub_8033314 + + thumb_func_start sub_8033384 +sub_8033384: @ 8033384 + push {lr} + bl sub_802E33C + pop {r0} + bx r0 + thumb_func_end sub_8033384 + + thumb_func_start sub_8033390 +sub_8033390: @ 8033390 + push {r4,lr} + ldr r4, _080333CC @ =gUnknown_2023BC4 + ldrb r0, [r4] + bl sub_80751C4 + lsls r0, 24 + movs r3, 0x3F + cmp r0, 0 + bne _080333A4 + movs r3, 0xC0 +_080333A4: + ldr r2, _080333D0 @ =gUnknown_2022BC4 + ldrb r1, [r4] + lsls r1, 9 + adds r0, r2, 0x1 + adds r0, r1, r0 + ldrb r0, [r0] + adds r2, 0x2 + adds r1, r2 + ldrb r1, [r1] + lsls r1, 8 + orrs r0, r1 + lsls r1, r3, 24 + asrs r1, 24 + bl sub_80722F4 + bl sub_802E33C + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_080333CC: .4byte gUnknown_2023BC4 +_080333D0: .4byte gUnknown_2022BC4 + thumb_func_end sub_8033390 + + thumb_func_start sub_80333D4 +sub_80333D4: @ 80333D4 + push {lr} + ldr r2, _080333FC @ =gUnknown_2022BC4 + ldr r0, _08033400 @ =gUnknown_2023BC4 + ldrb r1, [r0] + lsls r1, 9 + adds r0, r2, 0x1 + adds r0, r1, r0 + ldrb r0, [r0] + adds r2, 0x2 + adds r1, r2 + ldrb r1, [r1] + lsls r1, 8 + orrs r0, r1 + bl sub_8071C60 + bl sub_802E33C + pop {r0} + bx r0 + .align 2, 0 +_080333FC: .4byte gUnknown_2022BC4 +_08033400: .4byte gUnknown_2023BC4 + thumb_func_end sub_80333D4 + + thumb_func_start sub_8033404 +sub_8033404: @ 8033404 + push {lr} + ldr r1, _08033438 @ =gUnknown_2023BCE + ldr r0, _0803343C @ =gUnknown_2023BC4 + ldrb r0, [r0] + lsls r0, 1 + adds r0, r1 + ldrh r1, [r0] + movs r0, 0x64 + muls r0, r1 + ldr r1, _08033440 @ =gUnknown_2024284 + adds r0, r1 + movs r1, 0xB + bl sub_803FBE8 + lsls r0, 16 + lsrs r0, 16 + movs r1, 0x19 + negs r1, r1 + movs r2, 0x5 + bl sub_8071E60 + bl sub_802E33C + pop {r0} + bx r0 + .align 2, 0 +_08033438: .4byte gUnknown_2023BCE +_0803343C: .4byte gUnknown_2023BC4 +_08033440: .4byte gUnknown_2024284 + thumb_func_end sub_8033404 + + thumb_func_start sub_8033444 +sub_8033444: @ 8033444 + push {lr} + ldr r1, _0803346C @ =gUnknown_2022BC4 + ldr r0, _08033470 @ =gUnknown_2023BC4 + ldrb r0, [r0] + lsls r0, 9 + adds r1, 0x1 + adds r0, r1 + ldrb r0, [r0] + bl sub_80BC3A0 + ldr r2, _08033474 @ =gUnknown_2023F4C + ldrh r0, [r2] + movs r1, 0x1 + orrs r0, r1 + strh r0, [r2] + bl sub_802E33C + pop {r0} + bx r0 + .align 2, 0 +_0803346C: .4byte gUnknown_2022BC4 +_08033470: .4byte gUnknown_2023BC4 +_08033474: .4byte gUnknown_2023F4C + thumb_func_end sub_8033444 + + thumb_func_start sub_8033478 +sub_8033478: @ 8033478 + push {r4-r7,lr} + ldr r6, _080335B8 @ =gUnknown_2023D44 + ldr r7, _080335BC @ =gUnknown_2023BC4 + ldrb r0, [r7] + adds r0, r6 + ldrb r1, [r0] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + ldr r5, _080335C0 @ =gUnknown_202063C + adds r0, r5 + bl sub_80750FC + ldrb r0, [r7] + adds r0, r6 + ldrb r1, [r0] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r5 + movs r1, 0x32 + strh r1, [r0, 0x2E] + ldrb r0, [r7] + adds r0, r6 + ldrb r1, [r0] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r5 + ldr r1, _080335C4 @ =0x0000ffd8 + strh r1, [r0, 0x32] + ldrb r0, [r7] + adds r0, r6 + ldrb r1, [r0] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r5 + ldrh r1, [r0, 0x22] + strh r1, [r0, 0x36] + ldrb r0, [r7] + adds r0, r6 + ldrb r1, [r0] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r1, r5, 0 + adds r1, 0x1C + adds r0, r1 + ldr r1, _080335C8 @ =sub_80755B8 + str r1, [r0] + ldrb r2, [r7] + adds r0, r2, r6 + ldrb r1, [r0] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r5 + strh r2, [r0, 0x38] + ldrb r0, [r7] + adds r0, r6 + ldrb r1, [r0] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r5 + ldr r1, _080335CC @ =sub_80335F8 + bl sub_8074A68 + ldrb r0, [r7] + adds r0, r6 + ldrb r1, [r0] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r5 + movs r1, 0x1 + bl sub_800838C + ldr r0, _080335D0 @ =0x0000d6f8 + bl sub_80089B8 + adds r4, r0, 0 + lsls r4, 24 + ldr r1, _080335D4 @ =gUnknown_8239FD4 + ldr r0, _080335D8 @ =gUnknown_300500C + ldr r0, [r0] + ldrb r0, [r0, 0x8] + lsls r0, 3 + adds r0, r1 + ldr r0, [r0] + lsrs r4, 20 + movs r2, 0x80 + lsls r2, 1 + adds r1, r4, r2 + movs r2, 0x20 + bl sub_80703A8 + ldrb r0, [r7] + adds r0, r6 + ldrb r0, [r0] + lsls r1, r0, 4 + adds r1, r0 + lsls r1, 2 + adds r1, r5 + ldrb r2, [r1, 0x5] + movs r0, 0xF + ands r0, r2 + orrs r0, r4 + strb r0, [r1, 0x5] + ldr r0, _080335DC @ =sub_8033660 + movs r1, 0x5 + bl sub_807741C + lsls r0, 24 + lsrs r0, 24 + ldr r4, _080335E0 @ =gUnknown_3005090 + lsls r1, r0, 2 + adds r1, r0 + lsls r1, 3 + adds r1, r4 + ldrb r0, [r7] + strh r0, [r1, 0x8] + ldr r3, _080335E4 @ =gUnknown_2024018 + ldr r0, [r3] + ldrb r2, [r7] + ldr r1, [r0, 0x4] + lsls r0, r2, 1 + adds r0, r2 + lsls r0, 2 + adds r0, r1 + ldrb r1, [r0] + movs r0, 0x1 + ands r0, r1 + cmp r0, 0 + beq _0803359A + ldr r0, _080335E8 @ =gUnknown_2024000 + adds r0, r2, r0 + ldrb r1, [r0] + lsls r0, r1, 2 + adds r0, r1 + lsls r0, 3 + adds r0, r4 + ldr r1, _080335EC @ =sub_80491B0 + str r1, [r0] +_0803359A: + ldr r0, [r3] + ldr r2, [r0, 0x8] + ldrb r0, [r2, 0x9] + movs r1, 0x1 + orrs r0, r1 + strb r0, [r2, 0x9] + ldr r1, _080335F0 @ =gUnknown_3004FE0 + ldrb r0, [r7] + lsls r0, 2 + adds r0, r1 + ldr r1, _080335F4 @ =nullsub_13 + str r1, [r0] + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_080335B8: .4byte gUnknown_2023D44 +_080335BC: .4byte gUnknown_2023BC4 +_080335C0: .4byte gUnknown_202063C +_080335C4: .4byte 0x0000ffd8 +_080335C8: .4byte sub_80755B8 +_080335CC: .4byte sub_80335F8 +_080335D0: .4byte 0x0000d6f8 +_080335D4: .4byte gUnknown_8239FD4 +_080335D8: .4byte gUnknown_300500C +_080335DC: .4byte sub_8033660 +_080335E0: .4byte gUnknown_3005090 +_080335E4: .4byte gUnknown_2024018 +_080335E8: .4byte gUnknown_2024000 +_080335EC: .4byte sub_80491B0 +_080335F0: .4byte gUnknown_3004FE0 +_080335F4: .4byte nullsub_13 + thumb_func_end sub_8033478 + + thumb_func_start sub_80335F8 +sub_80335F8: @ 80335F8 + push {r4,r5,lr} + adds r5, r0, 0 + ldrh r4, [r5, 0x38] + lsls r4, 24 + lsrs r4, 24 + bl sub_80077D8 + ldrb r0, [r5, 0x5] + lsrs r0, 4 + bl sub_8008A20 + lsls r0, 16 + lsrs r0, 16 + bl sub_8008A30 + adds r0, r5, 0 + bl sub_8007280 + ldr r1, _08033650 @ =gUnknown_2023BCE + lsls r0, r4, 1 + adds r0, r1 + ldrh r1, [r0] + movs r0, 0x64 + muls r0, r1 + ldr r1, _08033654 @ =gUnknown_2024284 + adds r0, r1 + adds r1, r4, 0 + bl sub_8034498 + ldr r0, _08033658 @ =gUnknown_2023D44 + adds r4, r0 + ldrb r1, [r4] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + ldr r1, _0803365C @ =gUnknown_202063C + adds r0, r1 + movs r1, 0 + bl sub_800838C + pop {r4,r5} + pop {r0} + bx r0 + .align 2, 0 +_08033650: .4byte gUnknown_2023BCE +_08033654: .4byte gUnknown_2024284 +_08033658: .4byte gUnknown_2023D44 +_0803365C: .4byte gUnknown_202063C + thumb_func_end sub_80335F8 + + thumb_func_start sub_8033660 +sub_8033660: @ 8033660 + push {r4-r7,lr} + mov r7, r9 + mov r6, r8 + push {r6,r7} + lsls r0, 24 + lsrs r0, 24 + mov r8, r0 + ldr r1, _08033688 @ =gUnknown_3005090 + lsls r0, 2 + add r0, r8 + lsls r0, 3 + adds r1, r0, r1 + ldrh r2, [r1, 0xA] + movs r3, 0xA + ldrsh r0, [r1, r3] + cmp r0, 0x1E + bgt _0803368C + adds r0, r2, 0x1 + strh r0, [r1, 0xA] + b _08033748 + .align 2, 0 +_08033688: .4byte gUnknown_3005090 +_0803368C: + ldr r7, _080336CC @ =gUnknown_2023BC4 + ldrb r0, [r7] + mov r9, r0 + ldrh r0, [r1, 0x8] + strb r0, [r7] + bl sub_8075290 + lsls r0, 24 + cmp r0, 0 + beq _080336AC + ldr r0, _080336D0 @ =gUnknown_2022B4C + ldr r0, [r0] + movs r1, 0x40 + ands r0, r1 + cmp r0, 0 + beq _080336DC +_080336AC: + ldr r0, _080336D4 @ =gUnknown_2022BC4 + ldrb r1, [r7] + lsls r2, r1, 9 + adds r0, 0x1 + adds r2, r0 + ldr r0, _080336D8 @ =gUnknown_2023BCE + lsls r1, 1 + adds r1, r0 + ldrh r0, [r1] + strb r0, [r2] + ldrb r0, [r7] + movs r1, 0 + bl sub_8031FF4 + b _08033730 + .align 2, 0 +_080336CC: .4byte gUnknown_2023BC4 +_080336D0: .4byte gUnknown_2022B4C +_080336D4: .4byte gUnknown_2022BC4 +_080336D8: .4byte gUnknown_2023BCE +_080336DC: + ldr r4, _08033754 @ =gUnknown_2022BC4 + ldrb r0, [r7] + lsls r1, r0, 9 + adds r4, 0x1 + adds r1, r4 + ldr r5, _08033758 @ =gUnknown_2023BCE + lsls r0, 1 + adds r0, r5 + ldrh r0, [r0] + strb r0, [r1] + ldrb r0, [r7] + movs r1, 0 + bl sub_8031FF4 + ldrb r0, [r7] + movs r6, 0x2 + eors r0, r6 + strb r0, [r7] + ldrb r0, [r7] + lsls r1, r0, 9 + adds r1, r4 + lsls r0, 1 + adds r0, r5 + ldrh r0, [r0] + strb r0, [r1] + ldrb r1, [r7] + lsls r0, r1, 1 + adds r0, r5 + ldrh r2, [r0] + movs r0, 0x64 + muls r0, r2 + ldr r2, _0803375C @ =gUnknown_2024284 + adds r0, r2 + bl sub_8034498 + ldrb r0, [r7] + movs r1, 0 + bl sub_8031FF4 + ldrb r0, [r7] + eors r0, r6 + strb r0, [r7] +_08033730: + ldr r1, _08033760 @ =gUnknown_3004FE0 + ldr r2, _08033764 @ =gUnknown_2023BC4 + ldrb r0, [r2] + lsls r0, 2 + adds r0, r1 + ldr r1, _08033768 @ =sub_802FA58 + str r1, [r0] + mov r3, r9 + strb r3, [r2] + mov r0, r8 + bl sub_8077508 +_08033748: + pop {r3,r4} + mov r8, r3 + mov r9, r4 + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_08033754: .4byte gUnknown_2022BC4 +_08033758: .4byte gUnknown_2023BCE +_0803375C: .4byte gUnknown_2024284 +_08033760: .4byte gUnknown_3004FE0 +_08033764: .4byte gUnknown_2023BC4 +_08033768: .4byte sub_802FA58 + thumb_func_end sub_8033660 + + thumb_func_start sub_803376C +sub_803376C: @ 803376C + push {r4-r6,lr} + ldr r1, _08033794 @ =gUnknown_2022BC4 + ldr r0, _08033798 @ =gUnknown_2023BC4 + ldrb r2, [r0] + lsls r0, r2, 9 + adds r1, 0x1 + adds r0, r1 + ldrb r0, [r0] + cmp r0, 0 + beq _0803379C + adds r0, r2, 0 + bl sub_80751C4 + lsls r0, 24 + cmp r0, 0 + bne _0803379C + bl sub_802E33C + b _08033810 + .align 2, 0 +_08033794: .4byte gUnknown_2022BC4 +_08033798: .4byte gUnknown_2023BC4 +_0803379C: + ldr r6, _08033818 @ =gUnknown_2024018 + ldr r0, [r6] + ldr r5, _0803381C @ =gUnknown_2023BC4 + ldrb r1, [r5] + ldr r2, [r0, 0x4] + lsls r0, r1, 1 + adds r0, r1 + lsls r0, 2 + adds r0, r2 + ldrb r1, [r0] + movs r2, 0x1 + orrs r1, r2 + strb r1, [r0] + ldrb r0, [r5] + lsls r3, r0, 9 + ldr r4, _08033820 @ =gUnknown_2022BC8 + adds r1, r3, r4 + subs r2, r4, 0x3 + adds r2, r3, r2 + ldrb r2, [r2] + subs r4, 0x2 + adds r3, r4 + ldrb r3, [r3] + bl sub_8048D14 + ldr r2, _08033824 @ =gUnknown_2024000 + ldrb r1, [r5] + adds r1, r2 + movs r3, 0 + strb r0, [r1] + ldr r0, [r6] + ldrb r1, [r5] + ldr r2, [r0, 0x4] + lsls r0, r1, 1 + adds r0, r1 + lsls r0, 2 + adds r0, r2 + strb r3, [r0, 0x5] + ldrb r2, [r5] + lsls r0, r2, 9 + adds r0, r4 + ldrb r0, [r0] + cmp r0, 0 + beq _08033804 + ldr r0, [r6] + ldr r1, [r0, 0x4] + lsls r0, r2, 1 + adds r0, r2 + lsls r0, 2 + adds r0, r1 + movs r1, 0x5D + strb r1, [r0, 0x5] +_08033804: + ldr r0, _08033828 @ =gUnknown_3004FE0 + ldrb r1, [r5] + lsls r1, 2 + adds r1, r0 + ldr r0, _0803382C @ =sub_8033830 + str r0, [r1] +_08033810: + pop {r4-r6} + pop {r0} + bx r0 + .align 2, 0 +_08033818: .4byte gUnknown_2024018 +_0803381C: .4byte gUnknown_2023BC4 +_08033820: .4byte gUnknown_2022BC8 +_08033824: .4byte gUnknown_2024000 +_08033828: .4byte gUnknown_3004FE0 +_0803382C: .4byte sub_8033830 + thumb_func_end sub_803376C + + thumb_func_start sub_8033830 +sub_8033830: @ 8033830 + push {r4,lr} + ldr r4, _08033870 @ =gUnknown_2024018 + ldr r0, [r4] + ldr r3, _08033874 @ =gUnknown_2023BC4 + ldrb r1, [r3] + ldr r2, [r0, 0x4] + lsls r0, r1, 1 + adds r0, r1 + lsls r0, 2 + adds r0, r2 + ldrb r1, [r0, 0x5] + adds r2, r1, 0x1 + strb r2, [r0, 0x5] + lsls r1, 24 + lsrs r1, 24 + cmp r1, 0x5C + bls _08033868 + ldr r0, [r4] + ldrb r1, [r3] + ldr r2, [r0, 0x4] + lsls r0, r1, 1 + adds r0, r1 + lsls r0, 2 + adds r0, r2 + movs r1, 0 + strb r1, [r0, 0x5] + bl sub_802E33C +_08033868: + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_08033870: .4byte gUnknown_2024018 +_08033874: .4byte gUnknown_2023BC4 + thumb_func_end sub_8033830 + + thumb_func_start sub_8033878 +sub_8033878: @ 8033878 + push {lr} + ldr r0, _080338B4 @ =gUnknown_2024018 + ldr r1, [r0] + ldr r0, _080338B8 @ =gUnknown_2023BC4 + ldrb r3, [r0] + ldr r1, [r1, 0x4] + lsls r0, r3, 1 + adds r0, r3 + lsls r0, 2 + adds r0, r1 + ldrb r1, [r0] + movs r0, 0x1 + ands r0, r1 + cmp r0, 0 + beq _080338AA + ldr r2, _080338BC @ =gUnknown_3005090 + ldr r0, _080338C0 @ =gUnknown_2024000 + adds r0, r3, r0 + ldrb r1, [r0] + lsls r0, r1, 2 + adds r0, r1 + lsls r0, 3 + adds r0, r2 + ldr r1, _080338C4 @ =sub_80491B0 + str r1, [r0] +_080338AA: + bl sub_802E33C + pop {r0} + bx r0 + .align 2, 0 +_080338B4: .4byte gUnknown_2024018 +_080338B8: .4byte gUnknown_2023BC4 +_080338BC: .4byte gUnknown_3005090 +_080338C0: .4byte gUnknown_2024000 +_080338C4: .4byte sub_80491B0 + thumb_func_end sub_8033878 + + thumb_func_start sub_80338C8 +sub_80338C8: @ 80338C8 + push {r4,lr} + ldr r4, _080338E8 @ =gUnknown_2023BC4 + ldrb r0, [r4] + movs r1, 0x1 + bl sub_8012258 + ldrb r0, [r4] + movs r1, 0 + bl sub_8012258 + bl sub_802E33C + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_080338E8: .4byte gUnknown_2023BC4 + thumb_func_end sub_80338C8 + + thumb_func_start sub_80338EC +sub_80338EC: @ 80338EC + push {r4,lr} + ldr r4, _0803393C @ =gUnknown_2023BC4 + ldrb r0, [r4] + bl sub_8075224 + lsls r0, 24 + cmp r0, 0 + beq _08033932 + ldr r3, _08033940 @ =gUnknown_202063C + ldr r0, _08033944 @ =gUnknown_2023D44 + ldrb r1, [r4] + adds r0, r1, r0 + ldrb r0, [r0] + lsls r2, r0, 4 + adds r2, r0 + lsls r2, 2 + adds r2, r3 + ldr r0, _08033948 @ =gUnknown_2022BC4 + lsls r1, 9 + adds r0, 0x1 + adds r1, r0 + adds r2, 0x3E + movs r0, 0x1 + ldrb r1, [r1] + ands r1, r0 + lsls r1, 2 + ldrb r3, [r2] + movs r0, 0x5 + negs r0, r0 + ands r0, r3 + orrs r0, r1 + strb r0, [r2] + ldrb r0, [r4] + bl sub_8034BB4 +_08033932: + bl sub_802E33C + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_0803393C: .4byte gUnknown_2023BC4 +_08033940: .4byte gUnknown_202063C +_08033944: .4byte gUnknown_2023D44 +_08033948: .4byte gUnknown_2022BC4 + thumb_func_end sub_80338EC + + thumb_func_start sub_803394C +sub_803394C: @ 803394C + push {r4-r6,lr} + sub sp, 0x4 + ldr r6, _08033990 @ =gUnknown_2023BC4 + ldrb r0, [r6] + bl sub_80342A4 + lsls r0, 24 + cmp r0, 0 + bne _080339A4 + ldr r5, _08033994 @ =gUnknown_2022BC4 + ldrb r2, [r6] + lsls r1, r2, 9 + adds r0, r5, 0x1 + adds r0, r1, r0 + ldrb r3, [r0] + adds r0, r5, 0x2 + adds r0, r1, r0 + ldrb r4, [r0] + adds r5, 0x3 + adds r1, r5 + ldrb r0, [r1] + lsls r0, 8 + orrs r4, r0 + str r4, [sp] + adds r0, r2, 0 + adds r1, r2, 0 + bl sub_803401C + lsls r0, 24 + cmp r0, 0 + beq _08033998 + bl sub_802E33C + b _080339A4 + .align 2, 0 +_08033990: .4byte gUnknown_2023BC4 +_08033994: .4byte gUnknown_2022BC4 +_08033998: + ldr r0, _080339AC @ =gUnknown_3004FE0 + ldrb r1, [r6] + lsls r1, 2 + adds r1, r0 + ldr r0, _080339B0 @ =sub_8030B2C + str r0, [r1] +_080339A4: + add sp, 0x4 + pop {r4-r6} + pop {r0} + bx r0 + .align 2, 0 +_080339AC: .4byte gUnknown_3004FE0 +_080339B0: .4byte sub_8030B2C + thumb_func_end sub_803394C + + thumb_func_start sub_80339B4 +sub_80339B4: @ 80339B4 + push {r4,lr} + ldr r1, _080339D4 @ =gUnknown_2022BC4 + ldr r0, _080339D8 @ =gUnknown_2023BC4 + ldrb r0, [r0] + lsls r0, 9 + adds r1, 0x1 + adds r0, r1 + ldrb r0, [r0] + cmp r0, 0x1 + beq _080339E6 + cmp r0, 0x1 + bgt _080339DC + cmp r0, 0 + beq _080339E2 + b _08033A04 + .align 2, 0 +_080339D4: .4byte gUnknown_2022BC4 +_080339D8: .4byte gUnknown_2023BC4 +_080339DC: + cmp r0, 0x2 + beq _08033A00 + b _08033A04 +_080339E2: + bl sub_8030B5C +_080339E6: + ldr r4, _080339FC @ =gUnknown_2023BC4 + ldrb r0, [r4] + movs r1, 0x1 + bl sub_8012258 + ldrb r0, [r4] + movs r1, 0 + bl sub_8012258 + b _08033A04 + .align 2, 0 +_080339FC: .4byte gUnknown_2023BC4 +_08033A00: + bl sub_8030B5C +_08033A04: + bl sub_802E33C + pop {r4} + pop {r0} + bx r0 + thumb_func_end sub_80339B4 + + thumb_func_start sub_8033A10 +sub_8033A10: @ 8033A10 + push {r4,lr} + ldr r1, _08033A30 @ =gUnknown_2022BC4 + ldr r4, _08033A34 @ =gUnknown_2023BC4 + ldrb r3, [r4] + lsls r0, r3, 9 + adds r1, 0x1 + adds r0, r1 + ldrb r2, [r0] + cmp r2, 0x1 + beq _08033A58 + cmp r2, 0x1 + bgt _08033A38 + cmp r2, 0 + beq _08033A3E + b _08033A68 + .align 2, 0 +_08033A30: .4byte gUnknown_2022BC4 +_08033A34: .4byte gUnknown_2023BC4 +_08033A38: + cmp r2, 0x2 + beq _08033A60 + b _08033A68 +_08033A3E: + ldr r0, _08033A50 @ =gUnknown_2023FF8 + adds r0, r3, r0 + strb r2, [r0] + ldr r1, _08033A54 @ =gUnknown_2023FFC + ldrb r0, [r4] + adds r0, r1 + strb r2, [r0] + b _08033A68 + .align 2, 0 +_08033A50: .4byte gUnknown_2023FF8 +_08033A54: .4byte gUnknown_2023FFC +_08033A58: + ldr r0, _08033A5C @ =gUnknown_2023FF8 + b _08033A62 + .align 2, 0 +_08033A5C: .4byte gUnknown_2023FF8 +_08033A60: + ldr r0, _08033A74 @ =gUnknown_2023FFC +_08033A62: + adds r0, r3, r0 + movs r1, 0 + strb r1, [r0] +_08033A68: + bl sub_802E33C + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_08033A74: .4byte gUnknown_2023FFC + thumb_func_end sub_8033A10 + + thumb_func_start sub_8033A78 +sub_8033A78: @ 8033A78 + push {r4,lr} + ldr r2, _08033AB0 @ =gUnknown_2023E8A + ldr r1, _08033AB4 @ =gUnknown_2022BC4 + ldr r4, _08033AB8 @ =gUnknown_2023BC4 + ldrb r0, [r4] + lsls r0, 9 + adds r1, 0x1 + adds r0, r1 + ldrb r0, [r0] + strb r0, [r2] + movs r0, 0x5 + bl sub_8071AB4 + movs r0, 0x3 + bl sub_8070E44 + bl sub_802E33C + ldr r1, _08033ABC @ =gUnknown_3004FE0 + ldrb r0, [r4] + lsls r0, 2 + adds r0, r1 + ldr r1, _08033AC0 @ =sub_802F6A8 + str r1, [r0] + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_08033AB0: .4byte gUnknown_2023E8A +_08033AB4: .4byte gUnknown_2022BC4 +_08033AB8: .4byte gUnknown_2023BC4 +_08033ABC: .4byte gUnknown_3004FE0 +_08033AC0: .4byte sub_802F6A8 + thumb_func_end sub_8033A78 + + thumb_func_start nullsub_15 +nullsub_15: @ 8033AC4 + bx lr + thumb_func_end nullsub_15 + + thumb_func_start sub_8033AC8 +sub_8033AC8: @ 8033AC8 + push {r4-r6,lr} + sub sp, 0x4 + movs r5, 0 + movs r6, 0 + ldr r0, _08033B14 @ =gUnknown_2022B4C + ldr r0, [r0] + movs r1, 0x1 + ands r0, r1 + cmp r0, 0 + bne _08033ADE + b _08033DA2 +_08033ADE: + ldr r3, _08033B18 @ =gUnknown_2023BC4 + ldrb r1, [r3] + lsls r2, r1, 9 + ldr r0, _08033B1C @ =gUnknown_2022BC8 + adds r2, r0 + ldr r0, _08033B20 @ =gUnknown_2023FFC + adds r1, r0 + ldrb r0, [r1] + lsls r0, 1 + adds r0, r2, r0 + ldrh r4, [r0] + cmp r4, 0xAE + bne _08033B24 + ldrb r0, [r2, 0x12] + movs r1, 0 + cmp r0, 0x7 + beq _08033B30 + ldrb r1, [r2, 0x13] + movs r0, 0x7 + eors r1, r0 + negs r0, r1 + orrs r0, r1 + asrs r1, r0, 31 + movs r0, 0x10 + ands r1, r0 + b _08033B30 + .align 2, 0 +_08033B14: .4byte gUnknown_2022B4C +_08033B18: .4byte gUnknown_2023BC4 +_08033B1C: .4byte gUnknown_2022BC8 +_08033B20: .4byte gUnknown_2023FFC +_08033B24: + ldr r1, _08033B40 @ =gUnknown_8250C04 + lsls r0, r4, 1 + adds r0, r4 + lsls r0, 2 + adds r0, r1 + ldrb r1, [r0, 0x6] +_08033B30: + cmp r1, 0x40 + bls _08033B36 + b _08033D92 +_08033B36: + lsls r0, r1, 2 + ldr r1, _08033B44 @ =_08033B48 + adds r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_08033B40: .4byte gUnknown_8250C04 +_08033B44: .4byte _08033B48 + .align 2, 0 +_08033B48: + .4byte _08033C4C + .4byte _08033C4C + .4byte _08033C4C + .4byte _08033D92 + .4byte _08033C4C + .4byte _08033D92 + .4byte _08033D92 + .4byte _08033D92 + .4byte _08033C54 + .4byte _08033D92 + .4byte _08033D92 + .4byte _08033D92 + .4byte _08033D92 + .4byte _08033D92 + .4byte _08033D92 + .4byte _08033D92 + .4byte _08033C80 + .4byte _08033D92 + .4byte _08033D92 + .4byte _08033D92 + .4byte _08033D92 + .4byte _08033D92 + .4byte _08033D92 + .4byte _08033D92 + .4byte _08033D92 + .4byte _08033D92 + .4byte _08033D92 + .4byte _08033D92 + .4byte _08033D92 + .4byte _08033D92 + .4byte _08033D92 + .4byte _08033D92 + .4byte _08033D4C + .4byte _08033D92 + .4byte _08033D92 + .4byte _08033D92 + .4byte _08033D92 + .4byte _08033D92 + .4byte _08033D92 + .4byte _08033D92 + .4byte _08033D92 + .4byte _08033D92 + .4byte _08033D92 + .4byte _08033D92 + .4byte _08033D92 + .4byte _08033D92 + .4byte _08033D92 + .4byte _08033D92 + .4byte _08033D92 + .4byte _08033D92 + .4byte _08033D92 + .4byte _08033D92 + .4byte _08033D92 + .4byte _08033D92 + .4byte _08033D92 + .4byte _08033D92 + .4byte _08033D92 + .4byte _08033D92 + .4byte _08033D92 + .4byte _08033D92 + .4byte _08033D92 + .4byte _08033D92 + .4byte _08033D92 + .4byte _08033D92 + .4byte _08033C54 +_08033C4C: + movs r5, 0xF0 + lsls r5, 12 + movs r6, 0 + b _08033D92 +_08033C54: + movs r0, 0x1 + bl sub_80751E8 + adds r4, r0, 0 + movs r0, 0x3 + bl sub_80751E8 + ldr r1, _08033C7C @ =gUnknown_825E45C + lsls r4, 24 + lsrs r4, 22 + adds r4, r1 + lsls r0, 24 + lsrs r0, 22 + adds r0, r1 + ldr r1, [r4] + ldr r0, [r0] + orrs r1, r0 + lsls r5, r1, 16 + b _08033D90 + .align 2, 0 +_08033C7C: .4byte gUnknown_825E45C +_08033C80: + cmp r4, 0xDB + beq _08033CEA + cmp r4, 0xDB + bgt _08033CB2 + cmp r4, 0x73 + beq _08033CEA + cmp r4, 0x73 + bgt _08033C9E + cmp r4, 0x71 + beq _08033CEA + cmp r4, 0x71 + bgt _08033CE4 + cmp r4, 0x36 + beq _08033CEA + b _08033D38 +_08033C9E: + cmp r4, 0xC9 + beq _08033CE4 + cmp r4, 0xC9 + bgt _08033CAC + cmp r4, 0xC3 + beq _08033CE4 + b _08033D38 +_08033CAC: + cmp r4, 0xD7 + beq _08033CEA + b _08033D38 +_08033CB2: + movs r0, 0x87 + lsls r0, 1 + cmp r4, r0 + beq _08033D14 + cmp r4, r0 + bgt _08033CC8 + cmp r4, 0xF0 + blt _08033D38 + cmp r4, 0xF1 + ble _08033CE4 + b _08033CD4 +_08033CC8: + movs r0, 0x9C + lsls r0, 1 + cmp r4, r0 + beq _08033CEA + cmp r4, r0 + bgt _08033CDC +_08033CD4: + subs r0, 0xC + cmp r4, r0 + beq _08033CE4 + b _08033D38 +_08033CDC: + movs r0, 0xAD + lsls r0, 1 + cmp r4, r0 + bne _08033D38 +_08033CE4: + movs r5, 0xF0 + lsls r5, 12 + b _08033D90 +_08033CEA: + movs r0, 0 + bl sub_80751E8 + adds r4, r0, 0 + movs r0, 0x2 + bl sub_80751E8 + ldr r1, _08033D10 @ =gUnknown_825E45C + lsls r4, 24 + lsrs r4, 22 + adds r4, r1 + lsls r0, 24 + lsrs r0, 22 + adds r0, r1 + ldr r1, [r4] + ldr r0, [r0] + orrs r1, r0 + lsls r5, r1, 16 + b _08033D90 + .align 2, 0 +_08033D10: .4byte gUnknown_825E45C +_08033D14: + ldrb r0, [r3] + bl sub_80751D8 + movs r1, 0x2 + eors r0, r1 + lsls r0, 24 + lsrs r0, 24 + bl sub_80751E8 + ldr r1, _08033D34 @ =gUnknown_825E45C + lsls r0, 24 + lsrs r0, 22 + adds r0, r1 + ldr r0, [r0] + b _08033D42 + .align 2, 0 +_08033D34: .4byte gUnknown_825E45C +_08033D38: + ldr r0, _08033D48 @ =gUnknown_825E45C + ldrb r1, [r3] + lsls r1, 2 + adds r1, r0 + ldr r0, [r1] +_08033D42: + lsls r5, r0, 16 + b _08033D90 + .align 2, 0 +_08033D48: .4byte gUnknown_825E45C +_08033D4C: + movs r0, 0x1 + bl sub_80751E8 + adds r5, r0, 0 + ldr r0, _08033DAC @ =gUnknown_2023BC4 + ldrb r0, [r0] + bl sub_80751D8 + movs r1, 0x2 + eors r0, r1 + lsls r0, 24 + lsrs r0, 24 + bl sub_80751E8 + adds r4, r0, 0 + movs r0, 0x3 + bl sub_80751E8 + ldr r3, _08033DB0 @ =gUnknown_825E45C + lsls r5, 24 + lsrs r5, 22 + adds r5, r3 + lsls r4, 24 + lsrs r4, 22 + adds r4, r3 + ldr r2, [r5] + ldr r1, [r4] + orrs r2, r1 + lsls r0, 24 + lsrs r0, 22 + adds r0, r3 + ldr r0, [r0] + orrs r2, r0 + lsls r5, r2, 16 +_08033D90: + movs r6, 0x8 +_08033D92: + ldr r0, _08033DB4 @ =0x00007fff + str r0, [sp] + adds r0, r5, 0 + movs r1, 0x8 + adds r2, r6, 0 + movs r3, 0 + bl sub_8070588 +_08033DA2: + add sp, 0x4 + pop {r4-r6} + pop {r0} + bx r0 + .align 2, 0 +_08033DAC: .4byte gUnknown_2023BC4 +_08033DB0: .4byte gUnknown_825E45C +_08033DB4: .4byte 0x00007fff + thumb_func_end sub_8033AC8 + + .align 2, 0 @ Don't pad with nop. |