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/text.s |
first commit
Diffstat (limited to 'asm/text.s')
-rw-r--r-- | asm/text.s | 3091 |
1 files changed, 3091 insertions, 0 deletions
diff --git a/asm/text.s b/asm/text.s new file mode 100644 index 000000000..7532ec0b9 --- /dev/null +++ b/asm/text.s @@ -0,0 +1,3091 @@ + .include "asm/macros.inc" + .include "constants/constants.inc" + + .syntax unified + + .text + + thumb_func_start sub_800537C +sub_800537C: @ 800537C + push {lr} + adds r2, r0, 0 + adds r3, r2, 0 + adds r3, 0x14 + ldrb r1, [r3, 0x1] + movs r0, 0x80 + ands r0, r1 + cmp r0, 0 + bne _080053A0 + ldrb r1, [r2, 0x14] + movs r0, 0x10 + negs r0, r0 + ands r0, r1 + strb r0, [r2, 0x14] + ldrb r0, [r3, 0x1] + movs r1, 0x80 + orrs r0, r1 + strb r0, [r3, 0x1] +_080053A0: + adds r0, r2, 0 + bl sub_8005790 + lsls r0, 16 + lsrs r0, 16 + pop {r1} + bx r1 + thumb_func_end sub_800537C + + thumb_func_start sub_80053B0 +sub_80053B0: @ 80053B0 + push {lr} + adds r2, r0, 0 + adds r3, r2, 0 + adds r3, 0x14 + ldrb r1, [r3, 0x1] + movs r0, 0x80 + ands r0, r1 + cmp r0, 0 + bne _080053D8 + ldrb r1, [r2, 0x14] + movs r0, 0x10 + negs r0, r0 + ands r0, r1 + movs r1, 0x1 + orrs r0, r1 + strb r0, [r2, 0x14] + ldrb r0, [r3, 0x1] + movs r1, 0x80 + orrs r0, r1 + strb r0, [r3, 0x1] +_080053D8: + adds r0, r2, 0 + bl sub_8005790 + lsls r0, 16 + lsrs r0, 16 + pop {r1} + bx r1 + thumb_func_end sub_80053B0 + + thumb_func_start sub_80053E8 +sub_80053E8: @ 80053E8 + push {lr} + adds r2, r0, 0 + adds r3, r2, 0 + adds r3, 0x14 + ldrb r1, [r3, 0x1] + movs r0, 0x80 + ands r0, r1 + cmp r0, 0 + bne _08005410 + ldrb r1, [r2, 0x14] + movs r0, 0x10 + negs r0, r0 + ands r0, r1 + movs r1, 0x2 + orrs r0, r1 + strb r0, [r2, 0x14] + ldrb r0, [r3, 0x1] + movs r1, 0x80 + orrs r0, r1 + strb r0, [r3, 0x1] +_08005410: + adds r0, r2, 0 + bl sub_8005790 + lsls r0, 16 + lsrs r0, 16 + pop {r1} + bx r1 + thumb_func_end sub_80053E8 + + thumb_func_start sub_8005420 +sub_8005420: @ 8005420 + push {lr} + adds r2, r0, 0 + adds r3, r2, 0 + adds r3, 0x14 + ldrb r1, [r3, 0x1] + movs r0, 0x80 + ands r0, r1 + cmp r0, 0 + bne _08005448 + ldrb r1, [r2, 0x14] + movs r0, 0x10 + negs r0, r0 + ands r0, r1 + movs r1, 0x3 + orrs r0, r1 + strb r0, [r2, 0x14] + ldrb r0, [r3, 0x1] + movs r1, 0x80 + orrs r0, r1 + strb r0, [r3, 0x1] +_08005448: + adds r0, r2, 0 + bl sub_8005790 + lsls r0, 16 + lsrs r0, 16 + pop {r1} + bx r1 + thumb_func_end sub_8005420 + + thumb_func_start sub_8005458 +sub_8005458: @ 8005458 + push {lr} + adds r2, r0, 0 + adds r3, r2, 0 + adds r3, 0x14 + ldrb r1, [r3, 0x1] + movs r0, 0x80 + ands r0, r1 + cmp r0, 0 + bne _08005480 + ldrb r1, [r2, 0x14] + movs r0, 0x10 + negs r0, r0 + ands r0, r1 + movs r1, 0x4 + orrs r0, r1 + strb r0, [r2, 0x14] + ldrb r0, [r3, 0x1] + movs r1, 0x80 + orrs r0, r1 + strb r0, [r3, 0x1] +_08005480: + adds r0, r2, 0 + bl sub_8005790 + lsls r0, 16 + lsrs r0, 16 + pop {r1} + bx r1 + thumb_func_end sub_8005458 + + thumb_func_start sub_8005490 +sub_8005490: @ 8005490 + push {lr} + adds r2, r0, 0 + adds r3, r2, 0 + adds r3, 0x14 + ldrb r1, [r3, 0x1] + movs r0, 0x80 + ands r0, r1 + cmp r0, 0 + bne _080054B8 + ldrb r1, [r2, 0x14] + movs r0, 0x10 + negs r0, r0 + ands r0, r1 + movs r1, 0x5 + orrs r0, r1 + strb r0, [r2, 0x14] + ldrb r0, [r3, 0x1] + movs r1, 0x80 + orrs r0, r1 + strb r0, [r3, 0x1] +_080054B8: + adds r0, r2, 0 + bl sub_8005790 + lsls r0, 16 + lsrs r0, 16 + pop {r1} + bx r1 + thumb_func_end sub_8005490 + + thumb_func_start sub_80054C8 +sub_80054C8: @ 80054C8 + push {lr} + adds r2, r0, 0 + adds r2, 0x14 + ldr r0, _080054E0 @ =gUnknown_3003E50 + ldrb r1, [r0] + movs r0, 0x4 + ands r0, r1 + cmp r0, 0 + beq _080054E4 + movs r0, 0 + strb r0, [r2, 0x2] + b _080054F4 + .align 2, 0 +_080054E0: .4byte gUnknown_3003E50 +_080054E4: + ldrb r0, [r2, 0x1] + movs r1, 0x61 + negs r1, r1 + ands r1, r0 + movs r0, 0x20 + negs r0, r0 + ands r1, r0 + strb r1, [r2, 0x1] +_080054F4: + pop {r0} + bx r0 + thumb_func_end sub_80054C8 + + thumb_func_start sub_80054F8 +sub_80054F8: @ 80054F8 + push {r4-r7,lr} + sub sp, 0x18 + adds r5, r0, 0 + adds r6, r5, 0 + adds r6, 0x14 + ldr r7, _0800552C @ =gUnknown_3003E50 + ldrb r1, [r7] + movs r0, 0x4 + ands r0, r1 + cmp r0, 0 + bne _080055C2 + ldrb r2, [r6, 0x1] + movs r0, 0x1F + ands r0, r2 + cmp r0, 0 + beq _08005530 + ldr r0, [r5, 0x14] + lsls r0, 19 + lsrs r0, 27 + subs r0, 0x1 + movs r1, 0x1F + ands r0, r1 + movs r1, 0x20 + negs r1, r1 + b _080055BC + .align 2, 0 +_0800552C: .4byte gUnknown_3003E50 +_08005530: + ldrb r0, [r5, 0x4] + ldrb r2, [r5, 0xD] + lsls r2, 28 + lsrs r1, r2, 4 + orrs r1, r2 + lsrs r1, 24 + ldrb r2, [r5, 0x8] + ldrb r3, [r5, 0x9] + movs r4, 0xA + str r4, [sp] + movs r4, 0xC + str r4, [sp, 0x4] + bl sub_8004378 + ldr r0, [r7] + lsls r0, 30 + lsrs r0, 31 + cmp r0, 0 + beq _0800555A + cmp r0, 0x1 + beq _08005564 +_0800555A: + ldr r3, _08005560 @ =gUnknown_81EA14C + b _08005566 + .align 2, 0 +_08005560: .4byte gUnknown_81EA14C +_08005564: + ldr r3, _080055CC @ =gUnknown_81EA24C +_08005566: + ldrb r0, [r5, 0x4] + ldr r2, _080055D0 @ =gUnknown_81EA64C + ldr r1, [r6] + lsls r1, 17 + lsrs r1, 30 + adds r1, r2 + ldrb r2, [r1] + movs r1, 0x80 + str r1, [sp] + movs r1, 0x10 + str r1, [sp, 0x4] + ldrb r1, [r5, 0x8] + str r1, [sp, 0x8] + ldrb r1, [r5, 0x9] + str r1, [sp, 0xC] + movs r1, 0xA + str r1, [sp, 0x10] + movs r1, 0xC + str r1, [sp, 0x14] + adds r1, r3, 0 + movs r3, 0 + bl sub_80041F0 + ldrb r0, [r5, 0x4] + movs r1, 0x2 + bl sub_8003F20 + ldrb r0, [r6, 0x1] + movs r1, 0x20 + negs r1, r1 + ands r1, r0 + movs r0, 0x8 + orrs r1, r0 + strb r1, [r6, 0x1] + ldr r0, [r6] + lsls r0, 17 + lsrs r0, 30 + adds r0, 0x1 + movs r2, 0x3 + ands r0, r2 + lsls r0, 5 + movs r2, 0x61 + negs r2, r2 +_080055BC: + ands r1, r2 + orrs r1, r0 + strb r1, [r6, 0x1] +_080055C2: + add sp, 0x18 + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_080055CC: .4byte gUnknown_81EA24C +_080055D0: .4byte gUnknown_81EA64C + thumb_func_end sub_80054F8 + + thumb_func_start sub_80055D4 +sub_80055D4: @ 80055D4 + push {r4,r5,lr} + sub sp, 0x8 + adds r5, r0, 0 + ldrb r0, [r5, 0x4] + ldrb r2, [r5, 0xD] + lsls r2, 28 + lsrs r1, r2, 4 + orrs r1, r2 + lsrs r1, 24 + ldrb r2, [r5, 0x8] + ldrb r3, [r5, 0x9] + movs r4, 0xA + str r4, [sp] + movs r4, 0xC + str r4, [sp, 0x4] + bl sub_8004378 + ldrb r0, [r5, 0x4] + movs r1, 0x2 + bl sub_8003F20 + add sp, 0x8 + pop {r4,r5} + pop {r0} + bx r0 + thumb_func_end sub_80055D4 + + thumb_func_start sub_8005608 +sub_8005608: @ 8005608 + push {lr} + adds r1, r0, 0 + adds r1, 0x14 + ldr r0, _08005628 @ =gUnknown_203ADFA + ldrb r0, [r0] + movs r2, 0x78 + cmp r0, 0x2 + bne _0800561A + movs r2, 0x32 +_0800561A: + ldrb r0, [r1, 0x2] + cmp r0, r2 + beq _0800562C + adds r0, 0x1 + strb r0, [r1, 0x2] + movs r0, 0 + b _0800562E + .align 2, 0 +_08005628: .4byte gUnknown_203ADFA +_0800562C: + movs r0, 0x1 +_0800562E: + pop {r1} + bx r1 + thumb_func_end sub_8005608 + + thumb_func_start sub_8005634 +sub_8005634: @ 8005634 + push {r4,lr} + adds r2, r0, 0 + movs r4, 0 + ldr r0, _08005654 @ =gUnknown_3003E50 + ldrb r1, [r0] + movs r0, 0x4 + ands r0, r1 + cmp r0, 0 + beq _08005658 + adds r0, r2, 0 + bl sub_8005608 + lsls r0, 24 + lsrs r4, r0, 24 + b _08005672 + .align 2, 0 +_08005654: .4byte gUnknown_3003E50 +_08005658: + adds r0, r2, 0 + bl sub_80054F8 + ldr r0, _0800567C @ =gUnknown_30030F0 + ldrh r1, [r0, 0x2E] + movs r0, 0x3 + ands r0, r1 + cmp r0, 0 + beq _08005672 + movs r4, 0x1 + movs r0, 0x5 + bl sub_80722CC +_08005672: + adds r0, r4, 0 + pop {r4} + pop {r1} + bx r1 + .align 2, 0 +_0800567C: .4byte gUnknown_30030F0 + thumb_func_end sub_8005634 + + thumb_func_start sub_8005680 +sub_8005680: @ 8005680 + push {r4,lr} + adds r2, r0, 0 + movs r4, 0 + ldr r0, _080056A0 @ =gUnknown_3003E50 + ldrb r1, [r0] + movs r0, 0x4 + ands r0, r1 + cmp r0, 0 + beq _080056A4 + adds r0, r2, 0 + bl sub_8005608 + lsls r0, 24 + lsrs r4, r0, 24 + b _080056B8 + .align 2, 0 +_080056A0: .4byte gUnknown_3003E50 +_080056A4: + ldr r0, _080056C0 @ =gUnknown_30030F0 + ldrh r1, [r0, 0x2E] + movs r0, 0x3 + ands r0, r1 + cmp r0, 0 + beq _080056B8 + movs r4, 0x1 + movs r0, 0x5 + bl sub_80722CC +_080056B8: + adds r0, r4, 0 + pop {r4} + pop {r1} + bx r1 + .align 2, 0 +_080056C0: .4byte gUnknown_30030F0 + thumb_func_end sub_8005680 + + thumb_func_start sub_80056C4 +sub_80056C4: @ 80056C4 + push {r4-r7,lr} + mov r7, r9 + mov r6, r8 + push {r6,r7} + sub sp, 0x18 + ldr r4, [sp, 0x34] + ldr r5, [sp, 0x38] + mov r8, r5 + ldr r5, [sp, 0x3C] + mov r9, r5 + lsls r0, 24 + lsrs r5, r0, 24 + lsls r1, 16 + lsrs r7, r1, 16 + lsls r2, 16 + lsrs r6, r2, 16 + lsls r3, 24 + lsrs r3, 24 + lsls r4, 24 + lsrs r4, 24 + mov r1, r8 + ldrb r0, [r1] + cmp r0, 0 + beq _080056FA + subs r0, 0x1 + strb r0, [r1] + b _08005778 +_080056FA: + lsls r1, r3, 4 + orrs r1, r3 + lsls r1, 24 + lsrs r1, 24 + movs r0, 0xA + str r0, [sp] + movs r0, 0xC + str r0, [sp, 0x4] + adds r0, r5, 0 + adds r2, r7, 0 + adds r3, r6, 0 + bl sub_8004378 + cmp r4, 0 + bne _08005778 + ldr r0, _0800572C @ =gUnknown_3003E50 + ldr r0, [r0] + lsls r0, 30 + lsrs r0, 31 + cmp r0, 0 + beq _08005728 + cmp r0, 0x1 + beq _08005734 +_08005728: + ldr r3, _08005730 @ =gUnknown_81EA14C + b _08005736 + .align 2, 0 +_0800572C: .4byte gUnknown_3003E50 +_08005730: .4byte gUnknown_81EA14C +_08005734: + ldr r3, _08005788 @ =gUnknown_81EA24C +_08005736: + ldr r2, _0800578C @ =gUnknown_81EA64C + mov r0, r9 + ldrb r1, [r0] + movs r0, 0x3 + ands r0, r1 + adds r0, r2 + ldrb r2, [r0] + movs r0, 0x80 + str r0, [sp] + movs r0, 0x10 + str r0, [sp, 0x4] + str r7, [sp, 0x8] + str r6, [sp, 0xC] + movs r0, 0xA + str r0, [sp, 0x10] + movs r0, 0xC + str r0, [sp, 0x14] + adds r0, r5, 0 + adds r1, r3, 0 + movs r3, 0 + bl sub_80041F0 + adds r0, r5, 0 + movs r1, 0x2 + bl sub_8003F20 + movs r0, 0x8 + mov r1, r8 + strb r0, [r1] + mov r5, r9 + ldrb r0, [r5] + adds r0, 0x1 + strb r0, [r5] +_08005778: + add sp, 0x18 + pop {r3,r4} + mov r8, r3 + mov r9, r4 + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_08005788: .4byte gUnknown_81EA24C +_0800578C: .4byte gUnknown_81EA64C + thumb_func_end sub_80056C4 + + thumb_func_start sub_8005790 +sub_8005790: @ 8005790 + push {r4-r6,lr} + adds r6, r0, 0 + adds r4, r6, 0 + adds r4, 0x14 + ldrb r0, [r6, 0x1C] + cmp r0, 0x6 + bls _080057A0 + b _08005D68 +_080057A0: + lsls r0, 2 + ldr r1, _080057AC @ =_080057B0 + adds r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_080057AC: .4byte _080057B0 + .align 2, 0 +_080057B0: + .4byte _080057CC + .4byte _08005C58 + .4byte _08005C6C + .4byte _08005C98 + .4byte _08005CD0 + .4byte _08005D44 + .4byte _08005D56 +_080057CC: + ldr r2, _08005820 @ =gUnknown_30030F0 + ldrh r1, [r2, 0x2C] + movs r0, 0x3 + ands r0, r1 + cmp r0, 0 + beq _080057E6 + ldrb r1, [r4] + movs r0, 0x10 + ands r0, r1 + cmp r0, 0 + beq _080057E6 + movs r0, 0 + strb r0, [r6, 0x1E] +_080057E6: + ldrb r1, [r6, 0x1E] + cmp r1, 0 + beq _08005828 + ldrb r0, [r6, 0x1D] + cmp r0, 0 + beq _08005828 + subs r0, r1, 0x1 + strb r0, [r6, 0x1E] + ldr r0, _08005824 @ =gUnknown_3003E50 + ldrb r1, [r0] + movs r0, 0x1 + ands r0, r1 + cmp r0, 0 + bne _08005804 + b _08005B30 +_08005804: + ldrh r1, [r2, 0x2E] + movs r0, 0x3 + ands r0, r1 + cmp r0, 0 + bne _08005810 + b _08005B30 +_08005810: + ldrb r0, [r4] + movs r1, 0x10 + orrs r0, r1 + strb r0, [r4] + movs r0, 0 + strb r0, [r6, 0x1E] + b _08005B30 + .align 2, 0 +_08005820: .4byte gUnknown_30030F0 +_08005824: .4byte gUnknown_3003E50 +_08005828: + ldr r2, _08005838 @ =gUnknown_3003E50 + ldrb r1, [r2] + movs r0, 0x4 + ands r0, r1 + cmp r0, 0 + beq _0800583C + movs r0, 0x1 + b _0800583E + .align 2, 0 +_08005838: .4byte gUnknown_3003E50 +_0800583C: + ldrb r0, [r6, 0x1D] +_0800583E: + strb r0, [r6, 0x1E] + ldr r0, [r6] + ldrb r3, [r0] + adds r0, 0x1 + str r0, [r6] + adds r0, r3, 0 + subs r0, 0xF8 + cmp r0, 0x7 + bls _08005852 + b _08005B6C +_08005852: + lsls r0, 2 + ldr r1, _0800585C @ =_08005860 + adds r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_0800585C: .4byte _08005860 + .align 2, 0 +_08005860: + .4byte _08005B46 + .4byte _08005B34 + .4byte _08005B26 + .4byte _08005B22 + .4byte _080058AC + .4byte _080058A8 + .4byte _08005880 + .4byte _08005D68 +_08005880: + ldrb r0, [r6, 0x6] + strb r0, [r6, 0x8] + ldrb r1, [r6, 0x5] + ldr r0, _080058A4 @ =gUnknown_3003D90 + ldr r2, [r0] + lsls r0, r1, 1 + adds r0, r1 + lsls r0, 2 + adds r0, r2 + ldrb r1, [r6, 0xB] + ldrb r0, [r0, 0x5] + adds r1, r0 + ldrb r0, [r6, 0x9] + adds r0, r1 + strb r0, [r6, 0x9] +_0800589E: + movs r0, 0x2 + b _08005D6A + .align 2, 0 +_080058A4: .4byte gUnknown_3003D90 +_080058A8: + ldr r0, [r6] + b _08005B0A +_080058AC: + ldr r0, [r6] + ldrb r3, [r0] + adds r0, 0x1 + str r0, [r6] + subs r0, r3, 0x1 + cmp r0, 0x17 + bls _080058BC + b _08005B6C +_080058BC: + lsls r0, 2 + ldr r1, _080058C8 @ =_080058CC + adds r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_080058C8: .4byte _080058CC + .align 2, 0 +_080058CC: + .4byte _0800592C + .4byte _0800594E + .4byte _08005972 + .4byte _0800598C + .4byte _080059D8 + .4byte _080059DC + .4byte _0800589E + .4byte _080059F4 + .4byte _08005A04 + .4byte _08005A1A + .4byte _08005A1E + .4byte _08005A66 + .4byte _08005A70 + .4byte _08005A78 + .4byte _08005A84 + .4byte _08005A4C + .4byte _08005AB0 + .4byte _08005ACC + .4byte _08005ADC + .4byte _08005B00 + .4byte _08005B10 + .4byte _08005B18 + .4byte _08005A96 + .4byte _08005AA4 +_0800592C: + ldr r2, [r6] + ldrb r1, [r2] + lsls r1, 4 + ldrb r3, [r6, 0xC] + movs r0, 0xF + ands r0, r3 + orrs r0, r1 + strb r0, [r6, 0xC] + adds r2, 0x1 + str r2, [r6] + lsls r0, 24 + lsrs r0, 28 + ldrb r2, [r6, 0xD] + lsls r1, r2, 28 + lsrs r1, 28 + lsrs r2, 4 + b _080059D2 +_0800594E: + ldr r1, [r6] + ldrb r2, [r1] + movs r0, 0xF + ands r0, r2 + ldrb r3, [r6, 0xD] + movs r2, 0x10 + negs r2, r2 + ands r2, r3 + orrs r2, r0 + strb r2, [r6, 0xD] + adds r1, 0x1 + str r1, [r6] + ldrb r0, [r6, 0xC] + lsrs r0, 4 + lsls r1, r2, 28 + lsrs r1, 28 + lsrs r2, 4 + b _080059D2 +_08005972: + ldr r1, [r6] + ldrb r0, [r1] + lsls r0, 4 + ldrb r3, [r6, 0xD] + movs r2, 0xF + ands r2, r3 + orrs r2, r0 + strb r2, [r6, 0xD] + adds r1, 0x1 + str r1, [r6] + ldrb r0, [r6, 0xC] + lsrs r0, 4 + b _080059CA +_0800598C: + ldr r3, [r6] + ldrb r1, [r3] + lsls r1, 4 + ldrb r4, [r6, 0xC] + movs r2, 0xF + adds r0, r2, 0 + ands r0, r4 + orrs r0, r1 + strb r0, [r6, 0xC] + adds r5, r3, 0x1 + str r5, [r6] + ldrb r3, [r3, 0x1] + adds r1, r2, 0 + ands r1, r3 + ldrb r4, [r6, 0xD] + movs r3, 0x10 + negs r3, r3 + ands r3, r4 + orrs r3, r1 + strb r3, [r6, 0xD] + adds r4, r5, 0x1 + str r4, [r6] + ldrb r1, [r5, 0x1] + lsls r1, 4 + ands r2, r3 + orrs r2, r1 + strb r2, [r6, 0xD] + adds r4, 0x1 + str r4, [r6] + lsls r0, 24 + lsrs r0, 28 +_080059CA: + lsls r1, r2, 28 + lsrs r1, 28 + lsls r2, 24 + lsrs r2, 28 +_080059D2: + bl sub_8002EA8 + b _0800589E +_080059D8: + ldr r0, [r6] + b _08005B0A +_080059DC: + ldr r0, [r6] + ldrb r0, [r0] + movs r1, 0xF + ands r1, r0 + ldrb r2, [r4] + movs r0, 0x10 + negs r0, r0 + ands r0, r2 + orrs r0, r1 + strb r0, [r4] + ldr r0, [r6] + b _08005B0A +_080059F4: + ldr r0, [r6] + ldrb r1, [r0] + strb r1, [r6, 0x1E] + adds r0, 0x1 + str r0, [r6] + movs r0, 0x6 + strb r0, [r6, 0x1C] + b _0800589E +_08005A04: + movs r0, 0x1 + strb r0, [r6, 0x1C] + ldrb r1, [r2] + movs r0, 0x4 + ands r0, r1 + cmp r0, 0 + bne _08005A14 + b _08005B30 +_08005A14: + movs r0, 0 + strb r0, [r4, 0x2] + b _08005B30 +_08005A1A: + movs r0, 0x5 + b _08005D52 +_08005A1E: + ldr r0, [r6] + ldrb r3, [r0] + adds r1, r0, 0x1 + str r1, [r6] + ldrb r0, [r0, 0x1] + lsls r0, 8 + orrs r3, r0 + adds r1, 0x1 + str r1, [r6] + ldr r0, _08005A48 @ =gUnknown_203ADFA + ldrb r0, [r0] + subs r0, 0x2 + lsls r0, 24 + lsrs r0, 24 + cmp r0, 0x1 + bhi _08005A40 + b _0800589E +_08005A40: + adds r0, r3, 0 + bl sub_80722A0 + b _0800589E + .align 2, 0 +_08005A48: .4byte gUnknown_203ADFA +_08005A4C: + ldr r0, [r6] + ldrb r3, [r0] + adds r1, r0, 0x1 + str r1, [r6] + ldrb r0, [r0, 0x1] + lsls r0, 8 + orrs r3, r0 + adds r1, 0x1 + str r1, [r6] + adds r0, r3, 0 + bl sub_80722CC + b _0800589E +_08005A66: + ldr r1, [r6] + adds r0, r1, 0x1 + str r0, [r6] + ldrb r3, [r1, 0x1] + b _08005B6C +_08005A70: + ldr r1, [r6] + ldrb r0, [r1] + ldrb r2, [r6, 0x6] + b _08005AD2 +_08005A78: + ldr r1, [r6] + ldrb r0, [r1] + ldrb r3, [r6, 0x7] + adds r0, r3 + strb r0, [r6, 0x9] + b _08005AD6 +_08005A84: + ldrb r0, [r6, 0x4] + ldrb r2, [r6, 0xD] + lsls r2, 28 + lsrs r1, r2, 4 + orrs r1, r2 + lsrs r1, 24 + bl sub_800445C + b _0800589E +_08005A96: + ldr r0, _08005AA0 @ =gMPlay_BGM + bl m4aMPlayStop + b _0800589E + .align 2, 0 +_08005AA0: .4byte gMPlay_BGM +_08005AA4: + ldr r0, _08005AAC @ =gMPlay_BGM + bl m4aMPlayContinue + b _0800589E + .align 2, 0 +_08005AAC: .4byte gMPlay_BGM +_08005AB0: + ldr r0, [r6] + ldrb r4, [r0] + adds r0, 0x1 + str r0, [r6] + cmp r4, 0 + bgt _08005ABE + b _0800589E +_08005ABE: + adds r0, r6, 0 + adds r1, r4, 0 + bl nullsub_5 + ldrb r0, [r6, 0x8] + adds r0, r4 + b _08005C4E +_08005ACC: + ldr r1, [r6] + ldrb r0, [r6, 0x6] + ldrb r2, [r1] +_08005AD2: + adds r0, r2 + strb r0, [r6, 0x8] +_08005AD6: + adds r1, 0x1 + str r1, [r6] + b _0800589E +_08005ADC: + ldr r0, [r6] + ldrb r2, [r0] + ldrb r1, [r6, 0x6] + adds r2, r1 + adds r0, 0x1 + str r0, [r6] + ldrb r0, [r6, 0x8] + subs r4, r2, r0 + cmp r4, 0 + bgt _08005AF2 + b _0800589E +_08005AF2: + adds r0, r6, 0 + adds r1, r4, 0 + bl nullsub_5 + ldrb r0, [r6, 0x8] + adds r0, r4 + b _08005C4E +_08005B00: + ldr r0, [r6] + ldrb r2, [r0] + adds r1, r6, 0 + adds r1, 0x20 + strb r2, [r1] +_08005B0A: + adds r0, 0x1 + str r0, [r6] + b _0800589E +_08005B10: + adds r1, r6, 0 + adds r1, 0x21 + movs r0, 0x1 + b _08005B1E +_08005B18: + adds r1, r6, 0 + adds r1, 0x21 + movs r0, 0 +_08005B1E: + strb r0, [r1] + b _0800589E +_08005B22: + movs r0, 0x2 + b _08005B28 +_08005B26: + movs r0, 0x3 +_08005B28: + strb r0, [r6, 0x1C] + adds r0, r6, 0 + bl sub_80054C8 +_08005B30: + movs r0, 0x3 + b _08005D6A +_08005B34: + ldr r0, [r6] + ldrb r3, [r0] + movs r2, 0x80 + lsls r2, 1 + adds r1, r2, 0 + orrs r3, r1 + adds r0, 0x1 + str r0, [r6] + b _08005B6C +_08005B46: + ldr r0, [r6] + ldrb r3, [r0] + adds r0, 0x1 + str r0, [r6] + ldrb r0, [r6, 0x4] + adds r1, r3, 0 + ldrb r2, [r6, 0x8] + ldrb r3, [r6, 0x9] + bl sub_80063C8 + ldr r1, _08005B68 @ =gUnknown_3003DA0 + adds r1, 0x80 + strb r0, [r1] + ldrb r3, [r6, 0xA] + adds r0, r3 + b _08005C4A + .align 2, 0 +_08005B68: .4byte gUnknown_3003DA0 +_08005B6C: + ldr r0, [r4] + lsls r0, 28 + lsrs r0, 28 + cmp r0, 0x5 + bhi _08005BEE + lsls r0, 2 + ldr r1, _08005B80 @ =_08005B84 + adds r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_08005B80: .4byte _08005B84 + .align 2, 0 +_08005B84: + .4byte _08005B9C + .4byte _08005BAA + .4byte _08005BB8 + .4byte _08005BC6 + .4byte _08005BD4 + .4byte _08005BE2 +_08005B9C: + adds r0, r6, 0 + adds r0, 0x21 + ldrb r1, [r0] + adds r0, r3, 0 + bl sub_8006448 + b _08005BEE +_08005BAA: + adds r0, r6, 0 + adds r0, 0x21 + ldrb r1, [r0] + adds r0, r3, 0 + bl sub_80064F0 + b _08005BEE +_08005BB8: + adds r0, r6, 0 + adds r0, 0x21 + ldrb r1, [r0] + adds r0, r3, 0 + bl sub_80065B8 + b _08005BEE +_08005BC6: + adds r0, r6, 0 + adds r0, 0x21 + ldrb r1, [r0] + adds r0, r3, 0 + bl sub_8006724 + b _08005BEE +_08005BD4: + adds r0, r6, 0 + adds r0, 0x21 + ldrb r1, [r0] + adds r0, r3, 0 + bl sub_80067EC + b _08005BEE +_08005BE2: + adds r0, r6, 0 + adds r0, 0x21 + ldrb r1, [r0] + adds r0, r3, 0 + bl sub_8006958 +_08005BEE: + adds r0, r6, 0 + bl sub_8003014 + adds r2, r6, 0 + adds r2, 0x20 + ldrb r0, [r2] + cmp r0, 0 + beq _08005C28 + ldr r1, _08005C24 @ =gUnknown_3003DA0 + adds r1, 0x80 + ldrb r0, [r1] + ldrb r3, [r6, 0x8] + adds r0, r3 + strb r0, [r6, 0x8] + ldrb r2, [r2] + ldrb r0, [r1] + subs r4, r2, r0 + cmp r4, 0 + ble _08005C50 + adds r0, r6, 0 + adds r1, r4, 0 + bl nullsub_5 + ldrb r0, [r6, 0x8] + adds r0, r4 + b _08005C4E + .align 2, 0 +_08005C24: .4byte gUnknown_3003DA0 +_08005C28: + adds r0, r6, 0 + adds r0, 0x21 + ldrb r0, [r0] + cmp r0, 0 + beq _08005C44 + ldr r0, _08005C40 @ =gUnknown_3003DA0 + adds r0, 0x80 + ldrb r1, [r6, 0xA] + ldrb r0, [r0] + adds r1, r0 + ldrb r0, [r6, 0x8] + b _08005C4C + .align 2, 0 +_08005C40: .4byte gUnknown_3003DA0 +_08005C44: + ldr r0, _08005C54 @ =gUnknown_3003DA0 + adds r0, 0x80 + ldrb r0, [r0] +_08005C4A: + ldrb r1, [r6, 0x8] +_08005C4C: + adds r0, r1 +_08005C4E: + strb r0, [r6, 0x8] +_08005C50: + movs r0, 0 + b _08005D6A + .align 2, 0 +_08005C54: .4byte gUnknown_3003DA0 +_08005C58: + adds r0, r6, 0 + bl sub_8005680 + lsls r0, 16 + cmp r0, 0 + bne _08005C66 + b _08005B30 +_08005C66: + movs r0, 0 + strb r0, [r6, 0x1C] + b _08005B30 +_08005C6C: + adds r0, r6, 0 + bl sub_8005634 + lsls r0, 16 + cmp r0, 0 + bne _08005C7A + b _08005B30 +_08005C7A: + ldrb r0, [r6, 0x4] + ldrb r2, [r6, 0xD] + lsls r2, 28 + lsrs r1, r2, 4 + orrs r1, r2 + lsrs r1, 24 + bl sub_800445C + ldrb r0, [r6, 0x6] + movs r1, 0 + strb r0, [r6, 0x8] + ldrb r0, [r6, 0x7] + strb r0, [r6, 0x9] + strb r1, [r6, 0x1C] + b _08005B30 +_08005C98: + adds r0, r6, 0 + bl sub_8005634 + lsls r0, 16 + cmp r0, 0 + bne _08005CA6 + b _08005B30 +_08005CA6: + adds r0, r6, 0 + bl sub_80055D4 + ldrb r1, [r6, 0x5] + ldr r0, _08005CCC @ =gUnknown_3003D90 + ldr r2, [r0] + lsls r0, r1, 1 + adds r0, r1 + lsls r0, 2 + adds r0, r2 + ldrb r1, [r6, 0xB] + ldrb r0, [r0, 0x5] + adds r1, r0 + strb r1, [r6, 0x1F] + ldrb r0, [r6, 0x6] + strb r0, [r6, 0x8] + movs r0, 0x4 + strb r0, [r6, 0x1C] + b _08005B30 + .align 2, 0 +_08005CCC: .4byte gUnknown_3003D90 +_08005CD0: + ldrb r2, [r6, 0x1F] + cmp r2, 0 + beq _08005D40 + ldr r4, _08005D04 @ =gUnknown_81EA650 + ldr r5, _08005D08 @ =gUnknown_300500C + ldr r0, [r5] + ldrb r0, [r0, 0x14] + lsls r1, r0, 29 + lsrs r0, r1, 29 + adds r0, r4 + ldrb r0, [r0] + cmp r2, r0 + bcs _08005D0C + ldrb r0, [r6, 0x4] + ldrb r1, [r6, 0xD] + lsls r1, 28 + lsrs r3, r1, 4 + orrs r3, r1 + lsrs r3, 24 + movs r1, 0 + bl sub_80044A8 + movs r0, 0 + strb r0, [r6, 0x1F] + b _08005D36 + .align 2, 0 +_08005D04: .4byte gUnknown_81EA650 +_08005D08: .4byte gUnknown_300500C +_08005D0C: + ldrb r0, [r6, 0x4] + lsrs r1, 29 + adds r1, r4 + ldrb r2, [r1] + ldrb r1, [r6, 0xD] + lsls r1, 28 + lsrs r3, r1, 4 + orrs r3, r1 + lsrs r3, 24 + movs r1, 0 + bl sub_80044A8 + ldr r0, [r5] + ldrb r0, [r0, 0x14] + lsls r0, 29 + lsrs r0, 29 + adds r0, r4 + ldrb r1, [r6, 0x1F] + ldrb r0, [r0] + subs r1, r0 + strb r1, [r6, 0x1F] +_08005D36: + ldrb r0, [r6, 0x4] + movs r1, 0x2 + bl sub_8003F20 + b _08005B30 +_08005D40: + strb r2, [r6, 0x1C] + b _08005B30 +_08005D44: + bl sub_80723E0 + lsls r0, 24 + lsrs r0, 24 + cmp r0, 0 + beq _08005D52 + b _08005B30 +_08005D52: + strb r0, [r6, 0x1C] + b _08005B30 +_08005D56: + ldrb r0, [r6, 0x1E] + adds r1, r0, 0 + cmp r1, 0 + beq _08005D64 + subs r0, 0x1 + strb r0, [r6, 0x1E] + b _08005B30 +_08005D64: + strb r1, [r6, 0x1C] + b _08005B30 +_08005D68: + movs r0, 0x1 +_08005D6A: + pop {r4-r6} + pop {r1} + bx r1 + thumb_func_end sub_8005790 + + thumb_func_start sub_8005D70 +sub_8005D70: @ 8005D70 + push {r4-r7,lr} + mov r7, r8 + push {r7} + sub sp, 0x8 + lsls r1, 24 + lsrs r7, r1, 24 + lsls r2, 24 + lsrs r2, 24 + mov r8, r2 + movs r2, 0 + mov r1, sp + adds r1, 0x7 +_08005D88: + strb r2, [r1] + subs r1, 0x1 + cmp r1, sp + bge _08005D88 + movs r5, 0 + movs r6, 0 + adds r4, r0, 0 + movs r2, 0 +_08005D98: + adds r0, r4, r2 + ldrb r3, [r0] + adds r2, 0x1 + adds r0, r3, 0 + subs r0, 0xF7 + cmp r0, 0x8 + bhi _08005E66 + lsls r0, 2 + ldr r1, _08005DB0 @ =_08005DB4 + adds r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_08005DB0: .4byte _08005DB4 + .align 2, 0 +_08005DB4: + .4byte _08005E60 + .4byte _08005E64 + .4byte _08005E64 + .4byte _08005E6C + .4byte _08005E6C + .4byte _08005DE8 + .4byte _08005E60 + .4byte _08005DD8 + .4byte _08005DD8 +_08005DD8: + mov r1, sp + adds r0, r1, r6 + strb r5, [r0] + movs r5, 0 + adds r0, r6, 0x1 + lsls r0, 24 + lsrs r6, r0, 24 + b _08005E6C +_08005DE8: + adds r0, r4, r2 + ldrb r0, [r0] + adds r2, 0x1 + subs r0, 0x1 + cmp r0, 0x15 + bhi _08005E6C + lsls r0, 2 + ldr r1, _08005E00 @ =_08005E04 + adds r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_08005E00: .4byte _08005E04 + .align 2, 0 +_08005E04: + .4byte _08005E60 + .4byte _08005E60 + .4byte _08005E60 + .4byte _08005E5C + .4byte _08005E60 + .4byte _08005E60 + .4byte _08005E6C + .4byte _08005E60 + .4byte _08005E6C + .4byte _08005E6C + .4byte _08005E5E + .4byte _08005E60 + .4byte _08005E60 + .4byte _08005E60 + .4byte _08005E6C + .4byte _08005E5E + .4byte _08005E60 + .4byte _08005E60 + .4byte _08005E60 + .4byte _08005E60 + .4byte _08005E6C + .4byte _08005E6C +_08005E5C: + adds r2, 0x1 +_08005E5E: + adds r2, 0x1 +_08005E60: + adds r2, 0x1 + b _08005E6C +_08005E64: + adds r2, 0x1 +_08005E66: + adds r0, r5, 0x1 + lsls r0, 24 + lsrs r5, r0, 24 +_08005E6C: + cmp r3, 0xFF + bne _08005D98 + movs r5, 0 + movs r2, 0 +_08005E74: + mov r1, sp + adds r0, r1, r2 + ldrb r1, [r0] + cmp r5, r1 + bcs _08005E80 + ldrb r5, [r0] +_08005E80: + adds r2, 0x1 + cmp r2, 0x7 + ble _08005E74 + adds r0, r7, 0 + movs r1, 0 + bl sub_80F79D8 + add r0, r8 + lsls r0, 24 + lsrs r0, 24 + muls r0, r5 + add sp, 0x8 + pop {r3} + mov r8, r3 + pop {r4-r7} + pop {r1} + bx r1 + thumb_func_end sub_8005D70 + + thumb_func_start sub_8005EA4 +sub_8005EA4: @ 8005EA4 + push {r4,lr} + lsls r0, 24 + lsrs r4, r0, 24 + movs r3, 0 + ldr r0, _08005EBC @ =gUnknown_81EA654 + adds r2, r0, 0x4 + adds r1, r0, 0 +_08005EB2: + ldr r0, [r1] + cmp r4, r0 + bne _08005EC0 + ldr r0, [r2] + b _08005ECC + .align 2, 0 +_08005EBC: .4byte gUnknown_81EA654 +_08005EC0: + adds r2, 0x8 + adds r1, 0x8 + adds r3, 0x1 + cmp r3, 0x6 + bls _08005EB2 + movs r0, 0 +_08005ECC: + pop {r4} + pop {r1} + bx r1 + thumb_func_end sub_8005EA4 + + thumb_func_start sub_8005ED4 +sub_8005ED4: @ 8005ED4 + push {r4-r7,lr} + mov r7, r10 + mov r6, r9 + mov r5, r8 + push {r5-r7} + sub sp, 0xC + adds r4, r1, 0 + lsls r0, 24 + lsrs r0, 24 + str r0, [sp] + lsls r2, 16 + lsrs r5, r2, 16 + movs r0, 0 + mov r9, r0 + movs r7, 0 + ldr r0, [sp] + bl sub_8005EA4 + mov r8, r0 + cmp r0, 0 + bne _08005F02 +_08005EFE: + movs r0, 0 + b _08006112 +_08005F02: + lsls r0, r5, 16 + asrs r2, r0, 16 + movs r1, 0x1 + negs r1, r1 + str r0, [sp, 0x8] + cmp r2, r1 + bne _08005F20 + ldr r0, [sp] + movs r1, 0x2 + bl sub_80F79D8 + lsls r0, 24 + lsrs r0, 24 + mov r10, r0 + b _08005F22 +_08005F20: + mov r10, r2 +_08005F22: + movs r1, 0 + str r1, [sp, 0x4] + movs r5, 0 + movs r6, 0 + b _080060FE +_08005F2C: + ldrb r1, [r4] + adds r0, r1, 0 + subs r0, 0xF7 + cmp r0, 0x7 + bls _08005F38 + b _080060E0 +_08005F38: + lsls r0, 2 + ldr r1, _08005F44 @ =_08005F48 + adds r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_08005F44: .4byte _08005F48 + .align 2, 0 +_08005F48: + .4byte _08005F9E + .4byte _080060AE + .4byte _080060AE + .4byte _080060FC + .4byte _080060FC + .4byte _08005FDE + .4byte _08005F74 + .4byte _08005F68 +_08005F68: + ldr r2, [sp, 0x4] + cmp r5, r2 + bls _08005F70 + str r5, [sp, 0x4] +_08005F70: + movs r5, 0 + b _080060FC +_08005F74: + adds r4, 0x1 + ldrb r0, [r4] + cmp r0, 0x3 + beq _08005F94 + cmp r0, 0x3 + bgt _08005F86 + cmp r0, 0x2 + beq _08005F8C + b _08005EFE +_08005F86: + cmp r0, 0x4 + beq _08005F9C + b _08005EFE +_08005F8C: + ldr r6, _08005F90 @ =gUnknown_2021CD0 + b _08005F9E + .align 2, 0 +_08005F90: .4byte gUnknown_2021CD0 +_08005F94: + ldr r6, _08005F98 @ =gUnknown_2021CF0 + b _08005F9E + .align 2, 0 +_08005F98: .4byte gUnknown_2021CF0 +_08005F9C: + ldr r6, _08005FB0 @ =gUnknown_2021D04 +_08005F9E: + cmp r6, 0 + bne _08005FD4 + adds r4, 0x1 + ldrb r0, [r4] + bl sub_813CD14 + adds r6, r0, 0 + b _08005FD4 + .align 2, 0 +_08005FB0: .4byte gUnknown_2021D04 +_08005FB4: + ldrb r0, [r6] + adds r6, 0x1 + mov r1, r9 + bl _call_via_r8 + cmp r7, 0 + ble _08005FCA + cmp r0, r7 + bge _08005FD2 + adds r0, r7, 0 + b _08005FD2 +_08005FCA: + mov r1, r9 + cmp r1, 0 + beq _08005FD2 + add r0, r10 +_08005FD2: + adds r5, r0 +_08005FD4: + ldrb r0, [r6] + cmp r0, 0xFF + bne _08005FB4 + movs r6, 0 + b _080060FC +_08005FDE: + adds r4, 0x1 + ldrb r0, [r4] + subs r0, 0x1 + cmp r0, 0x15 + bls _08005FEA + b _080060FC +_08005FEA: + lsls r0, 2 + ldr r1, _08005FF4 @ =_08005FF8 + adds r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_08005FF4: .4byte _08005FF8 + .align 2, 0 +_08005FF8: + .4byte _08006054 + .4byte _08006054 + .4byte _08006054 + .4byte _08006050 + .4byte _08006054 + .4byte _08006058 + .4byte _080060FC + .4byte _08006054 + .4byte _080060FC + .4byte _080060FC + .4byte _08006052 + .4byte _08006054 + .4byte _08006054 + .4byte _08006054 + .4byte _080060FC + .4byte _08006052 + .4byte _08006084 + .4byte _0800608A + .4byte _08006090 + .4byte _0800609C + .4byte _080060A2 + .4byte _080060A8 +_08006050: + adds r4, 0x1 +_08006052: + adds r4, 0x1 +_08006054: + adds r4, 0x1 + b _080060FC +_08006058: + adds r4, 0x1 + ldrb r0, [r4] + bl sub_8005EA4 + mov r8, r0 + cmp r0, 0 + bne _08006068 + b _08005EFE +_08006068: + ldr r2, [sp, 0x8] + asrs r1, r2, 16 + movs r0, 0x1 + negs r0, r0 + cmp r1, r0 + bne _080060FC + ldrb r0, [r4] + movs r1, 0x2 + bl sub_80F79D8 + lsls r0, 24 + lsrs r0, 24 + mov r10, r0 + b _080060FC +_08006084: + adds r4, 0x1 + ldrb r0, [r4] + b _080060FA +_0800608A: + adds r4, 0x1 + ldrb r5, [r4] + b _080060FC +_08006090: + adds r4, 0x1 + ldrb r0, [r4] + cmp r0, r5 + bls _080060FC + adds r5, r0, 0 + b _080060FC +_0800609C: + adds r4, 0x1 + ldrb r7, [r4] + b _080060FC +_080060A2: + movs r0, 0x1 + mov r9, r0 + b _080060FC +_080060A8: + movs r1, 0 + mov r9, r1 + b _080060FC +_080060AE: + ldrb r0, [r4] + cmp r0, 0xF9 + bne _080060C8 + adds r4, 0x1 + ldrb r0, [r4] + movs r2, 0x80 + lsls r2, 1 + adds r1, r2, 0 + orrs r0, r1 + mov r1, r9 + bl _call_via_r8 + b _080060D4 +_080060C8: + adds r4, 0x1 + ldrb r0, [r4] + bl sub_8006428 + lsls r0, 24 + lsrs r0, 24 +_080060D4: + cmp r7, 0 + ble _080060F2 +_080060D8: + cmp r0, r7 + bge _080060FA + adds r0, r7, 0 + b _080060FA +_080060E0: + adds r0, r1, 0 + mov r1, r9 + bl _call_via_r8 + cmp r7, 0 + bgt _080060D8 + ldr r2, [sp] + cmp r2, 0x6 + beq _080060FA +_080060F2: + mov r1, r9 + cmp r1, 0 + beq _080060FA + add r0, r10 +_080060FA: + adds r5, r0 +_080060FC: + adds r4, 0x1 +_080060FE: + ldrb r0, [r4] + cmp r0, 0xFF + beq _08006106 + b _08005F2C +_08006106: + ldr r2, [sp, 0x4] + cmp r5, r2 + bhi _08006110 + adds r0, r2, 0 + b _08006112 +_08006110: + adds r0, r5, 0 +_08006112: + add sp, 0xC + pop {r3-r5} + mov r8, r3 + mov r9, r4 + mov r10, r5 + pop {r4-r7} + pop {r1} + bx r1 + thumb_func_end sub_8005ED4 + + thumb_func_start sub_8006124 +sub_8006124: @ 8006124 + push {r4-r7,lr} + mov r7, r10 + mov r6, r9 + mov r5, r8 + push {r5-r7} + sub sp, 0xC + mov r9, r0 + adds r4, r2, 0 + mov r5, sp + adds r5, 0x1 + mov r6, sp + adds r6, 0x2 + mov r0, sp + adds r1, r5, 0 + adds r2, r6, 0 + bl sub_8002F5C + movs r0, 0x1 + str r0, [sp, 0x4] + movs r1, 0 + str r1, [sp, 0x8] + movs r0, 0x3 + mov r10, r0 + movs r0, 0x1 + movs r2, 0x3 + bl sub_8002EA8 + mov r8, r4 + movs r7, 0 +_0800615E: + mov r1, r8 + adds r0, r1, r7 + ldrb r6, [r0] + adds r7, 0x1 + adds r0, r6, 0 + subs r0, 0xF7 + cmp r0, 0x8 + bhi _0800625A + lsls r0, 2 + ldr r1, _08006178 @ =_0800617C + adds r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_08006178: .4byte _0800617C + .align 2, 0 +_0800617C: + .4byte _08006256 + .4byte _08006256 + .4byte _08006256 + .4byte _08006280 + .4byte _08006280 + .4byte _080061A0 + .4byte _08006256 + .4byte _08006280 + .4byte _08006280 +_080061A0: + mov r1, r8 + adds r0, r1, r7 + ldrb r0, [r0] + adds r7, 0x1 + subs r0, 0x1 + cmp r0, 0x15 + bhi _08006280 + lsls r0, 2 + ldr r1, _080061B8 @ =_080061BC + adds r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_080061B8: .4byte _080061BC + .align 2, 0 +_080061BC: + .4byte _08006228 + .4byte _08006234 + .4byte _0800623E + .4byte _08006214 + .4byte _08006256 + .4byte _08006256 + .4byte _08006280 + .4byte _08006256 + .4byte _08006280 + .4byte _08006280 + .4byte _08006254 + .4byte _08006256 + .4byte _08006256 + .4byte _08006256 + .4byte _08006280 + .4byte _08006254 + .4byte _08006256 + .4byte _08006256 + .4byte _08006256 + .4byte _08006256 + .4byte _08006280 + .4byte _08006280 +_08006214: + mov r1, r8 + adds r0, r1, r7 + ldrb r0, [r0] + str r0, [sp, 0x4] + adds r7, 0x1 + adds r0, r1, r7 + ldrb r0, [r0] + str r0, [sp, 0x8] + adds r7, 0x1 + b _08006240 +_08006228: + mov r1, r8 + adds r0, r1, r7 + ldrb r0, [r0] + str r0, [sp, 0x4] + adds r7, 0x1 + b _0800624A +_08006234: + mov r1, r8 + adds r0, r1, r7 + ldrb r0, [r0] + str r0, [sp, 0x8] + b _08006246 +_0800623E: + mov r1, r8 +_08006240: + adds r0, r1, r7 + ldrb r0, [r0] + mov r10, r0 +_08006246: + adds r7, 0x1 + ldr r0, [sp, 0x4] +_0800624A: + ldr r1, [sp, 0x8] + mov r2, r10 + bl sub_8002EA8 + b _08006280 +_08006254: + adds r7, 0x1 +_08006256: + adds r7, 0x1 + b _08006280 +_0800625A: + adds r0, r6, 0 + bl sub_8006AC4 + ldr r4, _080062A8 @ =gUnknown_3003DA0 + ldr r5, _080062AC @ =0x04000008 + adds r0, r4, 0 + mov r1, r9 + adds r2, r5, 0 + bl CpuSet + adds r4, 0x40 + mov r1, r9 + adds r1, 0x20 + adds r0, r4, 0 + adds r2, r5, 0 + bl CpuSet + movs r0, 0x40 + add r9, r0 +_08006280: + cmp r6, 0xFF + beq _08006286 + b _0800615E +_08006286: + mov r0, sp + mov r1, sp + adds r1, 0x1 + mov r2, sp + adds r2, 0x2 + bl sub_8002F7C + movs r0, 0x1 + add sp, 0xC + pop {r3-r5} + mov r8, r3 + mov r9, r4 + mov r10, r5 + pop {r4-r7} + pop {r1} + bx r1 + .align 2, 0 +_080062A8: .4byte gUnknown_3003DA0 +_080062AC: .4byte 0x04000008 + thumb_func_end sub_8006124 + + thumb_func_start sub_80062B0 +sub_80062B0: @ 80062B0 + push {lr} + adds r1, r0, 0 + ldrh r0, [r1, 0x2E] + movs r3, 0x2E + ldrsh r2, [r1, r3] + cmp r2, 0 + beq _080062C4 + subs r0, 0x1 + strh r0, [r1, 0x2E] + b _080062FA +_080062C4: + movs r0, 0x8 + strh r0, [r1, 0x2E] + movs r3, 0x30 + ldrsh r0, [r1, r3] + cmp r0, 0x1 + beq _080062E8 + cmp r0, 0x1 + bgt _080062DA + cmp r0, 0 + beq _080062E4 + b _080062F4 +_080062DA: + cmp r0, 0x2 + beq _080062E8 + cmp r0, 0x3 + beq _080062EC + b _080062F4 +_080062E4: + strh r2, [r1, 0x26] + b _080062F4 +_080062E8: + strh r0, [r1, 0x26] + b _080062F4 +_080062EC: + movs r0, 0x1 + strh r0, [r1, 0x26] + strh r2, [r1, 0x30] + b _080062FA +_080062F4: + ldrh r0, [r1, 0x30] + adds r0, 0x1 + strh r0, [r1, 0x30] +_080062FA: + pop {r0} + bx r0 + thumb_func_end sub_80062B0 + + thumb_func_start sub_8006300 +sub_8006300: @ 8006300 + push {r4-r6,lr} + mov r6, r8 + push {r6} + adds r4, r1, 0 + adds r5, r2, 0 + adds r6, r3, 0 + ldr r1, [sp, 0x14] + lsls r0, 24 + lsrs r0, 24 + lsls r4, 16 + lsrs r4, 16 + lsls r5, 16 + lsrs r5, 16 + lsls r6, 24 + lsrs r6, 24 + lsls r1, 24 + lsrs r1, 24 + mov r8, r1 + movs r1, 0x1 + ands r0, r1 + lsls r0, 3 + ldr r1, _08006388 @ =gUnknown_81EA68C + adds r0, r1 + bl sub_80086DC + ldr r0, _0800638C @ =gUnknown_81EA6A4 + bl sub_8008928 + ldr r0, _08006390 @ =gUnknown_81EA6B4 + adds r4, 0x3 + lsls r4, 16 + asrs r4, 16 + adds r5, 0x4 + lsls r5, 16 + asrs r5, 16 + adds r1, r4, 0 + adds r2, r5, 0 + mov r3, r8 + bl sub_8006F8C + lsls r0, 24 + lsrs r0, 24 + ldr r1, _08006394 @ =gUnknown_202063C + lsls r2, r0, 4 + adds r2, r0 + lsls r2, 2 + adds r2, r1 + movs r1, 0x3 + ands r6, r1 + lsls r6, 2 + ldrb r3, [r2, 0x5] + subs r1, 0x10 + ands r1, r3 + orrs r1, r6 + strb r1, [r2, 0x5] + ldrb r3, [r2, 0x3] + movs r1, 0x3F + negs r1, r1 + ands r1, r3 + strb r1, [r2, 0x3] + movs r1, 0x8 + strh r1, [r2, 0x2E] + pop {r3} + mov r8, r3 + pop {r4-r6} + pop {r1} + bx r1 + .align 2, 0 +_08006388: .4byte gUnknown_81EA68C +_0800638C: .4byte gUnknown_81EA6A4 +_08006390: .4byte gUnknown_81EA6B4 +_08006394: .4byte gUnknown_202063C + thumb_func_end sub_8006300 + + thumb_func_start sub_8006398 +sub_8006398: @ 8006398 + push {r4,lr} + adds r1, r0, 0 + lsls r1, 24 + lsrs r1, 24 + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + ldr r1, _080063C4 @ =gUnknown_202063C + adds r0, r1 + bl sub_8007280 + movs r4, 0x80 + lsls r4, 8 + adds r0, r4, 0 + bl sub_800874C + adds r0, r4, 0 + bl sub_8008A30 + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_080063C4: .4byte gUnknown_202063C + thumb_func_end sub_8006398 + + thumb_func_start sub_80063C8 +sub_80063C8: @ 80063C8 + push {r4,r5,lr} + sub sp, 0x18 + lsls r0, 24 + lsrs r0, 24 + lsls r1, 24 + lsls r2, 16 + lsrs r2, 16 + lsls r3, 16 + lsrs r3, 16 + ldr r4, _08006410 @ =gUnknown_81EA6CC + lsrs r1, 22 + adds r1, r4 + ldrh r5, [r1] + lsls r5, 5 + ldr r4, _08006414 @ =gUnknown_81EA700 + adds r5, r4 + movs r4, 0x80 + str r4, [sp] + str r4, [sp, 0x4] + str r2, [sp, 0x8] + str r3, [sp, 0xC] + ldrb r4, [r1, 0x2] + str r4, [sp, 0x10] + ldrb r1, [r1, 0x3] + str r1, [sp, 0x14] + adds r1, r5, 0 + movs r2, 0 + movs r3, 0 + bl sub_80041F0 + adds r0, r4, 0 + add sp, 0x18 + pop {r4,r5} + pop {r1} + bx r1 + .align 2, 0 +_08006410: .4byte gUnknown_81EA6CC +_08006414: .4byte gUnknown_81EA700 + thumb_func_end sub_80063C8 + + thumb_func_start sub_8006418 +sub_8006418: @ 8006418 + lsls r0, 24 + ldr r1, _08006424 @ =gUnknown_81EA6CC + lsrs r0, 22 + adds r0, r1 + ldrb r0, [r0] + bx lr + .align 2, 0 +_08006424: .4byte gUnknown_81EA6CC + thumb_func_end sub_8006418 + + thumb_func_start sub_8006428 +sub_8006428: @ 8006428 + lsls r0, 24 + ldr r1, _08006434 @ =gUnknown_81EA6CC + lsrs r0, 22 + adds r0, r1 + ldrb r0, [r0, 0x2] + bx lr + .align 2, 0 +_08006434: .4byte gUnknown_81EA6CC + thumb_func_end sub_8006428 + + thumb_func_start sub_8006438 +sub_8006438: @ 8006438 + lsls r0, 24 + ldr r1, _08006444 @ =gUnknown_81EA6CC + lsrs r0, 22 + adds r0, r1 + ldrb r0, [r0, 0x3] + bx lr + .align 2, 0 +_08006444: .4byte gUnknown_81EA6CC + thumb_func_end sub_8006438 + + thumb_func_start sub_8006448 +sub_8006448: @ 8006448 + push {r4-r6,lr} + lsls r0, 16 + lsrs r6, r0, 16 + cmp r1, 0x1 + bne _08006490 + lsrs r2, r0, 20 + lsls r2, 9 + movs r0, 0xF + ands r0, r6 + lsls r0, 4 + ldr r1, _08006488 @ =gUnknown_81EF100 + adds r0, r1 + adds r5, r2, r0 + ldr r4, _0800648C @ =gUnknown_3003DA0 + adds r0, r5, 0 + adds r1, r4, 0 + bl sub_8002F8C + movs r1, 0x80 + lsls r1, 1 + adds r0, r5, r1 + adds r1, r4, 0 + adds r1, 0x40 + bl sub_8002F8C + adds r1, r4, 0 + adds r1, 0x80 + movs r0, 0x8 + strb r0, [r1] + adds r4, 0x81 + movs r0, 0xC + b _080064BC + .align 2, 0 +_08006488: .4byte gUnknown_81EF100 +_0800648C: .4byte gUnknown_3003DA0 +_08006490: + lsls r1, r6, 5 + ldr r0, _080064C4 @ =gUnknown_81EAF00 + adds r5, r1, r0 + ldr r4, _080064C8 @ =gUnknown_3003DA0 + adds r0, r5, 0 + adds r1, r4, 0 + bl sub_8002F8C + adds r0, r5, 0 + adds r0, 0x10 + adds r1, r4, 0 + adds r1, 0x40 + bl sub_8002F8C + ldr r0, _080064CC @ =gUnknown_81EEF00 + adds r0, r6, r0 + ldrb r1, [r0] + adds r0, r4, 0 + adds r0, 0x80 + strb r1, [r0] + adds r4, 0x81 + movs r0, 0xD +_080064BC: + strb r0, [r4] + pop {r4-r6} + pop {r0} + bx r0 + .align 2, 0 +_080064C4: .4byte gUnknown_81EAF00 +_080064C8: .4byte gUnknown_3003DA0 +_080064CC: .4byte gUnknown_81EEF00 + thumb_func_end sub_8006448 + + thumb_func_start sub_80064D0 +sub_80064D0: @ 80064D0 + push {lr} + lsls r0, 16 + lsrs r2, r0, 16 + cmp r1, 0x1 + beq _080064E8 + ldr r0, _080064E4 @ =gUnknown_81EEF00 + adds r0, r2, r0 + ldrb r0, [r0] + b _080064EA + .align 2, 0 +_080064E4: .4byte gUnknown_81EEF00 +_080064E8: + movs r0, 0x8 +_080064EA: + pop {r1} + bx r1 + thumb_func_end sub_80064D0 + + thumb_func_start sub_80064F0 +sub_80064F0: @ 80064F0 + push {r4-r6,lr} + lsls r0, 16 + lsrs r6, r0, 16 + cmp r1, 0x1 + bne _0800653C + lsrs r2, r0, 20 + lsls r2, 9 + movs r0, 0xF + ands r0, r6 + lsls r0, 4 + ldr r1, _08006534 @ =gUnknown_81FB300 + adds r0, r1 + adds r5, r2, r0 + ldr r4, _08006538 @ =gUnknown_3003DA0 + adds r0, r5, 0 + adds r1, r4, 0 + bl sub_8002F8C + movs r1, 0x80 + lsls r1, 1 + adds r0, r5, r1 + adds r1, r4, 0 + adds r1, 0x40 + bl sub_8002F8C + adds r1, r4, 0 + adds r1, 0x80 + movs r0, 0x8 + strb r0, [r1] + adds r4, 0x81 + movs r0, 0x10 + strb r0, [r4] + b _08006584 + .align 2, 0 +_08006534: .4byte gUnknown_81FB300 +_08006538: .4byte gUnknown_3003DA0 +_0800653C: + lsls r1, r6, 6 + ldr r0, _0800658C @ =gUnknown_81F3100 + adds r5, r1, r0 + ldr r4, _08006590 @ =gUnknown_3003DA0 + adds r0, r5, 0 + adds r1, r4, 0 + bl sub_8002F8C + adds r0, r5, 0 + adds r0, 0x10 + adds r1, r4, 0 + adds r1, 0x20 + bl sub_8002F8C + adds r0, r5, 0 + adds r0, 0x20 + adds r1, r4, 0 + adds r1, 0x40 + bl sub_8002F8C + adds r0, r5, 0 + adds r0, 0x30 + adds r1, r4, 0 + adds r1, 0x60 + bl sub_8002F8C + ldr r0, _08006594 @ =gUnknown_81FB100 + adds r0, r6, r0 + ldrb r1, [r0] + adds r0, r4, 0 + adds r0, 0x80 + strb r1, [r0] + adds r1, r4, 0 + adds r1, 0x81 + movs r0, 0xE + strb r0, [r1] +_08006584: + pop {r4-r6} + pop {r0} + bx r0 + .align 2, 0 +_0800658C: .4byte gUnknown_81F3100 +_08006590: .4byte gUnknown_3003DA0 +_08006594: .4byte gUnknown_81FB100 + thumb_func_end sub_80064F0 + + thumb_func_start sub_8006598 +sub_8006598: @ 8006598 + push {lr} + lsls r0, 16 + lsrs r2, r0, 16 + cmp r1, 0x1 + beq _080065B0 + ldr r0, _080065AC @ =gUnknown_81FB100 + adds r0, r2, r0 + ldrb r0, [r0] + b _080065B2 + .align 2, 0 +_080065AC: .4byte gUnknown_81FB100 +_080065B0: + movs r0, 0x8 +_080065B2: + pop {r1} + bx r1 + thumb_func_end sub_8006598 + + thumb_func_start sub_80065B8 +sub_80065B8: @ 80065B8 + push {r4-r7,lr} + lsls r0, 16 + lsrs r6, r0, 16 + cmp r1, 0x1 + bne _0800665C + cmp r6, 0 + bne _080065F8 + movs r0, 0x2 + bl sub_8002FCC + lsls r0, 24 + lsrs r0, 24 + movs r1, 0 + ldr r3, _080065F4 @ =gUnknown_3003DA0 + lsls r2, r0, 4 + orrs r2, r0 + adds r7, r3, 0 + adds r7, 0x80 + movs r6, 0xA + adds r5, r3, 0 + adds r5, 0x81 + movs r4, 0xC +_080065E4: + adds r0, r1, r3 + strb r2, [r0] + strb r6, [r7] + strb r4, [r5] + adds r1, 0x1 + cmp r1, 0x7F + ble _080065E4 + b _080066E4 + .align 2, 0 +_080065F4: .4byte gUnknown_3003DA0 +_080065F8: + lsrs r2, r0, 19 + lsls r2, 9 + movs r0, 0x7 + ands r0, r6 + lsls r0, 5 + ldr r1, _08006650 @ =gUnknown_8207500 + adds r0, r1 + adds r4, r2, r0 + ldr r5, _08006654 @ =gUnknown_3003DA0 + adds r0, r4, 0 + adds r1, r5, 0 + bl sub_8002F8C + adds r0, r4, 0 + adds r0, 0x10 + adds r1, r5, 0 + adds r1, 0x20 + bl sub_8002F8C + movs r1, 0x80 + lsls r1, 1 + adds r0, r4, r1 + adds r1, r5, 0 + adds r1, 0x40 + bl sub_8002F8C + movs r1, 0x88 + lsls r1, 1 + adds r0, r4, r1 + adds r1, r5, 0 + adds r1, 0x60 + bl sub_8002F8C + ldr r0, _08006658 @ =gUnknown_820F500 + adds r0, r6, r0 + ldrb r1, [r0] + adds r0, r5, 0 + adds r0, 0x80 + strb r1, [r0] + adds r1, r5, 0 + adds r1, 0x81 + movs r0, 0xC + b _080066E2 + .align 2, 0 +_08006650: .4byte gUnknown_8207500 +_08006654: .4byte gUnknown_3003DA0 +_08006658: .4byte gUnknown_820F500 +_0800665C: + cmp r6, 0 + bne _0800669C + movs r0, 0x2 + bl sub_8002FCC + lsls r0, 24 + lsrs r0, 24 + movs r1, 0 + ldr r3, _08006694 @ =gUnknown_3003DA0 + lsls r2, r0, 4 + orrs r2, r0 + ldr r0, _08006698 @ =gUnknown_8207300 + ldrb r4, [r0] + movs r0, 0x81 + adds r0, r3 + mov r12, r0 + adds r6, r3, 0 + adds r6, 0x80 + movs r5, 0xE +_08006682: + adds r0, r1, r3 + strb r2, [r0] + strb r4, [r6] + mov r0, r12 + strb r5, [r0] + adds r1, 0x1 + cmp r1, 0x7F + ble _08006682 + b _080066E4 + .align 2, 0 +_08006694: .4byte gUnknown_3003DA0 +_08006698: .4byte gUnknown_8207300 +_0800669C: + lsls r1, r6, 6 + ldr r0, _080066EC @ =gUnknown_81FF300 + adds r4, r1, r0 + ldr r5, _080066F0 @ =gUnknown_3003DA0 + adds r0, r4, 0 + adds r1, r5, 0 + bl sub_8002F8C + adds r0, r4, 0 + adds r0, 0x10 + adds r1, r5, 0 + adds r1, 0x20 + bl sub_8002F8C + adds r0, r4, 0 + adds r0, 0x20 + adds r1, r5, 0 + adds r1, 0x40 + bl sub_8002F8C + adds r0, r4, 0 + adds r0, 0x30 + adds r1, r5, 0 + adds r1, 0x60 + bl sub_8002F8C + ldr r0, _080066F4 @ =gUnknown_8207300 + adds r0, r6, r0 + ldrb r1, [r0] + adds r0, r5, 0 + adds r0, 0x80 + strb r1, [r0] + adds r1, r5, 0 + adds r1, 0x81 + movs r0, 0xE +_080066E2: + strb r0, [r1] +_080066E4: + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_080066EC: .4byte gUnknown_81FF300 +_080066F0: .4byte gUnknown_3003DA0 +_080066F4: .4byte gUnknown_8207300 + thumb_func_end sub_80065B8 + + thumb_func_start sub_80066F8 +sub_80066F8: @ 80066F8 + push {lr} + lsls r0, 16 + lsrs r2, r0, 16 + cmp r1, 0x1 + bne _08006714 + cmp r2, 0 + bne _0800670A + movs r0, 0xA + b _0800671A +_0800670A: + ldr r0, _08006710 @ =gUnknown_820F500 + b _08006716 + .align 2, 0 +_08006710: .4byte gUnknown_820F500 +_08006714: + ldr r0, _08006720 @ =gUnknown_8207300 +_08006716: + adds r0, r2, r0 + ldrb r0, [r0] +_0800671A: + pop {r1} + bx r1 + .align 2, 0 +_08006720: .4byte gUnknown_8207300 + thumb_func_end sub_80066F8 + + thumb_func_start sub_8006724 +sub_8006724: @ 8006724 + push {r4-r7,lr} + lsls r0, 16 + lsrs r3, r0, 16 + cmp r1, 0x1 + bne _080067C0 + cmp r3, 0 + bne _08006764 + movs r0, 0x2 + bl sub_8002FCC + lsls r0, 24 + lsrs r0, 24 + movs r1, 0 + ldr r3, _08006760 @ =gUnknown_3003DA0 + lsls r2, r0, 4 + orrs r2, r0 + adds r7, r3, 0 + adds r7, 0x80 + movs r6, 0xA + adds r5, r3, 0 + adds r5, 0x81 + movs r4, 0xC +_08006750: + adds r0, r1, r3 + strb r2, [r0] + strb r6, [r7] + strb r4, [r5] + adds r1, 0x1 + cmp r1, 0x7F + ble _08006750 + b _080067C6 + .align 2, 0 +_08006760: .4byte gUnknown_3003DA0 +_08006764: + lsrs r2, r0, 19 + lsls r2, 9 + movs r0, 0x7 + ands r0, r3 + lsls r0, 5 + ldr r1, _080067B8 @ =gUnknown_8207500 + adds r0, r1 + adds r5, r2, r0 + ldr r4, _080067BC @ =gUnknown_3003DA0 + adds r0, r5, 0 + adds r1, r4, 0 + bl sub_8002F8C + adds r0, r5, 0 + adds r0, 0x10 + adds r1, r4, 0 + adds r1, 0x20 + bl sub_8002F8C + movs r1, 0x80 + lsls r1, 1 + adds r0, r5, r1 + adds r1, r4, 0 + adds r1, 0x40 + bl sub_8002F8C + movs r1, 0x88 + lsls r1, 1 + adds r0, r5, r1 + adds r1, r4, 0 + adds r1, 0x60 + bl sub_8002F8C + adds r1, r4, 0 + adds r1, 0x80 + movs r0, 0xA + strb r0, [r1] + adds r1, 0x1 + movs r0, 0xC + strb r0, [r1] + b _080067C6 + .align 2, 0 +_080067B8: .4byte gUnknown_8207500 +_080067BC: .4byte gUnknown_3003DA0 +_080067C0: + adds r0, r3, 0 + bl sub_80065B8 +_080067C6: + pop {r4-r7} + pop {r0} + bx r0 + thumb_func_end sub_8006724 + + thumb_func_start sub_80067CC +sub_80067CC: @ 80067CC + push {lr} + lsls r0, 16 + lsrs r2, r0, 16 + cmp r1, 0x1 + beq _080067E4 + ldr r0, _080067E0 @ =gUnknown_8207300 + adds r0, r2, r0 + ldrb r0, [r0] + b _080067E6 + .align 2, 0 +_080067E0: .4byte gUnknown_8207300 +_080067E4: + movs r0, 0xA +_080067E6: + pop {r1} + bx r1 + thumb_func_end sub_80067CC + + thumb_func_start sub_80067EC +sub_80067EC: @ 80067EC + push {r4-r7,lr} + lsls r0, 16 + lsrs r6, r0, 16 + cmp r1, 0x1 + bne _08006890 + cmp r6, 0 + bne _0800682C + movs r0, 0x2 + bl sub_8002FCC + lsls r0, 24 + lsrs r0, 24 + movs r1, 0 + ldr r3, _08006828 @ =gUnknown_3003DA0 + lsls r2, r0, 4 + orrs r2, r0 + adds r7, r3, 0 + adds r7, 0x80 + movs r6, 0xA + adds r5, r3, 0 + adds r5, 0x81 + movs r4, 0xC +_08006818: + adds r0, r1, r3 + strb r2, [r0] + strb r6, [r7] + strb r4, [r5] + adds r1, 0x1 + cmp r1, 0x7F + ble _08006818 + b _08006918 + .align 2, 0 +_08006828: .4byte gUnknown_3003DA0 +_0800682C: + lsrs r2, r0, 19 + lsls r2, 9 + movs r0, 0x7 + ands r0, r6 + lsls r0, 5 + ldr r1, _08006884 @ =gUnknown_8217818 + adds r0, r1 + adds r4, r2, r0 + ldr r5, _08006888 @ =gUnknown_3003DA0 + adds r0, r4, 0 + adds r1, r5, 0 + bl sub_8002F8C + adds r0, r4, 0 + adds r0, 0x10 + adds r1, r5, 0 + adds r1, 0x20 + bl sub_8002F8C + movs r1, 0x80 + lsls r1, 1 + adds r0, r4, r1 + adds r1, r5, 0 + adds r1, 0x40 + bl sub_8002F8C + movs r1, 0x88 + lsls r1, 1 + adds r0, r4, r1 + adds r1, r5, 0 + adds r1, 0x60 + bl sub_8002F8C + ldr r0, _0800688C @ =gUnknown_821F818 + adds r0, r6, r0 + ldrb r1, [r0] + adds r0, r5, 0 + adds r0, 0x80 + strb r1, [r0] + adds r1, r5, 0 + adds r1, 0x81 + movs r0, 0xC + b _08006916 + .align 2, 0 +_08006884: .4byte gUnknown_8217818 +_08006888: .4byte gUnknown_3003DA0 +_0800688C: .4byte gUnknown_821F818 +_08006890: + cmp r6, 0 + bne _080068D0 + movs r0, 0x2 + bl sub_8002FCC + lsls r0, 24 + lsrs r0, 24 + movs r1, 0 + ldr r3, _080068C8 @ =gUnknown_3003DA0 + lsls r2, r0, 4 + orrs r2, r0 + ldr r0, _080068CC @ =gUnknown_8217618 + ldrb r4, [r0] + movs r0, 0x81 + adds r0, r3 + mov r12, r0 + adds r6, r3, 0 + adds r6, 0x80 + movs r5, 0xE +_080068B6: + adds r0, r1, r3 + strb r2, [r0] + strb r4, [r6] + mov r0, r12 + strb r5, [r0] + adds r1, 0x1 + cmp r1, 0x7F + ble _080068B6 + b _08006918 + .align 2, 0 +_080068C8: .4byte gUnknown_3003DA0 +_080068CC: .4byte gUnknown_8217618 +_080068D0: + lsls r1, r6, 6 + ldr r0, _08006920 @ =gUnknown_820F618 + adds r4, r1, r0 + ldr r5, _08006924 @ =gUnknown_3003DA0 + adds r0, r4, 0 + adds r1, r5, 0 + bl sub_8002F8C + adds r0, r4, 0 + adds r0, 0x10 + adds r1, r5, 0 + adds r1, 0x20 + bl sub_8002F8C + adds r0, r4, 0 + adds r0, 0x20 + adds r1, r5, 0 + adds r1, 0x40 + bl sub_8002F8C + adds r0, r4, 0 + adds r0, 0x30 + adds r1, r5, 0 + adds r1, 0x60 + bl sub_8002F8C + ldr r0, _08006928 @ =gUnknown_8217618 + adds r0, r6, r0 + ldrb r1, [r0] + adds r0, r5, 0 + adds r0, 0x80 + strb r1, [r0] + adds r1, r5, 0 + adds r1, 0x81 + movs r0, 0xE +_08006916: + strb r0, [r1] +_08006918: + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_08006920: .4byte gUnknown_820F618 +_08006924: .4byte gUnknown_3003DA0 +_08006928: .4byte gUnknown_8217618 + thumb_func_end sub_80067EC + + thumb_func_start sub_800692C +sub_800692C: @ 800692C + push {lr} + lsls r0, 16 + lsrs r2, r0, 16 + cmp r1, 0x1 + bne _08006948 + cmp r2, 0 + bne _0800693E + movs r0, 0xA + b _0800694E +_0800693E: + ldr r0, _08006944 @ =gUnknown_821F818 + b _0800694A + .align 2, 0 +_08006944: .4byte gUnknown_821F818 +_08006948: + ldr r0, _08006954 @ =gUnknown_8217618 +_0800694A: + adds r0, r2, r0 + ldrb r0, [r0] +_0800694E: + pop {r1} + bx r1 + .align 2, 0 +_08006954: .4byte gUnknown_8217618 + thumb_func_end sub_800692C + + thumb_func_start sub_8006958 +sub_8006958: @ 8006958 + push {r4-r7,lr} + lsls r0, 16 + lsrs r6, r0, 16 + cmp r1, 0x1 + bne _080069FC + cmp r6, 0 + bne _08006998 + movs r0, 0x2 + bl sub_8002FCC + lsls r0, 24 + lsrs r0, 24 + movs r1, 0 + ldr r3, _08006994 @ =gUnknown_3003DA0 + lsls r2, r0, 4 + orrs r2, r0 + adds r7, r3, 0 + adds r7, 0x80 + movs r6, 0xA + adds r5, r3, 0 + adds r5, 0x81 + movs r4, 0xC +_08006984: + adds r0, r1, r3 + strb r2, [r0] + strb r6, [r7] + strb r4, [r5] + adds r1, 0x1 + cmp r1, 0x7F + ble _08006984 + b _08006A84 + .align 2, 0 +_08006994: .4byte gUnknown_3003DA0 +_08006998: + lsrs r2, r0, 19 + lsls r2, 9 + movs r0, 0x7 + ands r0, r6 + lsls r0, 5 + ldr r1, _080069F0 @ =gUnknown_8227B30 + adds r0, r1 + adds r4, r2, r0 + ldr r5, _080069F4 @ =gUnknown_3003DA0 + adds r0, r4, 0 + adds r1, r5, 0 + bl sub_8002F8C + adds r0, r4, 0 + adds r0, 0x10 + adds r1, r5, 0 + adds r1, 0x20 + bl sub_8002F8C + movs r1, 0x80 + lsls r1, 1 + adds r0, r4, r1 + adds r1, r5, 0 + adds r1, 0x40 + bl sub_8002F8C + movs r1, 0x88 + lsls r1, 1 + adds r0, r4, r1 + adds r1, r5, 0 + adds r1, 0x60 + bl sub_8002F8C + ldr r0, _080069F8 @ =gUnknown_822FB30 + adds r0, r6, r0 + ldrb r1, [r0] + adds r0, r5, 0 + adds r0, 0x80 + strb r1, [r0] + adds r1, r5, 0 + adds r1, 0x81 + movs r0, 0xC + b _08006A82 + .align 2, 0 +_080069F0: .4byte gUnknown_8227B30 +_080069F4: .4byte gUnknown_3003DA0 +_080069F8: .4byte gUnknown_822FB30 +_080069FC: + cmp r6, 0 + bne _08006A3C + movs r0, 0x2 + bl sub_8002FCC + lsls r0, 24 + lsrs r0, 24 + movs r1, 0 + ldr r3, _08006A34 @ =gUnknown_3003DA0 + lsls r2, r0, 4 + orrs r2, r0 + ldr r0, _08006A38 @ =gUnknown_8227930 + ldrb r4, [r0] + movs r0, 0x81 + adds r0, r3 + mov r12, r0 + adds r6, r3, 0 + adds r6, 0x80 + movs r5, 0xE +_08006A22: + adds r0, r1, r3 + strb r2, [r0] + strb r4, [r6] + mov r0, r12 + strb r5, [r0] + adds r1, 0x1 + cmp r1, 0x7F + ble _08006A22 + b _08006A84 + .align 2, 0 +_08006A34: .4byte gUnknown_3003DA0 +_08006A38: .4byte gUnknown_8227930 +_08006A3C: + lsls r1, r6, 6 + ldr r0, _08006A8C @ =gUnknown_821F930 + adds r4, r1, r0 + ldr r5, _08006A90 @ =gUnknown_3003DA0 + adds r0, r4, 0 + adds r1, r5, 0 + bl sub_8002F8C + adds r0, r4, 0 + adds r0, 0x10 + adds r1, r5, 0 + adds r1, 0x20 + bl sub_8002F8C + adds r0, r4, 0 + adds r0, 0x20 + adds r1, r5, 0 + adds r1, 0x40 + bl sub_8002F8C + adds r0, r4, 0 + adds r0, 0x30 + adds r1, r5, 0 + adds r1, 0x60 + bl sub_8002F8C + ldr r0, _08006A94 @ =gUnknown_8227930 + adds r0, r6, r0 + ldrb r1, [r0] + adds r0, r5, 0 + adds r0, 0x80 + strb r1, [r0] + adds r1, r5, 0 + adds r1, 0x81 + movs r0, 0xE +_08006A82: + strb r0, [r1] +_08006A84: + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_08006A8C: .4byte gUnknown_821F930 +_08006A90: .4byte gUnknown_3003DA0 +_08006A94: .4byte gUnknown_8227930 + thumb_func_end sub_8006958 + + thumb_func_start sub_8006A98 +sub_8006A98: @ 8006A98 + push {lr} + lsls r0, 16 + lsrs r2, r0, 16 + cmp r1, 0x1 + bne _08006AB4 + cmp r2, 0 + bne _08006AAA + movs r0, 0xA + b _08006ABA +_08006AAA: + ldr r0, _08006AB0 @ =gUnknown_822FB30 + b _08006AB6 + .align 2, 0 +_08006AB0: .4byte gUnknown_822FB30 +_08006AB4: + ldr r0, _08006AC0 @ =gUnknown_8227930 +_08006AB6: + adds r0, r2, r0 + ldrb r0, [r0] +_08006ABA: + pop {r1} + bx r1 + .align 2, 0 +_08006AC0: .4byte gUnknown_8227930 + thumb_func_end sub_8006A98 + + thumb_func_start sub_8006AC4 +sub_8006AC4: @ 8006AC4 + push {r4,r5,lr} + lsls r0, 16 + lsrs r4, r0, 20 + lsls r4, 9 + movs r1, 0xF0 + lsls r1, 12 + ands r1, r0 + lsrs r1, 12 + ldr r0, _08006B08 @ =gUnknown_822FC48 + adds r1, r0 + adds r4, r1 + ldr r5, _08006B0C @ =gUnknown_3003DA0 + adds r0, r4, 0 + adds r1, r5, 0 + bl sub_8002F8C + movs r0, 0x80 + lsls r0, 1 + adds r4, r0 + adds r1, r5, 0 + adds r1, 0x40 + adds r0, r4, 0 + bl sub_8002F8C + adds r1, r5, 0 + adds r1, 0x80 + movs r0, 0x8 + strb r0, [r1] + adds r5, 0x81 + movs r0, 0xC + strb r0, [r5] + pop {r4,r5} + pop {r0} + bx r0 + .align 2, 0 +_08006B08: .4byte gUnknown_822FC48 +_08006B0C: .4byte gUnknown_3003DA0 + thumb_func_end sub_8006AC4 + + .align 2, 0 @ Don't pad with nop. |