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/main_menu.s |
first commit
Diffstat (limited to 'asm/main_menu.s')
-rw-r--r-- | asm/main_menu.s | 1853 |
1 files changed, 1853 insertions, 0 deletions
diff --git a/asm/main_menu.s b/asm/main_menu.s new file mode 100644 index 000000000..64cf0f1fb --- /dev/null +++ b/asm/main_menu.s @@ -0,0 +1,1853 @@ + .include "asm/macros.inc" + .include "constants/constants.inc" + + .syntax unified + + .text + + thumb_func_start sub_800C2D4 +sub_800C2D4: @ 800C2D4 + push {lr} + bl sub_8077578 + bl sub_8006B5C + bl sub_8006BA8 + bl sub_80704D0 + pop {r0} + bx r0 + thumb_func_end sub_800C2D4 + + thumb_func_start sub_800C2EC +sub_800C2EC: @ 800C2EC + push {lr} + bl sub_8007320 + bl sub_8007610 + bl sub_8070474 + pop {r0} + bx r0 + thumb_func_end sub_800C2EC + + thumb_func_start sub_800C300 +sub_800C300: @ 800C300 + push {lr} + movs r0, 0x1 + bl sub_800C318 + pop {r0} + bx r0 + thumb_func_end sub_800C300 + + thumb_func_start sub_800C30C +sub_800C30C: @ 800C30C + push {lr} + movs r0, 0x1 + bl sub_800C318 + pop {r0} + bx r0 + thumb_func_end sub_800C30C + + thumb_func_start sub_800C318 +sub_800C318: @ 800C318 + push {r4,r5,lr} + sub sp, 0x8 + adds r4, r0, 0 + lsls r4, 24 + lsrs r4, 24 + movs r0, 0 + bl sub_80006F4 + movs r0, 0 + movs r1, 0 + bl sub_8000A38 + movs r0, 0xC + movs r1, 0 + bl sub_8000A38 + movs r0, 0xA + movs r1, 0 + bl sub_8000A38 + movs r0, 0x8 + movs r1, 0 + bl sub_8000A38 + movs r0, 0x18 + movs r1, 0 + bl sub_8000A38 + movs r0, 0x1A + 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 r0, 0x10 + movs r1, 0 + bl sub_8000A38 + movs r0, 0x12 + movs r1, 0 + bl sub_8000A38 + mov r1, sp + movs r0, 0 + strh r0, [r1] + ldr r1, _0800C4A0 @ =0x040000d4 + mov r0, sp + str r0, [r1] + movs r0, 0xC0 + lsls r0, 19 + str r0, [r1, 0x4] + ldr r0, _0800C4A4 @ =0x8100c000 + str r0, [r1, 0x8] + ldr r0, [r1, 0x8] + movs r5, 0 + str r5, [sp, 0x4] + add r0, sp, 0x4 + str r0, [r1] + movs r0, 0xE0 + lsls r0, 19 + str r0, [r1, 0x4] + ldr r0, _0800C4A8 @ =0x85000100 + str r0, [r1, 0x8] + ldr r0, [r1, 0x8] + mov r0, sp + strh r5, [r0] + str r0, [r1] + ldr r0, _0800C4AC @ =0x05000002 + str r0, [r1, 0x4] + ldr r0, _0800C4B0 @ =0x810001ff + str r0, [r1, 0x8] + ldr r0, [r1, 0x8] + bl sub_8087E64 + bl sub_80773BC + bl sub_8006B10 + bl sub_80088F0 + bl sub_8070528 + movs r0, 0 + bl sub_8001618 + ldr r1, _0800C4B4 @ =gUnknown_8234690 + movs r0, 0 + movs r2, 0x1 + bl sub_8001658 + movs r0, 0 + movs r1, 0 + movs r2, 0 + bl sub_8001B90 + movs r0, 0 + movs r1, 0 + movs r2, 0 + bl sub_8001D08 + movs r0, 0x1 + movs r1, 0 + movs r2, 0 + bl sub_8001B90 + movs r0, 0x1 + movs r1, 0 + movs r2, 0 + bl sub_8001D08 + movs r0, 0x2 + movs r1, 0 + movs r2, 0 + bl sub_8001B90 + movs r0, 0x2 + movs r1, 0 + movs r2, 0 + bl sub_8001D08 + ldr r0, _0800C4B8 @ =gUnknown_8234618 + bl sub_8003B24 + bl sub_8002C28 + ldr r0, _0800C4BC @ =gUnknown_8234648 + movs r1, 0 + movs r2, 0x20 + bl sub_80703EC + ldr r0, _0800C4C0 @ =gUnknown_8234668 + movs r1, 0xF0 + movs r2, 0x20 + bl sub_80703EC + movs r0, 0x40 + movs r1, 0 + bl sub_8000A38 + movs r0, 0x44 + movs r1, 0 + bl sub_8000A38 + movs r0, 0x48 + movs r1, 0 + bl sub_8000A38 + movs r0, 0x4A + movs r1, 0 + bl sub_8000A38 + movs r0, 0x50 + movs r1, 0 + bl sub_8000A38 + movs r0, 0x52 + movs r1, 0 + bl sub_8000A38 + movs r0, 0x54 + movs r1, 0 + bl sub_8000A38 + ldr r0, _0800C4C4 @ =sub_800C2D4 + bl sub_8000544 + movs r1, 0xC1 + lsls r1, 6 + movs r0, 0 + bl sub_8000A38 + ldr r0, _0800C4C8 @ =sub_800C4D0 + movs r1, 0 + bl sub_807741C + lsls r0, 24 + lsrs r0, 24 + ldr r2, _0800C4CC @ =gUnknown_3005090 + lsls r1, r0, 2 + adds r1, r0 + lsls r1, 3 + adds r1, r2 + strh r5, [r1, 0xA] + strh r4, [r1, 0x18] + movs r0, 0 + add sp, 0x8 + pop {r4,r5} + pop {r1} + bx r1 + .align 2, 0 +_0800C4A0: .4byte 0x040000d4 +_0800C4A4: .4byte 0x8100c000 +_0800C4A8: .4byte 0x85000100 +_0800C4AC: .4byte 0x05000002 +_0800C4B0: .4byte 0x810001ff +_0800C4B4: .4byte gUnknown_8234690 +_0800C4B8: .4byte gUnknown_8234618 +_0800C4BC: .4byte gUnknown_8234648 +_0800C4C0: .4byte gUnknown_8234668 +_0800C4C4: .4byte sub_800C2D4 +_0800C4C8: .4byte sub_800C4D0 +_0800C4CC: .4byte gUnknown_3005090 + thumb_func_end sub_800C318 + + thumb_func_start sub_800C4D0 +sub_800C4D0: @ 800C4D0 + push {r4-r6,lr} + lsls r0, 24 + lsrs r5, r0, 24 + ldr r0, _0800C538 @ =gUnknown_2037AB8 + ldrb r1, [r0, 0x7] + movs r0, 0x80 + ands r0, r1 + lsls r0, 24 + lsrs r6, r0, 24 + cmp r6, 0 + beq _0800C4E8 + b _0800C626 +_0800C4E8: + movs r0, 0x40 + movs r1, 0 + bl sub_8000A38 + movs r0, 0x44 + movs r1, 0 + bl sub_8000A38 + movs r0, 0x48 + movs r1, 0x1 + bl sub_8000A38 + movs r0, 0x4A + movs r1, 0x21 + bl sub_8000A38 + movs r0, 0x50 + movs r1, 0xFF + bl sub_8000A38 + movs r0, 0x52 + movs r1, 0 + bl sub_8000A38 + movs r0, 0x54 + movs r1, 0x7 + bl sub_8000A38 + ldr r0, _0800C53C @ =gUnknown_30053A0 + ldrh r4, [r0] + cmp r4, 0x2 + beq _0800C58C + cmp r4, 0x2 + bgt _0800C540 + cmp r4, 0 + beq _0800C5E8 + cmp r4, 0x1 + beq _0800C54A + b _0800C5E8 + .align 2, 0 +_0800C538: .4byte gUnknown_2037AB8 +_0800C53C: .4byte gUnknown_30053A0 +_0800C540: + cmp r4, 0x4 + beq _0800C60C + cmp r4, 0xFF + beq _0800C5B0 + b _0800C5E8 +_0800C54A: + movs r0, 0 + bl sub_800D044 + bl sub_806E2BC + cmp r0, 0x1 + bne _0800C570 + ldr r2, _0800C56C @ =gUnknown_3005090 + lsls r3, r5, 2 + adds r0, r3, r5 + lsls r0, 3 + adds r0, r2 + movs r1, 0x2 + strh r1, [r0, 0x8] + adds r1, r2, 0 + adds r2, r3, 0 + b _0800C57E + .align 2, 0 +_0800C56C: .4byte gUnknown_3005090 +_0800C570: + ldr r0, _0800C588 @ =gUnknown_3005090 + lsls r2, r5, 2 + adds r1, r2, r5 + lsls r1, 3 + adds r1, r0 + strh r4, [r1, 0x8] + adds r1, r0, 0 +_0800C57E: + adds r0, r2, r5 + lsls r0, 3 + adds r0, r1 + b _0800C5FC + .align 2, 0 +_0800C588: .4byte gUnknown_3005090 +_0800C58C: + movs r0, 0 + bl sub_800D094 + ldr r0, _0800C5A8 @ =gUnknown_3005090 + lsls r1, r5, 2 + adds r1, r5 + lsls r1, 3 + adds r1, r0 + strh r6, [r1, 0x8] + ldr r1, _0800C5AC @ =gUnknown_8415C42 + adds r0, r5, 0 + bl sub_800C634 + b _0800C626 + .align 2, 0 +_0800C5A8: .4byte gUnknown_3005090 +_0800C5AC: .4byte gUnknown_8415C42 +_0800C5B0: + movs r0, 0 + bl sub_800D094 + ldr r1, _0800C5DC @ =gUnknown_3005090 + lsls r0, r5, 2 + adds r0, r5 + lsls r0, 3 + adds r4, r0, r1 + movs r6, 0x1 + strh r6, [r4, 0x8] + ldr r1, _0800C5E0 @ =gUnknown_8415BFF + adds r0, r5, 0 + bl sub_800C634 + bl sub_806E2BC + cmp r0, 0x1 + bne _0800C5E4 + movs r0, 0x2 + strh r0, [r4, 0x8] + b _0800C626 + .align 2, 0 +_0800C5DC: .4byte gUnknown_3005090 +_0800C5E0: .4byte gUnknown_8415BFF +_0800C5E4: + strh r6, [r4, 0x8] + b _0800C626 +_0800C5E8: + movs r0, 0 + bl sub_800D044 + ldr r1, _0800C604 @ =gUnknown_3005090 + lsls r0, r5, 2 + adds r0, r5 + lsls r0, 3 + adds r0, r1 + movs r1, 0 + strh r1, [r0, 0x8] +_0800C5FC: + ldr r1, _0800C608 @ =sub_800C704 + str r1, [r0] + b _0800C626 + .align 2, 0 +_0800C604: .4byte gUnknown_3005090 +_0800C608: .4byte sub_800C704 +_0800C60C: + movs r0, 0 + bl sub_800D094 + ldr r0, _0800C62C @ =gUnknown_3005090 + lsls r1, r5, 2 + adds r1, r5 + lsls r1, 3 + adds r1, r0 + strh r6, [r1, 0x8] + ldr r1, _0800C630 @ =gUnknown_8415C64 + adds r0, r5, 0 + bl sub_800C634 +_0800C626: + pop {r4-r6} + pop {r0} + bx r0 + .align 2, 0 +_0800C62C: .4byte gUnknown_3005090 +_0800C630: .4byte gUnknown_8415C64 + thumb_func_end sub_800C4D0 + + thumb_func_start sub_800C634 +sub_800C634: @ 800C634 + push {r4,lr} + sub sp, 0x4 + adds r4, r0, 0 + adds r0, r1, 0 + lsls r4, 24 + lsrs r4, 24 + bl sub_800CDF8 + ldr r1, _0800C678 @ =gUnknown_3005090 + lsls r0, r4, 2 + adds r0, r4 + lsls r0, 3 + adds r0, r1 + ldr r1, _0800C67C @ =sub_800C688 + str r1, [r0] + movs r0, 0x1 + negs r0, r0 + ldr r1, _0800C680 @ =0x0000ffff + str r1, [sp] + movs r1, 0 + movs r2, 0x10 + movs r3, 0 + bl sub_8070588 + movs r0, 0 + bl sub_80019BC + ldr r0, _0800C684 @ =sub_800C2EC + bl sub_80006F4 + add sp, 0x4 + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_0800C678: .4byte gUnknown_3005090 +_0800C67C: .4byte sub_800C688 +_0800C680: .4byte 0x0000ffff +_0800C684: .4byte sub_800C2EC + thumb_func_end sub_800C634 + + thumb_func_start sub_800C688 +sub_800C688: @ 800C688 + push {r4,lr} + lsls r0, 24 + lsrs r4, r0, 24 + ldr r0, _0800C6E0 @ =gUnknown_2037AB8 + ldrb r1, [r0, 0x7] + movs r0, 0x80 + ands r0, r1 + cmp r0, 0 + bne _0800C6F8 + bl sub_8002DE8 + movs r0, 0x4 + bl sub_8002E64 + lsls r0, 16 + cmp r0, 0 + bne _0800C6F8 + ldr r0, _0800C6E4 @ =gUnknown_30030F0 + ldrh r1, [r0, 0x2E] + movs r0, 0x1 + ands r0, r1 + cmp r0, 0 + beq _0800C6F8 + movs r0, 0x4 + bl sub_80040B8 + ldr r0, _0800C6E8 @ =gUnknown_8234638 + bl sub_800D1E8 + movs r0, 0 + bl sub_800D044 + ldr r1, _0800C6EC @ =gUnknown_3005090 + lsls r0, r4, 2 + adds r0, r4 + lsls r0, 3 + adds r1, r0, r1 + movs r2, 0x8 + ldrsh r0, [r1, r2] + cmp r0, 0 + bne _0800C6F4 + ldr r0, _0800C6F0 @ =sub_800C704 + b _0800C6F6 + .align 2, 0 +_0800C6E0: .4byte gUnknown_2037AB8 +_0800C6E4: .4byte gUnknown_30030F0 +_0800C6E8: .4byte gUnknown_8234638 +_0800C6EC: .4byte gUnknown_3005090 +_0800C6F0: .4byte sub_800C704 +_0800C6F4: + ldr r0, _0800C700 @ =sub_800C7A0 +_0800C6F6: + str r0, [r1] +_0800C6F8: + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_0800C700: .4byte sub_800C7A0 + thumb_func_end sub_800C688 + + thumb_func_start sub_800C704 +sub_800C704: @ 800C704 + push {r4,lr} + lsls r0, 24 + lsrs r4, r0, 24 + ldr r0, _0800C764 @ =gUnknown_2037AB8 + ldrb r1, [r0, 0x7] + movs r0, 0x80 + ands r0, r1 + cmp r0, 0 + bne _0800C774 + movs r0, 0x40 + movs r1, 0 + bl sub_8000A38 + movs r0, 0x44 + movs r1, 0 + bl sub_8000A38 + movs r0, 0x48 + movs r1, 0x1 + bl sub_8000A38 + movs r0, 0x4A + movs r1, 0x21 + bl sub_8000A38 + movs r0, 0x50 + movs r1, 0xFF + bl sub_8000A38 + movs r0, 0x52 + movs r1, 0 + bl sub_8000A38 + movs r0, 0x54 + movs r1, 0x7 + bl sub_8000A38 + ldr r0, _0800C768 @ =gUnknown_3005090 + lsls r1, r4, 2 + adds r1, r4 + lsls r1, 3 + adds r1, r0 + movs r2, 0x8 + ldrsh r0, [r1, r2] + cmp r0, 0 + bne _0800C770 + ldr r0, _0800C76C @ =sub_800CA94 + b _0800C772 + .align 2, 0 +_0800C764: .4byte gUnknown_2037AB8 +_0800C768: .4byte gUnknown_3005090 +_0800C76C: .4byte sub_800CA94 +_0800C770: + ldr r0, _0800C77C @ =sub_800C780 +_0800C772: + str r0, [r1] +_0800C774: + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_0800C77C: .4byte sub_800C780 + thumb_func_end sub_800C704 + + thumb_func_start sub_800C780 +sub_800C780: @ 800C780 + push {lr} + lsls r0, 24 + lsrs r2, r0, 24 + ldr r0, _0800C79C @ =gUnknown_2037AB8 + ldrb r1, [r0, 0x7] + movs r0, 0x80 + ands r0, r1 + cmp r0, 0 + bne _0800C798 + adds r0, r2, 0 + bl sub_800C7A0 +_0800C798: + pop {r0} + bx r0 + .align 2, 0 +_0800C79C: .4byte gUnknown_2037AB8 + thumb_func_end sub_800C780 + + thumb_func_start sub_800C7A0 +sub_800C7A0: @ 800C7A0 + push {r4-r7,lr} + mov r7, r8 + push {r7} + sub sp, 0x10 + lsls r0, 24 + lsrs r7, r0, 24 + movs r0, 0x40 + movs r1, 0 + bl sub_8000A38 + movs r0, 0x44 + movs r1, 0 + bl sub_8000A38 + movs r0, 0x48 + movs r1, 0x1 + bl sub_8000A38 + movs r0, 0x4A + movs r1, 0x21 + bl sub_8000A38 + movs r0, 0x50 + movs r1, 0xFF + bl sub_8000A38 + movs r0, 0x52 + movs r1, 0 + bl sub_8000A38 + movs r0, 0x54 + movs r1, 0x7 + bl sub_8000A38 + ldr r0, _0800C7F4 @ =gUnknown_300500C + ldr r0, [r0] + ldrb r0, [r0, 0x8] + cmp r0, 0 + bne _0800C7FC + ldr r1, _0800C7F8 @ =0x00007e04 + b _0800C7FE + .align 2, 0 +_0800C7F4: .4byte gUnknown_300500C +_0800C7F8: .4byte 0x00007e04 +_0800C7FC: + ldr r1, _0800C85C @ =0x0000547f +_0800C7FE: + add r0, sp, 0xC + strh r1, [r0] + add r0, sp, 0xC + movs r1, 0xF1 + movs r2, 0x2 + bl sub_80703EC + ldr r2, _0800C860 @ =gUnknown_3005090 + lsls r1, r7, 2 + adds r0, r1, r7 + lsls r0, 3 + adds r6, r0, r2 + movs r2, 0x8 + ldrsh r0, [r6, r2] + mov r8, r1 + cmp r0, 0x1 + beq _0800C870 + cmp r0, 0x1 + ble _0800C828 + cmp r0, 0x2 + beq _0800C8F0 +_0800C828: + movs r0, 0 + movs r1, 0xAA + bl sub_800445C + ldr r0, _0800C864 @ =gUnknown_8234688 + str r0, [sp] + movs r0, 0x1 + negs r0, r0 + str r0, [sp, 0x4] + ldr r0, _0800C868 @ =gUnknown_8415A6E + str r0, [sp, 0x8] + movs r0, 0 + movs r1, 0x2 + movs r2, 0x2 + movs r3, 0x2 + bl sub_812E51C + ldr r0, _0800C86C @ =gUnknown_8234618 + bl sub_800D0B4 + movs r0, 0 + bl sub_8003FA0 + movs r0, 0 + b _0800C8D8 + .align 2, 0 +_0800C85C: .4byte 0x0000547f +_0800C860: .4byte gUnknown_3005090 +_0800C864: .4byte gUnknown_8234688 +_0800C868: .4byte gUnknown_8415A6E +_0800C86C: .4byte gUnknown_8234618 +_0800C870: + movs r0, 0x1 + movs r1, 0xAA + bl sub_800445C + movs r0, 0x2 + movs r1, 0xAA + bl sub_800445C + ldr r5, _0800C8E0 @ =gUnknown_8234688 + str r5, [sp] + movs r4, 0x1 + negs r4, r4 + str r4, [sp, 0x4] + ldr r0, _0800C8E4 @ =gUnknown_8415A77 + str r0, [sp, 0x8] + movs r0, 0x1 + movs r1, 0x2 + movs r2, 0x2 + movs r3, 0x2 + bl sub_812E51C + str r5, [sp] + str r4, [sp, 0x4] + ldr r0, _0800C8E8 @ =gUnknown_8415A6E + str r0, [sp, 0x8] + movs r0, 0x2 + movs r1, 0x2 + movs r2, 0x2 + movs r3, 0x2 + bl sub_812E51C + bl sub_800CE58 + ldr r4, _0800C8EC @ =gUnknown_8234620 + adds r0, r4, 0 + bl sub_800D0B4 + adds r4, 0x8 + adds r0, r4, 0 + bl sub_800D0B4 + movs r0, 0x1 + bl sub_8003FA0 + movs r0, 0x2 + bl sub_8003FA0 + movs r0, 0x1 + movs r1, 0x2 + bl sub_8003F20 + movs r0, 0x2 +_0800C8D8: + movs r1, 0x3 + bl sub_8003F20 + b _0800C994 + .align 2, 0 +_0800C8E0: .4byte gUnknown_8234688 +_0800C8E4: .4byte gUnknown_8415A77 +_0800C8E8: .4byte gUnknown_8415A6E +_0800C8EC: .4byte gUnknown_8234620 +_0800C8F0: + movs r0, 0x1 + movs r1, 0xAA + bl sub_800445C + movs r0, 0x2 + movs r1, 0xAA + bl sub_800445C + movs r0, 0x3 + movs r1, 0xAA + bl sub_800445C + ldr r5, _0800C9B0 @ =gUnknown_8234688 + str r5, [sp] + movs r4, 0x1 + negs r4, r4 + str r4, [sp, 0x4] + ldr r0, _0800C9B4 @ =gUnknown_8415A77 + str r0, [sp, 0x8] + movs r0, 0x1 + movs r1, 0x2 + movs r2, 0x2 + movs r3, 0x2 + bl sub_812E51C + str r5, [sp] + str r4, [sp, 0x4] + ldr r0, _0800C9B8 @ =gUnknown_8415A6E + str r0, [sp, 0x8] + movs r0, 0x2 + movs r1, 0x2 + movs r2, 0x2 + movs r3, 0x2 + bl sub_812E51C + movs r0, 0x1 + strh r0, [r6, 0x1C] + str r5, [sp] + str r4, [sp, 0x4] + ldr r0, _0800C9BC @ =gUnknown_8415A97 + str r0, [sp, 0x8] + movs r0, 0x3 + movs r1, 0x2 + movs r2, 0x2 + movs r3, 0x2 + bl sub_812E51C + bl sub_800CE58 + ldr r4, _0800C9C0 @ =gUnknown_8234620 + adds r0, r4, 0 + bl sub_800D0B4 + adds r0, r4, 0 + adds r0, 0x8 + bl sub_800D0B4 + adds r4, 0x10 + adds r0, r4, 0 + bl sub_800D0B4 + movs r0, 0x1 + bl sub_8003FA0 + movs r0, 0x2 + bl sub_8003FA0 + movs r0, 0x3 + bl sub_8003FA0 + movs r0, 0x1 + movs r1, 0x2 + bl sub_8003F20 + movs r0, 0x2 + movs r1, 0x2 + bl sub_8003F20 + movs r0, 0x3 + movs r1, 0x3 + bl sub_8003F20 +_0800C994: + ldr r0, _0800C9C4 @ =gUnknown_3005090 + mov r2, r8 + adds r1, r2, r7 + lsls r1, 3 + adds r1, r0 + ldr r0, _0800C9C8 @ =sub_800C9CC + str r0, [r1] + add sp, 0x10 + pop {r3} + mov r8, r3 + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_0800C9B0: .4byte gUnknown_8234688 +_0800C9B4: .4byte gUnknown_8415A77 +_0800C9B8: .4byte gUnknown_8415A6E +_0800C9BC: .4byte gUnknown_8415A97 +_0800C9C0: .4byte gUnknown_8234620 +_0800C9C4: .4byte gUnknown_3005090 +_0800C9C8: .4byte sub_800C9CC + thumb_func_end sub_800C7A0 + + thumb_func_start sub_800C9CC +sub_800C9CC: @ 800C9CC + push {r4,r5,lr} + sub sp, 0x4 + lsls r0, 24 + lsrs r4, r0, 24 + movs r5, 0x1 + negs r5, r5 + adds r0, r5, 0 + bl sub_8000FE8 + lsls r0, 16 + asrs r0, 16 + cmp r0, r5 + beq _0800CA10 + ldr r1, _0800CA18 @ =gUnknown_3005090 + lsls r0, r4, 2 + adds r0, r4 + lsls r0, 3 + adds r0, r1 + ldr r1, _0800CA1C @ =sub_800CA28 + str r1, [r0] + ldr r0, _0800CA20 @ =0x0000ffff + str r0, [sp] + adds r0, r5, 0 + movs r1, 0 + movs r2, 0x10 + movs r3, 0 + bl sub_8070588 + movs r0, 0 + bl sub_80019BC + ldr r0, _0800CA24 @ =sub_800C2EC + bl sub_80006F4 +_0800CA10: + add sp, 0x4 + pop {r4,r5} + pop {r0} + bx r0 + .align 2, 0 +_0800CA18: .4byte gUnknown_3005090 +_0800CA1C: .4byte sub_800CA28 +_0800CA20: .4byte 0x0000ffff +_0800CA24: .4byte sub_800C2EC + thumb_func_end sub_800C9CC + + thumb_func_start sub_800CA28 +sub_800CA28: @ 800CA28 + push {r4,lr} + lsls r0, 24 + lsrs r0, 24 + ldr r1, _0800CA4C @ =gUnknown_3005090 + lsls r4, r0, 2 + adds r4, r0 + lsls r4, 3 + adds r4, r1 + ldrb r0, [r4, 0x8] + ldrb r1, [r4, 0xA] + bl sub_800CC94 + ldr r0, _0800CA50 @ =sub_800CA54 + str r0, [r4] + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_0800CA4C: .4byte gUnknown_3005090 +_0800CA50: .4byte sub_800CA54 + thumb_func_end sub_800CA28 + + thumb_func_start sub_800CA54 +sub_800CA54: @ 800CA54 + push {r4,lr} + lsls r0, 24 + lsrs r4, r0, 24 + ldr r0, _0800CA88 @ =gUnknown_2037AB8 + ldrb r1, [r0, 0x7] + movs r0, 0x80 + ands r0, r1 + cmp r0, 0 + bne _0800CA80 + adds r0, r4, 0 + bl sub_800CCF8 + lsls r0, 24 + cmp r0, 0 + beq _0800CA80 + ldr r0, _0800CA8C @ =gUnknown_3005090 + lsls r1, r4, 2 + adds r1, r4 + lsls r1, 3 + adds r1, r0 + ldr r0, _0800CA90 @ =sub_800CA28 + str r0, [r1] +_0800CA80: + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_0800CA88: .4byte gUnknown_2037AB8 +_0800CA8C: .4byte gUnknown_3005090 +_0800CA90: .4byte sub_800CA28 + thumb_func_end sub_800CA54 + + thumb_func_start sub_800CA94 +sub_800CA94: @ 800CA94 + push {r4-r6,lr} + sub sp, 0x4 + lsls r0, 24 + lsrs r6, r0, 24 + ldr r0, _0800CAC4 @ =gUnknown_2037AB8 + ldrb r1, [r0, 0x7] + movs r0, 0x80 + ands r0, r1 + cmp r0, 0 + bne _0800CB84 + ldr r1, _0800CAC8 @ =gUnknown_3005090 + lsls r0, r6, 2 + adds r0, r6 + lsls r0, 3 + adds r4, r0, r1 + movs r1, 0x8 + ldrsh r0, [r4, r1] + cmp r0, 0x1 + beq _0800CACC + cmp r0, 0x1 + ble _0800CAEE + cmp r0, 0x2 + beq _0800CADA + b _0800CAEE + .align 2, 0 +_0800CAC4: .4byte gUnknown_2037AB8 +_0800CAC8: .4byte gUnknown_3005090 +_0800CACC: + movs r1, 0xA + ldrsh r0, [r4, r1] + cmp r0, 0 + beq _0800CAEA + cmp r0, 0x1 + bne _0800CAEA + b _0800CAEE +_0800CADA: + movs r1, 0xA + ldrsh r0, [r4, r1] + cmp r0, 0x1 + beq _0800CAEE + cmp r0, 0x1 + ble _0800CAEA + cmp r0, 0x2 + beq _0800CAF2 +_0800CAEA: + movs r0, 0x1 + b _0800CB22 +_0800CAEE: + movs r0, 0 + b _0800CB22 +_0800CAF2: + bl sub_8009480 + lsls r0, 24 + lsrs r5, r0, 24 + cmp r5, 0 + bne _0800CB20 + movs r0, 0 + bl sub_800D094 + ldr r0, _0800CB1C @ =sub_800CB90 + str r0, [r4] + movs r0, 0x1 + negs r0, r0 + str r5, [sp] + movs r1, 0 + movs r2, 0x10 + movs r3, 0 + bl sub_8070588 + b _0800CB84 + .align 2, 0 +_0800CB1C: .4byte sub_800CB90 +_0800CB20: + movs r0, 0x2 +_0800CB22: + cmp r0, 0x1 + beq _0800CB48 + cmp r0, 0x1 + ble _0800CB2E + cmp r0, 0x2 + beq _0800CB70 +_0800CB2E: + ldr r1, _0800CB44 @ =gUnknown_2031DE0 + movs r0, 0 + strb r0, [r1] + bl sub_8003ECC + adds r0, r6, 0 + bl sub_8077508 + bl sub_812EB2C + b _0800CB84 + .align 2, 0 +_0800CB44: .4byte gUnknown_2031DE0 +_0800CB48: + ldr r0, _0800CB64 @ =gUnknown_20371F8 + movs r2, 0 + movs r1, 0 + strh r1, [r0] + ldr r0, _0800CB68 @ =gUnknown_20375F8 + strh r1, [r0] + ldr r0, _0800CB6C @ =gUnknown_2031DE0 + strb r2, [r0] + bl sub_8003ECC + adds r0, r6, 0 + bl sub_8110F14 + b _0800CB84 + .align 2, 0 +_0800CB64: .4byte gUnknown_20371F8 +_0800CB68: .4byte gUnknown_20375F8 +_0800CB6C: .4byte gUnknown_2031DE0 +_0800CB70: + ldr r0, _0800CB8C @ =sub_81422AC + bl sub_8000544 + bl sub_812B478 + bl sub_8003ECC + adds r0, r6, 0 + bl sub_8077508 +_0800CB84: + add sp, 0x4 + pop {r4-r6} + pop {r0} + bx r0 + .align 2, 0 +_0800CB8C: .4byte sub_81422AC + thumb_func_end sub_800CA94 + + thumb_func_start sub_800CB90 +sub_800CB90: @ 800CB90 + push {r4,r5,lr} + sub sp, 0x8 + lsls r0, 24 + lsrs r5, r0, 24 + ldr r1, _0800CBB4 @ =gUnknown_3005090 + lsls r0, r5, 2 + adds r0, r5 + lsls r0, 3 + adds r4, r0, r1 + movs r0, 0x1A + ldrsh r1, [r4, r0] + cmp r1, 0x1 + beq _0800CC0C + cmp r1, 0x1 + bgt _0800CBB8 + cmp r1, 0 + beq _0800CBC2 + b _0800CC58 + .align 2, 0 +_0800CBB4: .4byte gUnknown_3005090 +_0800CBB8: + cmp r1, 0x2 + beq _0800CC1C + cmp r1, 0x3 + beq _0800CC34 + b _0800CC58 +_0800CBC2: + movs r0, 0x1E + str r0, [sp] + movs r0, 0x14 + str r0, [sp, 0x4] + movs r0, 0 + movs r1, 0 + movs r2, 0 + movs r3, 0 + bl sub_8002454 + movs r1, 0x1C + ldrsh r0, [r4, r1] + cmp r0, 0x1 + bne _0800CBEC + ldr r0, _0800CBE8 @ =gUnknown_8415AA4 + bl sub_800CDF8 + b _0800CBF2 + .align 2, 0 +_0800CBE8: .4byte gUnknown_8415AA4 +_0800CBEC: + ldr r0, _0800CC04 @ =gUnknown_8415ACB + bl sub_800CDF8 +_0800CBF2: + ldr r0, _0800CC08 @ =gUnknown_3005090 + lsls r1, r5, 2 + adds r1, r5 + lsls r1, 3 + adds r1, r0 + ldrh r0, [r1, 0x1A] + adds r0, 0x1 + strh r0, [r1, 0x1A] + b _0800CC58 + .align 2, 0 +_0800CC04: .4byte gUnknown_8415ACB +_0800CC08: .4byte gUnknown_3005090 +_0800CC0C: + ldr r0, _0800CC18 @ =gUnknown_2037AB8 + ldrb r1, [r0, 0x7] + movs r0, 0x80 + ands r0, r1 + b _0800CC28 + .align 2, 0 +_0800CC18: .4byte gUnknown_2037AB8 +_0800CC1C: + bl sub_8002DE8 + movs r0, 0x4 + bl sub_8002E64 + lsls r0, 16 +_0800CC28: + cmp r0, 0 + bne _0800CC58 + ldrh r0, [r4, 0x1A] + adds r0, 0x1 + strh r0, [r4, 0x1A] + b _0800CC58 +_0800CC34: + ldr r0, _0800CC60 @ =gUnknown_30030F0 + ldrh r0, [r0, 0x2E] + ands r1, r0 + cmp r1, 0 + beq _0800CC58 + movs r0, 0x5 + bl sub_80722CC + movs r0, 0x1 + negs r0, r0 + movs r1, 0 + str r1, [sp] + movs r2, 0 + movs r3, 0x10 + bl sub_8070588 + ldr r0, _0800CC64 @ =sub_800CC68 + str r0, [r4] +_0800CC58: + add sp, 0x8 + pop {r4,r5} + pop {r0} + bx r0 + .align 2, 0 +_0800CC60: .4byte gUnknown_30030F0 +_0800CC64: .4byte sub_800CC68 + thumb_func_end sub_800CB90 + + thumb_func_start sub_800CC68 +sub_800CC68: @ 800CC68 + push {r4,lr} + lsls r0, 24 + lsrs r4, r0, 24 + ldr r0, _0800CC8C @ =gUnknown_2037AB8 + ldrb r1, [r0, 0x7] + movs r0, 0x80 + ands r0, r1 + cmp r0, 0 + bne _0800CC86 + ldr r0, _0800CC90 @ =sub_8078914 + bl sub_8000544 + adds r0, r4, 0 + bl sub_8077508 +_0800CC86: + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_0800CC8C: .4byte gUnknown_2037AB8 +_0800CC90: .4byte sub_8078914 + thumb_func_end sub_800CC68 + + thumb_func_start sub_800CC94 +sub_800CC94: @ 800CC94 + push {r4,r5,lr} + lsls r0, 24 + lsrs r4, r0, 24 + lsls r1, 24 + lsrs r5, r1, 24 + ldr r1, _0800CCB8 @ =0x000012de + movs r0, 0x40 + bl sub_8000A38 + cmp r4, 0 + beq _0800CCB2 + cmp r4, 0 + blt _0800CCB2 + cmp r4, 0x2 + ble _0800CCBC +_0800CCB2: + movs r2, 0 + movs r0, 0x20 + b _0800CCDC + .align 2, 0 +_0800CCB8: .4byte 0x000012de +_0800CCBC: + cmp r5, 0x1 + beq _0800CCCE + cmp r5, 0x1 + ble _0800CCC8 + cmp r5, 0x2 + beq _0800CCD6 +_0800CCC8: + movs r2, 0 + movs r0, 0x60 + b _0800CCDC +_0800CCCE: + movs r2, 0xC0 + lsls r2, 7 + movs r0, 0x80 + b _0800CCDC +_0800CCD6: + movs r2, 0x80 + lsls r2, 8 + movs r0, 0xA0 +_0800CCDC: + movs r3, 0x80 + lsls r3, 2 + adds r1, r3, 0 + adds r1, r2, r1 + subs r0, 0x2 + orrs r1, r0 + lsls r1, 16 + lsrs r1, 16 + movs r0, 0x44 + bl sub_8000A38 + pop {r4,r5} + pop {r0} + bx r0 + thumb_func_end sub_800CC94 + + thumb_func_start sub_800CCF8 +sub_800CCF8: @ 800CCF8 + push {r4,r5,lr} + sub sp, 0x4 + lsls r0, 24 + lsrs r4, r0, 24 + ldr r0, _0800CD38 @ =gUnknown_30030F0 + ldrh r1, [r0, 0x2E] + movs r5, 0x1 + ands r5, r1 + adds r3, r0, 0 + cmp r5, 0 + beq _0800CD44 + movs r0, 0x5 + bl sub_80722CC + bl sub_8009480 + movs r0, 0x1 + negs r0, r0 + movs r1, 0 + str r1, [sp] + movs r2, 0 + movs r3, 0x10 + bl sub_8070588 + ldr r1, _0800CD3C @ =gUnknown_3005090 + lsls r0, r4, 2 + adds r0, r4 + lsls r0, 3 + adds r0, r1 + ldr r1, _0800CD40 @ =sub_800CA94 + str r1, [r0] + b _0800CDEC + .align 2, 0 +_0800CD38: .4byte gUnknown_30030F0 +_0800CD3C: .4byte gUnknown_3005090 +_0800CD40: .4byte sub_800CA94 +_0800CD44: + movs r0, 0x2 + ands r0, r1 + cmp r0, 0 + beq _0800CD8C + movs r0, 0x5 + bl sub_80722CC + movs r0, 0x1 + negs r0, r0 + str r5, [sp] + movs r1, 0 + movs r2, 0 + movs r3, 0x10 + bl sub_8070588 + movs r0, 0x40 + movs r1, 0xF0 + bl sub_8000A38 + movs r0, 0x44 + movs r1, 0xA0 + bl sub_8000A38 + ldr r1, _0800CD84 @ =gUnknown_3005090 + lsls r0, r4, 2 + adds r0, r4 + lsls r0, 3 + adds r0, r1 + ldr r1, _0800CD88 @ =sub_800CC68 + str r1, [r0] + b _0800CDEC + .align 2, 0 +_0800CD84: .4byte gUnknown_3005090 +_0800CD88: .4byte sub_800CC68 +_0800CD8C: + movs r0, 0x40 + ands r0, r1 + cmp r0, 0 + beq _0800CDB4 + ldr r0, _0800CDB0 @ =gUnknown_3005090 + lsls r1, r4, 2 + adds r1, r4 + lsls r1, 3 + adds r1, r0 + ldrh r2, [r1, 0xA] + movs r5, 0xA + ldrsh r0, [r1, r5] + cmp r0, 0 + ble _0800CDB4 + subs r0, r2, 0x1 + strh r0, [r1, 0xA] + movs r0, 0x1 + b _0800CDEE + .align 2, 0 +_0800CDB0: .4byte gUnknown_3005090 +_0800CDB4: + ldrh r1, [r3, 0x2E] + movs r0, 0x80 + ands r0, r1 + cmp r0, 0 + beq _0800CDEC + ldr r1, _0800CDE4 @ =gUnknown_3005090 + lsls r0, r4, 2 + adds r0, r4 + lsls r0, 3 + adds r3, r0, r1 + movs r0, 0xA + ldrsh r2, [r3, r0] + ldr r1, _0800CDE8 @ =gUnknown_8234694 + movs r4, 0x8 + ldrsh r0, [r3, r4] + adds r0, r1 + ldrb r0, [r0] + cmp r2, r0 + bge _0800CDEC + ldrh r0, [r3, 0xA] + adds r0, 0x1 + strh r0, [r3, 0xA] + movs r0, 0x1 + b _0800CDEE + .align 2, 0 +_0800CDE4: .4byte gUnknown_3005090 +_0800CDE8: .4byte gUnknown_8234694 +_0800CDEC: + movs r0, 0 +_0800CDEE: + add sp, 0x4 + pop {r4,r5} + pop {r1} + bx r1 + thumb_func_end sub_800CCF8 + + thumb_func_start sub_800CDF8 +sub_800CDF8: @ 800CDF8 + push {r4,lr} + sub sp, 0xC + adds r4, r0, 0 + movs r0, 0x4 + movs r1, 0xAA + bl sub_800445C + ldr r0, _0800CE48 @ =gUnknown_8234638 + bl sub_800D0B4 + ldr r0, _0800CE4C @ =gUnknown_8234688 + str r0, [sp] + movs r0, 0x2 + str r0, [sp, 0x4] + str r4, [sp, 0x8] + movs r0, 0x4 + movs r1, 0x2 + movs r2, 0 + movs r3, 0x2 + bl sub_812E51C + movs r0, 0x4 + bl sub_8003FA0 + movs r0, 0x4 + movs r1, 0x2 + bl sub_8003F20 + ldr r1, _0800CE50 @ =0x000013dd + movs r0, 0x40 + bl sub_8000A38 + ldr r1, _0800CE54 @ =0x0000739d + movs r0, 0x44 + bl sub_8000A38 + add sp, 0xC + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_0800CE48: .4byte gUnknown_8234638 +_0800CE4C: .4byte gUnknown_8234688 +_0800CE50: .4byte 0x000013dd +_0800CE54: .4byte 0x0000739d + thumb_func_end sub_800CDF8 + + thumb_func_start sub_800CE58 +sub_800CE58: @ 800CE58 + push {lr} + bl sub_800CE70 + bl sub_800CF3C + bl sub_800CED4 + bl sub_800CFC4 + pop {r0} + bx r0 + thumb_func_end sub_800CE58 + + thumb_func_start sub_800CE70 +sub_800CE70: @ 800CE70 + push {lr} + sub sp, 0x14 + ldr r0, _0800CEC8 @ =gUnknown_823468B + str r0, [sp] + movs r0, 0x1 + negs r0, r0 + str r0, [sp, 0x4] + ldr r0, _0800CECC @ =gUnknown_841B6D5 + str r0, [sp, 0x8] + movs r0, 0x1 + movs r1, 0x2 + movs r2, 0x2 + movs r3, 0x12 + bl sub_812E51C + add r1, sp, 0xC + movs r2, 0 + ldr r0, _0800CED0 @ =gUnknown_300500C + ldr r3, [r0] +_0800CE96: + adds r0, r3, r2 + ldrb r0, [r0] + strb r0, [r1] + adds r1, 0x1 + adds r2, 0x1 + cmp r2, 0x6 + ble _0800CE96 + movs r0, 0xFF + strb r0, [r1] + ldr r0, _0800CEC8 @ =gUnknown_823468B + str r0, [sp] + movs r0, 0x1 + negs r0, r0 + str r0, [sp, 0x4] + add r0, sp, 0xC + str r0, [sp, 0x8] + movs r0, 0x1 + movs r1, 0x2 + movs r2, 0x3E + movs r3, 0x12 + bl sub_812E51C + add sp, 0x14 + pop {r0} + bx r0 + .align 2, 0 +_0800CEC8: .4byte gUnknown_823468B +_0800CECC: .4byte gUnknown_841B6D5 +_0800CED0: .4byte gUnknown_300500C + thumb_func_end sub_800CE70 + + thumb_func_start sub_800CED4 +sub_800CED4: @ 800CED4 + push {r4-r6,lr} + sub sp, 0x2C + ldr r6, _0800CF30 @ =gUnknown_823468B + str r6, [sp] + movs r5, 0x1 + negs r5, r5 + str r5, [sp, 0x4] + ldr r0, _0800CF34 @ =gUnknown_841B6DC + str r0, [sp, 0x8] + movs r0, 0x1 + movs r1, 0x2 + movs r2, 0x2 + movs r3, 0x22 + bl sub_812E51C + ldr r4, _0800CF38 @ =gUnknown_300500C + ldr r0, [r4] + ldrh r1, [r0, 0xE] + add r0, sp, 0xC + movs r2, 0 + movs r3, 0x3 + bl sub_8008E78 + movs r1, 0xF0 + strb r1, [r0] + adds r0, 0x1 + ldr r1, [r4] + ldrb r1, [r1, 0x10] + movs r2, 0x2 + movs r3, 0x2 + bl sub_8008E78 + str r6, [sp] + str r5, [sp, 0x4] + add r0, sp, 0xC + str r0, [sp, 0x8] + movs r0, 0x1 + movs r1, 0x2 + movs r2, 0x3E + movs r3, 0x22 + bl sub_812E51C + add sp, 0x2C + pop {r4-r6} + pop {r0} + bx r0 + .align 2, 0 +_0800CF30: .4byte gUnknown_823468B +_0800CF34: .4byte gUnknown_841B6DC +_0800CF38: .4byte gUnknown_300500C + thumb_func_end sub_800CED4 + + thumb_func_start sub_800CF3C +sub_800CF3C: @ 800CF3C + push {r4-r6,lr} + sub sp, 0x2C + ldr r0, _0800CF60 @ =0x00000829 + bl sub_806E6D0 + lsls r0, 24 + lsrs r0, 24 + cmp r0, 0x1 + bne _0800CFAE + bl sub_806E25C + cmp r0, 0 + beq _0800CF64 + movs r0, 0x1 + bl sub_8088E8C + b _0800CF6A + .align 2, 0 +_0800CF60: .4byte 0x00000829 +_0800CF64: + movs r0, 0x1 + bl sub_8088EDC +_0800CF6A: + lsls r0, 16 + lsrs r6, r0, 16 + ldr r5, _0800CFB8 @ =gUnknown_823468B + str r5, [sp] + movs r4, 0x1 + negs r4, r4 + str r4, [sp, 0x4] + ldr r0, _0800CFBC @ =gUnknown_841B6E3 + str r0, [sp, 0x8] + movs r0, 0x1 + movs r1, 0x2 + movs r2, 0x2 + movs r3, 0x32 + bl sub_812E51C + add r0, sp, 0xC + adds r1, r6, 0 + movs r2, 0 + movs r3, 0x3 + bl sub_8008E78 + ldr r1, _0800CFC0 @ =gUnknown_841B6EB + bl sub_8008DA4 + str r5, [sp] + str r4, [sp, 0x4] + add r0, sp, 0xC + str r0, [sp, 0x8] + movs r0, 0x1 + movs r1, 0x2 + movs r2, 0x3E + movs r3, 0x32 + bl sub_812E51C +_0800CFAE: + add sp, 0x2C + pop {r4-r6} + pop {r0} + bx r0 + .align 2, 0 +_0800CFB8: .4byte gUnknown_823468B +_0800CFBC: .4byte gUnknown_841B6E3 +_0800CFC0: .4byte gUnknown_841B6EB + thumb_func_end sub_800CF3C + + thumb_func_start sub_800CFC4 +sub_800CFC4: @ 800CFC4 + push {r4-r6,lr} + sub sp, 0x2C + movs r6, 0 + movs r4, 0x82 + lsls r4, 4 +_0800CFCE: + lsls r0, r4, 16 + lsrs r0, 16 + bl sub_806E6D0 + lsls r0, 24 + cmp r0, 0 + beq _0800CFE2 + adds r0, r6, 0x1 + lsls r0, 24 + lsrs r6, r0, 24 +_0800CFE2: + adds r4, 0x1 + ldr r0, _0800D034 @ =0x00000827 + cmp r4, r0 + bls _0800CFCE + ldr r5, _0800D038 @ =gUnknown_823468B + str r5, [sp] + movs r4, 0x1 + negs r4, r4 + str r4, [sp, 0x4] + ldr r0, _0800D03C @ =gUnknown_841B6EC + str r0, [sp, 0x8] + movs r0, 0x1 + movs r1, 0x2 + movs r2, 0x2 + movs r3, 0x42 + bl sub_812E51C + add r0, sp, 0xC + adds r1, r6, 0 + movs r2, 0x2 + movs r3, 0x1 + bl sub_8008E78 + ldr r1, _0800D040 @ =gUnknown_841B6F3 + bl sub_8008DA4 + str r5, [sp] + str r4, [sp, 0x4] + add r0, sp, 0xC + str r0, [sp, 0x8] + movs r0, 0x1 + movs r1, 0x2 + movs r2, 0x3E + movs r3, 0x42 + bl sub_812E51C + add sp, 0x2C + pop {r4-r6} + pop {r0} + bx r0 + .align 2, 0 +_0800D034: .4byte 0x00000827 +_0800D038: .4byte gUnknown_823468B +_0800D03C: .4byte gUnknown_841B6EC +_0800D040: .4byte gUnknown_841B6F3 + thumb_func_end sub_800CFC4 + + thumb_func_start sub_800D044 +sub_800D044: @ 800D044 + push {r4,r5,lr} + adds r4, r0, 0 + lsls r4, 24 + lsrs r4, 24 + ldr r5, _0800D088 @ =gUnknown_300500C + ldr r0, [r5] + ldrb r0, [r0, 0x14] + lsrs r0, 3 + bl sub_8069788 + ldr r1, [r0] + movs r2, 0x90 + lsls r2, 1 + ldr r3, _0800D08C @ =0x000001b1 + adds r0, r4, 0 + bl sub_80017D0 + ldr r0, [r5] + ldrb r0, [r0, 0x14] + lsrs r0, 3 + bl sub_8069788 + ldr r0, [r0, 0x4] + movs r1, 0x20 + movs r2, 0x20 + bl sub_80703EC + ldr r0, _0800D090 @ =gUnknown_8234638 + bl sub_800D1E8 + pop {r4,r5} + pop {r0} + bx r0 + .align 2, 0 +_0800D088: .4byte gUnknown_300500C +_0800D08C: .4byte 0x000001b1 +_0800D090: .4byte gUnknown_8234638 + thumb_func_end sub_800D044 + + thumb_func_start sub_800D094 +sub_800D094: @ 800D094 + push {lr} + ldr r1, _0800D0AC @ =0x000001b1 + movs r0, 0 + movs r2, 0x20 + bl sub_814FF2C + ldr r0, _0800D0B0 @ =gUnknown_8234638 + bl sub_800D1E8 + pop {r0} + bx r0 + .align 2, 0 +_0800D0AC: .4byte 0x000001b1 +_0800D0B0: .4byte gUnknown_8234638 + thumb_func_end sub_800D094 + + thumb_func_start sub_800D0B4 +sub_800D0B4: @ 800D0B4 + push {r4-r6,lr} + mov r6, r8 + push {r6} + sub sp, 0xC + adds r5, r0, 0 + ldrb r0, [r5] + ldr r1, _0800D1D8 @ =0x000001b1 + ldrb r2, [r5, 0x1] + subs r2, 0x1 + lsls r2, 24 + lsrs r2, 24 + ldrb r3, [r5, 0x2] + subs r3, 0x1 + lsls r3, 24 + lsrs r3, 24 + movs r6, 0x1 + str r6, [sp] + str r6, [sp, 0x4] + movs r4, 0x2 + mov r8, r4 + str r4, [sp, 0x8] + bl sub_8002554 + ldrb r0, [r5] + movs r1, 0xD9 + lsls r1, 1 + ldrb r2, [r5, 0x1] + ldrb r3, [r5, 0x2] + subs r3, 0x1 + lsls r3, 24 + lsrs r3, 24 + ldrb r4, [r5, 0x3] + str r4, [sp] + ldrb r4, [r5, 0x4] + str r4, [sp, 0x4] + mov r4, r8 + str r4, [sp, 0x8] + bl sub_8002554 + ldrb r0, [r5] + ldr r1, _0800D1DC @ =0x000001b3 + ldrb r2, [r5, 0x3] + ldrb r3, [r5, 0x1] + adds r2, r3 + lsls r2, 24 + lsrs r2, 24 + ldrb r3, [r5, 0x2] + subs r3, 0x1 + lsls r3, 24 + lsrs r3, 24 + str r6, [sp] + str r6, [sp, 0x4] + str r4, [sp, 0x8] + bl sub_8002554 + ldrb r0, [r5] + movs r1, 0xDA + lsls r1, 1 + ldrb r2, [r5, 0x1] + subs r2, 0x1 + lsls r2, 24 + lsrs r2, 24 + ldrb r3, [r5, 0x2] + str r6, [sp] + ldrb r4, [r5, 0x4] + str r4, [sp, 0x4] + mov r4, r8 + str r4, [sp, 0x8] + bl sub_8002554 + ldrb r0, [r5] + movs r1, 0xDB + lsls r1, 1 + ldrb r2, [r5, 0x3] + ldrb r3, [r5, 0x1] + adds r2, r3 + lsls r2, 24 + lsrs r2, 24 + ldrb r3, [r5, 0x2] + str r6, [sp] + ldrb r4, [r5, 0x4] + str r4, [sp, 0x4] + mov r4, r8 + str r4, [sp, 0x8] + bl sub_8002554 + ldrb r0, [r5] + ldr r1, _0800D1E0 @ =0x000001b7 + ldrb r2, [r5, 0x1] + subs r2, 0x1 + lsls r2, 24 + lsrs r2, 24 + ldrb r3, [r5, 0x4] + ldrb r4, [r5, 0x2] + adds r3, r4 + lsls r3, 24 + lsrs r3, 24 + str r6, [sp] + str r6, [sp, 0x4] + mov r4, r8 + str r4, [sp, 0x8] + bl sub_8002554 + ldrb r0, [r5] + movs r1, 0xDC + lsls r1, 1 + ldrb r2, [r5, 0x1] + ldrb r3, [r5, 0x4] + ldrb r4, [r5, 0x2] + adds r3, r4 + lsls r3, 24 + lsrs r3, 24 + ldrb r4, [r5, 0x3] + str r4, [sp] + str r6, [sp, 0x4] + mov r4, r8 + str r4, [sp, 0x8] + bl sub_8002554 + ldrb r0, [r5] + ldr r1, _0800D1E4 @ =0x000001b9 + ldrb r2, [r5, 0x3] + ldrb r3, [r5, 0x1] + adds r2, r3 + lsls r2, 24 + lsrs r2, 24 + ldrb r3, [r5, 0x4] + ldrb r4, [r5, 0x2] + adds r3, r4 + lsls r3, 24 + lsrs r3, 24 + str r6, [sp] + str r6, [sp, 0x4] + mov r4, r8 + str r4, [sp, 0x8] + bl sub_8002554 + ldrb r0, [r5] + bl sub_80020BC + add sp, 0xC + pop {r3} + mov r8, r3 + pop {r4-r6} + pop {r0} + bx r0 + .align 2, 0 +_0800D1D8: .4byte 0x000001b1 +_0800D1DC: .4byte 0x000001b3 +_0800D1E0: .4byte 0x000001b7 +_0800D1E4: .4byte 0x000001b9 + thumb_func_end sub_800D0B4 + + thumb_func_start sub_800D1E8 +sub_800D1E8: @ 800D1E8 + push {r4-r6,lr} + sub sp, 0xC + adds r6, r0, 0 + ldrb r0, [r6] + ldrb r1, [r6, 0x1] + subs r2, r1, 0x1 + lsls r2, 24 + lsrs r2, 24 + ldrb r4, [r6, 0x2] + subs r3, r4, 0x1 + lsls r3, 24 + lsrs r3, 24 + ldrb r5, [r6, 0x3] + adds r1, r5 + adds r1, 0x1 + lsls r1, 24 + lsrs r1, 24 + str r1, [sp] + ldrb r1, [r6, 0x4] + adds r4, r1 + adds r4, 0x1 + lsls r4, 24 + lsrs r4, 24 + str r4, [sp, 0x4] + movs r1, 0x2 + str r1, [sp, 0x8] + movs r1, 0 + bl sub_8002554 + ldrb r0, [r6] + bl sub_80020BC + add sp, 0xC + pop {r4-r6} + pop {r0} + bx r0 + thumb_func_end sub_800D1E8 + + .align 2, 0 @ Don't pad with nop. |