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/link.s |
first commit
Diffstat (limited to 'asm/link.s')
-rw-r--r-- | asm/link.s | 5196 |
1 files changed, 5196 insertions, 0 deletions
diff --git a/asm/link.s b/asm/link.s new file mode 100644 index 000000000..f5de3137f --- /dev/null +++ b/asm/link.s @@ -0,0 +1,5196 @@ + .include "asm/macros.inc" + .include "constants/constants.inc" + + .syntax unified + + .text + + thumb_func_start sub_8009480 +sub_8009480: @ 8009480 + push {lr} + ldr r0, _08009494 @ =gUnknown_203ADFA + ldrb r0, [r0] + subs r0, 0x2 + lsls r0, 24 + lsrs r0, 24 + cmp r0, 0x1 + bhi _08009498 + movs r0, 0 + b _080094CE + .align 2, 0 +_08009494: .4byte gUnknown_203ADFA +_08009498: + bl sub_800B1F4 + bl sub_80F86F4 + movs r0, 0x1 + bl sub_80FB128 + bl sub_80FD3A4 + ldr r1, _080094C0 @ =0x00008001 + cmp r0, r1 + beq _080094C4 + bl sub_800B210 + bl sub_80098B8 + bl sub_8000874 + movs r0, 0 + b _080094CE + .align 2, 0 +_080094C0: .4byte 0x00008001 +_080094C4: + bl rfu_REQ_stopMode + bl rfu_waitREQComplete + movs r0, 0x1 +_080094CE: + pop {r1} + bx r1 + thumb_func_end sub_8009480 + + thumb_func_start sub_80094D4 +sub_80094D4: @ 80094D4 + push {lr} + lsls r0, 24 + lsrs r0, 24 + bl sub_8077508 + pop {r0} + bx r0 + thumb_func_end sub_80094D4 + + thumb_func_start sub_80094E4 +sub_80094E4: @ 80094E4 + push {r4-r7,lr} + mov r7, r8 + push {r7} + adds r5, r0, 0 + ldr r4, [sp, 0x18] + lsls r5, 24 + lsrs r5, 24 + lsls r1, 24 + lsrs r1, 24 + mov r8, r1 + lsls r2, 24 + lsrs r6, r2, 24 + lsls r3, 24 + lsrs r7, r3, 24 + lsls r4, 16 + lsrs r4, 16 + ldr r0, _08009540 @ =gUnknown_8232578 + lsls r1, r5, 4 + movs r2, 0x20 + bl sub_80703EC + ldr r3, _08009544 @ =0x040000d4 + ldr r0, _08009548 @ =gUnknown_8232598 + str r0, [r3] + lsls r2, r7, 14 + lsls r0, r4, 5 + movs r1, 0xC0 + lsls r1, 19 + adds r0, r1 + adds r2, r0 + str r2, [r3, 0x4] + ldr r0, _0800954C @ =0x80001000 + str r0, [r3, 0x8] + ldr r0, [r3, 0x8] + ldr r0, _08009550 @ =gUnknown_3003F70 + str r6, [r0] + str r5, [r0, 0x4] + str r4, [r0, 0x8] + mov r0, r8 + cmp r0, 0x2 + beq _0800956E + cmp r0, 0x2 + bgt _08009554 + cmp r0, 0x1 + beq _0800955C + b _08009590 + .align 2, 0 +_08009540: .4byte gUnknown_8232578 +_08009544: .4byte 0x040000d4 +_08009548: .4byte gUnknown_8232598 +_0800954C: .4byte 0x80001000 +_08009550: .4byte gUnknown_3003F70 +_08009554: + mov r0, r8 + cmp r0, 0x3 + beq _08009580 + b _08009590 +_0800955C: + lsls r1, r6, 8 + movs r0, 0x1 + orrs r1, r0 + lsls r0, r7, 2 + orrs r1, r0 + movs r0, 0xA + bl sub_8000A38 + b _08009590 +_0800956E: + lsls r1, r6, 8 + movs r0, 0x1 + orrs r1, r0 + lsls r0, r7, 2 + orrs r1, r0 + movs r0, 0xC + bl sub_8000A38 + b _08009590 +_08009580: + lsls r1, r6, 8 + movs r0, 0x1 + orrs r1, r0 + lsls r0, r7, 2 + orrs r1, r0 + movs r0, 0xE + bl sub_8000A38 +_08009590: + mov r0, r8 + lsls r4, r0, 2 + adds r0, r4, 0 + adds r0, 0x10 + lsls r0, 24 + lsrs r0, 24 + movs r1, 0 + bl sub_8000A38 + adds r4, 0x12 + lsls r4, 24 + lsrs r4, 24 + adds r0, r4, 0 + movs r1, 0 + bl sub_8000A38 + pop {r3} + mov r8, r3 + pop {r4-r7} + pop {r0} + bx r0 + thumb_func_end sub_80094E4 + + thumb_func_start sub_80095BC +sub_80095BC: @ 80095BC + push {r4-r6,lr} + mov r6, r8 + push {r6} + mov r8, r0 + adds r6, r1, 0 + adds r4, r2, 0 + adds r5, r3, 0 + lsls r0, 24 + lsrs r0, 24 + mov r8, r0 + lsls r6, 24 + lsrs r6, 24 + lsls r4, 24 + lsrs r4, 24 + lsls r5, 24 + lsrs r5, 24 + ldr r0, _08009628 @ =gUnknown_8232578 + mov r2, r8 + lsls r1, r2, 4 + movs r2, 0x20 + bl sub_80703EC + ldr r2, _0800962C @ =0x040000d4 + ldr r0, _08009630 @ =gUnknown_8232598 + str r0, [r2] + lsls r0, r5, 14 + movs r1, 0xC0 + lsls r1, 19 + adds r0, r1 + str r0, [r2, 0x4] + ldr r0, _08009634 @ =0x80001000 + str r0, [r2, 0x8] + ldr r0, [r2, 0x8] + ldr r0, _08009638 @ =gUnknown_3003F70 + str r4, [r0] + mov r1, r8 + str r1, [r0, 0x4] + movs r1, 0 + str r1, [r0, 0x8] + ldr r0, _0800963C @ =gUnknown_8231E20 + adds r6, r0 + ldrb r0, [r6] + lsls r4, 8 + lsls r5, 2 + orrs r4, r5 + adds r1, r4, 0 + bl sub_8000A38 + pop {r3} + mov r8, r3 + pop {r4-r6} + pop {r0} + bx r0 + .align 2, 0 +_08009628: .4byte gUnknown_8232578 +_0800962C: .4byte 0x040000d4 +_08009630: .4byte gUnknown_8232598 +_08009634: .4byte 0x80001000 +_08009638: .4byte gUnknown_3003F70 +_0800963C: .4byte gUnknown_8231E20 + thumb_func_end sub_80095BC + + thumb_func_start sub_8009640 +sub_8009640: @ 8009640 + push {r4,lr} + sub sp, 0x4 + bl sub_8006B10 + bl sub_80088F0 + bl sub_80773BC + ldr r0, _080096D4 @ =sub_800978C + bl sub_80006F4 + bl sub_800A294 + ldr r1, _080096D8 @ =gUnknown_202271A + ldr r2, _080096DC @ =0x00001111 + adds r0, r2, 0 + strh r0, [r1] + bl sub_8009804 + ldr r0, _080096E0 @ =gUnknown_30030F0 + ldrh r0, [r0, 0x24] + bl sub_8044EE8 + movs r4, 0 +_08009670: + bl sub_8044EC8 + ldr r1, _080096E4 @ =gUnknown_300500C + ldr r1, [r1] + adds r1, 0xA + adds r1, r4 + strb r0, [r1] + adds r4, 0x1 + cmp r4, 0x3 + ble _08009670 + movs r4, 0 + str r4, [sp] + movs r0, 0 + movs r1, 0x2 + movs r2, 0x4 + movs r3, 0 + bl sub_80094E4 + movs r1, 0xAA + lsls r1, 5 + movs r0, 0 + bl sub_8000A38 + ldr r0, _080096E8 @ =sub_80094D4 + movs r1, 0 + bl sub_807741C + bl sub_8077578 + bl sub_8006B5C + bl sub_8006BA8 + bl sub_80704D0 + ldr r0, _080096EC @ =gUnknown_3000E58 + str r4, [r0] + bl sub_8009708 + ldr r0, _080096F0 @ =sub_800A74C + movs r1, 0 + bl sub_807741C + ldr r0, _080096F4 @ =sub_8009A8C + bl sub_8000544 + add sp, 0x4 + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_080096D4: .4byte sub_800978C +_080096D8: .4byte gUnknown_202271A +_080096DC: .4byte 0x00001111 +_080096E0: .4byte gUnknown_30030F0 +_080096E4: .4byte gUnknown_300500C +_080096E8: .4byte sub_80094D4 +_080096EC: .4byte gUnknown_3000E58 +_080096F0: .4byte sub_800A74C +_080096F4: .4byte sub_8009A8C + thumb_func_end sub_8009640 + + thumb_func_start sub_80096F8 +sub_80096F8: @ 80096F8 + lsls r0, 24 + lsrs r0, 24 + ldr r1, _08009704 @ =gUnknown_2022720 + strh r0, [r1, 0x18] + bx lr + .align 2, 0 +_08009704: .4byte gUnknown_2022720 + thumb_func_end sub_80096F8 + + thumb_func_start sub_8009708 +sub_8009708: @ 8009708 + push {r4,r5,lr} + ldr r5, _08009774 @ =gUnknown_2022720 + ldr r4, _08009778 @ =gUnknown_300500C + ldr r1, [r4] + ldrb r2, [r1, 0xA] + ldrb r0, [r1, 0xB] + lsls r0, 8 + orrs r2, r0 + ldrb r0, [r1, 0xC] + lsls r0, 16 + orrs r2, r0 + ldrb r0, [r1, 0xD] + lsls r0, 24 + orrs r2, r0 + str r2, [r5, 0x4] + adds r0, r5, 0 + adds r0, 0x8 + bl sub_8008D84 + ldr r0, [r4] + ldrb r0, [r0, 0x8] + strb r0, [r5, 0x13] + ldr r0, _0800977C @ =gUnknown_202271A + ldrh r0, [r0] + str r0, [r5, 0x14] + ldr r0, _08009780 @ =gUnknown_81E9F11 + ldrb r0, [r0] + strh r0, [r5, 0x1A] + ldr r0, _08009784 @ =gUnknown_81E9F10 + ldrb r0, [r0] + movs r2, 0x80 + lsls r2, 7 + adds r1, r2, 0 + adds r0, r1 + strh r0, [r5] + movs r0, 0x80 + lsls r0, 8 + strh r0, [r5, 0x2] + bl sub_806E25C + strb r0, [r5, 0x10] + ldr r0, _08009788 @ =0x00000844 + bl sub_806E6D0 + lsls r0, 24 + cmp r0, 0 + beq _0800976E + ldrb r0, [r5, 0x10] + movs r1, 0x10 + orrs r0, r1 + strb r0, [r5, 0x10] +_0800976E: + pop {r4,r5} + pop {r0} + bx r0 + .align 2, 0 +_08009774: .4byte gUnknown_2022720 +_08009778: .4byte gUnknown_300500C +_0800977C: .4byte gUnknown_202271A +_08009780: .4byte gUnknown_81E9F11 +_08009784: .4byte gUnknown_81E9F10 +_08009788: .4byte 0x00000844 + thumb_func_end sub_8009708 + + thumb_func_start sub_800978C +sub_800978C: @ 800978C + push {lr} + bl sub_8007320 + bl sub_8007610 + bl sub_8070474 + pop {r0} + bx r0 + thumb_func_end sub_800978C + + thumb_func_start sub_80097A0 +sub_80097A0: @ 80097A0 + push {lr} + ldr r3, _080097C0 @ =gUnknown_2022718 + ldr r1, _080097C4 @ =gUnknown_3003F50 + ldr r2, _080097C8 @ =0x0000efff + adds r0, r1, 0 + adds r0, 0xE +_080097AC: + strh r2, [r0] + subs r0, 0x2 + cmp r0, r1 + bge _080097AC + movs r0, 0x1 + strb r0, [r3] + bl sub_800B2F4 + pop {r0} + bx r0 + .align 2, 0 +_080097C0: .4byte gUnknown_2022718 +_080097C4: .4byte gUnknown_3003F50 +_080097C8: .4byte 0x0000efff + thumb_func_end sub_80097A0 + + thumb_func_start sub_80097CC +sub_80097CC: @ 80097CC + push {lr} + lsls r0, 24 + lsrs r2, r0, 24 + ldr r0, _080097FC @ =gUnknown_3005090 + lsls r1, r2, 2 + adds r1, r2 + lsls r1, 3 + adds r1, r0 + ldrh r0, [r1, 0x8] + adds r0, 0x1 + strh r0, [r1, 0x8] + lsls r0, 16 + asrs r0, 16 + cmp r0, 0x5 + bne _080097F6 + ldr r1, _08009800 @ =gUnknown_3003F84 + movs r0, 0x1 + strb r0, [r1] + adds r0, r2, 0 + bl sub_8077508 +_080097F6: + pop {r0} + bx r0 + .align 2, 0 +_080097FC: .4byte gUnknown_3005090 +_08009800: .4byte gUnknown_3003F84 + thumb_func_end sub_80097CC + + thumb_func_start sub_8009804 +sub_8009804: @ 8009804 + push {r4-r6,lr} + ldr r0, _0800984C @ =gUnknown_3003F3C + ldrb r4, [r0] + cmp r4, 0 + bne _08009878 + bl sub_800B388 + bl sub_80097A0 + ldr r1, _08009850 @ =gUnknown_3003F80 + ldr r0, _08009854 @ =sub_800A720 + str r0, [r1] + ldr r0, _08009858 @ =gUnknown_300357C + strb r4, [r0] + ldr r0, _0800985C @ =gUnknown_3003EAC + strb r4, [r0] + ldr r0, _08009860 @ =gUnknown_3003F38 + strb r4, [r0] + bl sub_800A550 + bl sub_800A294 + ldr r0, _08009864 @ =gUnknown_3000E4C + str r4, [r0] + ldr r0, _08009868 @ =gUnknown_3003F28 + strb r4, [r0] + ldr r0, _0800986C @ =gUnknown_3003F24 + strb r4, [r0] + ldr r0, _08009870 @ =gUnknown_3003F34 + strh r4, [r0] + ldr r0, _08009874 @ =sub_80097CC + movs r1, 0x2 + bl sub_807741C + b _0800987C + .align 2, 0 +_0800984C: .4byte gUnknown_3003F3C +_08009850: .4byte gUnknown_3003F80 +_08009854: .4byte sub_800A720 +_08009858: .4byte gUnknown_300357C +_0800985C: .4byte gUnknown_3003EAC +_08009860: .4byte gUnknown_3003F38 +_08009864: .4byte gUnknown_3000E4C +_08009868: .4byte gUnknown_3003F28 +_0800986C: .4byte gUnknown_3003F24 +_08009870: .4byte gUnknown_3003F34 +_08009874: .4byte sub_80097CC +_08009878: + bl sub_80F86F4 +_0800987C: + ldr r1, _080098A8 @ =gUnknown_3003F64 + movs r0, 0 + strb r0, [r1] + movs r1, 0 + ldr r6, _080098AC @ =gUnknown_3003EB8 + movs r2, 0 + movs r5, 0x1 + ldr r4, _080098B0 @ =gUnknown_3003F30 + ldr r3, _080098B4 @ =gUnknown_3003F2C +_0800988E: + adds r0, r1, r6 + strb r5, [r0] + adds r0, r1, r4 + strb r2, [r0] + adds r0, r1, r3 + strb r2, [r0] + adds r1, 0x1 + cmp r1, 0x3 + ble _0800988E + pop {r4-r6} + pop {r0} + bx r0 + .align 2, 0 +_080098A8: .4byte gUnknown_3003F64 +_080098AC: .4byte gUnknown_3003EB8 +_080098B0: .4byte gUnknown_3003F30 +_080098B4: .4byte gUnknown_3003F2C + thumb_func_end sub_8009804 + + thumb_func_start sub_80098B8 +sub_80098B8: @ 80098B8 + push {r4,lr} + ldr r0, _080098DC @ =gUnknown_3003F64 + movs r4, 0 + strb r4, [r0] + ldr r0, _080098E0 @ =gUnknown_3003F3C + ldrb r0, [r0] + cmp r0, 0 + beq _080098CC + bl sub_80F8DC0 +_080098CC: + ldr r0, _080098E4 @ =gUnknown_2022718 + strb r4, [r0] + bl sub_800B29C + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_080098DC: .4byte gUnknown_3003F64 +_080098E0: .4byte gUnknown_3003F3C +_080098E4: .4byte gUnknown_2022718 + thumb_func_end sub_80098B8 + + thumb_func_start sub_80098E8 +sub_80098E8: @ 80098E8 + push {r4-r7,lr} + mov r7, r9 + mov r6, r8 + push {r6,r7} + ldr r5, _080099AC @ =gUnknown_3000E5C + ldr r4, _080099B0 @ =gUnknown_3000E08 + ldrb r0, [r5] + ldrh r1, [r4] + cmp r0, r1 + beq _0800990C + ldrh r0, [r4] + movs r1, 0x2 + movs r2, 0x3 + movs r3, 0x2 + bl sub_800A684 + ldrh r0, [r4] + strb r0, [r5] +_0800990C: + movs r5, 0 + ldr r7, _080099B4 @ =gUnknown_3000E18 +_08009910: + ldr r0, _080099B8 @ =gUnknown_3000E60 + adds r6, r5, r0 + lsls r0, r5, 1 + adds r0, r5 + lsls r0, 2 + adds r4, r0, r7 + ldrb r0, [r6] + ldrh r1, [r4] + cmp r0, r1 + beq _08009938 + ldrh r0, [r4] + adds r2, r5, 0x4 + lsls r2, 24 + lsrs r2, 24 + movs r1, 0x2 + movs r3, 0x2 + bl sub_800A684 + ldrh r0, [r4] + strb r0, [r6] +_08009938: + adds r0, r5, 0x1 + lsls r0, 24 + lsrs r5, r0, 24 + cmp r5, 0x3 + bls _08009910 + bl sub_800A4EC + lsls r0, 24 + lsrs r7, r0, 24 + cmp r7, 0xF + bne _0800999E + movs r5, 0 + ldr r0, _080099B4 @ =gUnknown_3000E18 + mov r9, r0 + ldr r1, _080099BC @ =0x00000342 + mov r8, r1 +_08009958: + adds r0, r7, 0 + asrs r0, r5 + movs r1, 0x1 + ands r0, r1 + cmp r0, 0 + beq _08009994 + lsls r0, r5, 8 + ldr r1, _080099C0 @ =gUnknown_2022118 + adds r0, r1 + lsls r4, r5, 1 + adds r1, r4, r5 + lsls r1, 2 + add r1, r9 + ldrh r1, [r1, 0x2] + bl sub_800A5E4 + ldr r1, _080099C4 @ =gUnknown_3003F88 + adds r4, r1 + movs r6, 0 + strh r0, [r4] + adds r0, r5, 0 + bl sub_800A588 + ldrh r0, [r4] + cmp r0, r8 + beq _08009994 + ldr r0, _080099C8 @ =gUnknown_2022110 + strb r6, [r0] + ldr r0, _080099CC @ =gUnknown_2022111 + strb r6, [r0] +_08009994: + adds r0, r5, 0x1 + lsls r0, 24 + lsrs r5, r0, 24 + cmp r5, 0x3 + bls _08009958 +_0800999E: + pop {r3,r4} + mov r8, r3 + mov r9, r4 + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_080099AC: .4byte gUnknown_3000E5C +_080099B0: .4byte gUnknown_3000E08 +_080099B4: .4byte gUnknown_3000E18 +_080099B8: .4byte gUnknown_3000E60 +_080099BC: .4byte 0x00000342 +_080099C0: .4byte gUnknown_2022118 +_080099C4: .4byte gUnknown_3003F88 +_080099C8: .4byte gUnknown_2022110 +_080099CC: .4byte gUnknown_2022111 + thumb_func_end sub_80098E8 + + thumb_func_start sub_80099D0 +sub_80099D0: @ 80099D0 + push {r4,r5,lr} + sub sp, 0x4 + ldr r4, _08009A70 @ =gUnknown_30030F0 + ldrh r1, [r4, 0x2E] + movs r0, 0x1 + ands r0, r1 + cmp r0, 0 + beq _080099E6 + ldr r1, _08009A74 @ =gUnknown_3003F84 + movs r0, 0x1 + strb r0, [r1] +_080099E6: + ldrh r1, [r4, 0x2C] + movs r5, 0x2 + adds r0, r5, 0 + ands r0, r1 + cmp r0, 0 + beq _080099FA + ldr r0, _08009A78 @ =gHeap + 0x4000 + ldr r1, _08009A7C @ =0x00002004 + bl sub_800A2A8 +_080099FA: + ldrh r1, [r4, 0x2E] + movs r0, 0x80 + lsls r0, 2 + ands r0, r1 + cmp r0, 0 + beq _08009A16 + movs r0, 0x1 + negs r0, r0 + str r5, [sp] + movs r1, 0 + movs r2, 0x10 + movs r3, 0 + bl sub_8070588 +_08009A16: + ldrh r1, [r4, 0x2E] + movs r0, 0x8 + ands r0, r1 + cmp r0, 0 + beq _08009A26 + movs r0, 0x1 + bl sub_800B09C +_08009A26: + ldrh r1, [r4, 0x2E] + movs r0, 0x80 + lsls r0, 1 + ands r0, r1 + cmp r0, 0 + beq _08009A38 + movs r0, 0x1 + bl sub_80DA364 +_08009A38: + ldrh r1, [r4, 0x2E] + movs r0, 0x4 + ands r0, r1 + cmp r0, 0 + beq _08009A46 + bl sub_800AAC0 +_08009A46: + ldr r0, _08009A80 @ =gUnknown_2022110 + ldrb r0, [r0] + cmp r0, 0 + beq _08009A66 + ldr r2, [r4, 0x24] + ldr r0, _08009A84 @ =gUnknown_300357C + ldrb r1, [r0] + ldr r0, _08009A88 @ =gUnknown_3003F80 + ldr r0, [r0] + cmp r0, 0 + bne _08009A60 + movs r0, 0x10 + orrs r1, r0 +_08009A60: + adds r0, r2, 0 + bl sub_800A890 +_08009A66: + add sp, 0x4 + pop {r4,r5} + pop {r0} + bx r0 + .align 2, 0 +_08009A70: .4byte gUnknown_30030F0 +_08009A74: .4byte gUnknown_3003F84 +_08009A78: .4byte gHeap + 0x4000 +_08009A7C: .4byte 0x00002004 +_08009A80: .4byte gUnknown_2022110 +_08009A84: .4byte gUnknown_300357C +_08009A88: .4byte gUnknown_3003F80 + thumb_func_end sub_80099D0 + + thumb_func_start sub_8009A8C +sub_8009A8C: @ 8009A8C + push {lr} + bl sub_80099D0 + movs r0, 0x1 + movs r1, 0x1 + movs r2, 0 + bl sub_80098E8 + bl sub_8077578 + bl sub_8006B5C + bl sub_8006BA8 + bl sub_80704D0 + pop {r0} + bx r0 + thumb_func_end sub_8009A8C + + thumb_func_start sub_8009AB0 +sub_8009AB0: @ 8009AB0 + push {r4,r5,lr} + adds r4, r0, 0 + ldr r0, _08009AC0 @ =gUnknown_2022718 + ldrb r0, [r0] + cmp r0, 0 + bne _08009AC4 + movs r0, 0 + b _08009B0C + .align 2, 0 +_08009AC0: .4byte gUnknown_2022718 +_08009AC4: + movs r1, 0 + ldr r5, _08009B14 @ =gUnknown_3003EC4 + ldr r3, _08009B18 @ =gUnknown_3003F50 + movs r2, 0 +_08009ACC: + lsls r0, r1, 1 + adds r0, r3 + strh r2, [r0] + adds r0, r1, 0x1 + lsls r0, 24 + lsrs r1, r0, 24 + cmp r1, 0x7 + bls _08009ACC + ldrh r0, [r4] + strh r0, [r5] + ldr r0, _08009B1C @ =gUnknown_3003F20 + ldr r0, [r0] + movs r1, 0x40 + ands r0, r1 + cmp r0, 0 + beq _08009B08 + ldr r0, _08009B20 @ =0x04000128 + ldr r0, [r0] + lsls r0, 26 + lsrs r0, 30 + bl sub_8009B70 + ldr r0, _08009B24 @ =gUnknown_3003F80 + ldr r0, [r0] + cmp r0, 0 + beq _08009B04 + bl _call_via_r0 +_08009B04: + bl sub_800AC58 +_08009B08: + ldr r0, _08009B1C @ =gUnknown_3003F20 + ldrh r0, [r0] +_08009B0C: + pop {r4,r5} + pop {r1} + bx r1 + .align 2, 0 +_08009B14: .4byte gUnknown_3003EC4 +_08009B18: .4byte gUnknown_3003F50 +_08009B1C: .4byte gUnknown_3003F20 +_08009B20: .4byte 0x04000128 +_08009B24: .4byte gUnknown_3003F80 + thumb_func_end sub_8009AB0 + + thumb_func_start sub_8009B28 +sub_8009B28: @ 8009B28 + push {r4-r6,lr} + lsls r0, 24 + lsrs r0, 24 + movs r5, 0 + ldr r1, _08009B3C @ =gUnknown_3003EB8 + adds r0, r1 + strb r5, [r0] + movs r4, 0 + adds r6, r1, 0 + b _08009B48 + .align 2, 0 +_08009B3C: .4byte gUnknown_3003EB8 +_08009B40: + adds r0, r4, r6 + ldrb r0, [r0] + adds r5, r0 + adds r4, 0x1 +_08009B48: + bl sub_800AA38 + lsls r0, 24 + lsrs r0, 24 + cmp r4, r0 + blt _08009B40 + cmp r5, 0 + bne _08009B64 + ldr r1, _08009B6C @ =gUnknown_3003F64 + ldrb r0, [r1] + cmp r0, 0 + bne _08009B64 + movs r0, 0x1 + strb r0, [r1] +_08009B64: + pop {r4-r6} + pop {r0} + bx r0 + .align 2, 0 +_08009B6C: .4byte gUnknown_3003F64 + thumb_func_end sub_8009B28 + + thumb_func_start sub_8009B70 +sub_8009B70: @ 8009B70 + push {r4-r7,lr} + mov r7, r10 + mov r6, r9 + mov r5, r8 + push {r5-r7} + sub sp, 0x4 + movs r6, 0 +_08009B7E: + ldr r0, _08009BC8 @ =gUnknown_3003E60 + lsls r1, r6, 1 + adds r3, r1, r0 + movs r0, 0 + strh r0, [r3] + lsls r4, r6, 4 + ldr r5, _08009BCC @ =gUnknown_3003ED0 + adds r2, r4, r5 + ldrh r0, [r2] + mov r12, r1 + adds r7, r6, 0x1 + str r7, [sp] + cmp r0, 0 + bne _08009B9C + b _08009E3E +_08009B9C: + ldrh r1, [r2] + ldr r0, _08009BD0 @ =0x00005fff + cmp r1, r0 + bne _08009BA6 + b _08009DF0 +_08009BA6: + cmp r1, r0 + bgt _08009BF4 + ldr r0, _08009BD4 @ =0x00004444 + cmp r1, r0 + bne _08009BB2 + b _08009E34 +_08009BB2: + cmp r1, r0 + bgt _08009BE0 + ldr r0, _08009BD8 @ =0x00002222 + cmp r1, r0 + beq _08009C38 + ldr r0, _08009BDC @ =0x00002ffe + cmp r1, r0 + bne _08009BC4 + b _08009DF8 +_08009BC4: + b _08009E3E + .align 2, 0 +_08009BC8: .4byte gUnknown_3003E60 +_08009BCC: .4byte gUnknown_3003ED0 +_08009BD0: .4byte 0x00005fff +_08009BD4: .4byte 0x00004444 +_08009BD8: .4byte 0x00002222 +_08009BDC: .4byte 0x00002ffe +_08009BE0: + ldr r0, _08009BF0 @ =0x00005555 + cmp r1, r0 + beq _08009C88 + adds r0, 0x11 + cmp r1, r0 + beq _08009C88 + b _08009E3E + .align 2, 0 +_08009BF0: .4byte 0x00005555 +_08009BF4: + ldr r0, _08009C10 @ =0x0000bbbb + cmp r1, r0 + beq _08009C94 + cmp r1, r0 + bgt _08009C1C + ldr r0, _08009C14 @ =0x00008888 + cmp r1, r0 + beq _08009CC0 + ldr r0, _08009C18 @ =0x0000aaaa + cmp r1, r0 + bne _08009C0C + b _08009E08 +_08009C0C: + b _08009E3E + .align 2, 0 +_08009C10: .4byte 0x0000bbbb +_08009C14: .4byte 0x00008888 +_08009C18: .4byte 0x0000aaaa +_08009C1C: + ldr r0, _08009C30 @ =0x0000cafe + cmp r1, r0 + bne _08009C24 + b _08009E34 +_08009C24: + ldr r0, _08009C34 @ =0x0000cccc + cmp r1, r0 + bne _08009C2C + b _08009E0E +_08009C2C: + b _08009E3E + .align 2, 0 +_08009C30: .4byte 0x0000cafe +_08009C34: .4byte 0x0000cccc +_08009C38: + bl sub_8009708 + ldr r0, _08009C7C @ =gUnknown_3003E70 + adds r2, r0, 0 + adds r2, 0x10 + ldr r1, _08009C80 @ =gUnknown_2022720 + ldm r1!, {r3-r5} + stm r2!, {r3-r5} + ldm r1!, {r3,r6,r7} + stm r2!, {r3,r6,r7} + ldr r1, [r1] + str r1, [r2] + ldr r4, _08009C84 @ =gUnknown_82345C0 + adds r2, r0, 0 + adds r1, r4, 0 + ldm r1!, {r5-r7} + stm r2!, {r5-r7} + ldrh r3, [r1] + strh r3, [r2] + ldrb r1, [r1, 0x2] + strb r1, [r2, 0x2] + adds r1, r0, 0 + adds r1, 0x2C + ldm r4!, {r2,r3,r5} + stm r1!, {r2,r3,r5} + ldrh r2, [r4] + strh r2, [r1] + ldrb r2, [r4, 0x2] + strb r2, [r1, 0x2] + movs r1, 0x3C + bl sub_800A2A8 + b _08009E3E + .align 2, 0 +_08009C7C: .4byte gUnknown_3003E70 +_08009C80: .4byte gUnknown_2022720 +_08009C84: .4byte gUnknown_82345C0 +_08009C88: + ldr r1, _08009C90 @ =gUnknown_3003F28 + movs r0, 0x1 + strb r0, [r1] + b _08009E3E + .align 2, 0 +_08009C90: .4byte gUnknown_3003F28 +_08009C94: + mov r7, r12 + adds r1, r7, r6 + lsls r1, 2 + ldr r0, _08009CB8 @ =gUnknown_3000E18 + adds r1, r0 + movs r2, 0 + strh r2, [r1] + ldr r0, _08009CBC @ =gUnknown_3003ED0 + adds r0, 0x2 + adds r0, r4, r0 + ldrh r0, [r0] + strh r0, [r1, 0x2] + ldr r0, _08009CBC @ =gUnknown_3003ED0 + adds r0, 0x4 + adds r0, r4, r0 + ldrh r0, [r0] + strb r0, [r1, 0x9] + b _08009E3E + .align 2, 0 +_08009CB8: .4byte gUnknown_3000E18 +_08009CBC: .4byte gUnknown_3003ED0 +_08009CC0: + mov r3, r12 + adds r0, r3, r6 + lsls r0, 2 + ldr r5, _08009D04 @ =gUnknown_3000E18 + adds r3, r0, r5 + ldrh r1, [r3, 0x2] + movs r0, 0x80 + lsls r0, 1 + adds r7, r5, 0 + mov r10, r7 + cmp r1, r0 + bls _08009D10 + ldr r0, _08009D08 @ =gUnknown_201C000 + mov r8, r0 + movs r2, 0 + adds r5, r3, 0 + ldr r7, _08009D0C @ =gUnknown_3003ED0 + adds r3, r4, 0 +_08009CE4: + ldrh r1, [r5] + lsrs r1, 1 + adds r1, r2 + lsls r1, 1 + add r1, r8 + adds r2, 0x1 + lsls r0, r2, 1 + adds r0, r3 + adds r0, r7 + ldrh r0, [r0] + strh r0, [r1] + lsls r2, 16 + lsrs r2, 16 + cmp r2, 0x6 + bls _08009CE4 + b _08009D40 + .align 2, 0 +_08009D04: .4byte gUnknown_3000E18 +_08009D08: .4byte gUnknown_201C000 +_08009D0C: .4byte gUnknown_3003ED0 +_08009D10: + movs r2, 0 + ldr r1, _08009DC4 @ =gUnknown_2022118 + mov r9, r1 + adds r7, r3, 0 + ldr r3, _08009DC8 @ =gUnknown_3003ED0 + mov r8, r3 + lsls r5, r6, 8 + adds r3, r4, 0 +_08009D20: + ldrh r1, [r7] + lsrs r1, 1 + adds r1, r2 + lsls r1, 1 + adds r1, r5 + add r1, r9 + adds r2, 0x1 + lsls r0, r2, 1 + adds r0, r3 + add r0, r8 + ldrh r0, [r0] + strh r0, [r1] + lsls r2, 16 + lsrs r2, 16 + cmp r2, 0x6 + bls _08009D20 +_08009D40: + mov r4, r12 + adds r1, r4, r6 + lsls r1, 2 + add r1, r10 + ldrh r0, [r1] + adds r0, 0xE + movs r3, 0 + strh r0, [r1] + lsls r0, 16 + lsrs r0, 16 + ldrh r1, [r1, 0x2] + cmp r0, r1 + bcc _08009E3E + ldr r0, _08009DCC @ =gUnknown_3003EB8 + adds r0, r6, r0 + ldrb r0, [r0] + cmp r0, 0x1 + bne _08009DE6 + lsls r1, r6, 8 + ldr r0, _08009DC4 @ =gUnknown_2022118 + adds r1, r0 + mov r8, r1 + lsls r0, r6, 3 + subs r0, r6 + lsls r0, 2 + ldr r1, _08009DD0 @ =gUnknown_202273C + adds r2, r0, r1 + adds r1, r2, 0 + mov r0, r8 + adds r0, 0x10 + ldm r0!, {r4,r5,r7} + stm r1!, {r4,r5,r7} + ldm r0!, {r4,r5,r7} + stm r1!, {r4,r5,r7} + ldr r0, [r0] + str r0, [r1] + ldrb r0, [r2] + subs r0, 0x1 + lsls r0, 16 + lsrs r0, 16 + cmp r0, 0x1 + bhi _08009D9A + strb r3, [r2, 0x12] + strb r3, [r2, 0x11] + strb r3, [r2, 0x10] +_08009D9A: + adds r0, r2, 0 + bl sub_800B284 + ldr r5, _08009DD4 @ =gUnknown_82345C0 + mov r0, r8 + adds r1, r5, 0 + bl strcmp + cmp r0, 0 + bne _08009DBC + mov r0, r8 + adds r0, 0x2C + adds r1, r5, 0 + bl strcmp + cmp r0, 0 + beq _08009DDC +_08009DBC: + ldr r0, _08009DD8 @ =sub_800ACD4 + bl sub_8000544 + b _08009E3E + .align 2, 0 +_08009DC4: .4byte gUnknown_2022118 +_08009DC8: .4byte gUnknown_3003ED0 +_08009DCC: .4byte gUnknown_3003EB8 +_08009DD0: .4byte gUnknown_202273C +_08009DD4: .4byte gUnknown_82345C0 +_08009DD8: .4byte sub_800ACD4 +_08009DDC: + lsls r0, r6, 24 + lsrs r0, 24 + bl sub_8009B28 + b _08009E3E +_08009DE6: + lsls r0, r6, 24 + lsrs r0, 24 + bl sub_800A524 + b _08009E3E +_08009DF0: + ldr r0, _08009DF4 @ =gUnknown_3003F30 + b _08009DFA + .align 2, 0 +_08009DF4: .4byte gUnknown_3003F30 +_08009DF8: + ldr r0, _08009E04 @ =gUnknown_3003F2C +_08009DFA: + adds r0, r6, r0 + movs r1, 0x1 + strb r1, [r0] + b _08009E3E + .align 2, 0 +_08009E04: .4byte gUnknown_3003F2C +_08009E08: + bl sub_800A3CC + b _08009E3E +_08009E0E: + ldr r3, _08009E2C @ =gUnknown_8234598 + ldr r0, _08009E30 @ =gUnknown_3003ED0 + adds r0, 0x2 + adds r0, r4, r0 + ldrh r2, [r0] + lsls r2, 3 + adds r0, r2, r3 + ldr r1, [r0] + adds r3, 0x4 + adds r2, r3 + ldrh r2, [r2] + movs r0, 0 + bl sub_800A448 + b _08009E3E + .align 2, 0 +_08009E2C: .4byte gUnknown_8234598 +_08009E30: .4byte gUnknown_3003ED0 +_08009E34: + ldr r0, _08009E5C @ =gUnknown_3003ED0 + adds r0, 0x2 + adds r0, r4, r0 + ldrh r0, [r0] + strh r0, [r3] +_08009E3E: + ldr r5, [sp] + lsls r0, r5, 16 + lsrs r6, r0, 16 + cmp r6, 0x3 + bhi _08009E4A + b _08009B7E +_08009E4A: + add sp, 0x4 + pop {r3-r5} + mov r8, r3 + mov r9, r4 + mov r10, r5 + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_08009E5C: .4byte gUnknown_3003ED0 + thumb_func_end sub_8009B70 + + thumb_func_start sub_8009E60 +sub_8009E60: @ 8009E60 + push {lr} + lsls r0, 16 + lsrs r2, r0, 16 + ldr r0, _08009E8C @ =0x00006666 + cmp r2, r0 + beq _08009F30 + cmp r2, r0 + bgt _08009EC0 + ldr r0, _08009E90 @ =0x00004444 + cmp r2, r0 + beq _08009F1C + cmp r2, r0 + bgt _08009E9C + ldr r0, _08009E94 @ =0x00002222 + cmp r2, r0 + beq _08009F08 + ldr r0, _08009E98 @ =0x00002ffe +_08009E82: + cmp r2, r0 + bne _08009E88 + b _08009FB4 +_08009E88: + b _08009FD6 + .align 2, 0 +_08009E8C: .4byte 0x00006666 +_08009E90: .4byte 0x00004444 +_08009E94: .4byte 0x00002222 +_08009E98: .4byte 0x00002ffe +_08009E9C: + ldr r0, _08009EAC @ =0x00005566 + cmp r2, r0 + bne _08009EA4 + b _08009FB4 +_08009EA4: + cmp r2, r0 + bgt _08009EB0 + subs r0, 0x11 + b _08009E82 + .align 2, 0 +_08009EAC: .4byte 0x00005566 +_08009EB0: + ldr r0, _08009EBC @ =0x00005fff + cmp r2, r0 + bne _08009EB8 + b _08009FA0 +_08009EB8: + b _08009FD6 + .align 2, 0 +_08009EBC: .4byte 0x00005fff +_08009EC0: + ldr r0, _08009ED4 @ =0x0000aaab + cmp r2, r0 + beq _08009F78 + cmp r2, r0 + bgt _08009EE0 + ldr r0, _08009ED8 @ =0x00007777 + cmp r2, r0 + beq _08009F3C + ldr r0, _08009EDC @ =0x0000aaaa + b _08009E82 + .align 2, 0 +_08009ED4: .4byte 0x0000aaab +_08009ED8: .4byte 0x00007777 +_08009EDC: .4byte 0x0000aaaa +_08009EE0: + ldr r0, _08009EF4 @ =0x0000cafe + cmp r2, r0 + beq _08009FC0 + cmp r2, r0 + bgt _08009EFC + ldr r0, _08009EF8 @ =0x0000bbbb + cmp r2, r0 + beq _08009F5C + b _08009FD6 + .align 2, 0 +_08009EF4: .4byte 0x0000cafe +_08009EF8: .4byte 0x0000bbbb +_08009EFC: + ldr r0, _08009F04 @ =0x0000cccc + cmp r2, r0 + beq _08009F8C + b _08009FD6 + .align 2, 0 +_08009F04: .4byte 0x0000cccc +_08009F08: + ldr r0, _08009F14 @ =gUnknown_3003F50 + strh r2, [r0] + ldr r1, _08009F18 @ =gUnknown_202271A + ldrh r1, [r1] + b _08009FD4 + .align 2, 0 +_08009F14: .4byte gUnknown_3003F50 +_08009F18: .4byte gUnknown_202271A +_08009F1C: + ldr r0, _08009F28 @ =gUnknown_3003F50 + strh r2, [r0] + ldr r1, _08009F2C @ =gUnknown_30030F0 + ldrh r1, [r1, 0x2C] + b _08009FD4 + .align 2, 0 +_08009F28: .4byte gUnknown_3003F50 +_08009F2C: .4byte gUnknown_30030F0 +_08009F30: + ldr r0, _08009F38 @ =gUnknown_3003F50 + movs r1, 0 + b _08009FD2 + .align 2, 0 +_08009F38: .4byte gUnknown_3003F50 +_08009F3C: + ldr r0, _08009F58 @ =gUnknown_3003F50 + strh r2, [r0] + movs r1, 0 + adds r3, r0, 0 + movs r2, 0xEE +_08009F46: + adds r1, 0x1 + lsls r0, r1, 1 + adds r0, r3 + strh r2, [r0] + lsls r1, 24 + lsrs r1, 24 + cmp r1, 0x4 + bls _08009F46 + b _08009FD6 + .align 2, 0 +_08009F58: .4byte gUnknown_3003F50 +_08009F5C: + ldr r1, _08009F70 @ =gUnknown_3003F50 + strh r2, [r1] + ldr r2, _08009F74 @ =gUnknown_3000E08 + ldrh r0, [r2, 0x2] + strh r0, [r1, 0x2] + ldrb r0, [r2, 0x9] + adds r0, 0x80 + strh r0, [r1, 0x4] + b _08009FD6 + .align 2, 0 +_08009F70: .4byte gUnknown_3003F50 +_08009F74: .4byte gUnknown_3000E08 +_08009F78: + ldr r0, _08009F84 @ =gUnknown_3003F50 + strh r2, [r0] + ldr r1, _08009F88 @ =gUnknown_203AD30 + ldrh r1, [r1] + b _08009FD4 + .align 2, 0 +_08009F84: .4byte gUnknown_3003F50 +_08009F88: .4byte gUnknown_203AD30 +_08009F8C: + ldr r0, _08009F98 @ =gUnknown_3003F50 + strh r2, [r0] + ldr r1, _08009F9C @ =gUnknown_3003F90 + ldrb r1, [r1] + b _08009FD4 + .align 2, 0 +_08009F98: .4byte gUnknown_3003F50 +_08009F9C: .4byte gUnknown_3003F90 +_08009FA0: + ldr r0, _08009FAC @ =gUnknown_3003F50 + strh r2, [r0] + ldr r1, _08009FB0 @ =gUnknown_3003F34 + ldrh r1, [r1] + b _08009FD4 + .align 2, 0 +_08009FAC: .4byte gUnknown_3003F50 +_08009FB0: .4byte gUnknown_3003F34 +_08009FB4: + ldr r0, _08009FBC @ =gUnknown_3003F50 + strh r2, [r0] + b _08009FD6 + .align 2, 0 +_08009FBC: .4byte gUnknown_3003F50 +_08009FC0: + ldr r0, _08009FDC @ =gUnknown_3005028 + ldrh r1, [r0] + cmp r1, 0 + beq _08009FD6 + ldr r0, _08009FE0 @ =gUnknown_30030E4 + ldrb r0, [r0] + cmp r0, 0 + bne _08009FD6 + ldr r0, _08009FE4 @ =gUnknown_3003F50 +_08009FD2: + strh r2, [r0] +_08009FD4: + strh r1, [r0, 0x2] +_08009FD6: + pop {r0} + bx r0 + .align 2, 0 +_08009FDC: .4byte gUnknown_3005028 +_08009FE0: .4byte gUnknown_30030E4 +_08009FE4: .4byte gUnknown_3003F50 + thumb_func_end sub_8009E60 + + thumb_func_start sub_8009FE8 +sub_8009FE8: @ 8009FE8 + push {lr} + ldr r0, _0800A000 @ =gUnknown_3003F3C + ldrb r0, [r0] + cmp r0, 0 + beq _08009FF6 + bl sub_80F9828 +_08009FF6: + ldr r1, _0800A004 @ =gUnknown_3003F80 + ldr r0, _0800A008 @ =sub_800A040 + str r0, [r1] + pop {r0} + bx r0 + .align 2, 0 +_0800A000: .4byte gUnknown_3003F3C +_0800A004: .4byte gUnknown_3003F80 +_0800A008: .4byte sub_800A040 + thumb_func_end sub_8009FE8 + + thumb_func_start sub_800A00C +sub_800A00C: @ 800A00C + push {lr} + ldr r0, _0800A01C @ =gUnknown_3003F3C + ldrb r0, [r0] + cmp r0, 0 + beq _0800A020 + bl sub_80F9808 + b _0800A03A + .align 2, 0 +_0800A01C: .4byte gUnknown_3003F3C +_0800A020: + ldr r0, _0800A030 @ =gUnknown_3003F80 + ldr r1, [r0] + ldr r0, _0800A034 @ =sub_800A040 + cmp r1, r0 + beq _0800A038 + movs r0, 0 + b _0800A03A + .align 2, 0 +_0800A030: .4byte gUnknown_3003F80 +_0800A034: .4byte sub_800A040 +_0800A038: + movs r0, 0x1 +_0800A03A: + pop {r1} + bx r1 + thumb_func_end sub_800A00C + + thumb_func_start sub_800A040 +sub_800A040: @ 800A040 + push {lr} + ldr r0, _0800A054 @ =gUnknown_3003F64 + ldrb r0, [r0] + cmp r0, 0x1 + bne _0800A050 + ldr r0, _0800A058 @ =0x0000cafe + bl sub_8009E60 +_0800A050: + pop {r0} + bx r0 + .align 2, 0 +_0800A054: .4byte gUnknown_3003F64 +_0800A058: .4byte 0x0000cafe + thumb_func_end sub_800A040 + + thumb_func_start sub_800A05C +sub_800A05C: @ 800A05C + ldr r1, _0800A064 @ =gUnknown_3003F80 + movs r0, 0 + str r0, [r1] + bx lr + .align 2, 0 +_0800A064: .4byte gUnknown_3003F80 + thumb_func_end sub_800A05C + + thumb_func_start sub_800A068 +sub_800A068: @ 800A068 + push {lr} + ldr r0, _0800A078 @ =gUnknown_3003F3C + ldrb r1, [r0] + cmp r1, 0 + beq _0800A07C + bl sub_80F985C + b _0800A080 + .align 2, 0 +_0800A078: .4byte gUnknown_3003F3C +_0800A07C: + ldr r0, _0800A084 @ =gUnknown_3003F80 + str r1, [r0] +_0800A080: + pop {r0} + bx r0 + .align 2, 0 +_0800A084: .4byte gUnknown_3003F80 + thumb_func_end sub_800A068 + + thumb_func_start sub_800A088 +sub_800A088: @ 800A088 + push {lr} + ldr r0, _0800A0A0 @ =gUnknown_3003F3C + ldrb r0, [r0] + cmp r0, 0 + bne _0800A0A8 + ldr r0, _0800A0A4 @ =gUnknown_3003F20 + ldr r0, [r0] + movs r1, 0x1C + ands r0, r1 + lsrs r0, 2 + b _0800A0B0 + .align 2, 0 +_0800A0A0: .4byte gUnknown_3003F3C +_0800A0A4: .4byte gUnknown_3003F20 +_0800A0A8: + bl sub_80FA4EC + lsls r0, 24 + lsrs r0, 24 +_0800A0B0: + pop {r1} + bx r1 + thumb_func_end sub_800A088 + + thumb_func_start sub_800A0B4 +sub_800A0B4: @ 800A0B4 + push {lr} + ldr r0, _0800A0C8 @ =gUnknown_3000E54 + movs r1, 0 + str r1, [r0] + ldr r0, _0800A0CC @ =gUnknown_202271C + strh r1, [r0] + bl sub_8009804 + pop {r0} + bx r0 + .align 2, 0 +_0800A0C8: .4byte gUnknown_3000E54 +_0800A0CC: .4byte gUnknown_202271C + thumb_func_end sub_800A0B4 + + thumb_func_start sub_800A0D0 +sub_800A0D0: @ 800A0D0 + push {r4-r7,lr} + adds r5, r0, 0 + adds r6, r1, 0 + movs r7, 0 + ldr r0, _0800A0F8 @ =gUnknown_3003F64 + ldrb r4, [r0] + cmp r4, 0x1 + bne _0800A1C8 + bl sub_800AA38 + lsls r0, 24 + lsrs r0, 24 + cmp r5, r0 + bgt _0800A0F0 + cmp r0, r6 + ble _0800A100 +_0800A0F0: + ldr r1, _0800A0FC @ =gUnknown_3000E54 + movs r0, 0x6 + str r0, [r1] + b _0800A1E2 + .align 2, 0 +_0800A0F8: .4byte gUnknown_3003F64 +_0800A0FC: .4byte gUnknown_3000E54 +_0800A100: + bl sub_800A088 + lsls r0, 24 + cmp r0, 0 + bne _0800A112 + ldr r0, _0800A11C @ =gUnknown_3003EAC + strb r4, [r0] + bl sub_80098B8 +_0800A112: + movs r6, 0 + ldr r4, _0800A120 @ =gUnknown_202273C + movs r5, 0 + b _0800A138 + .align 2, 0 +_0800A11C: .4byte gUnknown_3003EAC +_0800A120: .4byte gUnknown_202273C +_0800A124: + adds r0, r4, 0 + adds r0, 0x14 + adds r0, r5, r0 + ldr r1, [r0] + ldr r0, [r4, 0x14] + cmp r1, r0 + bne _0800A134 + adds r7, 0x1 +_0800A134: + adds r5, 0x1C + adds r6, 0x1 +_0800A138: + bl sub_800A088 + lsls r0, 24 + lsrs r0, 24 + cmp r6, r0 + blt _0800A124 + bl sub_800A088 + lsls r0, 24 + lsrs r0, 24 + cmp r7, r0 + bne _0800A1B8 + ldr r0, _0800A170 @ =gUnknown_202273C + ldr r1, [r0, 0x14] + ldr r0, _0800A174 @ =0x00001133 + cmp r1, r0 + bne _0800A1AC + bl sub_804FB34 + cmp r0, 0x1 + beq _0800A194 + cmp r0, 0x1 + bgt _0800A17C + cmp r0, 0 + beq _0800A188 + ldr r2, _0800A178 @ =gUnknown_3000E54 + b _0800A1E0 + .align 2, 0 +_0800A170: .4byte gUnknown_202273C +_0800A174: .4byte 0x00001133 +_0800A178: .4byte gUnknown_3000E54 +_0800A17C: + cmp r0, 0x2 + beq _0800A1A0 + ldr r2, _0800A184 @ =gUnknown_3000E54 + b _0800A1E0 + .align 2, 0 +_0800A184: .4byte gUnknown_3000E54 +_0800A188: + ldr r1, _0800A190 @ =gUnknown_3000E54 + movs r0, 0x1 + b _0800A1BC + .align 2, 0 +_0800A190: .4byte gUnknown_3000E54 +_0800A194: + ldr r1, _0800A19C @ =gUnknown_3000E54 + movs r0, 0x4 + b _0800A1BC + .align 2, 0 +_0800A19C: .4byte gUnknown_3000E54 +_0800A1A0: + ldr r1, _0800A1A8 @ =gUnknown_3000E54 + movs r0, 0x5 + b _0800A1BC + .align 2, 0 +_0800A1A8: .4byte gUnknown_3000E54 +_0800A1AC: + ldr r1, _0800A1B4 @ =gUnknown_3000E54 + movs r0, 0x1 + b _0800A1BC + .align 2, 0 +_0800A1B4: .4byte gUnknown_3000E54 +_0800A1B8: + ldr r1, _0800A1C4 @ =gUnknown_3000E54 + movs r0, 0x3 +_0800A1BC: + str r0, [r1] + adds r2, r1, 0 + b _0800A1E0 + .align 2, 0 +_0800A1C4: .4byte gUnknown_3000E54 +_0800A1C8: + ldr r0, _0800A1E8 @ =gUnknown_202271C + ldrh r1, [r0] + adds r1, 0x1 + strh r1, [r0] + lsls r1, 16 + movs r0, 0x96 + lsls r0, 18 + ldr r2, _0800A1EC @ =gUnknown_3000E54 + cmp r1, r0 + bls _0800A1E0 + movs r0, 0x2 + str r0, [r2] +_0800A1E0: + ldrb r0, [r2] +_0800A1E2: + pop {r4-r7} + pop {r1} + bx r1 + .align 2, 0 +_0800A1E8: .4byte gUnknown_202271C +_0800A1EC: .4byte gUnknown_3000E54 + thumb_func_end sub_800A0D0 + + thumb_func_start sub_800A1F0 +sub_800A1F0: @ 800A1F0 + push {r4-r6,lr} + movs r6, 0 + movs r4, 0 + ldr r5, _0800A1FC @ =gUnknown_202273C + b _0800A220 + .align 2, 0 +_0800A1FC: .4byte gUnknown_202273C +_0800A200: + lsls r0, r4, 3 + subs r0, r4 + lsls r0, 2 + adds r1, r5, 0 + adds r1, 0x14 + adds r0, r1 + ldr r1, [r0] + ldr r0, [r5, 0x14] + cmp r1, r0 + bne _0800A21A + adds r0, r6, 0x1 + lsls r0, 24 + lsrs r6, r0, 24 +_0800A21A: + adds r0, r4, 0x1 + lsls r0, 24 + lsrs r4, r0, 24 +_0800A220: + bl sub_800A088 + lsls r0, 24 + lsrs r0, 24 + cmp r4, r0 + bcc _0800A200 + bl sub_800A088 + lsls r0, 24 + lsrs r0, 24 + cmp r6, r0 + bne _0800A244 + movs r2, 0x1 + ldr r0, _0800A240 @ =gUnknown_3000E54 + str r2, [r0] + b _0800A24C + .align 2, 0 +_0800A240: .4byte gUnknown_3000E54 +_0800A244: + movs r2, 0 + ldr r1, _0800A254 @ =gUnknown_3000E54 + movs r0, 0x3 + str r0, [r1] +_0800A24C: + adds r0, r2, 0 + pop {r4-r6} + pop {r1} + bx r1 + .align 2, 0 +_0800A254: .4byte gUnknown_3000E54 + thumb_func_end sub_800A1F0 + + thumb_func_start sub_800A258 +sub_800A258: @ 800A258 + lsls r0, 24 + lsrs r0, 24 + ldr r2, _0800A26C @ =gUnknown_202273C + lsls r1, r0, 3 + subs r1, r0 + lsls r1, 2 + adds r2, 0x4 + adds r1, r2 + ldr r0, [r1] + bx lr + .align 2, 0 +_0800A26C: .4byte gUnknown_202273C + thumb_func_end sub_800A258 + + thumb_func_start sub_800A270 +sub_800A270: @ 800A270 + push {r4,r5,lr} + ldr r5, _0800A290 @ =gUnknown_202273C + movs r4, 0x4 +_0800A276: + adds r0, r5, 0 + movs r1, 0 + movs r2, 0x1C + bl memset + adds r5, 0x1C + subs r4, 0x1 + cmp r4, 0 + bge _0800A276 + pop {r4,r5} + pop {r0} + bx r0 + .align 2, 0 +_0800A290: .4byte gUnknown_202273C + thumb_func_end sub_800A270 + + thumb_func_start sub_800A294 +sub_800A294: @ 800A294 + ldr r1, _0800A2A4 @ =gUnknown_3000E08 + movs r0, 0 + strb r0, [r1, 0x8] + strh r0, [r1] + strh r0, [r1, 0x2] + str r0, [r1, 0x4] + bx lr + .align 2, 0 +_0800A2A4: .4byte gUnknown_3000E08 + thumb_func_end sub_800A294 + + thumb_func_start sub_800A2A8 +sub_800A2A8: @ 800A2A8 + push {r4-r7,lr} + adds r7, r0, 0 + adds r6, r1, 0 + ldr r4, _0800A2BC @ =gUnknown_3000E08 + ldrb r5, [r4, 0x8] + cmp r5, 0 + beq _0800A2C0 + movs r0, 0 + b _0800A2FE + .align 2, 0 +_0800A2BC: .4byte gUnknown_3000E08 +_0800A2C0: + bl sub_800A404 + strb r0, [r4, 0x9] + movs r0, 0x1 + strb r0, [r4, 0x8] + strh r6, [r4, 0x2] + strh r5, [r4] + adds r0, 0xFF + cmp r6, r0 + bls _0800A2D8 + str r7, [r4, 0x4] + b _0800A2EA +_0800A2D8: + ldr r5, _0800A304 @ =gUnknown_2022618 + cmp r7, r5 + beq _0800A2E8 + adds r0, r5, 0 + adds r1, r7, 0 + adds r2, r6, 0 + bl memcpy +_0800A2E8: + str r5, [r4, 0x4] +_0800A2EA: + ldr r0, _0800A308 @ =0x0000bbbb + bl sub_8009E60 + ldr r1, _0800A30C @ =gUnknown_3003F80 + ldr r0, _0800A310 @ =sub_800A318 + str r0, [r1] + ldr r1, _0800A314 @ =gUnknown_3000E48 + movs r0, 0 + str r0, [r1] + movs r0, 0x1 +_0800A2FE: + pop {r4-r7} + pop {r1} + bx r1 + .align 2, 0 +_0800A304: .4byte gUnknown_2022618 +_0800A308: .4byte 0x0000bbbb +_0800A30C: .4byte gUnknown_3003F80 +_0800A310: .4byte sub_800A318 +_0800A314: .4byte gUnknown_3000E48 + thumb_func_end sub_800A2A8 + + thumb_func_start sub_800A318 +sub_800A318: @ 800A318 + push {lr} + ldr r1, _0800A330 @ =gUnknown_3000E48 + ldr r0, [r1] + adds r0, 0x1 + str r0, [r1] + cmp r0, 0x2 + bls _0800A32C + ldr r1, _0800A334 @ =gUnknown_3003F80 + ldr r0, _0800A338 @ =sub_800A33C + str r0, [r1] +_0800A32C: + pop {r0} + bx r0 + .align 2, 0 +_0800A330: .4byte gUnknown_3000E48 +_0800A334: .4byte gUnknown_3003F80 +_0800A338: .4byte sub_800A33C + thumb_func_end sub_800A318 + + thumb_func_start sub_800A33C +sub_800A33C: @ 800A33C + push {r4-r6,lr} + ldr r0, _0800A38C @ =gUnknown_3000E08 + ldr r5, [r0, 0x4] + ldr r2, _0800A390 @ =gUnknown_3003F50 + ldr r1, _0800A394 @ =0x00008888 + strh r1, [r2] + movs r3, 0 + adds r4, r0, 0 + adds r6, r4, 0 + adds r2, 0x2 +_0800A350: + lsls r0, r3, 1 + ldrh r1, [r6] + adds r0, r1 + adds r0, r5 + ldrb r1, [r0, 0x1] + lsls r1, 8 + ldrb r0, [r0] + orrs r0, r1 + strh r0, [r2] + adds r2, 0x2 + adds r3, 0x1 + cmp r3, 0x6 + ble _0800A350 + ldrh r0, [r4] + adds r0, 0xE + strh r0, [r4] + ldrh r1, [r4, 0x2] + lsls r0, 16 + lsrs r0, 16 + cmp r1, r0 + bhi _0800A384 + movs r0, 0 + strb r0, [r4, 0x8] + ldr r1, _0800A398 @ =gUnknown_3003F80 + ldr r0, _0800A39C @ =sub_800A3A0 + str r0, [r1] +_0800A384: + pop {r4-r6} + pop {r0} + bx r0 + .align 2, 0 +_0800A38C: .4byte gUnknown_3000E08 +_0800A390: .4byte gUnknown_3003F50 +_0800A394: .4byte 0x00008888 +_0800A398: .4byte gUnknown_3003F80 +_0800A39C: .4byte sub_800A3A0 + thumb_func_end sub_800A33C + + thumb_func_start sub_800A3A0 +sub_800A3A0: @ 800A3A0 + ldr r1, _0800A3A8 @ =gUnknown_3003F80 + movs r0, 0 + str r0, [r1] + bx lr + .align 2, 0 +_0800A3A8: .4byte gUnknown_3003F80 + thumb_func_end sub_800A3A0 + + thumb_func_start sub_800A3AC +sub_800A3AC: @ 800A3AC + push {lr} + bl sub_800A404 + ldr r0, _0800A3C4 @ =0x00004444 + bl sub_8009E60 + ldr r1, _0800A3C8 @ =gUnknown_2022114 + ldr r0, [r1] + adds r0, 0x1 + str r0, [r1] + pop {r0} + bx r0 + .align 2, 0 +_0800A3C4: .4byte 0x00004444 +_0800A3C8: .4byte gUnknown_2022114 + thumb_func_end sub_800A3AC + + thumb_func_start sub_800A3CC +sub_800A3CC: @ 800A3CC + ldr r1, _0800A3DC @ =gUnknown_2022114 + movs r0, 0 + str r0, [r1] + ldr r1, _0800A3E0 @ =gUnknown_3003F80 + ldr r0, _0800A3E4 @ =sub_800A3AC + str r0, [r1] + bx lr + .align 2, 0 +_0800A3DC: .4byte gUnknown_2022114 +_0800A3E0: .4byte gUnknown_3003F80 +_0800A3E4: .4byte sub_800A3AC + thumb_func_end sub_800A3CC + + thumb_func_start sub_800A3E8 +sub_800A3E8: @ 800A3E8 + ldr r0, _0800A3F0 @ =gUnknown_2022114 + ldr r0, [r0] + bx lr + .align 2, 0 +_0800A3F0: .4byte gUnknown_2022114 + thumb_func_end sub_800A3E8 + + thumb_func_start sub_800A3F4 +sub_800A3F4: @ 800A3F4 + push {lr} + ldr r0, _0800A400 @ =0x0000aaaa + bl sub_8009E60 + pop {r0} + bx r0 + .align 2, 0 +_0800A400: .4byte 0x0000aaaa + thumb_func_end sub_800A3F4 + + thumb_func_start sub_800A404 +sub_800A404: @ 800A404 + push {lr} + ldr r0, _0800A418 @ =gUnknown_3003F3C + ldrb r0, [r0] + cmp r0, 0x1 + beq _0800A420 + ldr r0, _0800A41C @ =0x04000128 + ldr r0, [r0] + lsls r0, 26 + lsrs r0, 30 + b _0800A428 + .align 2, 0 +_0800A418: .4byte gUnknown_3003F3C +_0800A41C: .4byte 0x04000128 +_0800A420: + bl sub_80FA4C8 + lsls r0, 24 + lsrs r0, 24 +_0800A428: + pop {r1} + bx r1 + thumb_func_end sub_800A404 + + thumb_func_start sub_800A42C +sub_800A42C: @ 800A42C + push {lr} + bl sub_800A404 + adds r1, r0, 0 + lsls r1, 24 + lsrs r1, 24 + movs r0, 0x1 + lsls r0, r1 + movs r1, 0xF + eors r0, r1 + lsls r0, 24 + lsrs r0, 24 + pop {r1} + bx r1 + thumb_func_end sub_800A42C + + thumb_func_start sub_800A448 +sub_800A448: @ 800A448 + push {lr} + adds r3, r1, 0 + lsls r2, 16 + lsrs r1, r2, 16 + ldr r0, _0800A460 @ =gUnknown_3003F3C + ldrb r0, [r0] + cmp r0, 0x1 + beq _0800A464 + adds r0, r3, 0 + bl sub_800A2A8 + b _0800A46A + .align 2, 0 +_0800A460: .4byte gUnknown_3003F3C +_0800A464: + adds r0, r3, 0 + bl sub_80F9E60 +_0800A46A: + lsls r0, 24 + lsrs r0, 24 + pop {r1} + bx r1 + thumb_func_end sub_800A448 + + thumb_func_start sub_800A474 +sub_800A474: @ 800A474 + push {lr} + lsls r0, 24 + lsrs r1, r0, 24 + adds r2, r1, 0 + ldr r0, _0800A490 @ =gUnknown_3003F3C + ldrb r0, [r0] + cmp r0, 0x1 + bne _0800A494 + adds r0, r1, 0 + bl sub_80FA0F8 + lsls r0, 24 + lsrs r0, 24 + b _0800A4B0 + .align 2, 0 +_0800A490: .4byte gUnknown_3003F3C +_0800A494: + ldr r0, _0800A4A0 @ =gUnknown_3003F80 + ldr r0, [r0] + cmp r0, 0 + beq _0800A4A4 + movs r0, 0 + b _0800A4B0 + .align 2, 0 +_0800A4A0: .4byte gUnknown_3003F80 +_0800A4A4: + ldr r0, _0800A4B4 @ =gUnknown_3003F90 + strb r2, [r0] + ldr r0, _0800A4B8 @ =0x0000cccc + bl sub_8009E60 + movs r0, 0x1 +_0800A4B0: + pop {r1} + bx r1 + .align 2, 0 +_0800A4B4: .4byte gUnknown_3003F90 +_0800A4B8: .4byte 0x0000cccc + thumb_func_end sub_800A474 + + thumb_func_start sub_800A4BC +sub_800A4BC: @ 800A4BC + push {lr} + ldr r0, _0800A4D0 @ =gUnknown_3003F3C + ldrb r0, [r0] + cmp r0, 0x1 + bne _0800A4D4 + bl sub_80FA4F8 + lsls r0, 24 + lsrs r0, 24 + b _0800A4E2 + .align 2, 0 +_0800A4D0: .4byte gUnknown_3003F3C +_0800A4D4: + movs r1, 0 + ldr r0, _0800A4E8 @ =gUnknown_3003F80 + ldr r0, [r0] + cmp r0, 0 + bne _0800A4E0 + movs r1, 0x1 +_0800A4E0: + adds r0, r1, 0 +_0800A4E2: + pop {r1} + bx r1 + .align 2, 0 +_0800A4E8: .4byte gUnknown_3003F80 + thumb_func_end sub_800A4BC + + thumb_func_start sub_800A4EC +sub_800A4EC: @ 800A4EC + push {lr} + ldr r0, _0800A510 @ =gUnknown_3003F3C + ldrb r0, [r0] + cmp r0, 0x1 + beq _0800A518 + ldr r2, _0800A514 @ =gUnknown_3003EBC + ldrb r0, [r2, 0x3] + lsls r0, 3 + ldrb r1, [r2, 0x2] + lsls r1, 2 + orrs r0, r1 + ldrb r1, [r2, 0x1] + lsls r1, 1 + orrs r0, r1 + ldrb r1, [r2] + orrs r0, r1 + b _0800A51C + .align 2, 0 +_0800A510: .4byte gUnknown_3003F3C +_0800A514: .4byte gUnknown_3003EBC +_0800A518: + bl sub_80F9CC8 +_0800A51C: + lsls r0, 24 + lsrs r0, 24 + pop {r1} + bx r1 + thumb_func_end sub_800A4EC + + thumb_func_start sub_800A524 +sub_800A524: @ 800A524 + push {lr} + lsls r0, 24 + lsrs r1, r0, 24 + ldr r0, _0800A53C @ =gUnknown_3003F3C + ldrb r0, [r0] + cmp r0, 0x1 + bne _0800A540 + adds r0, r1, 0 + bl sub_80F9720 + b _0800A548 + .align 2, 0 +_0800A53C: .4byte gUnknown_3003F3C +_0800A540: + ldr r0, _0800A54C @ =gUnknown_3003EBC + adds r0, r1, r0 + movs r1, 0x1 + strb r1, [r0] +_0800A548: + pop {r0} + bx r0 + .align 2, 0 +_0800A54C: .4byte gUnknown_3003EBC + thumb_func_end sub_800A524 + + thumb_func_start sub_800A550 +sub_800A550: @ 800A550 + push {r4,lr} + ldr r0, _0800A56C @ =gUnknown_3003F3C + ldrb r0, [r0] + cmp r0, 0x1 + bne _0800A570 + movs r4, 0 +_0800A55C: + lsls r0, r4, 24 + lsrs r0, 24 + bl sub_80F974C + adds r4, 0x1 + cmp r4, 0x4 + ble _0800A55C + b _0800A57E + .align 2, 0 +_0800A56C: .4byte gUnknown_3003F3C +_0800A570: + ldr r1, _0800A584 @ =gUnknown_3003EBC + movs r2, 0 + adds r0, r1, 0x3 +_0800A576: + strb r2, [r0] + subs r0, 0x1 + cmp r0, r1 + bge _0800A576 +_0800A57E: + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_0800A584: .4byte gUnknown_3003EBC + thumb_func_end sub_800A550 + + thumb_func_start sub_800A588 +sub_800A588: @ 800A588 + push {lr} + lsls r0, 24 + lsrs r1, r0, 24 + ldr r0, _0800A5A0 @ =gUnknown_3003F3C + ldrb r0, [r0] + cmp r0, 0x1 + bne _0800A5A4 + adds r0, r1, 0 + bl sub_80F974C + b _0800A5B2 + .align 2, 0 +_0800A5A0: .4byte gUnknown_3003F3C +_0800A5A4: + ldr r0, _0800A5B8 @ =gUnknown_3003EBC + adds r1, r0 + ldrb r0, [r1] + cmp r0, 0 + beq _0800A5B2 + movs r0, 0 + strb r0, [r1] +_0800A5B2: + pop {r0} + bx r0 + .align 2, 0 +_0800A5B8: .4byte gUnknown_3003EBC + thumb_func_end sub_800A588 + + thumb_func_start sub_800A5BC +sub_800A5BC: @ 800A5BC + push {lr} + ldr r0, _0800A5DC @ =gUnknown_3003F20 + ldr r1, [r0] + movs r0, 0x20 + ands r0, r1 + cmp r0, 0 + beq _0800A5D8 + movs r0, 0x1C + ands r1, r0 + cmp r1, 0x4 + bls _0800A5D8 + ldr r1, _0800A5E0 @ =gUnknown_3003F84 + movs r0, 0x1 + strb r0, [r1] +_0800A5D8: + pop {r0} + bx r0 + .align 2, 0 +_0800A5DC: .4byte gUnknown_3003F20 +_0800A5E0: .4byte gUnknown_3003F84 + thumb_func_end sub_800A5BC + + thumb_func_start sub_800A5E4 +sub_800A5E4: @ 800A5E4 + push {r4,lr} + adds r4, r0, 0 + lsls r1, 16 + movs r3, 0 + movs r2, 0 + lsrs r1, 17 + cmp r3, r1 + bcs _0800A60A +_0800A5F4: + lsls r0, r2, 1 + adds r0, r4 + ldrh r0, [r0] + adds r0, r3, r0 + lsls r0, 16 + lsrs r3, r0, 16 + adds r0, r2, 0x1 + lsls r0, 16 + lsrs r2, r0, 16 + cmp r2, r1 + bcc _0800A5F4 +_0800A60A: + adds r0, r3, 0 + pop {r4} + pop {r1} + bx r1 + thumb_func_end sub_800A5E4 + + thumb_func_start sub_800A614 +sub_800A614: @ 800A614 + push {r4,r5,lr} + lsls r0, 24 + lsrs r0, 24 + lsls r1, 24 + lsrs r1, 24 + lsls r2, 24 + ldr r4, _0800A648 @ =gUnknown_3003F70 + ldr r3, [r4] + lsls r3, 11 + movs r5, 0xC0 + lsls r5, 19 + adds r3, r5 + lsrs r2, 19 + adds r2, r1 + lsls r2, 1 + adds r2, r3 + ldr r3, [r4, 0x4] + lsls r3, 12 + ldr r1, [r4, 0x8] + adds r1, 0x1 + adds r0, r1 + orrs r3, r0 + strh r3, [r2] + pop {r4,r5} + pop {r0} + bx r0 + .align 2, 0 +_0800A648: .4byte gUnknown_3003F70 + thumb_func_end sub_800A614 + + thumb_func_start sub_800A64C +sub_800A64C: @ 800A64C + push {r4,r5,lr} + lsls r0, 24 + lsrs r0, 24 + lsls r1, 24 + lsrs r1, 24 + lsls r2, 24 + ldr r4, _0800A680 @ =gUnknown_3003F70 + ldr r3, [r4] + lsls r3, 11 + movs r5, 0xC0 + lsls r5, 19 + adds r3, r5 + lsrs r2, 19 + adds r2, r1 + lsls r2, 1 + adds r2, r3 + ldr r3, [r4, 0x4] + lsls r3, 12 + ldr r1, [r4, 0x8] + adds r1, r0 + orrs r3, r1 + strh r3, [r2] + pop {r4,r5} + pop {r0} + bx r0 + .align 2, 0 +_0800A680: .4byte gUnknown_3003F70 + thumb_func_end sub_800A64C + + thumb_func_start sub_800A684 +sub_800A684: @ 800A684 + push {r4-r7,lr} + sub sp, 0x10 + adds r5, r0, 0 + lsls r1, 24 + lsrs r6, r1, 24 + lsls r2, 24 + lsrs r7, r2, 24 + lsls r3, 24 + lsrs r3, 24 + movs r4, 0 + cmp r4, r3 + bge _0800A6B0 + movs r2, 0xF +_0800A69E: + mov r0, sp + adds r1, r0, r4 + adds r0, r5, 0 + ands r0, r2 + strb r0, [r1] + lsrs r5, 4 + adds r4, 0x1 + cmp r4, r3 + blt _0800A69E +_0800A6B0: + subs r4, r3, 0x1 + cmp r4, 0 + blt _0800A6D0 +_0800A6B6: + mov r1, sp + adds r0, r1, r4 + ldrb r0, [r0] + adds r1, r6, 0 + adds r2, r7, 0 + bl sub_800A614 + adds r0, r6, 0x1 + lsls r0, 24 + lsrs r6, r0, 24 + subs r4, 0x1 + cmp r4, 0 + bge _0800A6B6 +_0800A6D0: + add sp, 0x10 + pop {r4-r7} + pop {r0} + bx r0 + thumb_func_end sub_800A684 + + thumb_func_start sub_800A6D8 +sub_800A6D8: @ 800A6D8 + push {r4-r7,lr} + adds r3, r0, 0 + lsls r1, 24 + lsrs r7, r1, 24 + lsls r2, 24 + lsrs r2, 24 + movs r6, 0 + ldrb r0, [r3] + cmp r0, 0 + beq _0800A718 + adds r4, r3, 0 + lsls r5, r2, 24 +_0800A6F0: + ldrb r0, [r4] + cmp r0, 0xA + bne _0800A700 + movs r0, 0x80 + lsls r0, 17 + adds r5, r0 + movs r6, 0 + b _0800A710 +_0800A700: + ldrb r0, [r4] + adds r1, r7, r6 + lsls r1, 24 + lsrs r1, 24 + lsrs r2, r5, 24 + bl sub_800A64C + adds r6, 0x1 +_0800A710: + adds r4, 0x1 + ldrb r0, [r4] + cmp r0, 0 + bne _0800A6F0 +_0800A718: + pop {r4-r7} + pop {r0} + bx r0 + thumb_func_end sub_800A6D8 + + thumb_func_start sub_800A720 +sub_800A720: @ 800A720 + push {lr} + ldr r0, _0800A740 @ =gUnknown_3003F20 + ldr r0, [r0] + movs r1, 0x20 + ands r0, r1 + cmp r0, 0 + beq _0800A734 + ldr r0, _0800A744 @ =0x00002222 + bl sub_8009E60 +_0800A734: + ldr r1, _0800A748 @ =gUnknown_3003F80 + movs r0, 0 + str r0, [r1] + pop {r0} + bx r0 + .align 2, 0 +_0800A740: .4byte gUnknown_3003F20 +_0800A744: .4byte 0x00002222 +_0800A748: .4byte gUnknown_3003F80 + thumb_func_end sub_800A720 + + thumb_func_start sub_800A74C +sub_800A74C: @ 800A74C + push {r4-r6,lr} + sub sp, 0x20 + ldr r1, _0800A86C @ =gUnknown_82345D0 + mov r0, sp + bl strcpy + mov r0, sp + movs r1, 0x5 + movs r2, 0x2 + bl sub_800A6D8 + ldr r0, _0800A870 @ =gUnknown_3003F84 + ldrb r0, [r0] + movs r1, 0x2 + movs r2, 0x1 + movs r3, 0x2 + bl sub_800A684 + ldr r4, _0800A874 @ =gUnknown_3003F20 + ldr r0, [r4] + movs r1, 0xF + movs r2, 0x1 + movs r3, 0x8 + bl sub_800A684 + ldr r0, _0800A878 @ =gUnknown_3003FB0 + ldrb r0, [r0, 0x1] + movs r1, 0x2 + movs r2, 0xA + movs r3, 0x2 + bl sub_800A684 + ldr r0, [r4] + movs r1, 0x1C + ands r0, r1 + lsrs r0, 2 + movs r1, 0xF + movs r2, 0xA + movs r3, 0x2 + bl sub_800A684 + bl sub_800A404 + lsls r0, 24 + lsrs r0, 24 + movs r1, 0xF + movs r2, 0xC + movs r3, 0x2 + bl sub_800A684 + ldr r0, _0800A87C @ =gUnknown_3003FA0 + ldrb r0, [r0] + movs r1, 0x19 + movs r2, 0x1 + movs r3, 0x2 + bl sub_800A684 + ldr r0, _0800A880 @ =gUnknown_3004F70 + ldrb r0, [r0] + movs r1, 0x19 + movs r2, 0x2 + movs r3, 0x2 + bl sub_800A684 + bl sub_800A4EC + lsls r0, 24 + lsrs r0, 24 + movs r1, 0xF + movs r2, 0x5 + movs r3, 0x2 + bl sub_800A684 + ldr r0, _0800A884 @ =gUnknown_3003E6C + ldr r0, [r0] + movs r1, 0x2 + movs r2, 0xC + movs r3, 0x8 + bl sub_800A684 + ldr r0, _0800A888 @ =gUnknown_3003EB0 + ldr r0, [r0] + movs r1, 0x2 + movs r2, 0xD + movs r3, 0x8 + bl sub_800A684 + bl sub_800B054 + lsls r0, 24 + lsrs r0, 24 + movs r1, 0x19 + movs r2, 0x5 + movs r3, 0x1 + bl sub_800A684 + bl sub_800B064 + lsls r0, 24 + lsrs r0, 24 + movs r1, 0x19 + movs r2, 0x6 + movs r3, 0x1 + bl sub_800A684 + bl sub_800B08C + lsls r0, 24 + lsrs r0, 24 + movs r1, 0x19 + movs r2, 0x7 + movs r3, 0x1 + bl sub_800A684 + bl sub_800B0A8 + lsls r0, 24 + lsrs r0, 24 + movs r1, 0x19 + movs r2, 0x8 + movs r3, 0x1 + bl sub_800A684 + movs r6, 0 + movs r5, 0x80 + lsls r5, 19 + ldr r4, _0800A88C @ =gUnknown_3003F88 +_0800A84A: + ldrh r0, [r4] + lsrs r2, r5, 24 + movs r1, 0xA + movs r3, 0x4 + bl sub_800A684 + movs r0, 0x80 + lsls r0, 17 + adds r5, r0 + adds r4, 0x2 + adds r6, 0x1 + cmp r6, 0x3 + ble _0800A84A + add sp, 0x20 + pop {r4-r6} + pop {r0} + bx r0 + .align 2, 0 +_0800A86C: .4byte gUnknown_82345D0 +_0800A870: .4byte gUnknown_3003F84 +_0800A874: .4byte gUnknown_3003F20 +_0800A878: .4byte gUnknown_3003FB0 +_0800A87C: .4byte gUnknown_3003FA0 +_0800A880: .4byte gUnknown_3004F70 +_0800A884: .4byte gUnknown_3003E6C +_0800A888: .4byte gUnknown_3003EB0 +_0800A88C: .4byte gUnknown_3003F88 + thumb_func_end sub_800A74C + + thumb_func_start sub_800A890 +sub_800A890: @ 800A890 + ldr r2, _0800A89C @ =gUnknown_3003E6C + str r0, [r2] + ldr r0, _0800A8A0 @ =gUnknown_3003EB0 + str r1, [r0] + bx lr + .align 2, 0 +_0800A89C: .4byte gUnknown_3003E6C +_0800A8A0: .4byte gUnknown_3003EB0 + thumb_func_end sub_800A890 + + thumb_func_start sub_800A8A4 +sub_800A8A4: @ 800A8A4 + push {r4,lr} + movs r1, 0 + movs r2, 0 + ldr r0, _0800A8D0 @ =gUnknown_3003F40 + ldrb r0, [r0] + cmp r1, r0 + bge _0800A8C6 + movs r4, 0x1 + adds r3, r0, 0 +_0800A8B6: + adds r0, r4, 0 + lsls r0, r2 + orrs r1, r0 + lsls r0, r1, 24 + lsrs r1, r0, 24 + adds r2, 0x1 + cmp r2, r3 + blt _0800A8B6 +_0800A8C6: + adds r0, r1, 0 + pop {r4} + pop {r1} + bx r1 + .align 2, 0 +_0800A8D0: .4byte gUnknown_3003F40 + thumb_func_end sub_800A8A4 + + thumb_func_start sub_800A8D4 +sub_800A8D4: @ 800A8D4 + push {r4-r6,lr} + movs r4, 0 + movs r5, 0 + movs r6, 0x1 + b _0800A8EA +_0800A8DE: + adds r0, r6, 0 + lsls r0, r5 + orrs r4, r0 + lsls r0, r4, 24 + lsrs r4, r0, 24 + adds r5, 0x1 +_0800A8EA: + bl sub_800A088 + lsls r0, 24 + lsrs r0, 24 + cmp r5, r0 + blt _0800A8DE + adds r0, r4, 0 + pop {r4-r6} + pop {r1} + bx r1 + thumb_func_end sub_800A8D4 + + thumb_func_start sub_800A900 +sub_800A900: @ 800A900 + push {r4-r7,lr} + ldr r1, _0800A934 @ =gUnknown_3003F40 + strb r0, [r1] + bl sub_800A404 + ldr r1, _0800A938 @ =gUnknown_3003F60 + strb r0, [r1] + ldr r4, _0800A93C @ =gUnknown_202273C + ldr r3, _0800A940 @ =gUnknown_20227C8 + movs r2, 0x4 +_0800A914: + adds r0, r3, 0 + adds r1, r4, 0 + ldm r1!, {r5-r7} + stm r0!, {r5-r7} + ldm r1!, {r5-r7} + stm r0!, {r5-r7} + ldr r1, [r1] + str r1, [r0] + adds r4, 0x1C + adds r3, 0x1C + subs r2, 0x1 + cmp r2, 0 + bge _0800A914 + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_0800A934: .4byte gUnknown_3003F40 +_0800A938: .4byte gUnknown_3003F60 +_0800A93C: .4byte gUnknown_202273C +_0800A940: .4byte gUnknown_20227C8 + thumb_func_end sub_800A900 + + thumb_func_start sub_800A944 +sub_800A944: @ 800A944 + ldr r0, _0800A94C @ =gUnknown_3003F40 + ldrb r0, [r0] + bx lr + .align 2, 0 +_0800A94C: .4byte gUnknown_3003F40 + thumb_func_end sub_800A944 + + thumb_func_start sub_800A950 +sub_800A950: @ 800A950 + ldr r0, _0800A958 @ =gUnknown_3003F60 + ldrb r0, [r0] + bx lr + .align 2, 0 +_0800A958: .4byte gUnknown_3003F60 + thumb_func_end sub_800A950 + + thumb_func_start sub_800A95C +sub_800A95C: @ 800A95C + push {r4-r6,lr} + movs r5, 0 + ldr r0, _0800A990 @ =gUnknown_3003F40 + ldrb r2, [r0] + adds r6, r0, 0 + cmp r5, r2 + bge _0800A986 + ldr r1, _0800A994 @ =gUnknown_202273C + ldr r0, _0800A998 @ =gUnknown_20227C8 + adds r4, r0, 0x4 + adds r3, r1, 0x4 +_0800A972: + ldr r1, [r3] + ldr r0, [r4] + cmp r1, r0 + bne _0800A97C + adds r5, 0x1 +_0800A97C: + adds r4, 0x1C + adds r3, 0x1C + subs r2, 0x1 + cmp r2, 0 + bne _0800A972 +_0800A986: + ldrb r6, [r6] + cmp r5, r6 + beq _0800A99C + movs r0, 0 + b _0800A99E + .align 2, 0 +_0800A990: .4byte gUnknown_3003F40 +_0800A994: .4byte gUnknown_202273C +_0800A998: .4byte gUnknown_20227C8 +_0800A99C: + movs r0, 0x1 +_0800A99E: + pop {r4-r6} + pop {r1} + bx r1 + thumb_func_end sub_800A95C + + thumb_func_start sub_800A9A4 +sub_800A9A4: @ 800A9A4 + push {r4-r7,lr} + mov r7, r8 + push {r7} + movs r4, 0 + ldr r0, _0800AA10 @ =gUnknown_3003F40 + ldrb r0, [r0] + cmp r4, r0 + bcs _0800AA04 + ldr r6, _0800AA14 @ =gUnknown_20227C8 + ldr r5, _0800AA18 @ =gUnknown_202273C + movs r0, 0x8 + adds r0, r6 + mov r8, r0 + adds r7, r5, 0 + adds r7, 0x8 +_0800A9C2: + lsls r0, r4, 3 + subs r0, r4 + lsls r2, r0, 2 + adds r1, r6, 0x4 + adds r1, r2, r1 + adds r0, r5, 0x4 + adds r0, r2, r0 + ldr r1, [r1] + ldr r0, [r0] + cmp r1, r0 + bne _0800A9E6 + mov r1, r8 + adds r0, r2, r1 + adds r1, r2, r7 + bl sub_8008E28 + cmp r0, 0 + beq _0800A9F6 +_0800A9E6: + ldr r1, _0800AA1C @ =gUnknown_3003EAC + movs r0, 0x1 + strb r0, [r1] + bl sub_80098B8 + ldr r0, _0800AA20 @ =sub_800ACD4 + bl sub_8000544 +_0800A9F6: + adds r0, r4, 0x1 + lsls r0, 24 + lsrs r4, r0, 24 + ldr r0, _0800AA10 @ =gUnknown_3003F40 + ldrb r0, [r0] + cmp r4, r0 + bcc _0800A9C2 +_0800AA04: + pop {r3} + mov r8, r3 + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_0800AA10: .4byte gUnknown_3003F40 +_0800AA14: .4byte gUnknown_20227C8 +_0800AA18: .4byte gUnknown_202273C +_0800AA1C: .4byte gUnknown_3003EAC +_0800AA20: .4byte sub_800ACD4 + thumb_func_end sub_800A9A4 + + thumb_func_start sub_800AA24 +sub_800AA24: @ 800AA24 + ldr r0, _0800AA30 @ =gUnknown_3003F40 + movs r1, 0 + strb r1, [r0] + ldr r0, _0800AA34 @ =gUnknown_3003F60 + strb r1, [r0] + bx lr + .align 2, 0 +_0800AA30: .4byte gUnknown_3003F40 +_0800AA34: .4byte gUnknown_3003F60 + thumb_func_end sub_800AA24 + + thumb_func_start sub_800AA38 +sub_800AA38: @ 800AA38 + ldr r0, _0800AA44 @ =gUnknown_3003F20 + ldr r0, [r0] + movs r1, 0x1C + ands r0, r1 + lsrs r0, 2 + bx lr + .align 2, 0 +_0800AA44: .4byte gUnknown_3003F20 + thumb_func_end sub_800AA38 + + thumb_func_start sub_800AA48 +sub_800AA48: @ 800AA48 + push {lr} + ldr r0, _0800AA60 @ =gUnknown_3003F3C + ldrb r0, [r0] + cmp r0, 0 + bne _0800AA68 + ldr r0, _0800AA64 @ =gUnknown_3003F20 + ldr r0, [r0] + lsrs r0, 5 + movs r1, 0x1 + ands r0, r1 + b _0800AA70 + .align 2, 0 +_0800AA60: .4byte gUnknown_3003F3C +_0800AA64: .4byte gUnknown_3003F20 +_0800AA68: + bl sub_80FBA2C + lsls r0, 24 + lsrs r0, 24 +_0800AA70: + pop {r1} + bx r1 + thumb_func_end sub_800AA48 + + thumb_func_start sub_800AA74 +sub_800AA74: @ 800AA74 + ldr r0, _0800AA7C @ =gUnknown_3000E50 + ldrb r0, [r0] + bx lr + .align 2, 0 +_0800AA7C: .4byte gUnknown_3000E50 + thumb_func_end sub_800AA74 + + thumb_func_start sub_800AA80 +sub_800AA80: @ 800AA80 + push {lr} + lsls r0, 16 + lsrs r3, r0, 16 + ldr r0, _0800AA94 @ =gUnknown_3003F3C + ldrb r0, [r0] + cmp r0, 0x1 + bne _0800AA98 + bl sub_80FA28C + b _0800AAAC + .align 2, 0 +_0800AA94: .4byte gUnknown_3003F3C +_0800AA98: + ldr r2, _0800AAB0 @ =gUnknown_3003F80 + ldr r1, [r2] + cmp r1, 0 + bne _0800AAAC + ldr r0, _0800AAB4 @ =sub_800AB0C + str r0, [r2] + ldr r0, _0800AAB8 @ =gUnknown_3003F24 + strb r1, [r0] + ldr r0, _0800AABC @ =gUnknown_3003F34 + strh r3, [r0] +_0800AAAC: + pop {r0} + bx r0 + .align 2, 0 +_0800AAB0: .4byte gUnknown_3003F80 +_0800AAB4: .4byte sub_800AB0C +_0800AAB8: .4byte gUnknown_3003F24 +_0800AABC: .4byte gUnknown_3003F34 + thumb_func_end sub_800AA80 + + thumb_func_start sub_800AAC0 +sub_800AAC0: @ 800AAC0 + push {lr} + ldr r0, _0800AAD0 @ =gUnknown_3003F3C + ldrb r0, [r0] + cmp r0, 0x1 + bne _0800AAD4 + bl sub_80FA28C + b _0800AAFC + .align 2, 0 +_0800AAD0: .4byte gUnknown_3003F3C +_0800AAD4: + ldr r2, _0800AAE8 @ =gUnknown_3003F80 + ldr r1, [r2] + cmp r1, 0 + beq _0800AAF0 + ldr r1, _0800AAEC @ =gUnknown_202285C + ldrh r0, [r1] + adds r0, 0x1 + strh r0, [r1] + b _0800AAFC + .align 2, 0 +_0800AAE8: .4byte gUnknown_3003F80 +_0800AAEC: .4byte gUnknown_202285C +_0800AAF0: + ldr r0, _0800AB00 @ =sub_800AB0C + str r0, [r2] + ldr r0, _0800AB04 @ =gUnknown_3003F24 + strb r1, [r0] + ldr r0, _0800AB08 @ =gUnknown_3003F34 + strh r1, [r0] +_0800AAFC: + pop {r0} + bx r0 + .align 2, 0 +_0800AB00: .4byte sub_800AB0C +_0800AB04: .4byte gUnknown_3003F24 +_0800AB08: .4byte gUnknown_3003F34 + thumb_func_end sub_800AAC0 + + thumb_func_start sub_800AB0C +sub_800AB0C: @ 800AB0C + push {lr} + ldr r0, _0800AB28 @ =gUnknown_3004F70 + ldrb r0, [r0] + cmp r0, 0 + bne _0800AB22 + ldr r0, _0800AB2C @ =0x00005fff + bl sub_8009E60 + ldr r1, _0800AB30 @ =gUnknown_3003F80 + ldr r0, _0800AB34 @ =sub_800AB38 + str r0, [r1] +_0800AB22: + pop {r0} + bx r0 + .align 2, 0 +_0800AB28: .4byte gUnknown_3004F70 +_0800AB2C: .4byte 0x00005fff +_0800AB30: .4byte gUnknown_3003F80 +_0800AB34: .4byte sub_800AB38 + thumb_func_end sub_800AB0C + + thumb_func_start sub_800AB38 +sub_800AB38: @ 800AB38 + push {r4,lr} + bl sub_800A088 + lsls r0, 24 + lsrs r2, r0, 24 + movs r3, 0 + movs r1, 0 + cmp r3, r2 + bge _0800AB5C + ldr r4, _0800AB84 @ =gUnknown_3003F30 +_0800AB4C: + adds r0, r1, r4 + ldrb r0, [r0] + cmp r0, 0 + beq _0800AB56 + adds r3, 0x1 +_0800AB56: + adds r1, 0x1 + cmp r1, r2 + blt _0800AB4C +_0800AB5C: + cmp r3, r2 + bne _0800AB7E + ldr r2, _0800AB88 @ =gUnknown_2022B4C + ldr r0, [r2] + ldr r1, _0800AB8C @ =0x0000ffdf + ands r0, r1 + str r0, [r2] + ldr r0, _0800AB90 @ =gUnknown_300357C + movs r4, 0x1 + strb r4, [r0] + bl sub_80098B8 + ldr r1, _0800AB94 @ =gUnknown_3003F80 + movs r0, 0 + str r0, [r1] + ldr r0, _0800AB98 @ =gUnknown_3003F24 + strb r4, [r0] +_0800AB7E: + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_0800AB84: .4byte gUnknown_3003F30 +_0800AB88: .4byte gUnknown_2022B4C +_0800AB8C: .4byte 0x0000ffdf +_0800AB90: .4byte gUnknown_300357C +_0800AB94: .4byte gUnknown_3003F80 +_0800AB98: .4byte gUnknown_3003F24 + thumb_func_end sub_800AB38 + + thumb_func_start sub_800AB9C +sub_800AB9C: @ 800AB9C + push {lr} + ldr r0, _0800ABAC @ =gUnknown_3003F3C + ldrb r0, [r0] + cmp r0, 0x1 + bne _0800ABB0 + bl sub_80FA42C + b _0800ABC2 + .align 2, 0 +_0800ABAC: .4byte gUnknown_3003F3C +_0800ABB0: + ldr r1, _0800ABC8 @ =gUnknown_3003F80 + ldr r0, [r1] + cmp r0, 0 + bne _0800ABBC + ldr r0, _0800ABCC @ =sub_800ABD4 + str r0, [r1] +_0800ABBC: + ldr r1, _0800ABD0 @ =gUnknown_3003F24 + movs r0, 0 + strb r0, [r1] +_0800ABC2: + pop {r0} + bx r0 + .align 2, 0 +_0800ABC8: .4byte gUnknown_3003F80 +_0800ABCC: .4byte sub_800ABD4 +_0800ABD0: .4byte gUnknown_3003F24 + thumb_func_end sub_800AB9C + + thumb_func_start sub_800ABD4 +sub_800ABD4: @ 800ABD4 + push {lr} + ldr r0, _0800ABF0 @ =gUnknown_3004F70 + ldrb r0, [r0] + cmp r0, 0 + bne _0800ABEA + ldr r0, _0800ABF4 @ =0x00002ffe + bl sub_8009E60 + ldr r1, _0800ABF8 @ =gUnknown_3003F80 + ldr r0, _0800ABFC @ =sub_800AC00 + str r0, [r1] +_0800ABEA: + pop {r0} + bx r0 + .align 2, 0 +_0800ABF0: .4byte gUnknown_3004F70 +_0800ABF4: .4byte 0x00002ffe +_0800ABF8: .4byte gUnknown_3003F80 +_0800ABFC: .4byte sub_800AC00 + thumb_func_end sub_800ABD4 + + thumb_func_start sub_800AC00 +sub_800AC00: @ 800AC00 + push {r4,lr} + bl sub_800A088 + lsls r0, 24 + lsrs r2, r0, 24 + movs r1, 0 + cmp r1, r2 + bcs _0800AC2A + ldr r3, _0800AC50 @ =gUnknown_3003F2C + ldrb r0, [r3] + cmp r0, 0 + beq _0800AC2A +_0800AC18: + adds r0, r1, 0x1 + lsls r0, 24 + lsrs r1, r0, 24 + cmp r1, r2 + bcs _0800AC2A + adds r0, r1, r3 + ldrb r0, [r0] + cmp r0, 0 + bne _0800AC18 +_0800AC2A: + cmp r1, r2 + bne _0800AC48 + movs r1, 0 + ldr r4, _0800AC54 @ =gUnknown_3003F80 + ldr r3, _0800AC50 @ =gUnknown_3003F2C + movs r2, 0 +_0800AC36: + adds r0, r1, r3 + strb r2, [r0] + adds r0, r1, 0x1 + lsls r0, 24 + lsrs r1, r0, 24 + cmp r1, 0x3 + bls _0800AC36 + movs r0, 0 + str r0, [r4] +_0800AC48: + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_0800AC50: .4byte gUnknown_3003F2C +_0800AC54: .4byte gUnknown_3003F80 + thumb_func_end sub_800AC00 + + thumb_func_start sub_800AC58 +sub_800AC58: @ 800AC58 + push {lr} + ldr r0, _0800AC9C @ =gUnknown_2022718 + ldrb r0, [r0] + cmp r0, 0 + beq _0800AC98 + ldr r0, _0800ACA0 @ =gUnknown_3003F20 + ldr r2, [r0] + movs r0, 0xFE + lsls r0, 11 + ands r0, r2 + cmp r0, 0 + beq _0800AC98 + ldr r0, _0800ACA4 @ =gUnknown_3003F38 + ldrb r0, [r0] + cmp r0, 0 + bne _0800AC8E + ldr r1, _0800ACA8 @ =gUnknown_2022854 + str r2, [r1] + ldr r0, _0800ACAC @ =gUnknown_3004F70 + ldrb r0, [r0] + strb r0, [r1, 0x4] + ldr r0, _0800ACB0 @ =gUnknown_3003FA0 + ldrb r0, [r0] + strb r0, [r1, 0x5] + ldr r0, _0800ACB4 @ =sub_800ACD4 + bl sub_8000544 +_0800AC8E: + ldr r1, _0800ACB8 @ =gUnknown_3003EAC + movs r0, 0x1 + strb r0, [r1] + bl sub_80098B8 +_0800AC98: + pop {r0} + bx r0 + .align 2, 0 +_0800AC9C: .4byte gUnknown_2022718 +_0800ACA0: .4byte gUnknown_3003F20 +_0800ACA4: .4byte gUnknown_3003F38 +_0800ACA8: .4byte gUnknown_2022854 +_0800ACAC: .4byte gUnknown_3004F70 +_0800ACB0: .4byte gUnknown_3003FA0 +_0800ACB4: .4byte sub_800ACD4 +_0800ACB8: .4byte gUnknown_3003EAC + thumb_func_end sub_800AC58 + + thumb_func_start sub_800ACBC +sub_800ACBC: @ 800ACBC + push {r4,lr} + ldr r4, _0800ACD0 @ =gUnknown_2022854 + str r0, [r4] + strb r1, [r4, 0x5] + strb r2, [r4, 0x4] + strb r3, [r4, 0x6] + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_0800ACD0: .4byte gUnknown_2022854 + thumb_func_end sub_800ACBC + + thumb_func_start sub_800ACD4 +sub_800ACD4: @ 800ACD4 + push {r4,lr} + movs r0, 0 + movs r1, 0 + bl sub_8000A38 + ldr r0, _0800ADE0 @ =gMPlay_SE1 + bl m4aMPlayStop + ldr r0, _0800ADE4 @ =gMPlay_SE2 + bl m4aMPlayStop + ldr r0, _0800ADE8 @ =gMPlay_SE3 + bl m4aMPlayStop + ldr r0, _0800ADEC @ =gHeap + movs r1, 0xE0 + lsls r1, 9 + bl sub_8002B80 + bl sub_8006B10 + bl sub_80088F0 + bl sub_8070A84 + movs r0, 0 + movs r1, 0 + movs r2, 0x2 + bl sub_8070424 + bl sub_80773BC + bl sub_8087E64 + ldr r1, _0800ADF0 @ =gUnknown_3003F3C + ldrb r0, [r1] + cmp r0, 0 + beq _0800AD30 + ldr r0, _0800ADF4 @ =gUnknown_2022854 + ldrb r0, [r0, 0x6] + cmp r0, 0 + bne _0800AD2C + movs r0, 0x3 + strb r0, [r1] +_0800AD2C: + bl sub_80F85F8 +_0800AD30: + ldr r0, _0800ADF8 @ =sub_800978C + bl sub_80006F4 + movs r0, 0 + bl sub_8001618 + ldr r1, _0800ADFC @ =gUnknown_82345E8 + movs r0, 0 + movs r2, 0x2 + bl sub_8001658 + ldr r4, _0800AE00 @ =gUnknown_2022860 + movs r0, 0x80 + lsls r0, 4 + bl sub_8002B9C + adds r1, r0, 0 + str r1, [r4] + movs r0, 0x1 + bl sub_8001FA0 + ldr r0, _0800AE04 @ =gUnknown_82345F0 + bl sub_8003B24 + lsls r0, 16 + cmp r0, 0 + beq _0800ADD8 + bl sub_8002C28 + bl sub_80F6808 + movs r0, 0x52 + movs r1, 0 + bl sub_8000A38 + movs r0, 0x10 + movs r1, 0 + bl sub_8000A38 + movs r0, 0x12 + movs r1, 0 + bl sub_8000A38 + movs r0, 0x14 + movs r1, 0 + bl sub_8000A38 + movs r0, 0x16 + movs r1, 0 + bl sub_8000A38 + movs r1, 0xE0 + lsls r1, 8 + movs r0, 0 + bl sub_8000B14 + ldr r0, _0800AE08 @ =gUnknown_841F408 + movs r1, 0xF0 + movs r2, 0x20 + bl sub_80703EC + ldr r1, _0800AE0C @ =gUnknown_3003530 + movs r0, 0 + strb r0, [r1] + ldr r0, _0800AE10 @ =sub_80094D4 + movs r1, 0 + bl sub_807741C + bl sub_8071A94 + ldr r1, _0800AE14 @ =gUnknown_30030F0 + movs r0, 0 + str r0, [r1] + bl sub_8077578 + bl sub_8006B5C + bl sub_8006BA8 + bl sub_80704D0 + ldr r0, _0800AE18 @ =sub_800AF2C + bl sub_8000544 +_0800ADD8: + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_0800ADE0: .4byte gMPlay_SE1 +_0800ADE4: .4byte gMPlay_SE2 +_0800ADE8: .4byte gMPlay_SE3 +_0800ADEC: .4byte gHeap +_0800ADF0: .4byte gUnknown_3003F3C +_0800ADF4: .4byte gUnknown_2022854 +_0800ADF8: .4byte sub_800978C +_0800ADFC: .4byte gUnknown_82345E8 +_0800AE00: .4byte gUnknown_2022860 +_0800AE04: .4byte gUnknown_82345F0 +_0800AE08: .4byte gUnknown_841F408 +_0800AE0C: .4byte gUnknown_3003530 +_0800AE10: .4byte sub_80094D4 +_0800AE14: .4byte gUnknown_30030F0 +_0800AE18: .4byte sub_800AF2C + thumb_func_end sub_800ACD4 + + thumb_func_start sub_800AE1C +sub_800AE1C: @ 800AE1C + push {r4,r5,lr} + sub sp, 0xC + ldr r1, _0800AEB8 @ =gUnknown_8231EE4 + movs r5, 0 + str r5, [sp] + movs r0, 0x1 + movs r2, 0 + movs r3, 0 + bl sub_80F696C + ldr r1, _0800AEBC @ =gUnknown_823238C + movs r0, 0x1 + movs r2, 0 + movs r3, 0 + bl sub_8002040 + movs r0, 0x1 + bl sub_80020BC + ldr r0, _0800AEC0 @ =gUnknown_8231EC4 + movs r1, 0 + movs r2, 0x20 + bl sub_80703EC + movs r0, 0 + movs r1, 0 + bl sub_800445C + movs r0, 0x2 + movs r1, 0 + bl sub_800445C + ldr r4, _0800AEC4 @ =gUnknown_8234610 + str r4, [sp] + str r5, [sp, 0x4] + ldr r0, _0800AEC8 @ =gUnknown_841DEF0 + str r0, [sp, 0x8] + movs r0, 0 + movs r1, 0x3 + movs r2, 0x2 + movs r3, 0x5 + bl sub_812E51C + str r4, [sp] + str r5, [sp, 0x4] + ldr r0, _0800AECC @ =gUnknown_841DF05 + str r0, [sp, 0x8] + movs r0, 0x2 + movs r1, 0x3 + movs r2, 0x2 + movs r3, 0x2 + bl sub_812E51C + movs r0, 0 + bl sub_8003FA0 + movs r0, 0x2 + bl sub_8003FA0 + movs r0, 0 + movs r1, 0 + bl sub_8003F20 + movs r0, 0x2 + movs r1, 0x3 + bl sub_8003F20 + movs r0, 0 + bl sub_80019BC + movs r0, 0x1 + bl sub_80019BC + add sp, 0xC + pop {r4,r5} + pop {r0} + bx r0 + .align 2, 0 +_0800AEB8: .4byte gUnknown_8231EE4 +_0800AEBC: .4byte gUnknown_823238C +_0800AEC0: .4byte gUnknown_8231EC4 +_0800AEC4: .4byte gUnknown_8234610 +_0800AEC8: .4byte gUnknown_841DEF0 +_0800AECC: .4byte gUnknown_841DF05 + thumb_func_end sub_800AE1C + + thumb_func_start sub_800AED0 +sub_800AED0: @ 800AED0 + push {lr} + sub sp, 0xC + movs r0, 0x1 + movs r1, 0 + bl sub_800445C + movs r0, 0x2 + movs r1, 0 + bl sub_800445C + ldr r0, _0800AF24 @ =gUnknown_8234610 + str r0, [sp] + movs r0, 0 + str r0, [sp, 0x4] + ldr r0, _0800AF28 @ =gUnknown_841DE9D + str r0, [sp, 0x8] + movs r0, 0x1 + movs r1, 0x3 + movs r2, 0x2 + movs r3, 0 + bl sub_812E51C + movs r0, 0x1 + bl sub_8003FA0 + movs r0, 0x2 + bl sub_8003FA0 + movs r0, 0x1 + movs r1, 0 + bl sub_8003F20 + movs r0, 0x2 + movs r1, 0x3 + bl sub_8003F20 + movs r0, 0 + bl sub_80019BC + add sp, 0xC + pop {r0} + bx r0 + .align 2, 0 +_0800AF24: .4byte gUnknown_8234610 +_0800AF28: .4byte gUnknown_841DE9D + thumb_func_end sub_800AED0 + + thumb_func_start sub_800AF2C +sub_800AF2C: @ 800AF2C + push {r4,lr} + sub sp, 0xC + ldr r0, _0800AF4C @ =gUnknown_30030F0 + movs r1, 0x87 + lsls r1, 3 + adds r0, r1 + ldrb r0, [r0] + cmp r0, 0x3C + beq _0800AF72 + cmp r0, 0x3C + bgt _0800AF50 + cmp r0, 0 + beq _0800AF5A + cmp r0, 0x1E + beq _0800AF72 + b _0800AFC4 + .align 2, 0 +_0800AF4C: .4byte gUnknown_30030F0 +_0800AF50: + cmp r0, 0x5A + beq _0800AF72 + cmp r0, 0x82 + beq _0800AF7A + b _0800AFC4 +_0800AF5A: + ldr r0, _0800AF68 @ =gUnknown_2022854 + ldrb r0, [r0, 0x6] + cmp r0, 0 + beq _0800AF6C + bl sub_800AE1C + b _0800AFC4 + .align 2, 0 +_0800AF68: .4byte gUnknown_2022854 +_0800AF6C: + bl sub_800AED0 + b _0800AFC4 +_0800AF72: + movs r0, 0x16 + bl sub_80722CC + b _0800AFC4 +_0800AF7A: + ldr r0, _0800AF9C @ =gUnknown_3003F3C + ldrb r0, [r0] + cmp r0, 0x2 + bne _0800AFA8 + ldr r0, _0800AFA0 @ =gUnknown_8234610 + str r0, [sp] + movs r0, 0 + str r0, [sp, 0x4] + ldr r0, _0800AFA4 @ =gUnknown_841DF6B + str r0, [sp, 0x8] + movs r0, 0 + movs r1, 0x3 + movs r2, 0x2 + movs r3, 0x14 + bl sub_812E51C + b _0800AFC4 + .align 2, 0 +_0800AF9C: .4byte gUnknown_3003F3C +_0800AFA0: .4byte gUnknown_8234610 +_0800AFA4: .4byte gUnknown_841DF6B +_0800AFA8: + cmp r0, 0x1 + bne _0800AFC4 + ldr r0, _0800AFFC @ =gUnknown_8234610 + str r0, [sp] + movs r0, 0 + str r0, [sp, 0x4] + ldr r0, _0800B000 @ =gUnknown_841DF4C + str r0, [sp, 0x8] + movs r0, 0 + movs r1, 0x3 + movs r2, 0x2 + movs r3, 0x14 + bl sub_812E51C +_0800AFC4: + ldr r0, _0800B004 @ =gUnknown_30030F0 + movs r2, 0x87 + lsls r2, 3 + adds r1, r0, r2 + ldrb r1, [r1] + cmp r1, 0xA0 + bne _0800B03C + ldr r4, _0800B008 @ =gUnknown_3003F3C + ldrb r2, [r4] + cmp r2, 0x1 + bne _0800B010 + ldrh r0, [r0, 0x2E] + ands r2, r0 + cmp r2, 0 + beq _0800B02E + bl sub_812B484 + movs r0, 0x15 + bl sub_80722CC + movs r0, 0 + strb r0, [r4] + ldr r1, _0800B00C @ =gUnknown_2022854 + movs r0, 0 + strb r0, [r1, 0x6] + bl sub_8079B7C + b _0800B02E + .align 2, 0 +_0800AFFC: .4byte gUnknown_8234610 +_0800B000: .4byte gUnknown_841DF4C +_0800B004: .4byte gUnknown_30030F0 +_0800B008: .4byte gUnknown_3003F3C +_0800B00C: .4byte gUnknown_2022854 +_0800B010: + cmp r2, 0x2 + bne _0800B02E + ldrh r1, [r0, 0x2E] + movs r0, 0x1 + ands r0, r1 + cmp r0, 0 + beq _0800B02E + bl sub_812B484 + bl rfu_REQ_stopMode + bl rfu_waitREQComplete + bl sub_80008D8 +_0800B02E: + ldr r0, _0800B050 @ =gUnknown_30030F0 + movs r2, 0x87 + lsls r2, 3 + adds r1, r0, r2 + ldrb r1, [r1] + cmp r1, 0xA0 + beq _0800B048 +_0800B03C: + movs r2, 0x87 + lsls r2, 3 + adds r1, r0, r2 + ldrb r0, [r1] + adds r0, 0x1 + strb r0, [r1] +_0800B048: + add sp, 0xC + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_0800B050: .4byte gUnknown_30030F0 + thumb_func_end sub_800AF2C + + thumb_func_start sub_800B054 +sub_800B054: @ 800B054 + ldr r0, _0800B060 @ =0x04000128 + ldrh r0, [r0] + lsrs r0, 2 + movs r1, 0x1 + ands r0, r1 + bx lr + .align 2, 0 +_0800B060: .4byte 0x04000128 + thumb_func_end sub_800B054 + + thumb_func_start sub_800B064 +sub_800B064: @ 800B064 + push {lr} + movs r3, 0 + ldr r2, _0800B088 @ =0x04000128 + ldrh r1, [r2] + movs r0, 0x8 + ands r0, r1 + cmp r0, 0 + beq _0800B080 + ldrh r1, [r2] + movs r0, 0x4 + ands r0, r1 + cmp r0, 0 + bne _0800B080 + movs r3, 0x1 +_0800B080: + adds r0, r3, 0 + pop {r1} + bx r1 + .align 2, 0 +_0800B088: .4byte 0x04000128 + thumb_func_end sub_800B064 + + thumb_func_start sub_800B08C +sub_800B08C: @ 800B08C + ldr r0, _0800B098 @ =gUnknown_3003F20 + ldr r0, [r0] + lsrs r0, 6 + movs r1, 0x1 + ands r0, r1 + bx lr + .align 2, 0 +_0800B098: .4byte gUnknown_3003F20 + thumb_func_end sub_800B08C + + thumb_func_start sub_800B09C +sub_800B09C: @ 800B09C + ldr r1, _0800B0A4 @ =gUnknown_3003F38 + strb r0, [r1] + bx lr + .align 2, 0 +_0800B0A4: .4byte gUnknown_3003F38 + thumb_func_end sub_800B09C + + thumb_func_start sub_800B0A8 +sub_800B0A8: @ 800B0A8 + ldr r0, _0800B0B0 @ =gUnknown_3003EAC + ldrb r0, [r0] + bx lr + .align 2, 0 +_0800B0B0: .4byte gUnknown_3003EAC + thumb_func_end sub_800B0A8 + + thumb_func_start sub_800B0B4 +sub_800B0B4: @ 800B0B4 + push {r4-r6,lr} + bl sub_8009708 + ldr r1, _0800B100 @ =gUnknown_3003E70 + adds r2, r1, 0 + adds r2, 0x10 + ldr r0, _0800B104 @ =gUnknown_2022720 + ldm r0!, {r3-r5} + stm r2!, {r3-r5} + ldm r0!, {r3,r4,r6} + stm r2!, {r3,r4,r6} + ldr r0, [r0] + str r0, [r2] + ldr r3, _0800B108 @ =gUnknown_82345C0 + adds r2, r1, 0 + adds r0, r3, 0 + ldm r0!, {r4-r6} + stm r2!, {r4-r6} + ldrh r4, [r0] + strh r4, [r2] + ldrb r0, [r0, 0x2] + strb r0, [r2, 0x2] + adds r0, r1, 0 + adds r0, 0x2C + ldm r3!, {r2,r5,r6} + stm r0!, {r2,r5,r6} + ldrh r2, [r3] + strh r2, [r0] + ldrb r2, [r3, 0x2] + strb r2, [r0, 0x2] + ldr r0, _0800B10C @ =gUnknown_2022618 + movs r2, 0x3C + bl memcpy + pop {r4-r6} + pop {r0} + bx r0 + .align 2, 0 +_0800B100: .4byte gUnknown_3003E70 +_0800B104: .4byte gUnknown_2022720 +_0800B108: .4byte gUnknown_82345C0 +_0800B10C: .4byte gUnknown_2022618 + thumb_func_end sub_800B0B4 + + thumb_func_start sub_800B110 +sub_800B110: @ 800B110 + push {r4-r6,lr} + lsls r0, 24 + lsrs r0, 24 + lsls r2, r0, 8 + ldr r1, _0800B168 @ =gUnknown_2022118 + adds r4, r2, r1 + lsls r2, r0, 3 + subs r2, r0 + lsls r2, 2 + ldr r0, _0800B16C @ =gUnknown_202273C + adds r2, r0 + adds r1, r2, 0 + adds r0, r4, 0 + adds r0, 0x10 + ldm r0!, {r3,r5,r6} + stm r1!, {r3,r5,r6} + ldm r0!, {r3,r5,r6} + stm r1!, {r3,r5,r6} + ldr r0, [r0] + str r0, [r1] + adds r0, r2, 0 + bl sub_800B284 + ldr r5, _0800B170 @ =gUnknown_82345C0 + adds r0, r4, 0 + adds r1, r5, 0 + bl strcmp + cmp r0, 0 + bne _0800B15A + adds r0, r4, 0 + adds r0, 0x2C + adds r1, r5, 0 + bl strcmp + cmp r0, 0 + beq _0800B160 +_0800B15A: + ldr r0, _0800B174 @ =sub_800ACD4 + bl sub_8000544 +_0800B160: + pop {r4-r6} + pop {r0} + bx r0 + .align 2, 0 +_0800B168: .4byte gUnknown_2022118 +_0800B16C: .4byte gUnknown_202273C +_0800B170: .4byte gUnknown_82345C0 +_0800B174: .4byte sub_800ACD4 + thumb_func_end sub_800B110 + + thumb_func_start sub_800B178 +sub_800B178: @ 800B178 + push {r4,r5,lr} + ldr r0, _0800B1B0 @ =gUnknown_3003F3C + ldrb r0, [r0] + cmp r0, 0 + bne _0800B1C8 + ldr r0, _0800B1B4 @ =gUnknown_3003F84 + ldr r1, _0800B1B8 @ =gUnknown_3003F50 + ldr r2, _0800B1BC @ =gUnknown_3003ED0 + bl sub_800B398 + ldr r4, _0800B1C0 @ =gUnknown_3003F20 + str r0, [r4] + ldr r0, _0800B1C4 @ =gUnknown_300311C + bl sub_8009AB0 + ldr r0, [r4] + movs r1, 0x80 + lsls r1, 1 + ands r0, r1 + cmp r0, 0 + beq _0800B1EC + bl sub_8058318 + cmp r0, 0x1 + bne _0800B1EC +_0800B1AA: + movs r0, 0x1 + b _0800B1EE + .align 2, 0 +_0800B1B0: .4byte gUnknown_3003F3C +_0800B1B4: .4byte gUnknown_3003F84 +_0800B1B8: .4byte gUnknown_3003F50 +_0800B1BC: .4byte gUnknown_3003ED0 +_0800B1C0: .4byte gUnknown_3003F20 +_0800B1C4: .4byte gUnknown_300311C +_0800B1C8: + bl sub_80FAE94 + adds r4, r0, 0 + bl sub_80FAEF0 + adds r5, r0, 0 + bl sub_8058318 + cmp r0, 0x1 + bne _0800B1EC + cmp r4, 0x1 + beq _0800B1AA + bl sub_80F90DC + cmp r0, 0 + bne _0800B1AA + cmp r5, 0 + bne _0800B1AA +_0800B1EC: + movs r0, 0 +_0800B1EE: + pop {r4,r5} + pop {r1} + bx r1 + thumb_func_end sub_800B178 + + thumb_func_start sub_800B1F4 +sub_800B1F4: @ 800B1F4 + push {lr} + ldr r0, _0800B208 @ =gUnknown_3003F64 + ldrb r0, [r0] + cmp r0, 0 + bne _0800B204 + ldr r1, _0800B20C @ =gUnknown_3003F3C + movs r0, 0x1 + strb r0, [r1] +_0800B204: + pop {r0} + bx r0 + .align 2, 0 +_0800B208: .4byte gUnknown_3003F64 +_0800B20C: .4byte gUnknown_3003F3C + thumb_func_end sub_800B1F4 + + thumb_func_start sub_800B210 +sub_800B210: @ 800B210 + push {lr} + ldr r0, _0800B224 @ =gUnknown_3003F64 + ldrb r1, [r0] + cmp r1, 0 + bne _0800B21E + ldr r0, _0800B228 @ =gUnknown_3003F3C + strb r1, [r0] +_0800B21E: + pop {r0} + bx r0 + .align 2, 0 +_0800B224: .4byte gUnknown_3003F64 +_0800B228: .4byte gUnknown_3003F3C + thumb_func_end sub_800B210 + + thumb_func_start sub_800B22C +sub_800B22C: @ 800B22C + push {lr} + ldr r0, _0800B240 @ =gUnknown_3003F64 + ldrb r1, [r0] + cmp r1, 0 + bne _0800B23A + ldr r0, _0800B244 @ =gUnknown_3003F3C + strb r1, [r0] +_0800B23A: + pop {r0} + bx r0 + .align 2, 0 +_0800B240: .4byte gUnknown_3003F64 +_0800B244: .4byte gUnknown_3003F3C + thumb_func_end sub_800B22C + + thumb_func_start sub_800B248 +sub_800B248: @ 800B248 + push {lr} + ldr r0, _0800B25C @ =gUnknown_3003F3C + ldrb r0, [r0] + cmp r0, 0 + bne _0800B268 + ldr r0, _0800B260 @ =gUnknown_3003FB0 + ldr r1, _0800B264 @ =0x00000fbd + adds r0, r1 + ldrb r0, [r0] + b _0800B26C + .align 2, 0 +_0800B25C: .4byte gUnknown_3003F3C +_0800B260: .4byte gUnknown_3003FB0 +_0800B264: .4byte 0x00000fbd +_0800B268: + bl sub_80FC460 +_0800B26C: + pop {r1} + bx r1 + thumb_func_end sub_800B248 + + thumb_func_start sub_800B270 +sub_800B270: @ 800B270 + push {lr} + bl sub_800B248 + cmp r0, 0x2 + bhi _0800B27E + movs r0, 0 + b _0800B280 +_0800B27E: + movs r0, 0x1 +_0800B280: + pop {r1} + bx r1 + thumb_func_end sub_800B270 + + thumb_func_start sub_800B284 +sub_800B284: @ 800B284 + push {lr} + ldrb r1, [r0, 0x10] + strb r1, [r0, 0x12] + adds r2, r0, 0 + adds r2, 0x8 + ldrb r1, [r0, 0x1A] + adds r0, r2, 0 + bl sub_80093BC + pop {r0} + bx r0 + thumb_func_end sub_800B284 + + thumb_func_start sub_800B29C +sub_800B29C: @ 800B29C + push {lr} + sub sp, 0x4 + movs r0, 0xC0 + bl sub_8000B94 + ldr r1, _0800B2DC @ =0x04000128 + movs r2, 0x80 + lsls r2, 6 + adds r0, r2, 0 + strh r0, [r1] + ldr r0, _0800B2E0 @ =0x0400010e + movs r2, 0 + strh r2, [r0] + adds r1, 0xDA + movs r0, 0xC0 + strh r0, [r1] + ldr r0, _0800B2E4 @ =0x0400012a + strh r2, [r0] + ldr r2, _0800B2E8 @ =0x04000120 + movs r0, 0 + movs r1, 0 + str r0, [r2] + str r1, [r2, 0x4] + str r0, [sp] + ldr r1, _0800B2EC @ =gUnknown_3003FB0 + ldr r2, _0800B2F0 @ =0x050003f0 + mov r0, sp + bl CpuSet + add sp, 0x4 + pop {r0} + bx r0 + .align 2, 0 +_0800B2DC: .4byte 0x04000128 +_0800B2E0: .4byte 0x0400010e +_0800B2E4: .4byte 0x0400012a +_0800B2E8: .4byte 0x04000120 +_0800B2EC: .4byte gUnknown_3003FB0 +_0800B2F0: .4byte 0x050003f0 + thumb_func_end sub_800B29C + + thumb_func_start sub_800B2F4 +sub_800B2F4: @ 800B2F4 + push {r4,r5,lr} + sub sp, 0x4 + movs r0, 0xC0 + bl sub_8000B94 + ldr r0, _0800B354 @ =0x04000134 + movs r4, 0 + strh r4, [r0] + ldr r2, _0800B358 @ =0x04000128 + movs r1, 0x80 + lsls r1, 6 + adds r0, r1, 0 + strh r0, [r2] + ldrh r0, [r2] + ldr r3, _0800B35C @ =0x00004003 + adds r1, r3, 0 + orrs r0, r1 + strh r0, [r2] + movs r0, 0x80 + bl sub_8000B68 + ldr r0, _0800B360 @ =0x0400012a + strh r4, [r0] + movs r5, 0 + str r5, [sp] + ldr r1, _0800B364 @ =gUnknown_3003FB0 + ldr r2, _0800B368 @ =0x050003f0 + mov r0, sp + bl CpuSet + ldr r0, _0800B36C @ =gUnknown_3000E64 + strb r4, [r0] + ldr r0, _0800B370 @ =gUnknown_3000E66 + strh r5, [r0] + ldr r0, _0800B374 @ =gUnknown_3000E68 + strh r5, [r0] + ldr r0, _0800B378 @ =gUnknown_3000E6A + strb r4, [r0] + ldr r0, _0800B37C @ =gUnknown_3000E6B + strb r4, [r0] + ldr r0, _0800B380 @ =gUnknown_3003FA0 + strb r4, [r0] + ldr r0, _0800B384 @ =gUnknown_3004F70 + strb r4, [r0] + add sp, 0x4 + pop {r4,r5} + pop {r0} + bx r0 + .align 2, 0 +_0800B354: .4byte 0x04000134 +_0800B358: .4byte 0x04000128 +_0800B35C: .4byte 0x00004003 +_0800B360: .4byte 0x0400012a +_0800B364: .4byte gUnknown_3003FB0 +_0800B368: .4byte 0x050003f0 +_0800B36C: .4byte gUnknown_3000E64 +_0800B370: .4byte gUnknown_3000E66 +_0800B374: .4byte gUnknown_3000E68 +_0800B378: .4byte gUnknown_3000E6A +_0800B37C: .4byte gUnknown_3000E6B +_0800B380: .4byte gUnknown_3003FA0 +_0800B384: .4byte gUnknown_3004F70 + thumb_func_end sub_800B2F4 + + thumb_func_start sub_800B388 +sub_800B388: @ 800B388 + push {lr} + bl sub_800B2F4 + bl sub_800B29C + pop {r0} + bx r0 + thumb_func_end sub_800B388 + + thumb_func_start sub_800B398 +sub_800B398: @ 800B398 + push {r4-r7,lr} + adds r4, r0, 0 + adds r5, r1, 0 + adds r6, r2, 0 + ldr r0, _0800B3B4 @ =gUnknown_3003FB0 + ldrb r0, [r0, 0x1] + cmp r0, 0x4 + bhi _0800B44A + lsls r0, 2 + ldr r1, _0800B3B8 @ =_0800B3BC + adds r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_0800B3B4: .4byte gUnknown_3003FB0 +_0800B3B8: .4byte _0800B3BC + .align 2, 0 +_0800B3BC: + .4byte _0800B3D0 + .4byte _0800B3E0 + .4byte _0800B3F8 + .4byte _0800B434 + .4byte _0800B43E +_0800B3D0: + bl sub_800B29C + ldr r1, _0800B3DC @ =gUnknown_3003FB0 + movs r0, 0x1 + strb r0, [r1, 0x1] + b _0800B44A + .align 2, 0 +_0800B3DC: .4byte gUnknown_3003FB0 +_0800B3E0: + ldrb r0, [r4] + cmp r0, 0x1 + bne _0800B44A + bl sub_800B2F4 + ldr r1, _0800B3F4 @ =gUnknown_3003FB0 + movs r0, 0x2 + strb r0, [r1, 0x1] + b _0800B44A + .align 2, 0 +_0800B3F4: .4byte gUnknown_3003FB0 +_0800B3F8: + ldrb r1, [r4] + cmp r1, 0x1 + beq _0800B408 + cmp r1, 0x2 + beq _0800B420 + bl sub_800B4C4 + b _0800B44A +_0800B408: + ldr r2, _0800B41C @ =gUnknown_3003FB0 + ldrb r0, [r2] + cmp r0, 0x8 + bne _0800B44A + ldrb r0, [r2, 0x3] + cmp r0, 0x1 + bls _0800B44A + strb r1, [r2, 0xE] + b _0800B44A + .align 2, 0 +_0800B41C: .4byte gUnknown_3003FB0 +_0800B420: + ldr r0, _0800B42C @ =gUnknown_3003FB0 + movs r1, 0 + strb r1, [r0, 0x1] + ldr r0, _0800B430 @ =0x0400012a + strh r1, [r0] + b _0800B44A + .align 2, 0 +_0800B42C: .4byte gUnknown_3003FB0 +_0800B430: .4byte 0x0400012a +_0800B434: + bl sub_800B4F0 + ldr r1, _0800B484 @ =gUnknown_3003FB0 + movs r0, 0x4 + strb r0, [r1, 0x1] +_0800B43E: + adds r0, r5, 0 + bl sub_800B520 + adds r0, r6, 0 + bl sub_800B608 +_0800B44A: + movs r0, 0 + strb r0, [r4] + ldr r1, _0800B484 @ =gUnknown_3003FB0 + ldrb r2, [r1, 0x2] + ldrb r0, [r1, 0x3] + lsls r0, 2 + orrs r2, r0 + ldrb r0, [r1] + cmp r0, 0x8 + bne _0800B462 + movs r0, 0x20 + orrs r2, r0 +_0800B462: + ldrb r0, [r1, 0xC] + lsls r3, r0, 8 + ldrb r0, [r1, 0xF] + lsls r4, r0, 9 + ldrb r0, [r1, 0x10] + lsls r5, r0, 12 + ldrb r0, [r1, 0x11] + lsls r6, r0, 13 + ldrb r0, [r1, 0x12] + lsls r7, r0, 14 + ldrb r0, [r1, 0x1] + cmp r0, 0x4 + bne _0800B488 + movs r0, 0x40 + orrs r0, r3 + orrs r0, r2 + b _0800B48C + .align 2, 0 +_0800B484: .4byte gUnknown_3003FB0 +_0800B488: + adds r0, r2, 0 + orrs r0, r3 +_0800B48C: + orrs r0, r4 + orrs r0, r5 + orrs r0, r6 + orrs r0, r7 + adds r2, r0, 0 + ldrb r3, [r1, 0x13] + cmp r3, 0x1 + bne _0800B4A2 + movs r0, 0x80 + lsls r0, 9 + orrs r2, r0 +_0800B4A2: + ldrb r0, [r1, 0x2] + cmp r0, 0x3 + bls _0800B4AE + movs r0, 0x80 + lsls r0, 10 + orrs r2, r0 +_0800B4AE: + adds r1, r2, 0 + cmp r3, 0x2 + bne _0800B4BA + movs r0, 0x80 + lsls r0, 11 + orrs r1, r0 +_0800B4BA: + adds r0, r1, 0 + pop {r4-r7} + pop {r1} + bx r1 + thumb_func_end sub_800B398 + + thumb_func_start sub_800B4C4 +sub_800B4C4: @ 800B4C4 + push {lr} + ldr r0, _0800B4E0 @ =0x04000128 + ldr r1, [r0] + movs r0, 0xC + ands r1, r0 + ldr r2, _0800B4E4 @ =gUnknown_3003FB0 + cmp r1, 0x8 + bne _0800B4E8 + ldrb r0, [r2, 0x2] + cmp r0, 0 + bne _0800B4E8 + strb r1, [r2] + b _0800B4EC + .align 2, 0 +_0800B4E0: .4byte 0x04000128 +_0800B4E4: .4byte gUnknown_3003FB0 +_0800B4E8: + movs r0, 0 + strb r0, [r2] +_0800B4EC: + pop {r0} + bx r0 + thumb_func_end sub_800B4C4 + + thumb_func_start sub_800B4F0 +sub_800B4F0: @ 800B4F0 + push {lr} + ldr r0, _0800B514 @ =gUnknown_3003FB0 + ldrb r0, [r0] + cmp r0, 0 + beq _0800B50E + ldr r1, _0800B518 @ =0x0400010c + ldr r2, _0800B51C @ =0x0000ff3b + adds r0, r2, 0 + strh r0, [r1] + adds r1, 0x2 + movs r0, 0x41 + strh r0, [r1] + movs r0, 0x40 + bl sub_8000B68 +_0800B50E: + pop {r0} + bx r0 + .align 2, 0 +_0800B514: .4byte gUnknown_3003FB0 +_0800B518: .4byte 0x0400010c +_0800B51C: .4byte 0x0000ff3b + thumb_func_end sub_800B4F0 + + thumb_func_start sub_800B520 +sub_800B520: @ 800B520 + push {r4-r7,lr} + mov r7, r10 + mov r6, r9 + mov r5, r8 + push {r5-r7} + adds r3, r0, 0 + ldr r2, _0800B598 @ =gUnknown_3004F74 + ldr r1, _0800B59C @ =0x04000208 + ldrh r0, [r1] + strh r0, [r2] + movs r0, 0 + strh r0, [r1] + ldr r1, _0800B5A0 @ =gUnknown_3003FB0 + ldr r4, _0800B5A4 @ =0x00000339 + adds r0, r1, r4 + ldrb r4, [r0] + adds r6, r1, 0 + cmp r4, 0x31 + bhi _0800B5B0 + movs r1, 0xCE + lsls r1, 2 + adds r0, r6, r1 + ldrb r0, [r0] + adds r0, r4, r0 + lsls r0, 24 + lsrs r0, 24 + cmp r0, 0x31 + bls _0800B55E + subs r0, 0x32 + lsls r0, 24 + lsrs r0, 24 +_0800B55E: + movs r2, 0 + ldr r4, _0800B5A8 @ =gUnknown_3000E66 + mov r9, r4 + ldr r1, _0800B5AC @ =gUnknown_3003FA0 + mov r10, r1 + lsls r5, r0, 1 + movs r0, 0x18 + adds r0, r6 + mov r8, r0 + mov r12, r2 + movs r7, 0x64 +_0800B574: + ldrh r0, [r4] + ldrh r1, [r3] + orrs r0, r1 + strh r0, [r4] + adds r0, r2, 0 + muls r0, r7 + adds r0, r5, r0 + add r0, r8 + strh r1, [r0] + mov r1, r12 + strh r1, [r3] + adds r3, 0x2 + adds r0, r2, 0x1 + lsls r0, 24 + lsrs r2, r0, 24 + cmp r2, 0x7 + bls _0800B574 + b _0800B5BC + .align 2, 0 +_0800B598: .4byte gUnknown_3004F74 +_0800B59C: .4byte 0x04000208 +_0800B5A0: .4byte gUnknown_3003FB0 +_0800B5A4: .4byte 0x00000339 +_0800B5A8: .4byte gUnknown_3000E66 +_0800B5AC: .4byte gUnknown_3003FA0 +_0800B5B0: + movs r0, 0x1 + strb r0, [r6, 0x12] + ldr r2, _0800B5F4 @ =gUnknown_3000E66 + mov r9, r2 + ldr r4, _0800B5F8 @ =gUnknown_3003FA0 + mov r10, r4 +_0800B5BC: + mov r1, r9 + ldrh r0, [r1] + cmp r0, 0 + beq _0800B5D4 + ldr r2, _0800B5FC @ =0x00000339 + adds r0, r6, r2 + ldrb r1, [r0] + adds r1, 0x1 + movs r2, 0 + strb r1, [r0] + mov r4, r9 + strh r2, [r4] +_0800B5D4: + ldr r1, _0800B600 @ =0x04000208 + ldr r2, _0800B604 @ =gUnknown_3004F74 + ldrh r0, [r2] + strh r0, [r1] + ldr r4, _0800B5FC @ =0x00000339 + adds r0, r6, r4 + ldrb r0, [r0] + mov r1, r10 + strb r0, [r1] + pop {r3-r5} + mov r8, r3 + mov r9, r4 + mov r10, r5 + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_0800B5F4: .4byte gUnknown_3000E66 +_0800B5F8: .4byte gUnknown_3003FA0 +_0800B5FC: .4byte 0x00000339 +_0800B600: .4byte 0x04000208 +_0800B604: .4byte gUnknown_3004F74 + thumb_func_end sub_800B520 + + thumb_func_start sub_800B608 +sub_800B608: @ 800B608 + push {r4-r7,lr} + mov r7, r10 + mov r6, r9 + mov r5, r8 + push {r5-r7} + mov r9, r0 + ldr r2, _0800B664 @ =gUnknown_3004F74 + ldr r1, _0800B668 @ =0x04000208 + ldrh r0, [r1] + strh r0, [r2] + movs r0, 0 + strh r0, [r1] + ldr r1, _0800B66C @ =gUnknown_3003FB0 + ldr r3, _0800B670 @ =0x00000fbd + adds r0, r1, r3 + ldrb r0, [r0] + mov r12, r1 + cmp r0, 0 + bne _0800B674 + movs r3, 0 + ldrb r0, [r1, 0x3] + cmp r3, r0 + bcs _0800B65A + movs r5, 0 + adds r6, r0, 0 +_0800B63A: + movs r2, 0 + lsls r1, r3, 4 + adds r4, r3, 0x1 + add r1, r9 +_0800B642: + lsls r0, r2, 1 + adds r0, r1 + strh r5, [r0] + adds r0, r2, 0x1 + lsls r0, 24 + lsrs r2, r0, 24 + cmp r2, 0x7 + bls _0800B642 + lsls r0, r4, 24 + lsrs r3, r0, 24 + cmp r3, r6 + bcc _0800B63A +_0800B65A: + movs r0, 0x1 + mov r7, r12 + strb r0, [r7, 0xC] + b _0800B6F0 + .align 2, 0 +_0800B664: .4byte gUnknown_3004F74 +_0800B668: .4byte 0x04000208 +_0800B66C: .4byte gUnknown_3003FB0 +_0800B670: .4byte 0x00000fbd +_0800B674: + movs r3, 0 + mov r0, r12 + ldrb r1, [r0, 0x3] + cmp r3, r1 + bcs _0800B6CA + ldr r0, _0800B708 @ =0x00000fbc + add r0, r12 + ldrb r0, [r0] + lsls r6, r0, 1 + movs r2, 0xCF + lsls r2, 2 + add r2, r12 + mov r8, r2 + mov r10, r1 +_0800B690: + movs r2, 0 + lsls r1, r3, 4 + adds r4, r3, 0x1 + lsls r0, r3, 1 + mov r7, r9 + adds r5, r1, r7 + adds r0, r3 + lsls r0, 3 + adds r0, r3 + lsls r3, r0, 5 +_0800B6A4: + lsls r1, r2, 1 + adds r1, r5 + movs r7, 0x64 + adds r0, r2, 0 + muls r0, r7 + adds r0, r6, r0 + adds r0, r3 + add r0, r8 + ldrh r0, [r0] + strh r0, [r1] + adds r0, r2, 0x1 + lsls r0, 24 + lsrs r2, r0, 24 + cmp r2, 0x7 + bls _0800B6A4 + lsls r0, r4, 24 + lsrs r3, r0, 24 + cmp r3, r10 + bcc _0800B690 +_0800B6CA: + mov r2, r12 + ldr r0, _0800B70C @ =0x00000fbd + adds r1, r2, r0 + ldrb r0, [r1] + subs r0, 0x1 + movs r3, 0 + strb r0, [r1] + ldr r1, _0800B708 @ =0x00000fbc + adds r2, r1 + ldrb r0, [r2] + adds r0, 0x1 + strb r0, [r2] + lsls r0, 24 + lsrs r0, 24 + cmp r0, 0x31 + bls _0800B6EC + strb r3, [r2] +_0800B6EC: + mov r2, r12 + strb r3, [r2, 0xC] +_0800B6F0: + ldr r1, _0800B710 @ =0x04000208 + ldr r3, _0800B714 @ =gUnknown_3004F74 + ldrh r0, [r3] + strh r0, [r1] + pop {r3-r5} + mov r8, r3 + mov r9, r4 + mov r10, r5 + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_0800B708: .4byte 0x00000fbc +_0800B70C: .4byte 0x00000fbd +_0800B710: .4byte 0x04000208 +_0800B714: .4byte gUnknown_3004F74 + thumb_func_end sub_800B608 + + thumb_func_start sub_800B718 +sub_800B718: @ 800B718 + push {r4,lr} + ldr r3, _0800B740 @ =gUnknown_3003FB0 + ldrb r4, [r3] + cmp r4, 0 + beq _0800B754 + ldrb r0, [r3, 0x1] + cmp r0, 0x2 + beq _0800B74E + cmp r0, 0x4 + bne _0800B77E + movs r0, 0xD + ldrsb r0, [r3, r0] + cmp r0, 0x8 + bgt _0800B744 + ldrb r0, [r3, 0x10] + cmp r0, 0x1 + beq _0800B74E + movs r0, 0x1 + strb r0, [r3, 0x13] + b _0800B77E + .align 2, 0 +_0800B740: .4byte gUnknown_3003FB0 +_0800B744: + ldrb r0, [r3, 0x13] + cmp r0, 0x1 + beq _0800B77E + movs r0, 0 + strb r0, [r3, 0xD] +_0800B74E: + bl sub_800B820 + b _0800B77E +_0800B754: + ldrb r2, [r3, 0x1] + cmp r2, 0x4 + beq _0800B75E + cmp r2, 0x2 + bne _0800B77E +_0800B75E: + ldr r1, _0800B784 @ =gUnknown_3000E64 + ldrb r0, [r1] + adds r0, 0x1 + strb r0, [r1] + lsls r0, 24 + lsrs r0, 24 + cmp r0, 0xA + bls _0800B77E + cmp r2, 0x4 + bne _0800B776 + movs r0, 0x2 + strb r0, [r3, 0x13] +_0800B776: + cmp r2, 0x2 + bne _0800B77E + strb r4, [r3, 0x3] + strb r4, [r3, 0xF] +_0800B77E: + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_0800B784: .4byte gUnknown_3000E64 + thumb_func_end sub_800B718 + + thumb_func_start sub_800B788 +sub_800B788: @ 800B788 + push {lr} + bl sub_800BAF8 + bl sub_800B820 + pop {r0} + bx r0 + thumb_func_end sub_800B788 + + thumb_func_start sub_800B798 +sub_800B798: @ 800B798 + push {r4,lr} + ldr r4, _0800B7C4 @ =gUnknown_3003FB0 + ldr r0, _0800B7C8 @ =0x04000128 + ldr r1, [r0] + lsls r0, r1, 26 + lsrs r0, 30 + strb r0, [r4, 0x2] + ldrb r0, [r4, 0x1] + cmp r0, 0x2 + beq _0800B7CC + cmp r0, 0x4 + bne _0800B7EA + lsls r0, r1, 25 + lsrs r0, 31 + strb r0, [r4, 0x10] + bl sub_800B92C + bl sub_800BA44 + bl sub_800BB2C + b _0800B7EA + .align 2, 0 +_0800B7C4: .4byte gUnknown_3003FB0 +_0800B7C8: .4byte 0x04000128 +_0800B7CC: + bl sub_800B830 + lsls r0, 24 + cmp r0, 0 + beq _0800B7EA + ldrb r0, [r4] + cmp r0, 0 + beq _0800B7E6 + movs r0, 0x3 + strb r0, [r4, 0x1] + movs r0, 0x8 + strb r0, [r4, 0xD] + b _0800B7EA +_0800B7E6: + movs r0, 0x4 + strb r0, [r4, 0x1] +_0800B7EA: + ldr r3, _0800B810 @ =gUnknown_3003FB0 + ldrb r0, [r3, 0xD] + adds r0, 0x1 + movs r2, 0 + strb r0, [r3, 0xD] + ldr r1, _0800B814 @ =gUnknown_3000E64 + strb r2, [r1] + lsls r0, 24 + asrs r0, 24 + cmp r0, 0x8 + bne _0800B80A + ldr r0, _0800B818 @ =gUnknown_3004F70 + ldr r2, _0800B81C @ =0x00000fbd + adds r1, r3, r2 + ldrb r1, [r1] + strb r1, [r0] +_0800B80A: + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_0800B810: .4byte gUnknown_3003FB0 +_0800B814: .4byte gUnknown_3000E64 +_0800B818: .4byte gUnknown_3004F70 +_0800B81C: .4byte 0x00000fbd + thumb_func_end sub_800B798 + + thumb_func_start sub_800B820 +sub_800B820: @ 800B820 + ldr r0, _0800B82C @ =0x04000128 + ldrh r1, [r0] + movs r2, 0x80 + orrs r1, r2 + strh r1, [r0] + bx lr + .align 2, 0 +_0800B82C: .4byte 0x04000128 + thumb_func_end sub_800B820 + + thumb_func_start sub_800B830 +sub_800B830: @ 800B830 + push {r4-r7,lr} + mov r7, r9 + mov r6, r8 + push {r6,r7} + movs r5, 0 + ldr r6, _0800B84C @ =0x0000ffff + ldr r0, _0800B850 @ =gUnknown_3003FB0 + ldrb r1, [r0, 0xE] + adds r7, r0, 0 + cmp r1, 0x1 + bne _0800B85C + ldr r1, _0800B854 @ =0x0400012a + ldr r2, _0800B858 @ =0x00008fff + b _0800B860 + .align 2, 0 +_0800B84C: .4byte 0x0000ffff +_0800B850: .4byte gUnknown_3003FB0 +_0800B854: .4byte 0x0400012a +_0800B858: .4byte 0x00008fff +_0800B85C: + ldr r1, _0800B8B4 @ =0x0400012a + ldr r2, _0800B8B8 @ =0x0000b9a0 +_0800B860: + adds r0, r2, 0 + strh r0, [r1] + ldr r2, _0800B8BC @ =gUnknown_3003FB4 + ldr r3, _0800B8C0 @ =0x04000120 + ldr r0, [r3] + ldr r1, [r3, 0x4] + str r0, [r2] + str r1, [r2, 0x4] + movs r0, 0 + movs r1, 0 + str r0, [r3] + str r1, [r3, 0x4] + strb r0, [r2, 0xA] + movs r4, 0 + ldr r0, _0800B8C4 @ =gUnknown_3000E6B + mov r9, r0 + mov r8, r2 + ldr r2, _0800B8C8 @ =0x00008fff + ldr r1, _0800B8CC @ =0x0000ffff + mov r12, r1 +_0800B888: + lsls r0, r4, 1 + add r0, r8 + ldrh r3, [r0] + movs r0, 0x4 + negs r0, r0 + ands r0, r3 + ldr r1, _0800B8B8 @ =0x0000b9a0 + cmp r0, r1 + beq _0800B8A0 + adds r0, r3, 0 + cmp r0, r2 + bne _0800B8D0 +_0800B8A0: + adds r0, r5, 0x1 + lsls r0, 24 + lsrs r5, r0, 24 + adds r0, r3, 0 + cmp r6, r0 + bls _0800B8D8 + cmp r0, 0 + beq _0800B8D8 + adds r6, r3, 0 + b _0800B8D8 + .align 2, 0 +_0800B8B4: .4byte 0x0400012a +_0800B8B8: .4byte 0x0000b9a0 +_0800B8BC: .4byte gUnknown_3003FB4 +_0800B8C0: .4byte 0x04000120 +_0800B8C4: .4byte gUnknown_3000E6B +_0800B8C8: .4byte 0x00008fff +_0800B8CC: .4byte 0x0000ffff +_0800B8D0: + cmp r0, r12 + beq _0800B8E2 + movs r5, 0 + b _0800B8E2 +_0800B8D8: + adds r0, r4, 0x1 + lsls r0, 24 + lsrs r4, r0, 24 + cmp r4, 0x3 + bls _0800B888 +_0800B8E2: + strb r5, [r7, 0x3] + adds r0, r5, 0 + cmp r0, 0x1 + bls _0800B912 + mov r2, r9 + ldrb r2, [r2] + cmp r0, r2 + bne _0800B904 + ldrh r1, [r7, 0x4] + ldr r0, _0800B900 @ =0x00008fff + cmp r1, r0 + bne _0800B904 + movs r0, 0x1 + b _0800B91E + .align 2, 0 +_0800B900: .4byte 0x00008fff +_0800B904: + ldrb r0, [r7, 0x3] + cmp r0, 0x1 + bls _0800B912 + movs r0, 0x3 + ands r6, r0 + adds r0, r6, 0x1 + b _0800B914 +_0800B912: + movs r0, 0 +_0800B914: + strb r0, [r7, 0xF] + ldrb r0, [r7, 0x3] + mov r1, r9 + strb r0, [r1] + movs r0, 0 +_0800B91E: + pop {r3,r4} + mov r8, r3 + mov r9, r4 + pop {r4-r7} + pop {r1} + bx r1 + thumb_func_end sub_800B830 + + thumb_func_start sub_800B92C +sub_800B92C: @ 800B92C + push {r4-r7,lr} + mov r7, r8 + push {r7} + sub sp, 0x8 + ldr r0, _0800B984 @ =0x04000120 + ldr r1, [r0, 0x4] + ldr r0, [r0] + str r0, [sp] + str r1, [sp, 0x4] + ldr r0, _0800B988 @ =gUnknown_3003FB0 + ldrb r1, [r0, 0x16] + adds r6, r0, 0 + cmp r1, 0 + bne _0800B990 + movs r4, 0 + ldr r7, _0800B98C @ =gUnknown_3000E6A + ldrb r0, [r6, 0x3] + cmp r4, r0 + bcs _0800B97A + adds r5, r6, 0 + ldrh r1, [r6, 0x14] + adds r3, r7, 0 + adds r2, r6, 0 +_0800B95A: + lsls r0, r4, 1 + add r0, sp + ldrh r0, [r0] + cmp r1, r0 + beq _0800B96E + ldrb r0, [r3] + cmp r0, 0 + beq _0800B96E + movs r0, 0x1 + strb r0, [r5, 0x11] +_0800B96E: + adds r0, r4, 0x1 + lsls r0, 24 + lsrs r4, r0, 24 + ldrb r0, [r2, 0x3] + cmp r4, r0 + bcc _0800B95A +_0800B97A: + movs r0, 0 + strh r0, [r6, 0x14] + movs r0, 0x1 + strb r0, [r7] + b _0800BA30 + .align 2, 0 +_0800B984: .4byte 0x04000120 +_0800B988: .4byte gUnknown_3003FB0 +_0800B98C: .4byte gUnknown_3000E6A +_0800B990: + ldr r2, _0800BA00 @ =0x00000fbc + adds r1, r6, r2 + adds r2, 0x1 + adds r0, r6, r2 + ldrb r2, [r0] + ldrb r1, [r1] + adds r0, r2, r1 + lsls r0, 24 + lsrs r0, 24 + cmp r0, 0x31 + bls _0800B9AC + subs r0, 0x32 + lsls r0, 24 + lsrs r0, 24 +_0800B9AC: + cmp r2, 0x31 + bhi _0800BA08 + movs r4, 0 + ldrb r1, [r6, 0x3] + cmp r4, r1 + bcs _0800BA0C + adds r5, r6, 0 + ldr r7, _0800BA04 @ =gUnknown_3000E68 + lsls r0, 1 + mov r12, r0 + movs r2, 0xCF + lsls r2, 2 + adds r2, r6 + mov r8, r2 +_0800B9C8: + lsls r1, r4, 1 + mov r2, sp + adds r0, r2, r1 + ldrh r3, [r0] + ldrh r2, [r5, 0x14] + adds r0, r3, r2 + strh r0, [r5, 0x14] + ldrh r0, [r7] + orrs r0, r3 + strh r0, [r7] + ldrb r2, [r5, 0x17] + movs r0, 0x64 + muls r0, r2 + add r0, r12 + adds r1, r4 + lsls r1, 3 + adds r1, r4 + lsls r1, 5 + adds r0, r1 + add r0, r8 + strh r3, [r0] + adds r0, r4, 0x1 + lsls r0, 24 + lsrs r4, r0, 24 + ldrb r0, [r5, 0x3] + cmp r4, r0 + bcc _0800B9C8 + b _0800BA0C + .align 2, 0 +_0800BA00: .4byte 0x00000fbc +_0800BA04: .4byte gUnknown_3000E68 +_0800BA08: + movs r0, 0x2 + strb r0, [r6, 0x12] +_0800BA0C: + ldrb r0, [r6, 0x17] + adds r0, 0x1 + strb r0, [r6, 0x17] + lsls r0, 24 + lsrs r0, 24 + cmp r0, 0x8 + bne _0800BA30 + ldr r2, _0800BA3C @ =gUnknown_3000E68 + ldrh r0, [r2] + cmp r0, 0 + beq _0800BA30 + ldr r1, _0800BA40 @ =0x00000fbd + adds r0, r6, r1 + ldrb r1, [r0] + adds r1, 0x1 + strb r1, [r0] + movs r0, 0 + strh r0, [r2] +_0800BA30: + add sp, 0x8 + pop {r3} + mov r8, r3 + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_0800BA3C: .4byte gUnknown_3000E68 +_0800BA40: .4byte 0x00000fbd + thumb_func_end sub_800B92C + + thumb_func_start sub_800BA44 +sub_800BA44: @ 800BA44 + push {r4,lr} + ldr r0, _0800BA80 @ =gUnknown_3003FB0 + ldrb r1, [r0, 0x16] + adds r4, r0, 0 + cmp r1, 0x8 + bne _0800BA96 + ldr r1, _0800BA84 @ =0x0400012a + ldrh r0, [r4, 0x14] + strh r0, [r1] + ldr r1, _0800BA88 @ =gUnknown_3000E65 + ldrb r2, [r1] + cmp r2, 0 + bne _0800BA90 + ldr r0, _0800BA8C @ =0x00000339 + adds r1, r4, r0 + ldrb r0, [r1] + subs r0, 0x1 + strb r0, [r1] + movs r0, 0xCE + lsls r0, 2 + adds r1, r4, r0 + ldrb r0, [r1] + adds r0, 0x1 + strb r0, [r1] + lsls r0, 24 + lsrs r0, 24 + cmp r0, 0x31 + bls _0800BAEC + strb r2, [r1] + b _0800BAEC + .align 2, 0 +_0800BA80: .4byte gUnknown_3003FB0 +_0800BA84: .4byte 0x0400012a +_0800BA88: .4byte gUnknown_3000E65 +_0800BA8C: .4byte 0x00000339 +_0800BA90: + movs r0, 0 + strb r0, [r1] + b _0800BAEC +_0800BA96: + ldr r1, _0800BABC @ =gUnknown_3000E65 + ldrb r0, [r1] + cmp r0, 0 + bne _0800BAB2 + ldr r2, _0800BAC0 @ =0x00000339 + adds r0, r4, r2 + ldrb r0, [r0] + cmp r0, 0 + bne _0800BAAC + movs r0, 0x1 + strb r0, [r1] +_0800BAAC: + ldrb r0, [r1] + cmp r0, 0 + beq _0800BAC8 +_0800BAB2: + ldr r1, _0800BAC4 @ =0x0400012a + movs r0, 0 + strh r0, [r1] + b _0800BAE6 + .align 2, 0 +_0800BABC: .4byte gUnknown_3000E65 +_0800BAC0: .4byte 0x00000339 +_0800BAC4: .4byte 0x0400012a +_0800BAC8: + ldr r3, _0800BAF4 @ =0x0400012a + movs r1, 0xCE + lsls r1, 2 + adds r0, r4, r1 + ldrb r0, [r0] + lsls r0, 1 + ldrb r2, [r4, 0x16] + movs r1, 0x64 + muls r1, r2 + adds r0, r1 + adds r1, r4, 0 + adds r1, 0x18 + adds r0, r1 + ldrh r0, [r0] + strh r0, [r3] +_0800BAE6: + ldrb r0, [r4, 0x16] + adds r0, 0x1 + strb r0, [r4, 0x16] +_0800BAEC: + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_0800BAF4: .4byte 0x0400012a + thumb_func_end sub_800BA44 + + thumb_func_start sub_800BAF8 +sub_800BAF8: @ 800BAF8 + push {lr} + ldr r0, _0800BB18 @ =gUnknown_3003FB0 + ldrb r0, [r0] + cmp r0, 0 + beq _0800BB14 + ldr r2, _0800BB1C @ =0x0400010e + ldrh r1, [r2] + ldr r0, _0800BB20 @ =0x0000ff7f + ands r0, r1 + strh r0, [r2] + ldr r1, _0800BB24 @ =0x0400010c + ldr r2, _0800BB28 @ =0x0000ff3b + adds r0, r2, 0 + strh r0, [r1] +_0800BB14: + pop {r0} + bx r0 + .align 2, 0 +_0800BB18: .4byte gUnknown_3003FB0 +_0800BB1C: .4byte 0x0400010e +_0800BB20: .4byte 0x0000ff7f +_0800BB24: .4byte 0x0400010c +_0800BB28: .4byte 0x0000ff3b + thumb_func_end sub_800BAF8 + + thumb_func_start sub_800BB2C +sub_800BB2C: @ 800BB2C + push {lr} + ldr r1, _0800BB40 @ =gUnknown_3003FB0 + ldrb r0, [r1, 0x17] + cmp r0, 0x8 + bne _0800BB44 + movs r0, 0 + strb r0, [r1, 0x16] + strb r0, [r1, 0x17] + b _0800BB54 + .align 2, 0 +_0800BB40: .4byte gUnknown_3003FB0 +_0800BB44: + ldrb r0, [r1] + cmp r0, 0 + beq _0800BB54 + ldr r0, _0800BB58 @ =0x0400010e + ldrh r1, [r0] + movs r2, 0x80 + orrs r1, r2 + strh r1, [r0] +_0800BB54: + pop {r0} + bx r0 + .align 2, 0 +_0800BB58: .4byte 0x0400010e + thumb_func_end sub_800BB2C + + thumb_func_start sub_800BB5C +sub_800BB5C: @ 800BB5C + push {r4-r6,lr} + ldr r1, _0800BBA4 @ =gUnknown_3003FB0 + ldr r2, _0800BBA8 @ =0x00000339 + adds r0, r1, r2 + movs r2, 0 + strb r2, [r0] + movs r3, 0xCE + lsls r3, 2 + adds r0, r1, r3 + strb r2, [r0] + movs r0, 0 + movs r6, 0x64 + adds r5, r1, 0 + adds r5, 0x18 + ldr r4, _0800BBAC @ =0x0000efff +_0800BB7A: + movs r2, 0 + adds r1, r0, 0x1 + adds r3, r0, 0 + muls r3, r6 +_0800BB82: + lsls r0, r2, 1 + adds r0, r3 + adds r0, r5 + strh r4, [r0] + adds r0, r2, 0x1 + lsls r0, 24 + lsrs r2, r0, 24 + cmp r2, 0x31 + bls _0800BB82 + lsls r0, r1, 24 + lsrs r0, 24 + cmp r0, 0x7 + bls _0800BB7A + pop {r4-r6} + pop {r0} + bx r0 + .align 2, 0 +_0800BBA4: .4byte gUnknown_3003FB0 +_0800BBA8: .4byte 0x00000339 +_0800BBAC: .4byte 0x0000efff + thumb_func_end sub_800BB5C + + thumb_func_start sub_800BBB0 +sub_800BBB0: @ 800BBB0 + push {r4-r7,lr} + ldr r1, _0800BC10 @ =gUnknown_3003FB0 + ldr r2, _0800BC14 @ =0x00000fbd + adds r0, r1, r2 + movs r2, 0 + strb r2, [r0] + ldr r3, _0800BC18 @ =0x00000fbc + adds r0, r1, r3 + strb r2, [r0] + movs r0, 0x64 + mov r12, r0 + movs r3, 0xCF + lsls r3, 2 + adds r7, r1, r3 + ldr r6, _0800BC1C @ =0x0000efff +_0800BBCE: + movs r3, 0 + lsls r0, r2, 1 + adds r5, r2, 0x1 + adds r0, r2 + lsls r0, 3 + adds r0, r2 + lsls r4, r0, 5 +_0800BBDC: + movs r2, 0 + adds r1, r3, 0x1 + mov r0, r12 + muls r0, r3 + adds r3, r0, 0 +_0800BBE6: + lsls r0, r2, 1 + adds r0, r3 + adds r0, r4 + adds r0, r7 + strh r6, [r0] + adds r0, r2, 0x1 + lsls r0, 24 + lsrs r2, r0, 24 + cmp r2, 0x31 + bls _0800BBE6 + lsls r0, r1, 24 + lsrs r3, r0, 24 + cmp r3, 0x7 + bls _0800BBDC + lsls r0, r5, 24 + lsrs r2, r0, 24 + cmp r2, 0x3 + bls _0800BBCE + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_0800BC10: .4byte gUnknown_3003FB0 +_0800BC14: .4byte 0x00000fbd +_0800BC18: .4byte 0x00000fbc +_0800BC1C: .4byte 0x0000efff + thumb_func_end sub_800BBB0 + + .align 2, 0 @ Don't pad with nop. |