diff options
Diffstat (limited to 'asm/intro.s')
-rwxr-xr-x | asm/intro.s | 7283 |
1 files changed, 7283 insertions, 0 deletions
diff --git a/asm/intro.s b/asm/intro.s new file mode 100755 index 0000000..51a8aa4 --- /dev/null +++ b/asm/intro.s @@ -0,0 +1,7283 @@ + .include "asm/macros.inc" + + .syntax unified + + .text + + thumb_func_start IntroMain +IntroMain: @ 0x0800927C + push {lr} + ldr r1, _08009294 @ =0x080792CC + ldr r0, _08009298 @ =0x0200B0C0 + ldrb r0, [r0, #3] + lsls r0, r0, #2 + adds r0, r0, r1 + ldr r0, [r0] + bl _call_via_r0 + pop {r0} + bx r0 + .align 2, 0 +_08009294: .4byte 0x080792CC +_08009298: .4byte 0x0200B0C0 + + thumb_func_start sub_929C +sub_929C: @ 0x0800929C + push {r4, lr} + bl sub_438 + movs r3, #0x80 + lsls r3, r3, #0x13 + movs r0, #0x80 + strh r0, [r3] + ldr r1, _08009318 @ =0x0400000A + movs r0, #5 + strh r0, [r1] + ldrh r0, [r3] + movs r2, #0x80 + lsls r2, r2, #2 + adds r1, r2, #0 + orrs r0, r1 + strh r0, [r3] + ldr r1, _0800931C @ =0x040000D4 + ldr r0, _08009320 @ =0x080798C0 + str r0, [r1] + movs r0, #0xc0 + lsls r0, r0, #0x13 + str r0, [r1, #4] + ldr r2, _08009324 @ =0x80000400 + str r2, [r1, #8] + ldr r0, [r1, #8] + ldr r0, _08009328 @ =0x0807A0C0 + str r0, [r1] + ldr r0, _0800932C @ =0x06004000 + str r0, [r1, #4] + str r2, [r1, #8] + ldr r0, [r1, #8] + ldr r0, _08009330 @ =gIntroCopyright_Pal + str r0, [r1] + movs r0, #0xa0 + lsls r0, r0, #0x13 + str r0, [r1, #4] + ldr r0, _08009334 @ =0x80000100 + str r0, [r1, #8] + ldr r0, [r1, #8] + ldr r4, _08009338 @ =0x0200B0C0 + ldrh r0, [r3] + movs r2, #0 + movs r1, #0 + strh r0, [r4, #0x16] + ldr r0, _0800933C @ =0x0202BF10 + strh r1, [r0] + ldr r0, _08009340 @ =0x0202C790 + strb r2, [r0] + ldr r0, _08009344 @ =sub_93F8 + 1 + bl sub_898 + bl sub_CBC + bl sub_24C + ldrb r0, [r4, #3] + adds r0, #1 + strb r0, [r4, #3] + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_08009318: .4byte 0x0400000A +_0800931C: .4byte 0x040000D4 +_08009320: .4byte 0x080798C0 +_08009324: .4byte 0x80000400 +_08009328: .4byte 0x0807A0C0 +_0800932C: .4byte 0x06004000 +_08009330: .4byte gIntroCopyright_Pal +_08009334: .4byte 0x80000100 +_08009338: .4byte 0x0200B0C0 +_0800933C: .4byte 0x0202BF10 +_08009340: .4byte 0x0202C790 +_08009344: .4byte sub_93F8 + 1 + + thumb_func_start sub_9348 +sub_9348: @ 0x08009348 + ldr r1, _08009368 @ =0x0202BF10 + ldrh r0, [r1] + adds r0, #1 + strh r0, [r1] + lsls r0, r0, #0x10 + asrs r0, r0, #0x10 + cmp r0, #0x78 + ble _08009364 + movs r0, #0 + strh r0, [r1] + ldr r1, _0800936C @ =0x0200B0C0 + ldrb r0, [r1, #3] + adds r0, #1 + strb r0, [r1, #3] +_08009364: + bx lr + .align 2, 0 +_08009368: .4byte 0x0202BF10 +_0800936C: .4byte 0x0200B0C0 + + thumb_func_start sub_9370 +sub_9370: @ 0x08009370 + push {lr} + movs r0, #0 + bl sub_FF74 + bl sub_D10 + ldr r1, _08009388 @ =0x0200B0C0 + ldrb r0, [r1, #3] + adds r0, #1 + strb r0, [r1, #3] + pop {r0} + bx r0 + .align 2, 0 +_08009388: .4byte 0x0200B0C0 + + thumb_func_start sub_938C +sub_938C: @ 0x0800938C + push {lr} + ldr r1, _080093C0 @ =0x080792E0 + ldr r0, _080093C4 @ =0x0202C790 + ldrb r0, [r0] + lsls r0, r0, #0x18 + asrs r0, r0, #0x18 + lsls r0, r0, #2 + adds r0, r0, r1 + ldr r0, [r0] + bl _call_via_r0 + ldr r1, _080093C8 @ =0x0202BF10 + ldrh r0, [r1] + adds r0, #1 + strh r0, [r1] + ldr r2, _080093CC @ =0x0200B0C0 + ldrh r1, [r2, #0x18] + movs r0, #9 + ands r0, r1 + cmp r0, #0 + beq _080093BA + movs r0, #4 + strb r0, [r2, #3] +_080093BA: + pop {r0} + bx r0 + .align 2, 0 +_080093C0: .4byte 0x080792E0 +_080093C4: .4byte 0x0202C790 +_080093C8: .4byte 0x0202BF10 +_080093CC: .4byte 0x0200B0C0 + + thumb_func_start sub_93D0 +sub_93D0: @ 0x080093D0 + push {lr} + bl sub_2B4 + bl m4aMPlayAllStop + bl sub_D10 + bl sub_8BC + ldr r1, _080093F4 @ =0x0201A4B4 + movs r0, #0 + strb r0, [r1] + movs r0, #1 + bl sub_23C + pop {r0} + bx r0 + .align 2, 0 +_080093F4: .4byte 0x0201A4B4 + + thumb_func_start sub_93F8 +sub_93F8: @ 0x080093F8 + push {lr} + ldr r0, _08009480 @ =0x04000004 + ldrh r1, [r0] + movs r0, #8 + ands r0, r1 + cmp r0, #0 + beq _0800947C + bl m4aSoundMain + bl VBlankIntrWait + ldr r1, _08009484 @ =0x040000D4 + ldr r0, _08009488 @ =0x03005000 + str r0, [r1] + movs r0, #0xe0 + lsls r0, r0, #0x13 + str r0, [r1, #4] + ldr r0, _0800948C @ =0x84000100 + str r0, [r1, #8] + ldr r0, [r1, #8] + movs r2, #0x80 + lsls r2, r2, #0x13 + ldr r1, _08009490 @ =0x0200B0C0 + ldrh r0, [r1, #0x16] + strh r0, [r2] + adds r2, #0x10 + movs r3, #0xba + lsls r3, r3, #2 + adds r0, r1, r3 + ldrh r0, [r0] + strh r0, [r2] + adds r2, #2 + adds r3, #2 + adds r0, r1, r3 + ldrh r0, [r0] + strh r0, [r2] + adds r2, #2 + adds r3, #2 + adds r0, r1, r3 + ldrh r0, [r0] + strh r0, [r2] + adds r2, #2 + adds r3, #2 + adds r0, r1, r3 + ldrh r0, [r0] + strh r0, [r2] + adds r2, #2 + adds r3, #2 + adds r0, r1, r3 + ldrh r0, [r0] + strh r0, [r2] + adds r2, #2 + adds r3, #2 + adds r0, r1, r3 + ldrh r0, [r0] + strh r0, [r2] + adds r2, #2 + adds r3, #2 + adds r0, r1, r3 + ldrh r0, [r0] + strh r0, [r2] + adds r2, #2 + ldr r0, _08009494 @ =0x000002F6 + adds r1, r1, r0 + ldrh r0, [r1] + strh r0, [r2] +_0800947C: + pop {r0} + bx r0 + .align 2, 0 +_08009480: .4byte 0x04000004 +_08009484: .4byte 0x040000D4 +_08009488: .4byte 0x03005000 +_0800948C: .4byte 0x84000100 +_08009490: .4byte 0x0200B0C0 +_08009494: .4byte 0x000002F6 + + thumb_func_start sub_9498 +sub_9498: @ 0x08009498 + push {r4, r5, r6, r7, lr} + mov r7, sl + mov r6, sb + mov r5, r8 + push {r5, r6, r7} + bl sub_490 + bl sub_518 + bl sub_578 + movs r2, #0x80 + lsls r2, r2, #0x13 + movs r1, #0x80 + lsls r1, r1, #5 + adds r0, r1, #0 + strh r0, [r2] + ldr r1, _0800961C @ =0x04000008 + movs r3, #0xd0 + lsls r3, r3, #5 + adds r0, r3, #0 + strh r0, [r1] + ldrh r0, [r2] + movs r7, #0x80 + lsls r7, r7, #1 + adds r1, r7, #0 + orrs r0, r1 + strh r0, [r2] + ldr r1, _08009620 @ =0x0400000A + ldr r3, _08009624 @ =0x00005B01 + adds r0, r3, #0 + strh r0, [r1] + ldrh r0, [r2] + movs r7, #0x80 + lsls r7, r7, #2 + adds r1, r7, #0 + orrs r0, r1 + strh r0, [r2] + ldr r1, _08009628 @ =0x0400000C + ldr r3, _0800962C @ =0x00005D02 + adds r0, r3, #0 + strh r0, [r1] + ldrh r0, [r2] + movs r7, #0x80 + lsls r7, r7, #3 + adds r1, r7, #0 + orrs r0, r1 + strh r0, [r2] + ldr r1, _08009630 @ =0x0400000E + ldr r3, _08009634 @ =0x00001F03 + adds r0, r3, #0 + strh r0, [r1] + ldrh r0, [r2] + movs r7, #0x80 + lsls r7, r7, #4 + adds r1, r7, #0 + orrs r0, r1 + strh r0, [r2] + ldr r4, _08009638 @ =0x040000D4 + ldr r0, _0800963C @ =0x080B9CC0 + str r0, [r4] + ldr r0, _08009640 @ =0x0600D000 + str r0, [r4, #4] + ldr r2, _08009644 @ =0x80000400 + str r2, [r4, #8] + ldr r0, [r4, #8] + ldr r0, _08009648 @ =0x080BC4C0 + str r0, [r4] + ldr r0, _0800964C @ =0x0600D800 + str r0, [r4, #4] + ldr r1, _08009650 @ =0x80000800 + str r1, [r4, #8] + ldr r0, [r4, #8] + ldr r0, _08009654 @ =0x080BB4C0 + str r0, [r4] + ldr r0, _08009658 @ =0x0600E800 + str r0, [r4, #4] + str r1, [r4, #8] + ldr r0, [r4, #8] + ldr r0, _0800965C @ =0x080B3CA0 + str r0, [r4] + ldr r0, _08009660 @ =0x0600F800 + str r0, [r4, #4] + str r2, [r4, #8] + ldr r0, [r4, #8] + ldr r0, _08009664 @ =0x080B44A0 + str r0, [r4] + movs r0, #0xc0 + lsls r0, r0, #0x13 + str r0, [r4, #4] + ldr r0, _08009668 @ =0x80002C00 + str r0, [r4, #8] + ldr r0, [r4, #8] + ldr r0, _0800966C @ =0x080BD4C0 + str r0, [r4] + ldr r0, _08009670 @ =0x0201C1C0 + str r0, [r4, #4] + ldr r0, _08009674 @ =0x80003400 + str r0, [r4, #8] + ldr r0, [r4, #8] + ldr r6, _08009678 @ =gIntroScene1Sprites_Pals + movs r0, #0xa0 + lsls r0, r0, #0x13 + mov sl, r0 + movs r2, #0x80 + lsls r2, r2, #2 + adds r0, r6, #0 + mov r1, sl + movs r3, #0x20 + bl sub_10170 + ldr r0, _0800967C @ =gIntroScene1Sprites_Gfx + str r0, [r4] + ldr r0, _08009680 @ =0x06010000 + str r0, [r4, #4] + ldr r0, _08009684 @ =0x80004000 + str r0, [r4, #8] + ldr r0, [r4, #8] + str r6, [r4] + ldr r5, _08009688 @ =0x05000200 + str r5, [r4, #4] + ldr r1, _0800968C @ =0x80000100 + mov r8, r1 + str r1, [r4, #8] + ldr r0, [r4, #8] + bl sub_96A8 + ldr r1, _08009690 @ =0x0200B0C0 + ldr r2, _08009694 @ =0x0202ADA0 + ldrh r3, [r2] + movs r7, #0xba + lsls r7, r7, #2 + adds r0, r1, r7 + movs r7, #0 + mov sb, r7 + strh r3, [r0] + ldrh r3, [r2, #2] + ldr r7, _08009698 @ =0x000002EA + adds r0, r1, r7 + strh r3, [r0] + ldrh r3, [r2, #0x24] + adds r7, #2 + adds r0, r1, r7 + strh r3, [r0] + ldrh r3, [r2, #0x26] + adds r7, #2 + adds r0, r1, r7 + strh r3, [r0] + ldrh r3, [r2, #0xc] + adds r7, #2 + adds r0, r1, r7 + strh r3, [r0] + ldrh r3, [r2, #0xe] + adds r7, #2 + adds r0, r1, r7 + strh r3, [r0] + ldrh r3, [r2, #0x18] + adds r7, #2 + adds r0, r1, r7 + strh r3, [r0] + ldrh r0, [r2, #0x1a] + ldr r2, _0800969C @ =0x000002F6 + adds r1, r1, r2 + strh r0, [r1] + bl sub_CBC + mov r0, sl + adds r1, r6, #0 + movs r2, #0 + bl sub_FEB8 + str r6, [r4] + str r5, [r4, #4] + mov r3, r8 + str r3, [r4, #8] + ldr r0, [r4, #8] + mov r7, sb + str r7, [r4] + str r5, [r4, #4] + ldr r0, _080096A0 @ =0x80000010 + str r0, [r4, #8] + ldr r0, [r4, #8] + ldr r1, _080096A4 @ =0x0202C790 + ldrb r0, [r1] + adds r0, #1 + strb r0, [r1] + pop {r3, r4, r5} + mov r8, r3 + mov sb, r4 + mov sl, r5 + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + .align 2, 0 +_0800961C: .4byte 0x04000008 +_08009620: .4byte 0x0400000A +_08009624: .4byte 0x00005B01 +_08009628: .4byte 0x0400000C +_0800962C: .4byte 0x00005D02 +_08009630: .4byte 0x0400000E +_08009634: .4byte 0x00001F03 +_08009638: .4byte 0x040000D4 +_0800963C: .4byte 0x080B9CC0 +_08009640: .4byte 0x0600D000 +_08009644: .4byte 0x80000400 +_08009648: .4byte 0x080BC4C0 +_0800964C: .4byte 0x0600D800 +_08009650: .4byte 0x80000800 +_08009654: .4byte 0x080BB4C0 +_08009658: .4byte 0x0600E800 +_0800965C: .4byte 0x080B3CA0 +_08009660: .4byte 0x0600F800 +_08009664: .4byte 0x080B44A0 +_08009668: .4byte 0x80002C00 +_0800966C: .4byte 0x080BD4C0 +_08009670: .4byte 0x0201C1C0 +_08009674: .4byte 0x80003400 +_08009678: .4byte gIntroScene1Sprites_Pals +_0800967C: .4byte gIntroScene1Sprites_Gfx +_08009680: .4byte 0x06010000 +_08009684: .4byte 0x80004000 +_08009688: .4byte 0x05000200 +_0800968C: .4byte 0x80000100 +_08009690: .4byte 0x0200B0C0 +_08009694: .4byte 0x0202ADA0 +_08009698: .4byte 0x000002EA +_0800969C: .4byte 0x000002F6 +_080096A0: .4byte 0x80000010 +_080096A4: .4byte 0x0202C790 + + thumb_func_start sub_96A8 +sub_96A8: @ 0x080096A8 + push {r4, r5, r6, lr} + mov r6, r8 + push {r6} + ldr r0, _0800975C @ =0x0201A450 + mov ip, r0 + movs r5, #0 + movs r2, #0 + movs r1, #0x78 + mov r8, r1 + mov r1, r8 + strh r1, [r0, #0x10] + movs r6, #0x50 + strh r6, [r0, #0x12] + strh r2, [r0, #0x18] + movs r4, #1 + strb r4, [r0, #0x1c] + movs r0, #0x9c + mov r1, ip + strh r0, [r1, #0x30] + movs r0, #0x92 + strh r0, [r1, #0x32] + mov r0, ip + adds r0, #0x3c + strb r5, [r0] + strh r2, [r1, #0x3a] + movs r0, #0x9d + strh r0, [r1, #0x20] + movs r0, #0x93 + strh r0, [r1, #0x22] + mov r0, ip + adds r0, #0x2c + strb r5, [r0] + adds r0, #0x14 + movs r1, #0x80 + strh r1, [r0] + adds r0, #2 + strh r1, [r0] + adds r0, #0xa + strb r4, [r0] + ldr r0, _08009760 @ =0x0202ADA0 + ldr r1, _08009764 @ =0x0000FFA8 + strh r1, [r0] + adds r1, #0x22 + strh r1, [r0, #2] + strh r2, [r0, #8] + strh r2, [r0, #0xa] + movs r3, #0x80 + lsls r3, r3, #1 + strh r3, [r0, #0xc] + strh r2, [r0, #0xe] + strh r2, [r0, #0x14] + movs r1, #0xfb + strh r1, [r0, #0x24] + strh r2, [r0, #0x26] + strh r2, [r0, #0x2c] + strh r2, [r0, #0x18] + strh r2, [r0, #0x1a] + mov r1, r8 + mov r0, ip + strh r1, [r0] + strh r6, [r0, #2] + strh r2, [r0, #8] + strh r2, [r0, #0xa] + strb r4, [r0, #0xc] + ldr r0, _08009768 @ =0x0201C1B8 + strb r5, [r0] + ldr r1, _0800976C @ =0x0202ADD4 + movs r0, #0x10 + strb r0, [r1] + ldr r0, _08009770 @ =0x0202C594 + strh r2, [r0] + ldr r0, _08009774 @ =0x02019C30 + str r3, [r0] + ldr r0, _08009778 @ =0x0201C188 + str r3, [r0] + ldr r0, _0800977C @ =0x0202BF10 + strh r2, [r0] + ldr r0, _08009780 @ =0x0202A578 + strh r2, [r0] + ldr r1, _08009784 @ =0x0202BEF0 + movs r0, #0x20 + str r0, [r1] + ldr r1, _08009788 @ =0x0202C5A8 + movs r0, #8 + strb r0, [r1] + pop {r3} + mov r8, r3 + pop {r4, r5, r6} + pop {r0} + bx r0 + .align 2, 0 +_0800975C: .4byte 0x0201A450 +_08009760: .4byte 0x0202ADA0 +_08009764: .4byte 0x0000FFA8 +_08009768: .4byte 0x0201C1B8 +_0800976C: .4byte 0x0202ADD4 +_08009770: .4byte 0x0202C594 +_08009774: .4byte 0x02019C30 +_08009778: .4byte 0x0201C188 +_0800977C: .4byte 0x0202BF10 +_08009780: .4byte 0x0202A578 +_08009784: .4byte 0x0202BEF0 +_08009788: .4byte 0x0202C5A8 + + thumb_func_start sub_978C +sub_978C: @ 0x0800978C + push {r4, r5, r6, lr} + bl sub_9CB8 + ldr r1, _080097C0 @ =0x0201A450 + ldrh r2, [r1, #8] + movs r3, #8 + ldrsh r0, [r1, r3] + cmp r0, #0x24 + bne _080097CC + ldrh r0, [r1, #0xa] + adds r0, #1 + movs r2, #0 + strh r0, [r1, #0xa] + lsls r0, r0, #0x10 + asrs r0, r0, #0x10 + cmp r0, #0x1b + ble _0800981A + strh r2, [r1, #0xa] + ldr r0, _080097C4 @ =0x0202A578 + strh r2, [r0] + ldr r1, _080097C8 @ =0x0202C790 + ldrb r0, [r1] + adds r0, #1 + strb r0, [r1] + b _0800981A + .align 2, 0 +_080097C0: .4byte 0x0201A450 +_080097C4: .4byte 0x0202A578 +_080097C8: .4byte 0x0202C790 +_080097CC: + ldrh r0, [r1, #0xa] + adds r0, #1 + strh r0, [r1, #0xa] + lsls r0, r0, #0x10 + asrs r0, r0, #0x10 + cmp r0, #1 + ble _080097E2 + movs r0, #0 + strh r0, [r1, #0xa] + adds r0, r2, #1 + strh r0, [r1, #8] +_080097E2: + ldr r3, _08009820 @ =0x0202BF10 + ldr r5, _08009824 @ =0x086A77A8 + ldr r4, _08009828 @ =0x0202A578 + movs r6, #0 + ldrsh r2, [r4, r6] + lsls r2, r2, #2 + ldr r0, _0800982C @ =0x0202C5A8 + movs r1, #0 + ldrsb r1, [r0, r1] + lsls r0, r1, #2 + adds r0, r0, r1 + lsls r0, r0, #3 + adds r2, r2, r0 + adds r0, r5, #2 + adds r0, r2, r0 + movs r6, #0 + ldrsh r1, [r3, r6] + movs r3, #0 + ldrsh r0, [r0, r3] + cmp r1, r0 + blt _0800981A + adds r0, r2, r5 + ldrh r0, [r0] + bl m4aSongNumStart + ldrh r0, [r4] + adds r0, #1 + strh r0, [r4] +_0800981A: + pop {r4, r5, r6} + pop {r0} + bx r0 + .align 2, 0 +_08009820: .4byte 0x0202BF10 +_08009824: .4byte 0x086A77A8 +_08009828: .4byte 0x0202A578 +_0800982C: .4byte 0x0202C5A8 + + thumb_func_start sub_9830 +sub_9830: @ 0x08009830 + push {lr} + ldr r0, _08009868 @ =0x02019C30 + ldr r2, [r0] + subs r2, #0x10 + str r2, [r0] + ldr r1, _0800986C @ =0x0201C188 + ldr r0, [r1] + subs r0, #0x10 + str r0, [r1] + ldr r1, _08009870 @ =0x0201A450 + ldrh r0, [r1] + subs r0, #1 + strh r0, [r1] + cmp r2, #0x1f + bgt _0800985E + movs r0, #0 + strh r0, [r1, #0xa] + movs r0, #0x25 + strh r0, [r1, #8] + ldr r1, _08009874 @ =0x0202C790 + ldrb r0, [r1] + adds r0, #1 + strb r0, [r1] +_0800985E: + bl sub_9D70 + pop {r0} + bx r0 + .align 2, 0 +_08009868: .4byte 0x02019C30 +_0800986C: .4byte 0x0201C188 +_08009870: .4byte 0x0201A450 +_08009874: .4byte 0x0202C790 + + thumb_func_start sub_9878 +sub_9878: @ 0x08009878 + push {lr} + ldr r1, _080098AC @ =0x0201A450 + ldrh r0, [r1, #0xa] + adds r0, #1 + strh r0, [r1, #0xa] + lsls r0, r0, #0x10 + asrs r0, r0, #0x10 + cmp r0, #3 + ble _080098A8 + movs r0, #0 + strh r0, [r1, #0xa] + movs r0, #0x78 + strh r0, [r1] + movs r0, #0x58 + strh r0, [r1, #2] + movs r0, #1 + strb r0, [r1, #0xc] + movs r0, #0xd8 + bl m4aSongNumStart + ldr r1, _080098B0 @ =0x0202C790 + ldrb r0, [r1] + adds r0, #1 + strb r0, [r1] +_080098A8: + pop {r0} + bx r0 + .align 2, 0 +_080098AC: .4byte 0x0201A450 +_080098B0: .4byte 0x0202C790 + + thumb_func_start sub_98B4 +sub_98B4: @ 0x080098B4 + push {lr} + ldr r1, _080098F0 @ =0x0201A450 + ldrh r2, [r1, #8] + movs r3, #8 + ldrsh r0, [r1, r3] + cmp r0, #0x2b + bne _08009900 + ldrh r0, [r1, #0xa] + adds r0, #1 + strh r0, [r1, #0xa] + lsls r0, r0, #0x10 + asrs r0, r0, #0x10 + cmp r0, #1 + ble _08009916 + movs r0, #0 + strb r0, [r1, #0xc] + ldr r0, _080098F4 @ =0x080B3C60 + ldr r1, _080098F8 @ =0x050000E0 + movs r2, #0x20 + movs r3, #0 + bl sub_10170 + movs r0, #8 + bl m4aSongNumStart + ldr r1, _080098FC @ =0x0202C790 + ldrb r0, [r1] + adds r0, #1 + strb r0, [r1] + b _08009916 + .align 2, 0 +_080098F0: .4byte 0x0201A450 +_080098F4: .4byte 0x080B3C60 +_080098F8: .4byte 0x050000E0 +_080098FC: .4byte 0x0202C790 +_08009900: + ldrh r0, [r1, #0xa] + adds r0, #1 + strh r0, [r1, #0xa] + lsls r0, r0, #0x10 + asrs r0, r0, #0x10 + cmp r0, #1 + ble _08009916 + movs r0, #0 + strh r0, [r1, #0xa] + adds r0, r2, #1 + strh r0, [r1, #8] +_08009916: + bl sub_9CB8 + pop {r0} + bx r0 + + thumb_func_start sub_9920 +sub_9920: @ 0x08009920 + push {lr} + ldr r0, _08009954 @ =0x0202BF10 + movs r1, #0 + ldrsh r0, [r0, r1] + movs r1, #3 + bl __modsi3 + lsls r0, r0, #0x10 + cmp r0, #0 + bne _08009982 + ldr r1, _08009958 @ =0x0202C594 + ldrh r2, [r1] + movs r3, #0 + ldrsh r0, [r1, r3] + cmp r0, #7 + bgt _08009964 + adds r0, r2, #1 + strh r0, [r1] + ldr r1, _0800995C @ =0x0201C1B8 + ldrb r0, [r1] + adds r0, #1 + strb r0, [r1] + ldr r1, _08009960 @ =0x0202ADD4 + ldrb r0, [r1] + subs r0, #1 + b _08009976 + .align 2, 0 +_08009954: .4byte 0x0202BF10 +_08009958: .4byte 0x0202C594 +_0800995C: .4byte 0x0201C1B8 +_08009960: .4byte 0x0202ADD4 +_08009964: + ldr r0, _0800998C @ =0x0201C1C0 + ldr r1, _08009990 @ =0x060036E0 + movs r2, #8 + movs r3, #8 + bl sub_10708 + ldr r1, _08009994 @ =0x0202C790 + ldrb r0, [r1] + adds r0, #1 +_08009976: + strb r0, [r1] + ldr r2, _08009998 @ =0x0201A450 + ldrh r1, [r2, #0x18] + movs r0, #1 + subs r0, r0, r1 + strh r0, [r2, #0x18] +_08009982: + bl sub_9E90 + pop {r0} + bx r0 + .align 2, 0 +_0800998C: .4byte 0x0201C1C0 +_08009990: .4byte 0x060036E0 +_08009994: .4byte 0x0202C790 +_08009998: .4byte 0x0201A450 + + thumb_func_start sub_999C +sub_999C: @ 0x0800999C + push {r4, r5, lr} + ldr r5, _08009A84 @ =0x0202BEF0 + ldr r0, [r5] + cmp r0, #0 + ble _080099D0 + subs r0, #2 + str r0, [r5] + cmp r0, #0 + bgt _080099B2 + movs r0, #0 + str r0, [r5] +_080099B2: + ldr r4, _08009A88 @ =gIntroScene1Sprites_Pals + movs r1, #0xa0 + lsls r1, r1, #0x13 + movs r2, #0x80 + lsls r2, r2, #2 + ldrh r3, [r5] + adds r0, r4, #0 + bl sub_10170 + ldr r1, _08009A8C @ =0x05000200 + ldrh r3, [r5] + adds r0, r4, #0 + movs r2, #0x20 + bl sub_10170 +_080099D0: + ldr r5, _08009A90 @ =0x0202BF10 + movs r1, #0 + ldrsh r0, [r5, r1] + movs r1, #3 + bl __modsi3 + lsls r0, r0, #0x10 + cmp r0, #0 + bne _080099EC + ldr r2, _08009A94 @ =0x0201A450 + ldrh r1, [r2, #0x18] + movs r0, #1 + subs r0, r0, r1 + strh r0, [r2, #0x18] +_080099EC: + ldr r4, _08009A98 @ =0x0202ADA0 + ldrh r0, [r4] + subs r0, #1 + strh r0, [r4] + ldrh r0, [r5] + movs r5, #1 + ands r0, r5 + cmp r0, #0 + bne _08009A04 + ldrh r0, [r4, #2] + subs r0, #1 + strh r0, [r4, #2] +_08009A04: + ldr r1, _08009A9C @ =0x0200B0C0 + ldrh r2, [r4] + movs r3, #0xba + lsls r3, r3, #2 + adds r0, r1, r3 + strh r2, [r0] + ldrh r0, [r4, #2] + ldr r2, _08009AA0 @ =0x000002EA + adds r1, r1, r2 + strh r0, [r1] + ldrh r0, [r4, #0xa] + adds r0, #1 + strh r0, [r4, #0xa] + ldr r2, _08009AA4 @ =0x086A7768 + movs r1, #8 + ldrsh r3, [r4, r1] + lsls r1, r3, #2 + adds r1, r1, r2 + lsls r0, r0, #0x10 + asrs r0, r0, #0x10 + movs r2, #2 + ldrsh r1, [r1, r2] + cmp r0, r1 + ble _08009A78 + ldr r1, _08009AA8 @ =0x086A7788 + lsls r0, r3, #1 + adds r0, r0, r1 + movs r3, #0 + ldrsh r0, [r0, r3] + lsls r0, r0, #1 + ldr r1, _08009AAC @ =0x0201C1C0 + adds r0, r0, r1 + ldr r1, _08009AB0 @ =0x060036E0 + movs r2, #8 + movs r3, #8 + bl sub_10708 + ldrh r0, [r4, #8] + adds r0, #1 + strh r0, [r4, #8] + lsls r0, r0, #0x10 + asrs r0, r0, #0x10 + cmp r0, #3 + ble _08009A78 + ldr r1, _08009A94 @ =0x0201A450 + adds r0, r1, #0 + adds r0, #0x3c + strb r5, [r0] + subs r0, #0x10 + strb r5, [r0] + movs r0, #0 + strb r0, [r1, #0x1c] + movs r0, #0 + strh r0, [r4, #0x14] + ldr r1, _08009AB4 @ =0x0202C790 + ldrb r0, [r1] + adds r0, #1 + strb r0, [r1] +_08009A78: + bl sub_9E90 + pop {r4, r5} + pop {r0} + bx r0 + .align 2, 0 +_08009A84: .4byte 0x0202BEF0 +_08009A88: .4byte gIntroScene1Sprites_Pals +_08009A8C: .4byte 0x05000200 +_08009A90: .4byte 0x0202BF10 +_08009A94: .4byte 0x0201A450 +_08009A98: .4byte 0x0202ADA0 +_08009A9C: .4byte 0x0200B0C0 +_08009AA0: .4byte 0x000002EA +_08009AA4: .4byte 0x086A7768 +_08009AA8: .4byte 0x086A7788 +_08009AAC: .4byte 0x0201C1C0 +_08009AB0: .4byte 0x060036E0 +_08009AB4: .4byte 0x0202C790 + + thumb_func_start sub_9AB8 +sub_9AB8: @ 0x08009AB8 + push {r4, lr} + ldr r1, _08009B54 @ =0x0201A450 + ldrh r0, [r1, #0x30] + subs r0, #0xe + strh r0, [r1, #0x30] + ldrh r0, [r1, #0x32] + subs r0, #0xd + strh r0, [r1, #0x32] + ldr r3, _08009B58 @ =0x0202ADA0 + ldrh r0, [r3, #0x24] + subs r0, #0x10 + strh r0, [r3, #0x24] + ldrh r0, [r3, #0x26] + adds r0, #1 + strh r0, [r3, #0x26] + ldrh r0, [r3, #0xc] + subs r0, #0x10 + strh r0, [r3, #0xc] + ldrh r0, [r1, #0x20] + subs r0, #0xe + strh r0, [r1, #0x20] + ldrh r0, [r1, #0x22] + subs r0, #0xd + strh r0, [r1, #0x22] + adds r2, r1, #0 + adds r2, #0x40 + ldrh r0, [r2] + adds r0, #0xb + strh r0, [r2] + adds r1, #0x42 + ldrh r0, [r1] + subs r0, #2 + strh r0, [r1] + ldr r0, _08009B5C @ =0x0202BF10 + ldrh r0, [r0] + movs r1, #1 + ands r0, r1 + adds r4, r3, #0 + cmp r0, #0 + bne _08009B14 + ldrh r0, [r4] + subs r0, #1 + strh r0, [r4] + ldrh r0, [r4, #2] + subs r0, #1 + strh r0, [r4, #2] +_08009B14: + ldrh r0, [r4, #0xa] + adds r0, #1 + strh r0, [r4, #0xa] + ldr r2, _08009B60 @ =0x086A7768 + movs r1, #8 + ldrsh r3, [r4, r1] + lsls r1, r3, #2 + adds r1, r1, r2 + lsls r0, r0, #0x10 + asrs r0, r0, #0x10 + movs r2, #2 + ldrsh r1, [r1, r2] + cmp r0, r1 + ble _08009B94 + adds r0, r3, #0 + cmp r0, #6 + bgt _08009B70 + ldr r1, _08009B64 @ =0x086A7788 + lsls r0, r3, #1 + adds r0, r0, r1 + movs r2, #0 + ldrsh r0, [r0, r2] + lsls r0, r0, #1 + ldr r1, _08009B68 @ =0x0201C1C0 + adds r0, r0, r1 + ldr r1, _08009B6C @ =0x060036E0 + movs r2, #8 + movs r3, #8 + bl sub_10708 + b _08009B8A + .align 2, 0 +_08009B54: .4byte 0x0201A450 +_08009B58: .4byte 0x0202ADA0 +_08009B5C: .4byte 0x0202BF10 +_08009B60: .4byte 0x086A7768 +_08009B64: .4byte 0x086A7788 +_08009B68: .4byte 0x0201C1C0 +_08009B6C: .4byte 0x060036E0 +_08009B70: + ldr r1, _08009BF0 @ =0x086A7788 + lsls r0, r3, #1 + adds r0, r0, r1 + movs r3, #0 + ldrsh r0, [r0, r3] + lsls r0, r0, #1 + ldr r1, _08009BF4 @ =0x0201C1C0 + adds r0, r0, r1 + ldr r1, _08009BF8 @ =0x060032C0 + movs r2, #0xa + movs r3, #0xa + bl sub_10708 +_08009B8A: + ldr r1, _08009BFC @ =0x0202ADA0 + ldrh r0, [r1, #8] + adds r0, #1 + strh r0, [r1, #8] + adds r4, r1, #0 +_08009B94: + adds r1, r4, #0 + ldrh r0, [r1, #0x14] + adds r0, #1 + strh r0, [r1, #0x14] + lsls r0, r0, #0x10 + asrs r0, r0, #0x10 + cmp r0, #9 + ble _08009BB0 + movs r0, #0 + strh r0, [r1, #0x14] + ldr r1, _08009C00 @ =0x0202C790 + ldrb r0, [r1] + adds r0, #2 + strb r0, [r1] +_08009BB0: + bl sub_9E90 + ldr r1, _08009C04 @ =0x0200B0C0 + ldrh r2, [r4] + movs r3, #0xba + lsls r3, r3, #2 + adds r0, r1, r3 + strh r2, [r0] + ldrh r2, [r4, #2] + adds r3, #2 + adds r0, r1, r3 + strh r2, [r0] + ldrh r2, [r4, #0x24] + adds r3, #2 + adds r0, r1, r3 + strh r2, [r0] + ldrh r2, [r4, #0x26] + adds r3, #2 + adds r0, r1, r3 + strh r2, [r0] + ldrh r2, [r4, #0xc] + adds r3, #2 + adds r0, r1, r3 + strh r2, [r0] + ldrh r0, [r4, #0xe] + ldr r2, _08009C08 @ =0x000002F2 + adds r1, r1, r2 + strh r0, [r1] + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_08009BF0: .4byte 0x086A7788 +_08009BF4: .4byte 0x0201C1C0 +_08009BF8: .4byte 0x060032C0 +_08009BFC: .4byte 0x0202ADA0 +_08009C00: .4byte 0x0202C790 +_08009C04: .4byte 0x0200B0C0 +_08009C08: .4byte 0x000002F2 + + thumb_func_start nullsub_4 +nullsub_4: @ 0x08009C0C + bx lr + + thumb_func_start sub_9C10 +sub_9C10: @ 0x08009C10 + push {r4, lr} + ldr r4, _08009C7C @ =0x0202ADA0 + ldrh r0, [r4, #0x18] + adds r0, #1 + strh r0, [r4, #0x18] + ldr r0, _08009C80 @ =0x0202BF10 + ldrh r0, [r0] + movs r1, #1 + ands r0, r1 + cmp r0, #0 + bne _08009C40 + ldr r1, _08009C84 @ =0x0201A450 + ldrh r0, [r1, #0x30] + subs r0, #1 + strh r0, [r1, #0x30] + ldrh r0, [r1, #0x32] + subs r0, #1 + strh r0, [r1, #0x32] + ldrh r0, [r1, #0x20] + subs r0, #2 + strh r0, [r1, #0x20] + ldrh r0, [r1, #0x22] + subs r0, #2 + strh r0, [r1, #0x22] +_08009C40: + bl sub_9E90 + ldr r1, _08009C88 @ =0x0200B0C0 + ldrh r2, [r4, #0x18] + movs r3, #0xbd + lsls r3, r3, #2 + adds r0, r1, r3 + strh r2, [r0] + ldrh r0, [r4, #0x1a] + ldr r2, _08009C8C @ =0x000002F6 + adds r1, r1, r2 + strh r0, [r1] + ldr r1, _08009C84 @ =0x0201A450 + ldrh r0, [r1, #0x3a] + adds r0, #1 + strh r0, [r1, #0x3a] + lsls r0, r0, #0x10 + asrs r0, r0, #0x10 + cmp r0, #0x14 + ble _08009C74 + movs r0, #0 + strh r0, [r1, #0x3a] + ldr r1, _08009C90 @ =0x0202C790 + ldrb r0, [r1] + adds r0, #3 + strb r0, [r1] +_08009C74: + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_08009C7C: .4byte 0x0202ADA0 +_08009C80: .4byte 0x0202BF10 +_08009C84: .4byte 0x0201A450 +_08009C88: .4byte 0x0200B0C0 +_08009C8C: .4byte 0x000002F6 +_08009C90: .4byte 0x0202C790 + + thumb_func_start nullsub_5 +nullsub_5: @ 0x08009C94 + bx lr + + thumb_func_start nullsub_17 +nullsub_17: @ 0x08009C98 + bx lr + + thumb_func_start sub_9C9C +sub_9C9C: @ 0x08009C9C + push {lr} + bl sub_10480 + bl sub_10544 + ldr r1, _08009CB4 @ =0x0202C790 + ldrb r0, [r1] + adds r0, #1 + strb r0, [r1] + pop {r0} + bx r0 + .align 2, 0 +_08009CB4: .4byte 0x0202C790 + + thumb_func_start sub_9CB8 +sub_9CB8: @ 0x08009CB8 + push {r4, r5, r6, r7, lr} + mov r7, r8 + push {r7} + ldr r4, _08009D54 @ =0x0201A450 + movs r0, #8 + ldrsh r1, [r4, r0] + movs r0, #0xb8 + muls r0, r1, r0 + ldr r2, _08009D58 @ =0x0200B698 + adds r5, r0, r2 + movs r0, #0xc + ldrsb r0, [r4, r0] + strh r0, [r5] + ldr r6, _08009D5C @ =0x086A769C + ldr r1, _08009D60 @ =0xFFFFFD20 + adds r2, r2, r1 + adds r0, r6, #0 + movs r1, #0x31 + bl sub_358 + ldrh r0, [r5] + cmp r0, #1 + bne _08009D46 + ldrh r0, [r4] + strh r0, [r5, #2] + ldrh r0, [r4, #2] + strh r0, [r5, #4] + movs r2, #8 + ldrsh r0, [r4, r2] + adds r0, #4 + lsls r0, r0, #2 + adds r0, r0, r6 + ldr r7, [r0] + movs r6, #0 + ldrh r0, [r7] + cmp r6, r0 + bge _08009D46 + ldr r1, _08009D64 @ =0x03005000 + mov ip, r1 + ldr r2, _08009D68 @ =0xFFFFFE00 + mov r8, r2 + adds r4, r5, #0 + adds r4, #8 +_08009D0E: + ldrh r3, [r4] + lsls r3, r3, #3 + add r3, ip + movs r0, #2 + ldrsh r1, [r4, r0] + movs r2, #2 + ldrsh r0, [r5, r2] + adds r1, r1, r0 + ldr r2, _08009D6C @ =0x000001FF + adds r0, r2, #0 + ands r1, r0 + ldrh r2, [r3, #2] + mov r0, r8 + ands r0, r2 + orrs r0, r1 + strh r0, [r3, #2] + ldrh r1, [r4] + lsls r1, r1, #3 + add r1, ip + ldrb r0, [r5, #4] + ldrb r2, [r4, #4] + adds r0, r0, r2 + strb r0, [r1] + adds r4, #8 + adds r6, #1 + ldrh r0, [r7] + cmp r6, r0 + blt _08009D0E +_08009D46: + movs r0, #0 + strh r0, [r5] + pop {r3} + mov r8, r3 + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + .align 2, 0 +_08009D54: .4byte 0x0201A450 +_08009D58: .4byte 0x0200B698 +_08009D5C: .4byte 0x086A769C +_08009D60: .4byte 0xFFFFFD20 +_08009D64: .4byte 0x03005000 +_08009D68: .4byte 0xFFFFFE00 +_08009D6C: .4byte 0x000001FF + + thumb_func_start sub_9D70 +sub_9D70: @ 0x08009D70 + push {r4, r5, r6, r7, lr} + mov r7, sl + mov r6, sb + mov r5, r8 + push {r5, r6, r7} + sub sp, #4 + ldr r0, _08009E68 @ =0x0200D078 + mov r8, r0 + ldr r6, _08009E6C @ =0x0201A450 + movs r0, #0xc + ldrsb r0, [r6, r0] + mov r1, r8 + strh r0, [r1] + ldr r0, _08009E70 @ =0x086A769C + ldr r2, _08009E74 @ =0xFFFFE340 + add r2, r8 + movs r1, #0x31 + bl sub_358 + mov r2, r8 + ldrh r0, [r2] + cmp r0, #1 + bne _08009E50 + ldr r5, _08009E78 @ =0x02019C30 + movs r3, #0 + ldrsh r0, [r5, r3] + ldr r4, _08009E7C @ =0x0201C188 + movs r2, #0 + ldrsh r1, [r4, r2] + movs r2, #0 + bl sub_7C0 + ldrh r0, [r6] + mov r3, r8 + strh r0, [r3, #2] + ldrh r0, [r6, #2] + strh r0, [r3, #4] + movs r7, #0 + ldr r6, _08009E80 @ =0x03005000 + mov sl, r5 + mov sb, r4 + mov r5, r8 + adds r5, #8 + movs r0, #0xf + rsbs r0, r0, #0 + mov ip, r0 +_08009DCC: + ldrh r0, [r5] + lsls r0, r0, #3 + adds r3, r0, r6 + lsls r0, r7, #2 + ldr r1, _08009E84 @ =0x086A7798 + adds r4, r0, r1 + movs r2, #0 + ldrsh r1, [r4, r2] + mov r2, sl + ldr r0, [r2] + muls r1, r0, r1 + cmp r1, #0 + bge _08009DE8 + adds r1, #0xff +_08009DE8: + asrs r1, r1, #8 + str r1, [sp] + mov r1, r8 + movs r2, #2 + ldrsh r0, [r1, r2] + ldr r2, [sp] + adds r1, r2, r0 + ldr r2, _08009E88 @ =0x000001FF + adds r0, r2, #0 + ands r1, r0 + ldrh r2, [r3, #2] + ldr r0, _08009E8C @ =0xFFFFFE00 + ands r0, r2 + orrs r0, r1 + strh r0, [r3, #2] + ldrh r0, [r5] + lsls r0, r0, #3 + adds r2, r0, r6 + movs r3, #2 + ldrsh r1, [r4, r3] + mov r3, sb + ldr r0, [r3] + muls r0, r1, r0 + cmp r0, #0 + bge _08009E1C + adds r0, #0xff +_08009E1C: + asrs r0, r0, #8 + mov r1, r8 + ldrb r1, [r1, #4] + adds r0, r0, r1 + strb r0, [r2] + ldrh r2, [r5] + lsls r2, r2, #3 + adds r2, r2, r6 + ldrb r1, [r2, #1] + movs r0, #4 + rsbs r0, r0, #0 + ands r0, r1 + movs r1, #1 + orrs r0, r1 + strb r0, [r2, #1] + ldrh r1, [r5] + lsls r1, r1, #3 + adds r1, r1, r6 + ldrb r2, [r1, #3] + mov r0, ip + ands r0, r2 + strb r0, [r1, #3] + adds r5, #8 + adds r7, #1 + cmp r7, #3 + ble _08009DCC +_08009E50: + movs r0, #0 + mov r2, r8 + strh r0, [r2] + add sp, #4 + pop {r3, r4, r5} + mov r8, r3 + mov sb, r4 + mov sl, r5 + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + .align 2, 0 +_08009E68: .4byte 0x0200D078 +_08009E6C: .4byte 0x0201A450 +_08009E70: .4byte 0x086A769C +_08009E74: .4byte 0xFFFFE340 +_08009E78: .4byte 0x02019C30 +_08009E7C: .4byte 0x0201C188 +_08009E80: .4byte 0x03005000 +_08009E84: .4byte 0x086A7798 +_08009E88: .4byte 0x000001FF +_08009E8C: .4byte 0xFFFFFE00 + + thumb_func_start sub_9E90 +sub_9E90: @ 0x08009E90 + push {r4, r5, r6, r7, lr} + mov r7, sl + mov r6, sb + mov r5, r8 + push {r5, r6, r7} + sub sp, #4 + ldr r3, _0800A12C @ =0x0200B0C0 + ldrh r0, [r3, #0x38] + movs r0, #0xf1 + lsls r0, r0, #4 + strh r0, [r3, #0x38] + ldr r0, _0800A130 @ =0x0201C1B8 + ldrb r1, [r0] + ldr r0, _0800A134 @ =0x0202ADD4 + ldrb r0, [r0] + lsls r0, r0, #8 + orrs r1, r0 + ldrh r0, [r3, #0x3a] + strh r1, [r3, #0x3a] + ldr r1, _0800A138 @ =0x04000050 + ldrh r0, [r3, #0x38] + strh r0, [r1] + adds r1, #2 + ldrh r0, [r3, #0x3a] + strh r0, [r1] + ldr r4, _0800A13C @ =0x0201A450 + movs r0, #0x18 + ldrsh r1, [r4, r0] + movs r0, #0xb8 + muls r0, r1, r0 + movs r1, #0xbe + lsls r1, r1, #2 + adds r2, r3, r1 + adds r0, r0, r2 + mov r8, r0 + movs r6, #0xa4 + lsls r6, r6, #3 + adds r6, r6, r3 + mov sb, r6 + movs r7, #0x8d + lsls r7, r7, #3 + adds r7, r7, r3 + mov sl, r7 + movs r0, #0x1c + ldrsb r0, [r4, r0] + mov r1, r8 + strh r0, [r1] + adds r0, r4, #0 + adds r0, #0x2c + ldrb r0, [r0] + lsls r0, r0, #0x18 + asrs r0, r0, #0x18 + strh r0, [r6] + adds r0, r4, #0 + adds r0, #0x3c + ldrb r0, [r0] + lsls r0, r0, #0x18 + asrs r0, r0, #0x18 + strh r0, [r7] + adds r0, r4, #0 + adds r0, #0x4c + ldrb r0, [r0] + lsls r0, r0, #0x18 + asrs r0, r0, #0x18 + ldr r6, _0800A140 @ =0x0200D638 + strh r0, [r6] + ldr r5, _0800A144 @ =0x086A769C + adds r0, r5, #0 + movs r1, #0x31 + bl sub_358 + mov r7, r8 + ldrh r0, [r7] + cmp r0, #1 + bne _08009F9E + ldrh r0, [r4, #0x10] + strh r0, [r7, #2] + ldrh r0, [r4, #0x12] + strh r0, [r7, #4] + movs r1, #0x18 + ldrsh r0, [r4, r1] + lsls r0, r0, #2 + adds r0, r0, r5 + ldr r0, [r0] + str r0, [sp] + movs r5, #0 + ldrh r2, [r0] + cmp r5, r2 + bge _08009F9E + ldr r7, _0800A148 @ =0x03005000 + ldr r6, _0800A14C @ =0xFFFFFE00 + mov ip, r6 + mov r4, r8 + adds r4, #8 +_08009F4C: + ldrh r2, [r4] + lsls r2, r2, #3 + adds r2, r2, r7 + ldrb r1, [r2, #1] + movs r0, #0xd + rsbs r0, r0, #0 + ands r0, r1 + movs r1, #4 + orrs r0, r1 + strb r0, [r2, #1] + ldrh r3, [r4] + lsls r3, r3, #3 + adds r3, r3, r7 + movs r0, #2 + ldrsh r1, [r4, r0] + mov r2, r8 + movs r6, #2 + ldrsh r0, [r2, r6] + adds r1, r1, r0 + ldr r2, _0800A150 @ =0x000001FF + adds r0, r2, #0 + ands r1, r0 + ldrh r2, [r3, #2] + mov r0, ip + ands r0, r2 + orrs r0, r1 + strh r0, [r3, #2] + ldrh r1, [r4] + lsls r1, r1, #3 + adds r1, r1, r7 + mov r6, r8 + ldrb r0, [r6, #4] + ldrb r2, [r4, #4] + adds r0, r0, r2 + strb r0, [r1] + adds r4, #8 + adds r5, #1 + ldr r6, [sp] + ldrh r6, [r6] + cmp r5, r6 + blt _08009F4C +_08009F9E: + mov r7, sb + ldrh r0, [r7] + cmp r0, #1 + bne _0800A01C + ldr r0, _0800A13C @ =0x0201A450 + ldrh r1, [r0, #0x20] + strh r1, [r7, #2] + ldrh r0, [r0, #0x22] + strh r0, [r7, #4] + ldr r6, _0800A148 @ =0x03005000 + movs r0, #0xd + rsbs r0, r0, #0 + mov ip, r0 + mov r4, sb + adds r4, #8 + movs r5, #3 +_08009FBE: + ldrh r1, [r4] + lsls r1, r1, #3 + adds r1, r1, r6 + ldrb r2, [r1, #1] + mov r0, ip + ands r0, r2 + movs r2, #4 + orrs r0, r2 + strb r0, [r1, #1] + ldrh r1, [r4] + lsls r1, r1, #3 + adds r1, r1, r6 + ldrb r2, [r1, #5] + mov r0, ip + ands r0, r2 + movs r7, #4 + orrs r0, r7 + strb r0, [r1, #5] + ldrh r3, [r4] + lsls r3, r3, #3 + adds r3, r3, r6 + movs r0, #2 + ldrsh r1, [r4, r0] + mov r2, sb + movs r7, #2 + ldrsh r0, [r2, r7] + adds r1, r1, r0 + ldr r2, _0800A150 @ =0x000001FF + adds r0, r2, #0 + ands r1, r0 + ldrh r2, [r3, #2] + ldr r0, _0800A14C @ =0xFFFFFE00 + ands r0, r2 + orrs r0, r1 + strh r0, [r3, #2] + ldrh r1, [r4] + lsls r1, r1, #3 + adds r1, r1, r6 + mov r7, sb + ldrb r0, [r7, #4] + ldrb r2, [r4, #4] + adds r0, r0, r2 + strb r0, [r1] + adds r4, #8 + subs r5, #1 + cmp r5, #0 + bge _08009FBE +_0800A01C: + mov r6, sl + ldrh r0, [r6] + cmp r0, #1 + bne _0800A098 + ldr r0, _0800A13C @ =0x0201A450 + ldrh r1, [r0, #0x30] + strh r1, [r6, #2] + ldrh r0, [r0, #0x32] + strh r0, [r6, #4] + ldr r6, _0800A148 @ =0x03005000 + ldr r7, _0800A14C @ =0xFFFFFE00 + mov ip, r7 + mov r4, sl + adds r4, #8 + movs r5, #3 +_0800A03A: + ldrh r1, [r4] + lsls r1, r1, #3 + adds r1, r1, r6 + ldrb r2, [r1, #1] + movs r0, #0xd + rsbs r0, r0, #0 + ands r0, r2 + strb r0, [r1, #1] + ldrh r2, [r4] + lsls r2, r2, #3 + adds r2, r2, r6 + ldrb r1, [r2, #5] + movs r0, #0xd + rsbs r0, r0, #0 + ands r0, r1 + movs r1, #4 + orrs r0, r1 + strb r0, [r2, #5] + ldrh r3, [r4] + lsls r3, r3, #3 + adds r3, r3, r6 + movs r0, #2 + ldrsh r1, [r4, r0] + mov r2, sl + movs r7, #2 + ldrsh r0, [r2, r7] + adds r1, r1, r0 + ldr r2, _0800A150 @ =0x000001FF + adds r0, r2, #0 + ands r1, r0 + ldrh r2, [r3, #2] + mov r0, ip + ands r0, r2 + orrs r0, r1 + strh r0, [r3, #2] + ldrh r1, [r4] + lsls r1, r1, #3 + adds r1, r1, r6 + mov r7, sl + ldrb r0, [r7, #4] + ldrb r2, [r4, #4] + adds r0, r0, r2 + strb r0, [r1] + adds r4, #8 + subs r5, #1 + cmp r5, #0 + bge _0800A03A +_0800A098: + ldr r6, _0800A140 @ =0x0200D638 + ldrh r0, [r6] + cmp r0, #1 + bne _0800A10A + ldr r0, _0800A13C @ =0x0201A450 + adds r1, r0, #0 + adds r1, #0x40 + ldrh r1, [r1] + strh r1, [r6, #2] + adds r0, #0x42 + ldrh r0, [r0] + strh r0, [r6, #4] + ldr r6, _0800A148 @ =0x03005000 + movs r7, #0xd + rsbs r7, r7, #0 + mov ip, r7 + ldr r4, _0800A140 @ =0x0200D638 + adds r4, #8 + movs r5, #7 +_0800A0BE: + ldrh r2, [r4] + lsls r2, r2, #3 + adds r2, r2, r6 + ldrb r1, [r2, #5] + mov r0, ip + ands r0, r1 + movs r1, #8 + orrs r0, r1 + strb r0, [r2, #5] + ldrh r3, [r4] + lsls r3, r3, #3 + adds r3, r3, r6 + movs r0, #2 + ldrsh r1, [r4, r0] + ldr r2, _0800A140 @ =0x0200D638 + movs r7, #2 + ldrsh r0, [r2, r7] + adds r1, r1, r0 + ldr r2, _0800A150 @ =0x000001FF + adds r0, r2, #0 + ands r1, r0 + ldrh r2, [r3, #2] + ldr r0, _0800A14C @ =0xFFFFFE00 + ands r0, r2 + orrs r0, r1 + strh r0, [r3, #2] + ldrh r1, [r4] + lsls r1, r1, #3 + adds r1, r1, r6 + ldr r7, _0800A140 @ =0x0200D638 + ldrb r0, [r7, #4] + ldrb r2, [r4, #4] + adds r0, r0, r2 + strb r0, [r1] + adds r4, #8 + subs r5, #1 + cmp r5, #0 + bge _0800A0BE +_0800A10A: + movs r0, #0 + mov r6, r8 + strh r0, [r6] + mov r7, sb + strh r0, [r7] + mov r1, sl + strh r0, [r1] + ldr r2, _0800A140 @ =0x0200D638 + strh r0, [r2] + add sp, #4 + pop {r3, r4, r5} + mov r8, r3 + mov sb, r4 + mov sl, r5 + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + .align 2, 0 +_0800A12C: .4byte 0x0200B0C0 +_0800A130: .4byte 0x0201C1B8 +_0800A134: .4byte 0x0202ADD4 +_0800A138: .4byte 0x04000050 +_0800A13C: .4byte 0x0201A450 +_0800A140: .4byte 0x0200D638 +_0800A144: .4byte 0x086A769C +_0800A148: .4byte 0x03005000 +_0800A14C: .4byte 0xFFFFFE00 +_0800A150: .4byte 0x000001FF + + thumb_func_start sub_A154 +sub_A154: @ 0x0800A154 + push {lr} + bl sub_518 + ldr r1, _0800A168 @ =0x0202C790 + ldrb r0, [r1] + adds r0, #1 + strb r0, [r1] + pop {r0} + bx r0 + .align 2, 0 +_0800A168: .4byte 0x0202C790 + + thumb_func_start sub_A16C +sub_A16C: @ 0x0800A16C + push {r4, lr} + movs r2, #0x80 + lsls r2, r2, #0x13 + movs r0, #0 + strh r0, [r2] + ldr r1, _0800A250 @ =0x04000008 + movs r3, #0xcc + lsls r3, r3, #8 + adds r0, r3, #0 + strh r0, [r1] + ldrh r0, [r2] + movs r4, #0x80 + lsls r4, r4, #1 + adds r1, r4, #0 + orrs r0, r1 + strh r0, [r2] + ldr r1, _0800A254 @ =0x0400000A + ldr r3, _0800A258 @ =0x0000DA01 + adds r0, r3, #0 + strh r0, [r1] + ldrh r0, [r2] + movs r4, #0x80 + lsls r4, r4, #2 + adds r1, r4, #0 + orrs r0, r1 + strh r0, [r2] + ldr r1, _0800A25C @ =0x0400000E + ldr r3, _0800A260 @ =0x00001E03 + adds r0, r3, #0 + strh r0, [r1] + ldrh r0, [r2] + movs r4, #0x80 + lsls r4, r4, #4 + adds r1, r4, #0 + orrs r0, r1 + strh r0, [r2] + ldr r0, _0800A264 @ =0x040000D4 + ldr r1, _0800A268 @ =0x080D0700 + str r1, [r0] + ldr r1, _0800A26C @ =0x06006000 + str r1, [r0, #4] + ldr r2, _0800A270 @ =0x80001000 + str r2, [r0, #8] + ldr r1, [r0, #8] + ldr r1, _0800A274 @ =0x080D2700 + str r1, [r0] + ldr r1, _0800A278 @ =0x0600D000 + str r1, [r0, #4] + str r2, [r0, #8] + ldr r1, [r0, #8] + ldr r1, _0800A27C @ =0x080CBEE0 + str r1, [r0] + ldr r1, _0800A280 @ =0x0600F000 + str r1, [r0, #4] + ldr r1, _0800A284 @ =0x80000400 + str r1, [r0, #8] + ldr r1, [r0, #8] + ldr r1, _0800A288 @ =0x080CC6E0 + str r1, [r0] + movs r1, #0xc0 + lsls r1, r1, #0x13 + str r1, [r0, #4] + ldr r1, _0800A28C @ =0x80001E00 + str r1, [r0, #8] + ldr r1, [r0, #8] + ldr r1, _0800A290 @ =0x080CBCE0 + str r1, [r0] + movs r1, #0xa0 + lsls r1, r1, #0x13 + str r1, [r0, #4] + ldr r1, _0800A294 @ =0x80000040 + str r1, [r0, #8] + ldr r0, [r0, #8] + bl sub_A2A8 + ldr r1, _0800A298 @ =0x0200B0C0 + ldr r3, _0800A29C @ =0x0202ADA0 + ldrh r2, [r3] + movs r4, #0xba + lsls r4, r4, #2 + adds r0, r1, r4 + strh r2, [r0] + ldrh r2, [r3, #2] + adds r4, #2 + adds r0, r1, r4 + strh r2, [r0] + ldrh r2, [r3, #0xc] + adds r4, #2 + adds r0, r1, r4 + strh r2, [r0] + ldrh r2, [r3, #0xe] + adds r4, #2 + adds r0, r1, r4 + strh r2, [r0] + ldrh r2, [r3, #0x18] + adds r4, #6 + adds r0, r1, r4 + strh r2, [r0] + ldrh r0, [r3, #0x1a] + ldr r2, _0800A2A0 @ =0x000002F6 + adds r1, r1, r2 + strh r0, [r1] + bl sub_CBC + bl sub_10424 + ldr r1, _0800A2A4 @ =0x0202C790 + ldrb r0, [r1] + adds r0, #2 + strb r0, [r1] + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_0800A250: .4byte 0x04000008 +_0800A254: .4byte 0x0400000A +_0800A258: .4byte 0x0000DA01 +_0800A25C: .4byte 0x0400000E +_0800A260: .4byte 0x00001E03 +_0800A264: .4byte 0x040000D4 +_0800A268: .4byte 0x080D0700 +_0800A26C: .4byte 0x06006000 +_0800A270: .4byte 0x80001000 +_0800A274: .4byte 0x080D2700 +_0800A278: .4byte 0x0600D000 +_0800A27C: .4byte 0x080CBEE0 +_0800A280: .4byte 0x0600F000 +_0800A284: .4byte 0x80000400 +_0800A288: .4byte 0x080CC6E0 +_0800A28C: .4byte 0x80001E00 +_0800A290: .4byte 0x080CBCE0 +_0800A294: .4byte 0x80000040 +_0800A298: .4byte 0x0200B0C0 +_0800A29C: .4byte 0x0202ADA0 +_0800A2A0: .4byte 0x000002F6 +_0800A2A4: .4byte 0x0202C790 + + thumb_func_start sub_A2A8 +sub_A2A8: @ 0x0800A2A8 + ldr r0, _0800A2D8 @ =0x0202ADA0 + movs r2, #0 + movs r1, #0x1c + strh r1, [r0] + ldr r1, _0800A2DC @ =0x0000FF2C + strh r1, [r0, #2] + strh r2, [r0, #4] + movs r1, #0xe + strh r1, [r0, #6] + ldr r1, _0800A2E0 @ =0x0000FF5C + strh r1, [r0, #0xc] + subs r1, #0x54 + strh r1, [r0, #0xe] + strh r2, [r0, #0x10] + movs r1, #0x10 + strh r1, [r0, #0x12] + strh r2, [r0, #0x18] + strh r2, [r0, #0x1a] + strh r2, [r0, #0x20] + ldr r0, _0800A2E4 @ =0x0202BF10 + strh r2, [r0] + ldr r0, _0800A2E8 @ =0x0202A578 + strh r2, [r0] + bx lr + .align 2, 0 +_0800A2D8: .4byte 0x0202ADA0 +_0800A2DC: .4byte 0x0000FF2C +_0800A2E0: .4byte 0x0000FF5C +_0800A2E4: .4byte 0x0202BF10 +_0800A2E8: .4byte 0x0202A578 + + thumb_func_start nullsub_6 +nullsub_6: @ 0x0800A2EC + bx lr + + thumb_func_start sub_A2F0 +sub_A2F0: @ 0x0800A2F0 + push {r4, lr} + ldr r3, _0800A384 @ =0x0202ADA0 + ldrh r4, [r3, #6] + ldrh r1, [r3, #2] + adds r0, r4, r1 + strh r0, [r3, #2] + ldrh r2, [r3, #0x12] + ldrh r1, [r3, #0xe] + adds r0, r2, r1 + strh r0, [r3, #0xe] + ldrh r0, [r3, #0x18] + subs r0, #1 + strh r0, [r3, #0x18] + ldrh r0, [r3, #0x1a] + subs r0, #1 + strh r0, [r3, #0x1a] + ldrh r0, [r3] + subs r0, #1 + strh r0, [r3] + ldrh r0, [r3, #0xc] + adds r0, #1 + strh r0, [r3, #0xc] + ldr r0, _0800A388 @ =0x0202BF10 + ldrh r0, [r0] + movs r1, #1 + ands r0, r1 + cmp r0, #0 + bne _0800A330 + subs r0, r4, #1 + strh r0, [r3, #6] + subs r0, r2, #1 + strh r0, [r3, #0x12] +_0800A330: + ldr r1, _0800A38C @ =0x0200B0C0 + ldrh r2, [r3] + movs r4, #0xba + lsls r4, r4, #2 + adds r0, r1, r4 + strh r2, [r0] + ldrh r2, [r3, #2] + adds r4, #2 + adds r0, r1, r4 + strh r2, [r0] + ldrh r2, [r3, #0xc] + adds r4, #2 + adds r0, r1, r4 + strh r2, [r0] + ldrh r2, [r3, #0xe] + adds r4, #2 + adds r0, r1, r4 + strh r2, [r0] + ldrh r2, [r3, #0x18] + adds r4, #6 + adds r0, r1, r4 + strh r2, [r0] + ldrh r0, [r3, #0x1a] + ldr r2, _0800A390 @ =0x000002F6 + adds r1, r1, r2 + strh r0, [r1] + ldrh r0, [r3, #0x20] + adds r0, #1 + strh r0, [r3, #0x20] + lsls r0, r0, #0x10 + asrs r0, r0, #0x10 + cmp r0, #0x27 + ble _0800A37E + movs r0, #0 + strh r0, [r3, #0x20] + ldr r1, _0800A394 @ =0x0202C790 + ldrb r0, [r1] + adds r0, #2 + strb r0, [r1] +_0800A37E: + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_0800A384: .4byte 0x0202ADA0 +_0800A388: .4byte 0x0202BF10 +_0800A38C: .4byte 0x0200B0C0 +_0800A390: .4byte 0x000002F6 +_0800A394: .4byte 0x0202C790 + + thumb_func_start nullsub_7 +nullsub_7: @ 0x0800A398 + bx lr + + thumb_func_start sub_A39C +sub_A39C: @ 0x0800A39C + push {r4, lr} + ldr r3, _0800A428 @ =0x0202ADA0 + ldrh r0, [r3, #2] + adds r0, #1 + strh r0, [r3, #2] + ldrh r0, [r3, #0xe] + adds r0, #1 + strh r0, [r3, #0xe] + ldrh r0, [r3, #0x18] + subs r0, #1 + strh r0, [r3, #0x18] + ldrh r0, [r3, #0x1a] + subs r0, #1 + strh r0, [r3, #0x1a] + ldrh r0, [r3] + subs r0, #1 + strh r0, [r3] + ldrh r0, [r3, #0xc] + adds r0, #1 + strh r0, [r3, #0xc] + ldr r0, _0800A42C @ =0x0202BF10 + ldrh r0, [r0] + movs r1, #1 + ands r0, r1 + cmp r0, #0 + bne _0800A3DC + ldrh r0, [r3, #6] + subs r0, #1 + strh r0, [r3, #6] + ldrh r0, [r3, #0x12] + subs r0, #1 + strh r0, [r3, #0x12] +_0800A3DC: + ldr r1, _0800A430 @ =0x0200B0C0 + ldrh r2, [r3] + movs r4, #0xba + lsls r4, r4, #2 + adds r0, r1, r4 + strh r2, [r0] + ldrh r2, [r3, #2] + adds r4, #2 + adds r0, r1, r4 + strh r2, [r0] + ldrh r2, [r3, #0xc] + adds r4, #2 + adds r0, r1, r4 + strh r2, [r0] + ldrh r2, [r3, #0xe] + adds r4, #2 + adds r0, r1, r4 + strh r2, [r0] + ldrh r2, [r3, #0x18] + adds r4, #6 + adds r0, r1, r4 + strh r2, [r0] + ldrh r0, [r3, #0x1a] + ldr r2, _0800A434 @ =0x000002F6 + adds r1, r1, r2 + strh r0, [r1] + bl sub_10480 + bl sub_10544 + ldr r1, _0800A438 @ =0x0202C790 + ldrb r0, [r1] + adds r0, #1 + strb r0, [r1] + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_0800A428: .4byte 0x0202ADA0 +_0800A42C: .4byte 0x0202BF10 +_0800A430: .4byte 0x0200B0C0 +_0800A434: .4byte 0x000002F6 +_0800A438: .4byte 0x0202C790 + + thumb_func_start sub_A43C +sub_A43C: @ 0x0800A43C + push {lr} + bl sub_518 + ldr r1, _0800A450 @ =0x0202C790 + ldrb r0, [r1] + adds r0, #1 + strb r0, [r1] + pop {r0} + bx r0 + .align 2, 0 +_0800A450: .4byte 0x0202C790 + + thumb_func_start sub_A454 +sub_A454: @ 0x0800A454 + push {r4, lr} + movs r2, #0x80 + lsls r2, r2, #0x13 + movs r1, #0x80 + lsls r1, r1, #5 + adds r0, r1, #0 + strh r0, [r2] + ldr r1, _0800A5A0 @ =0x04000008 + movs r3, #0xb4 + lsls r3, r3, #7 + adds r0, r3, #0 + strh r0, [r1] + ldrh r0, [r2] + movs r4, #0x80 + lsls r4, r4, #1 + adds r1, r4, #0 + orrs r0, r1 + strh r0, [r2] + ldr r1, _0800A5A4 @ =0x0400000A + ldr r3, _0800A5A8 @ =0x00001C01 + adds r0, r3, #0 + strh r0, [r1] + ldrh r0, [r2] + movs r4, #0x80 + lsls r4, r4, #2 + adds r1, r4, #0 + orrs r0, r1 + strh r0, [r2] + ldr r1, _0800A5AC @ =0x0400000C + ldr r3, _0800A5B0 @ =0x00005D02 + adds r0, r3, #0 + strh r0, [r1] + ldrh r0, [r2] + movs r4, #0x80 + lsls r4, r4, #3 + adds r1, r4, #0 + orrs r0, r1 + strh r0, [r2] + ldr r1, _0800A5B4 @ =0x0400000E + ldr r3, _0800A5B8 @ =0x00001F03 + adds r0, r3, #0 + strh r0, [r1] + ldrh r0, [r2] + movs r4, #0x80 + lsls r4, r4, #4 + adds r1, r4, #0 + orrs r0, r1 + strh r0, [r2] + ldr r0, _0800A5BC @ =0x040000D4 + ldr r1, _0800A5C0 @ =0x080DE520 + str r1, [r0] + ldr r1, _0800A5C4 @ =0x0600D000 + str r1, [r0, #4] + ldr r3, _0800A5C8 @ =0x80000800 + str r3, [r0, #8] + ldr r1, [r0, #8] + ldr r1, _0800A5CC @ =0x080DCD20 + str r1, [r0] + ldr r1, _0800A5D0 @ =0x0600E000 + str r1, [r0, #4] + ldr r2, _0800A5D4 @ =0x80000400 + str r2, [r0, #8] + ldr r1, [r0, #8] + ldr r1, _0800A5D8 @ =0x080D4900 + str r1, [r0] + ldr r1, _0800A5DC @ =0x0600E800 + str r1, [r0, #4] + str r3, [r0, #8] + ldr r1, [r0, #8] + ldr r1, _0800A5E0 @ =0x080D5900 + str r1, [r0] + ldr r1, _0800A5E4 @ =0x0600F800 + str r1, [r0, #4] + str r2, [r0, #8] + ldr r1, [r0, #8] + ldr r1, _0800A5E8 @ =0x080DD520 + str r1, [r0] + ldr r1, _0800A5EC @ =0x03005C00 + str r1, [r0, #4] + str r2, [r0, #8] + ldr r1, [r0, #8] + ldr r1, _0800A5F0 @ =0x080DDD20 + str r1, [r0] + ldr r1, _0800A5F4 @ =0x0201B180 + str r1, [r0, #4] + str r2, [r0, #8] + ldr r1, [r0, #8] + ldr r1, _0800A5F8 @ =0x080D6100 + str r1, [r0] + movs r1, #0xc0 + lsls r1, r1, #0x13 + str r1, [r0, #4] + ldr r1, _0800A5FC @ =0x80003600 + str r1, [r0, #8] + ldr r1, [r0, #8] + ldr r3, _0800A600 @ =0x080D4700 + str r3, [r0] + movs r1, #0xa0 + lsls r1, r1, #0x13 + str r1, [r0, #4] + ldr r2, _0800A604 @ =0x80000070 + str r2, [r0, #8] + ldr r1, [r0, #8] + ldr r1, _0800A608 @ =0x080DF520 + str r1, [r0] + ldr r1, _0800A60C @ =0x06010000 + str r1, [r0, #4] + ldr r1, _0800A610 @ =0x80001000 + str r1, [r0, #8] + ldr r1, [r0, #8] + str r3, [r0] + ldr r1, _0800A614 @ =0x05000200 + str r1, [r0, #4] + str r2, [r0, #8] + ldr r0, [r0, #8] + bl sub_A628 + bl sub_A87C + ldr r1, _0800A618 @ =0x0200B0C0 + ldr r2, _0800A61C @ =0x0202ADA0 + ldrh r3, [r2] + movs r4, #0xba + lsls r4, r4, #2 + adds r0, r1, r4 + strh r3, [r0] + ldrh r3, [r2, #2] + adds r4, #2 + adds r0, r1, r4 + strh r3, [r0] + ldrh r3, [r2, #0xc] + adds r4, #2 + adds r0, r1, r4 + strh r3, [r0] + ldrh r3, [r2, #0xe] + adds r4, #2 + adds r0, r1, r4 + strh r3, [r0] + ldrh r3, [r2, #0x18] + adds r4, #2 + adds r0, r1, r4 + strh r3, [r0] + ldrh r3, [r2, #0x1a] + adds r4, #2 + adds r0, r1, r4 + strh r3, [r0] + ldrh r3, [r2, #0x24] + adds r4, #2 + adds r0, r1, r4 + strh r3, [r0] + ldrh r0, [r2, #0x26] + ldr r2, _0800A620 @ =0x000002F6 + adds r1, r1, r2 + strh r0, [r1] + bl sub_CBC + bl sub_10424 + ldr r1, _0800A624 @ =0x0202C790 + ldrb r0, [r1] + adds r0, #1 + strb r0, [r1] + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_0800A5A0: .4byte 0x04000008 +_0800A5A4: .4byte 0x0400000A +_0800A5A8: .4byte 0x00001C01 +_0800A5AC: .4byte 0x0400000C +_0800A5B0: .4byte 0x00005D02 +_0800A5B4: .4byte 0x0400000E +_0800A5B8: .4byte 0x00001F03 +_0800A5BC: .4byte 0x040000D4 +_0800A5C0: .4byte 0x080DE520 +_0800A5C4: .4byte 0x0600D000 +_0800A5C8: .4byte 0x80000800 +_0800A5CC: .4byte 0x080DCD20 +_0800A5D0: .4byte 0x0600E000 +_0800A5D4: .4byte 0x80000400 +_0800A5D8: .4byte 0x080D4900 +_0800A5DC: .4byte 0x0600E800 +_0800A5E0: .4byte 0x080D5900 +_0800A5E4: .4byte 0x0600F800 +_0800A5E8: .4byte 0x080DD520 +_0800A5EC: .4byte 0x03005C00 +_0800A5F0: .4byte 0x080DDD20 +_0800A5F4: .4byte 0x0201B180 +_0800A5F8: .4byte 0x080D6100 +_0800A5FC: .4byte 0x80003600 +_0800A600: .4byte 0x080D4700 +_0800A604: .4byte 0x80000070 +_0800A608: .4byte 0x080DF520 +_0800A60C: .4byte 0x06010000 +_0800A610: .4byte 0x80001000 +_0800A614: .4byte 0x05000200 +_0800A618: .4byte 0x0200B0C0 +_0800A61C: .4byte 0x0202ADA0 +_0800A620: .4byte 0x000002F6 +_0800A624: .4byte 0x0202C790 + + thumb_func_start sub_A628 +sub_A628: @ 0x0800A628 + ldr r1, _0800A65C @ =0x0202ADA0 + movs r2, #0 + movs r0, #0x2c + strh r0, [r1] + ldr r0, _0800A660 @ =0x0000FF8E + strh r0, [r1, #2] + ldr r3, _0800A664 @ =0x0201A450 + adds r0, #0x46 + strh r0, [r3] + movs r0, #0x72 + strh r0, [r3, #2] + ldr r0, _0800A668 @ =0x0000FFCE + strh r0, [r1, #0xc] + movs r0, #0x1e + strh r0, [r1, #0xe] + strh r2, [r1, #0x18] + strh r2, [r1, #0x1a] + strh r2, [r1, #0x20] + strh r2, [r1, #0x24] + strh r2, [r1, #0x26] + ldr r0, _0800A66C @ =0x0202BF10 + strh r2, [r0] + ldr r0, _0800A670 @ =0x0202A578 + strh r2, [r0] + bx lr + .align 2, 0 +_0800A65C: .4byte 0x0202ADA0 +_0800A660: .4byte 0x0000FF8E +_0800A664: .4byte 0x0201A450 +_0800A668: .4byte 0x0000FFCE +_0800A66C: .4byte 0x0202BF10 +_0800A670: .4byte 0x0202A578 + + thumb_func_start sub_A674 +sub_A674: @ 0x0800A674 + push {r4, lr} + ldr r4, _0800A6FC @ =0x0202ADA0 + ldrh r0, [r4] + subs r0, #0x11 + strh r0, [r4] + ldrh r0, [r4, #2] + adds r0, #0xa + strh r0, [r4, #2] + ldr r1, _0800A700 @ =0x0201A450 + ldrh r0, [r1] + adds r0, #0x11 + strh r0, [r1] + ldrh r0, [r1, #2] + subs r0, #0xa + strh r0, [r1, #2] + ldrh r0, [r4, #0x18] + adds r0, #0x10 + strh r0, [r4, #0x18] + ldrh r0, [r4, #0xc] + adds r0, #4 + strh r0, [r4, #0xc] + ldrh r0, [r4, #0xe] + subs r0, #8 + strh r0, [r4, #0xe] + ldrh r0, [r4, #0x20] + adds r0, #1 + strh r0, [r4, #0x20] + lsls r0, r0, #0x10 + asrs r0, r0, #0x10 + cmp r0, #9 + ble _0800A6BE + movs r0, #0 + strh r0, [r4, #0x20] + ldr r1, _0800A704 @ =0x0202C790 + ldrb r0, [r1] + adds r0, #1 + strb r0, [r1] +_0800A6BE: + bl sub_A87C + ldr r1, _0800A708 @ =0x0200B0C0 + ldrh r2, [r4] + movs r3, #0xba + lsls r3, r3, #2 + adds r0, r1, r3 + strh r2, [r0] + ldrh r2, [r4, #2] + adds r3, #2 + adds r0, r1, r3 + strh r2, [r0] + ldrh r2, [r4, #0xc] + adds r3, #2 + adds r0, r1, r3 + strh r2, [r0] + ldrh r2, [r4, #0xe] + adds r3, #2 + adds r0, r1, r3 + strh r2, [r0] + ldrh r2, [r4, #0x18] + adds r3, #2 + adds r0, r1, r3 + strh r2, [r0] + ldrh r0, [r4, #0x1a] + ldr r2, _0800A70C @ =0x000002F2 + adds r1, r1, r2 + strh r0, [r1] + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_0800A6FC: .4byte 0x0202ADA0 +_0800A700: .4byte 0x0201A450 +_0800A704: .4byte 0x0202C790 +_0800A708: .4byte 0x0200B0C0 +_0800A70C: .4byte 0x000002F2 + + thumb_func_start sub_A710 +sub_A710: @ 0x0800A710 + push {r4, r5, r6, lr} + ldr r5, _0800A7C8 @ =0x0202ADA0 + ldrh r0, [r5, #0x24] + subs r0, #1 + movs r6, #0 + strh r0, [r5, #0x24] + ldr r2, _0800A7CC @ =0x0202BF10 + ldrh r0, [r2] + movs r1, #1 + ands r0, r1 + cmp r0, #0 + bne _0800A742 + ldrh r0, [r5] + subs r0, #1 + strh r0, [r5] + ldrh r0, [r5, #2] + adds r0, #1 + strh r0, [r5, #2] + ldr r1, _0800A7D0 @ =0x0201A450 + ldrh r0, [r1] + adds r0, #2 + strh r0, [r1] + ldrh r0, [r1, #2] + subs r0, #2 + strh r0, [r1, #2] +_0800A742: + movs r1, #0 + ldrsh r0, [r2, r1] + movs r1, #3 + bl __modsi3 + lsls r0, r0, #0x10 + cmp r0, #0 + bne _0800A776 + ldr r0, _0800A7D4 @ =0x040000D4 + movs r3, #0xa0 + lsls r3, r3, #0x13 + str r3, [r0] + ldr r4, _0800A7D8 @ =0x0202BE70 + str r4, [r0, #4] + ldr r1, _0800A7DC @ =0x80000010 + str r1, [r0, #8] + ldr r2, [r0, #8] + ldr r2, _0800A7E0 @ =0x05000040 + str r2, [r0] + str r3, [r0, #4] + str r1, [r0, #8] + ldr r3, [r0, #8] + str r4, [r0] + str r2, [r0, #4] + str r1, [r0, #8] + ldr r0, [r0, #8] +_0800A776: + ldr r4, _0800A7E4 @ =0x0200B0C0 + ldrh r1, [r5] + movs r2, #0xba + lsls r2, r2, #2 + adds r0, r4, r2 + strh r1, [r0] + ldrh r1, [r5, #2] + adds r2, #2 + adds r0, r4, r2 + strh r1, [r0] + ldrh r1, [r5, #0x24] + adds r2, #0xa + adds r0, r4, r2 + strh r1, [r0] + ldrh r1, [r5, #0x26] + adds r2, #2 + adds r0, r4, r2 + strh r1, [r0] + bl sub_A87C + movs r1, #0x20 + ldrsh r0, [r5, r1] + cmp r0, #2 + bne _0800A7F4 + ldr r1, _0800A7D4 @ =0x040000D4 + ldr r0, _0800A7E8 @ =0x03005C00 + str r0, [r1] + ldr r0, _0800A7EC @ =0x0600E000 + str r0, [r1, #4] + ldr r0, _0800A7F0 @ =0x80000400 + str r0, [r1, #8] + ldr r0, [r1, #8] + strh r6, [r5, #0xc] + strh r6, [r5, #0xe] + movs r2, #0xbb + lsls r2, r2, #2 + adds r0, r4, r2 + strh r6, [r0] + movs r1, #0 + adds r2, #2 + b _0800A818 + .align 2, 0 +_0800A7C8: .4byte 0x0202ADA0 +_0800A7CC: .4byte 0x0202BF10 +_0800A7D0: .4byte 0x0201A450 +_0800A7D4: .4byte 0x040000D4 +_0800A7D8: .4byte 0x0202BE70 +_0800A7DC: .4byte 0x80000010 +_0800A7E0: .4byte 0x05000040 +_0800A7E4: .4byte 0x0200B0C0 +_0800A7E8: .4byte 0x03005C00 +_0800A7EC: .4byte 0x0600E000 +_0800A7F0: .4byte 0x80000400 +_0800A7F4: + cmp r0, #4 + bne _0800A81C + ldr r1, _0800A840 @ =0x040000D4 + ldr r0, _0800A844 @ =0x0201B180 + str r0, [r1] + ldr r0, _0800A848 @ =0x0600E000 + str r0, [r1, #4] + ldr r0, _0800A84C @ =0x80000400 + str r0, [r1, #8] + ldr r0, [r1, #8] + strh r6, [r5, #0xc] + strh r6, [r5, #0xe] + movs r1, #0xbb + lsls r1, r1, #2 + adds r0, r4, r1 + strh r6, [r0] + movs r1, #0 + ldr r2, _0800A850 @ =0x000002EE +_0800A818: + adds r0, r4, r2 + strh r1, [r0] +_0800A81C: + ldr r1, _0800A854 @ =0x0202ADA0 + ldrh r0, [r1, #0x20] + adds r0, #1 + strh r0, [r1, #0x20] + lsls r0, r0, #0x10 + asrs r0, r0, #0x10 + cmp r0, #0x1d + ble _0800A838 + movs r0, #0 + strh r0, [r1, #0x20] + ldr r1, _0800A858 @ =0x0202C790 + ldrb r0, [r1] + adds r0, #2 + strb r0, [r1] +_0800A838: + pop {r4, r5, r6} + pop {r0} + bx r0 + .align 2, 0 +_0800A840: .4byte 0x040000D4 +_0800A844: .4byte 0x0201B180 +_0800A848: .4byte 0x0600E000 +_0800A84C: .4byte 0x80000400 +_0800A850: .4byte 0x000002EE +_0800A854: .4byte 0x0202ADA0 +_0800A858: .4byte 0x0202C790 + + thumb_func_start nullsub_8 +nullsub_8: @ 0x0800A85C + bx lr + + thumb_func_start sub_A860 +sub_A860: @ 0x0800A860 + push {lr} + bl sub_10480 + bl sub_10544 + ldr r1, _0800A878 @ =0x0202C790 + ldrb r0, [r1] + adds r0, #1 + strb r0, [r1] + pop {r0} + bx r0 + .align 2, 0 +_0800A878: .4byte 0x0202C790 + + thumb_func_start sub_A87C +sub_A87C: @ 0x0800A87C + push {r4, r5, r6, r7, lr} + mov r7, r8 + push {r7} + ldr r4, _0800A92C @ =0x0200B0C0 + ldrh r0, [r4, #0x38] + ldr r0, _0800A930 @ =0x00001F50 + strh r0, [r4, #0x38] + ldrh r0, [r4, #0x3a] + ldr r0, _0800A934 @ =0x00000808 + strh r0, [r4, #0x3a] + ldr r1, _0800A938 @ =0x04000050 + ldrh r0, [r4, #0x38] + strh r0, [r1] + adds r1, #2 + ldrh r0, [r4, #0x3a] + strh r0, [r1] + movs r0, #0xbe + lsls r0, r0, #2 + adds r5, r4, r0 + movs r0, #1 + strh r0, [r5] + ldr r0, _0800A93C @ =0x086A795C + movs r1, #1 + adds r2, r5, #0 + bl sub_358 + ldrh r0, [r5] + cmp r0, #1 + bne _0800A91C + ldr r0, _0800A940 @ =0x0201A450 + ldrh r1, [r0] + strh r1, [r5, #2] + ldrh r0, [r0, #2] + strh r0, [r5, #4] + ldr r7, _0800A944 @ =0x03005000 + movs r2, #0xd + rsbs r2, r2, #0 + mov r8, r2 + ldr r0, _0800A948 @ =0xFFFFFE00 + mov ip, r0 + movs r2, #0xc0 + lsls r2, r2, #2 + adds r4, r4, r2 + movs r6, #3 +_0800A8D4: + ldrh r2, [r4] + lsls r2, r2, #3 + adds r2, r2, r7 + ldrb r1, [r2, #5] + mov r0, r8 + ands r0, r1 + movs r1, #4 + orrs r0, r1 + strb r0, [r2, #5] + ldrh r3, [r4] + lsls r3, r3, #3 + adds r3, r3, r7 + movs r0, #2 + ldrsh r1, [r4, r0] + movs r2, #2 + ldrsh r0, [r5, r2] + adds r1, r1, r0 + ldr r2, _0800A94C @ =0x000001FF + adds r0, r2, #0 + ands r1, r0 + ldrh r2, [r3, #2] + mov r0, ip + ands r0, r2 + orrs r0, r1 + strh r0, [r3, #2] + ldrh r1, [r4] + lsls r1, r1, #3 + adds r1, r1, r7 + ldrb r0, [r5, #4] + ldrb r2, [r4, #4] + adds r0, r0, r2 + strb r0, [r1] + adds r4, #8 + subs r6, #1 + cmp r6, #0 + bge _0800A8D4 +_0800A91C: + movs r0, #0 + strh r0, [r5] + pop {r3} + mov r8, r3 + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + .align 2, 0 +_0800A92C: .4byte 0x0200B0C0 +_0800A930: .4byte 0x00001F50 +_0800A934: .4byte 0x00000808 +_0800A938: .4byte 0x04000050 +_0800A93C: .4byte 0x086A795C +_0800A940: .4byte 0x0201A450 +_0800A944: .4byte 0x03005000 +_0800A948: .4byte 0xFFFFFE00 +_0800A94C: .4byte 0x000001FF + + thumb_func_start sub_A950 +sub_A950: @ 0x0800A950 + push {lr} + bl sub_518 + ldr r1, _0800A964 @ =0x0202C790 + ldrb r0, [r1] + adds r0, #1 + strb r0, [r1] + pop {r0} + bx r0 + .align 2, 0 +_0800A964: .4byte 0x0202C790 + + thumb_func_start sub_A968 +sub_A968: @ 0x0800A968 + push {r4, lr} + movs r2, #0x80 + lsls r2, r2, #0x13 + movs r0, #0 + strh r0, [r2] + ldr r1, _0800AA50 @ =0x04000008 + movs r3, #0xcc + lsls r3, r3, #8 + adds r0, r3, #0 + strh r0, [r1] + ldrh r0, [r2] + movs r3, #0x80 + lsls r3, r3, #1 + adds r1, r3, #0 + orrs r0, r1 + strh r0, [r2] + ldr r1, _0800AA54 @ =0x0400000A + ldr r3, _0800AA58 @ =0x0000DA01 + adds r0, r3, #0 + strh r0, [r1] + ldrh r0, [r2] + movs r3, #0x80 + lsls r3, r3, #2 + adds r1, r3, #0 + orrs r0, r1 + strh r0, [r2] + ldr r1, _0800AA5C @ =0x0400000E + ldr r3, _0800AA60 @ =0x00001E03 + adds r0, r3, #0 + strh r0, [r1] + ldrh r0, [r2] + movs r3, #0x80 + lsls r3, r3, #4 + adds r1, r3, #0 + orrs r0, r1 + strh r0, [r2] + ldr r0, _0800AA64 @ =0x040000D4 + ldr r1, _0800AA68 @ =0x080E5F60 + str r1, [r0] + ldr r1, _0800AA6C @ =0x06006000 + str r1, [r0, #4] + ldr r3, _0800AA70 @ =0x80001000 + str r3, [r0, #8] + ldr r1, [r0, #8] + ldr r1, _0800AA74 @ =0x080E7F60 + str r1, [r0] + ldr r1, _0800AA78 @ =0x0600D000 + str r1, [r0, #4] + str r3, [r0, #8] + ldr r1, [r0, #8] + ldr r1, _0800AA7C @ =0x080E1740 + str r1, [r0] + ldr r1, _0800AA80 @ =0x0600F000 + str r1, [r0, #4] + ldr r1, _0800AA84 @ =0x80000400 + str r1, [r0, #8] + ldr r1, [r0, #8] + ldr r1, _0800AA88 @ =0x080E1F40 + str r1, [r0] + movs r1, #0xc0 + lsls r1, r1, #0x13 + str r1, [r0, #4] + ldr r1, _0800AA8C @ =0x80002000 + str r1, [r0, #8] + ldr r1, [r0, #8] + ldr r1, _0800AA90 @ =0x080E1540 + str r1, [r0] + movs r1, #0xa0 + lsls r1, r1, #0x13 + str r1, [r0, #4] + ldr r1, _0800AA94 @ =0x80000030 + str r1, [r0, #8] + ldr r0, [r0, #8] + ldr r4, _0800AA98 @ =0x0200B0C0 + ldrh r0, [r2] + strh r0, [r4, #0x16] + bl sub_AAA8 + ldr r2, _0800AA9C @ =0x0202ADA0 + ldrh r1, [r2] + movs r3, #0xba + lsls r3, r3, #2 + adds r0, r4, r3 + strh r1, [r0] + ldrh r1, [r2, #2] + adds r3, #2 + adds r0, r4, r3 + strh r1, [r0] + ldrh r1, [r2, #0xc] + adds r3, #2 + adds r0, r4, r3 + strh r1, [r0] + ldrh r1, [r2, #0xe] + adds r3, #2 + adds r0, r4, r3 + strh r1, [r0] + ldrh r1, [r2, #0x18] + adds r3, #6 + adds r0, r4, r3 + strh r1, [r0] + ldrh r0, [r2, #0x1a] + ldr r1, _0800AAA0 @ =0x000002F6 + adds r4, r4, r1 + strh r0, [r4] + bl sub_CBC + bl sub_10424 + ldr r1, _0800AAA4 @ =0x0202C790 + ldrb r0, [r1] + adds r0, #2 + strb r0, [r1] + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_0800AA50: .4byte 0x04000008 +_0800AA54: .4byte 0x0400000A +_0800AA58: .4byte 0x0000DA01 +_0800AA5C: .4byte 0x0400000E +_0800AA60: .4byte 0x00001E03 +_0800AA64: .4byte 0x040000D4 +_0800AA68: .4byte 0x080E5F60 +_0800AA6C: .4byte 0x06006000 +_0800AA70: .4byte 0x80001000 +_0800AA74: .4byte 0x080E7F60 +_0800AA78: .4byte 0x0600D000 +_0800AA7C: .4byte 0x080E1740 +_0800AA80: .4byte 0x0600F000 +_0800AA84: .4byte 0x80000400 +_0800AA88: .4byte 0x080E1F40 +_0800AA8C: .4byte 0x80002000 +_0800AA90: .4byte 0x080E1540 +_0800AA94: .4byte 0x80000030 +_0800AA98: .4byte 0x0200B0C0 +_0800AA9C: .4byte 0x0202ADA0 +_0800AAA0: .4byte 0x000002F6 +_0800AAA4: .4byte 0x0202C790 + + thumb_func_start sub_AAA8 +sub_AAA8: @ 0x0800AAA8 + ldr r0, _0800AAD8 @ =0x0202ADA0 + movs r2, #0 + movs r1, #0x1c + strh r1, [r0] + ldr r1, _0800AADC @ =0x0000FF20 + strh r1, [r0, #2] + strh r2, [r0, #4] + movs r1, #0xf + strh r1, [r0, #6] + ldr r1, _0800AAE0 @ =0x0000FF64 + strh r1, [r0, #0xc] + movs r1, #0xe0 + strh r1, [r0, #0xe] + strh r2, [r0, #0x10] + ldr r1, _0800AAE4 @ =0x0000FFF1 + strh r1, [r0, #0x12] + strh r2, [r0, #0x18] + strh r2, [r0, #0x1a] + strh r2, [r0, #0x20] + ldr r0, _0800AAE8 @ =0x0202BF10 + strh r2, [r0] + ldr r0, _0800AAEC @ =0x0202A578 + strh r2, [r0] + bx lr + .align 2, 0 +_0800AAD8: .4byte 0x0202ADA0 +_0800AADC: .4byte 0x0000FF20 +_0800AAE0: .4byte 0x0000FF64 +_0800AAE4: .4byte 0x0000FFF1 +_0800AAE8: .4byte 0x0202BF10 +_0800AAEC: .4byte 0x0202A578 + + thumb_func_start nullsub_9 +nullsub_9: @ 0x0800AAF0 + bx lr + + thumb_func_start sub_AAF4 +sub_AAF4: @ 0x0800AAF4 + push {r4, lr} + ldr r3, _0800AB7C @ =0x0202ADA0 + ldrh r4, [r3, #6] + ldrh r1, [r3, #2] + adds r0, r4, r1 + strh r0, [r3, #2] + ldrh r2, [r3, #0x12] + ldrh r1, [r3, #0xe] + adds r0, r2, r1 + strh r0, [r3, #0xe] + ldrh r0, [r3, #0x18] + subs r0, #1 + strh r0, [r3, #0x18] + ldrh r0, [r3] + subs r0, #1 + strh r0, [r3] + ldrh r0, [r3, #0xc] + adds r0, #1 + strh r0, [r3, #0xc] + ldr r0, _0800AB80 @ =0x0202BF10 + ldrh r0, [r0] + movs r1, #1 + ands r0, r1 + cmp r0, #0 + bne _0800AB2E + subs r0, r4, #1 + strh r0, [r3, #6] + adds r0, r2, #1 + strh r0, [r3, #0x12] +_0800AB2E: + ldr r1, _0800AB84 @ =0x0200B0C0 + ldrh r2, [r3] + movs r4, #0xba + lsls r4, r4, #2 + adds r0, r1, r4 + strh r2, [r0] + ldrh r2, [r3, #2] + adds r4, #2 + adds r0, r1, r4 + strh r2, [r0] + ldrh r2, [r3, #0xc] + adds r4, #2 + adds r0, r1, r4 + strh r2, [r0] + ldrh r2, [r3, #0xe] + adds r4, #2 + adds r0, r1, r4 + strh r2, [r0] + ldrh r0, [r3, #0x18] + movs r2, #0xbd + lsls r2, r2, #2 + adds r1, r1, r2 + strh r0, [r1] + ldrh r0, [r3, #0x20] + adds r0, #1 + strh r0, [r3, #0x20] + lsls r0, r0, #0x10 + asrs r0, r0, #0x10 + cmp r0, #0x27 + ble _0800AB76 + movs r0, #0 + strh r0, [r3, #0x20] + ldr r1, _0800AB88 @ =0x0202C790 + ldrb r0, [r1] + adds r0, #2 + strb r0, [r1] +_0800AB76: + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_0800AB7C: .4byte 0x0202ADA0 +_0800AB80: .4byte 0x0202BF10 +_0800AB84: .4byte 0x0200B0C0 +_0800AB88: .4byte 0x0202C790 + + thumb_func_start nullsub_10 +nullsub_10: @ 0x0800AB8C + bx lr + + thumb_func_start sub_AB90 +sub_AB90: @ 0x0800AB8E + push {r4, lr} + ldr r3, _0800AC10 @ =0x0202ADA0 + ldrh r4, [r3, #6] + ldrh r1, [r3, #2] + adds r0, r4, r1 + strh r0, [r3, #2] + ldrh r2, [r3, #0x12] + ldrh r1, [r3, #0xe] + adds r0, r2, r1 + strh r0, [r3, #0xe] + ldrh r0, [r3, #0x18] + subs r0, #1 + strh r0, [r3, #0x18] + ldrh r0, [r3] + subs r0, #1 + strh r0, [r3] + ldrh r0, [r3, #0xc] + adds r0, #1 + strh r0, [r3, #0xc] + ldr r0, _0800AC14 @ =0x0202BF10 + ldrh r0, [r0] + movs r1, #1 + ands r0, r1 + cmp r0, #0 + bne _0800ABCA + subs r0, r4, #1 + strh r0, [r3, #6] + adds r0, r2, #1 + strh r0, [r3, #0x12] +_0800ABCA: + ldr r1, _0800AC18 @ =0x0200B0C0 + ldrh r2, [r3] + movs r4, #0xba + lsls r4, r4, #2 + adds r0, r1, r4 + strh r2, [r0] + ldrh r2, [r3, #2] + adds r4, #2 + adds r0, r1, r4 + strh r2, [r0] + ldrh r2, [r3, #0xc] + adds r4, #2 + adds r0, r1, r4 + strh r2, [r0] + ldrh r2, [r3, #0xe] + adds r4, #2 + adds r0, r1, r4 + strh r2, [r0] + ldrh r0, [r3, #0x18] + movs r2, #0xbd + lsls r2, r2, #2 + adds r1, r1, r2 + strh r0, [r1] + bl sub_10480 + bl sub_10544 + ldr r1, _0800AC1C @ =0x0202C790 + ldrb r0, [r1] + adds r0, #1 + strb r0, [r1] + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_0800AC10: .4byte 0x0202ADA0 +_0800AC14: .4byte 0x0202BF10 +_0800AC18: .4byte 0x0200B0C0 +_0800AC1C: .4byte 0x0202C790 + + thumb_func_start sub_AC20 +sub_AC20: @ 0x0800AC20 + push {lr} + bl sub_518 + ldr r1, _0800AC34 @ =0x0202C790 + ldrb r0, [r1] + adds r0, #1 + strb r0, [r1] + pop {r0} + bx r0 + .align 2, 0 +_0800AC34: .4byte 0x0202C790 + + thumb_func_start sub_AC38 +sub_AC38: @ 0x0800AC38 + push {r4, lr} + movs r2, #0x80 + lsls r2, r2, #0x13 + movs r1, #0x80 + lsls r1, r1, #5 + adds r0, r1, #0 + strh r0, [r2] + ldr r1, _0800AD78 @ =0x04000008 + movs r3, #0xc0 + lsls r3, r3, #4 + adds r0, r3, #0 + strh r0, [r1] + ldrh r0, [r2] + movs r4, #0x80 + lsls r4, r4, #1 + adds r1, r4, #0 + orrs r0, r1 + strh r0, [r2] + ldr r1, _0800AD7C @ =0x0400000A + ldr r3, _0800AD80 @ =0x00004E01 + adds r0, r3, #0 + strh r0, [r1] + ldrh r0, [r2] + movs r4, #0x80 + lsls r4, r4, #2 + adds r1, r4, #0 + orrs r0, r1 + strh r0, [r2] + ldr r1, _0800AD84 @ =0x0400000C + ldr r3, _0800AD88 @ =0x00005C02 + adds r0, r3, #0 + strh r0, [r1] + ldrh r0, [r2] + movs r4, #0x80 + lsls r4, r4, #3 + adds r1, r4, #0 + orrs r0, r1 + strh r0, [r2] + ldr r1, _0800AD8C @ =0x0400000E + ldr r3, _0800AD90 @ =0x00001E03 + adds r0, r3, #0 + strh r0, [r1] + ldrh r0, [r2] + movs r4, #0x80 + lsls r4, r4, #4 + adds r1, r4, #0 + orrs r0, r1 + strh r0, [r2] + ldr r0, _0800AD94 @ =0x040000D4 + ldr r1, _0800AD98 @ =0x080F1980 + str r1, [r0] + ldr r1, _0800AD9C @ =0x06006000 + str r1, [r0, #4] + ldr r3, _0800ADA0 @ =0x80000400 + str r3, [r0, #8] + ldr r1, [r0, #8] + ldr r1, _0800ADA4 @ =0x080EB160 + str r1, [r0] + ldr r1, _0800ADA8 @ =0x06007000 + str r1, [r0, #4] + ldr r2, _0800ADAC @ =0x80000800 + str r2, [r0, #8] + ldr r1, [r0, #8] + ldr r1, _0800ADB0 @ =0x080EA160 + str r1, [r0] + ldr r1, _0800ADB4 @ =0x0600E000 + str r1, [r0, #4] + str r2, [r0, #8] + ldr r1, [r0, #8] + ldr r1, _0800ADB8 @ =0x080EC160 + str r1, [r0] + ldr r1, _0800ADBC @ =0x0600F000 + str r1, [r0, #4] + str r3, [r0, #8] + ldr r1, [r0, #8] + ldr r1, _0800ADC0 @ =0x080EC960 + str r1, [r0] + movs r1, #0xc0 + lsls r1, r1, #0x13 + str r1, [r0, #4] + ldr r1, _0800ADC4 @ =0x80001400 + str r1, [r0, #8] + ldr r1, [r0, #8] + ldr r1, _0800ADC8 @ =0x080BD4C0 + str r1, [r0] + ldr r1, _0800ADCC @ =0x03000000 + str r1, [r0, #4] + ldr r1, _0800ADD0 @ =0x80002000 + str r1, [r0, #8] + ldr r1, [r0, #8] + ldr r3, _0800ADD4 @ =0x080E9F60 + str r3, [r0] + movs r1, #0xa0 + lsls r1, r1, #0x13 + str r1, [r0, #4] + ldr r2, _0800ADD8 @ =0x800000C0 + str r2, [r0, #8] + ldr r1, [r0, #8] + ldr r1, _0800ADDC @ =0x080F2180 + str r1, [r0] + ldr r1, _0800ADE0 @ =0x06010000 + str r1, [r0, #4] + ldr r1, _0800ADE4 @ =0x80001800 + str r1, [r0, #8] + ldr r1, [r0, #8] + str r3, [r0] + ldr r1, _0800ADE8 @ =0x05000200 + str r1, [r0, #4] + str r2, [r0, #8] + ldr r0, [r0, #8] + bl sub_ADFC + bl sub_B0E8 + ldr r1, _0800ADEC @ =0x0200B0C0 + ldr r2, _0800ADF0 @ =0x0202ADA0 + ldrh r3, [r2] + movs r4, #0xba + lsls r4, r4, #2 + adds r0, r1, r4 + strh r3, [r0] + ldrh r3, [r2, #2] + adds r4, #2 + adds r0, r1, r4 + strh r3, [r0] + ldrh r3, [r2, #0xc] + adds r4, #2 + adds r0, r1, r4 + strh r3, [r0] + ldrh r3, [r2, #0xe] + adds r4, #2 + adds r0, r1, r4 + strh r3, [r0] + ldrh r3, [r2, #0x18] + adds r4, #2 + adds r0, r1, r4 + strh r3, [r0] + ldrh r3, [r2, #0x1a] + adds r4, #2 + adds r0, r1, r4 + strh r3, [r0] + ldrh r3, [r2, #0x24] + adds r4, #2 + adds r0, r1, r4 + strh r3, [r0] + ldrh r0, [r2, #0x26] + ldr r2, _0800ADF4 @ =0x000002F6 + adds r1, r1, r2 + strh r0, [r1] + bl sub_CBC + bl sub_10424 + ldr r1, _0800ADF8 @ =0x0202C790 + ldrb r0, [r1] + adds r0, #1 + strb r0, [r1] + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_0800AD78: .4byte 0x04000008 +_0800AD7C: .4byte 0x0400000A +_0800AD80: .4byte 0x00004E01 +_0800AD84: .4byte 0x0400000C +_0800AD88: .4byte 0x00005C02 +_0800AD8C: .4byte 0x0400000E +_0800AD90: .4byte 0x00001E03 +_0800AD94: .4byte 0x040000D4 +_0800AD98: .4byte 0x080F1980 +_0800AD9C: .4byte 0x06006000 +_0800ADA0: .4byte 0x80000400 +_0800ADA4: .4byte 0x080EB160 +_0800ADA8: .4byte 0x06007000 +_0800ADAC: .4byte 0x80000800 +_0800ADB0: .4byte 0x080EA160 +_0800ADB4: .4byte 0x0600E000 +_0800ADB8: .4byte 0x080EC160 +_0800ADBC: .4byte 0x0600F000 +_0800ADC0: .4byte 0x080EC960 +_0800ADC4: .4byte 0x80001400 +_0800ADC8: .4byte 0x080BD4C0 +_0800ADCC: .4byte 0x03000000 +_0800ADD0: .4byte 0x80002000 +_0800ADD4: .4byte 0x080E9F60 +_0800ADD8: .4byte 0x800000C0 +_0800ADDC: .4byte 0x080F2180 +_0800ADE0: .4byte 0x06010000 +_0800ADE4: .4byte 0x80001800 +_0800ADE8: .4byte 0x05000200 +_0800ADEC: .4byte 0x0200B0C0 +_0800ADF0: .4byte 0x0202ADA0 +_0800ADF4: .4byte 0x000002F6 +_0800ADF8: .4byte 0x0202C790 + + thumb_func_start sub_ADFC +sub_ADFC: @ 0x0800ADFC + push {r4, r5, lr} + ldr r1, _0800AE54 @ =0x0201A450 + movs r5, #0 + movs r2, #0xb4 + strh r2, [r1, #0x10] + ldr r0, _0800AE58 @ =0x0000FFBC + strh r0, [r1, #0x12] + strh r2, [r1] + strh r0, [r1, #2] + movs r0, #0x80 + strh r0, [r1, #0x20] + movs r0, #0x88 + strh r0, [r1, #0x22] + ldr r4, _0800AE5C @ =0x0202ADA0 + ldr r0, _0800AE60 @ =0x0000FF58 + strh r0, [r4] + adds r0, #0x40 + strh r0, [r4, #2] + strh r5, [r4, #8] + strh r5, [r4, #0xa] + strh r5, [r4, #4] + ldr r0, _0800AE64 @ =0x03002300 + ldr r1, _0800AE68 @ =0x06002EE0 + movs r2, #8 + movs r3, #8 + bl sub_10708 + movs r0, #0xa5 + strh r0, [r4, #0xc] + strh r5, [r4, #0xe] + strh r5, [r4, #0x14] + movs r0, #0xa0 + strh r0, [r4, #0x18] + strh r5, [r4, #0x1a] + strh r5, [r4, #0x20] + strh r5, [r4, #0x24] + strh r5, [r4, #0x26] + ldr r0, _0800AE6C @ =0x0202BF10 + strh r5, [r0] + ldr r0, _0800AE70 @ =0x0202A578 + strh r5, [r0] + pop {r4, r5} + pop {r0} + bx r0 + .align 2, 0 +_0800AE54: .4byte 0x0201A450 +_0800AE58: .4byte 0x0000FFBC +_0800AE5C: .4byte 0x0202ADA0 +_0800AE60: .4byte 0x0000FF58 +_0800AE64: .4byte 0x03002300 +_0800AE68: .4byte 0x06002EE0 +_0800AE6C: .4byte 0x0202BF10 +_0800AE70: .4byte 0x0202A578 + + thumb_func_start sub_AE74 +sub_AE74: @ 0x0800AE74 + push {r4, lr} + ldr r1, _0800AF5C @ =0x0201A450 + ldrh r0, [r1, #0x10] + subs r0, #0x10 + strh r0, [r1, #0x10] + ldrh r0, [r1, #0x12] + adds r0, #0xa + strh r0, [r1, #0x12] + ldrh r0, [r1] + subs r0, #0x10 + strh r0, [r1] + ldrh r0, [r1, #2] + adds r0, #0xa + strh r0, [r1, #2] + ldrh r0, [r1, #0x20] + adds r0, #5 + strh r0, [r1, #0x20] + ldrh r0, [r1, #0x22] + subs r0, #3 + strh r0, [r1, #0x22] + ldr r4, _0800AF60 @ =0x0202ADA0 + ldrh r0, [r4, #0xc] + subs r0, #0x10 + strh r0, [r4, #0xc] + ldrh r0, [r4, #0xe] + adds r0, #1 + strh r0, [r4, #0xe] + ldrh r0, [r4, #0x18] + subs r0, #0x10 + strh r0, [r4, #0x18] + ldrh r1, [r4, #4] + ldrh r2, [r4] + adds r0, r1, r2 + strh r0, [r4] + ldrh r0, [r4, #2] + adds r0, #9 + strh r0, [r4, #2] + adds r1, #1 + strh r1, [r4, #4] + ldrh r0, [r4, #0xa] + adds r0, #1 + strh r0, [r4, #0xa] + ldr r2, _0800AF64 @ =0x086A79FC + movs r3, #8 + ldrsh r1, [r4, r3] + lsls r1, r1, #2 + adds r1, r1, r2 + lsls r0, r0, #0x10 + asrs r0, r0, #0x10 + movs r2, #2 + ldrsh r1, [r1, r2] + cmp r0, r1 + ble _0800AF02 + ldrh r0, [r4, #8] + adds r0, #1 + strh r0, [r4, #8] + ldr r1, _0800AF68 @ =0x086A7A1C + movs r3, #8 + ldrsh r0, [r4, r3] + lsls r0, r0, #1 + adds r0, r0, r1 + movs r1, #0 + ldrsh r0, [r0, r1] + lsls r0, r0, #1 + ldr r1, _0800AF6C @ =0x03000000 + adds r0, r0, r1 + ldr r1, _0800AF70 @ =0x06002EE0 + movs r2, #8 + movs r3, #8 + bl sub_10708 +_0800AF02: + bl sub_B0E8 + ldr r1, _0800AF74 @ =0x0200B0C0 + ldrh r2, [r4] + movs r3, #0xba + lsls r3, r3, #2 + adds r0, r1, r3 + strh r2, [r0] + ldrh r2, [r4, #2] + adds r3, #2 + adds r0, r1, r3 + strh r2, [r0] + ldrh r2, [r4, #0xc] + adds r3, #2 + adds r0, r1, r3 + strh r2, [r0] + ldrh r2, [r4, #0xe] + adds r3, #2 + adds r0, r1, r3 + strh r2, [r0] + ldrh r2, [r4, #0x18] + adds r3, #2 + adds r0, r1, r3 + strh r2, [r0] + ldrh r0, [r4, #0x1a] + ldr r2, _0800AF78 @ =0x000002F2 + adds r1, r1, r2 + strh r0, [r1] + ldrh r0, [r4, #0x20] + adds r0, #1 + strh r0, [r4, #0x20] + lsls r0, r0, #0x10 + asrs r0, r0, #0x10 + cmp r0, #9 + ble _0800AF54 + movs r0, #0 + strh r0, [r4, #0x20] + ldr r1, _0800AF7C @ =0x0202C790 + ldrb r0, [r1] + adds r0, #1 + strb r0, [r1] +_0800AF54: + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_0800AF5C: .4byte 0x0201A450 +_0800AF60: .4byte 0x0202ADA0 +_0800AF64: .4byte 0x086A79FC +_0800AF68: .4byte 0x086A7A1C +_0800AF6C: .4byte 0x03000000 +_0800AF70: .4byte 0x06002EE0 +_0800AF74: .4byte 0x0200B0C0 +_0800AF78: .4byte 0x000002F2 +_0800AF7C: .4byte 0x0202C790 + + thumb_func_start sub_AF80 +sub_AF80: @ 0x0800AF80 + push {r4, lr} + ldr r3, _0800B064 @ =0x0202ADA0 + ldrh r0, [r3, #0xa] + adds r0, #1 + strh r0, [r3, #0xa] + ldr r2, _0800B068 @ =0x086A79FC + movs r4, #8 + ldrsh r1, [r3, r4] + lsls r1, r1, #2 + adds r1, r1, r2 + lsls r0, r0, #0x10 + asrs r0, r0, #0x10 + movs r2, #2 + ldrsh r1, [r1, r2] + cmp r0, r1 + ble _0800AFCC + ldrh r1, [r3, #8] + movs r4, #8 + ldrsh r0, [r3, r4] + cmp r0, #6 + bgt _0800AFCC + adds r0, r1, #1 + strh r0, [r3, #8] + ldr r1, _0800B06C @ =0x086A7A1C + movs r2, #8 + ldrsh r0, [r3, r2] + lsls r0, r0, #1 + adds r0, r0, r1 + movs r4, #0 + ldrsh r0, [r0, r4] + lsls r0, r0, #1 + ldr r1, _0800B070 @ =0x03000000 + adds r0, r0, r1 + ldr r1, _0800B074 @ =0x06002EE0 + movs r2, #8 + movs r3, #8 + bl sub_10708 +_0800AFCC: + bl sub_B0E8 + ldr r3, _0800B064 @ =0x0202ADA0 + ldrh r0, [r3, #0x24] + adds r0, #1 + strh r0, [r3, #0x24] + ldr r0, _0800B078 @ =0x0202BF10 + ldrh r0, [r0] + movs r1, #1 + ands r0, r1 + cmp r0, #0 + bne _0800AFFE + ldr r1, _0800B07C @ =0x0201A450 + ldrh r0, [r1, #0x10] + subs r0, #1 + strh r0, [r1, #0x10] + ldrh r0, [r1, #0x12] + adds r0, #1 + strh r0, [r1, #0x12] + ldrh r0, [r1] + subs r0, #2 + strh r0, [r1] + ldrh r0, [r1, #2] + adds r0, #2 + strh r0, [r1, #2] +_0800AFFE: + ldr r1, _0800B080 @ =0x0200B0C0 + ldrh r2, [r3] + movs r4, #0xba + lsls r4, r4, #2 + adds r0, r1, r4 + strh r2, [r0] + ldrh r2, [r3, #2] + adds r4, #2 + adds r0, r1, r4 + strh r2, [r0] + ldrh r2, [r3, #0xc] + adds r4, #2 + adds r0, r1, r4 + strh r2, [r0] + ldrh r2, [r3, #0xe] + adds r4, #2 + adds r0, r1, r4 + strh r2, [r0] + ldrh r2, [r3, #0x18] + adds r4, #2 + adds r0, r1, r4 + strh r2, [r0] + ldrh r2, [r3, #0x1a] + adds r4, #2 + adds r0, r1, r4 + strh r2, [r0] + ldrh r2, [r3, #0x24] + adds r4, #2 + adds r0, r1, r4 + strh r2, [r0] + ldrh r0, [r3, #0x26] + ldr r2, _0800B084 @ =0x000002F6 + adds r1, r1, r2 + strh r0, [r1] + ldrh r0, [r3, #0x2c] + adds r0, #1 + strh r0, [r3, #0x2c] + lsls r0, r0, #0x10 + asrs r0, r0, #0x10 + cmp r0, #0x1d + ble _0800B05C + movs r0, #0 + strh r0, [r3, #0x2c] + ldr r1, _0800B088 @ =0x0202C790 + ldrb r0, [r1] + adds r0, #2 + strb r0, [r1] +_0800B05C: + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_0800B064: .4byte 0x0202ADA0 +_0800B068: .4byte 0x086A79FC +_0800B06C: .4byte 0x086A7A1C +_0800B070: .4byte 0x03000000 +_0800B074: .4byte 0x06002EE0 +_0800B078: .4byte 0x0202BF10 +_0800B07C: .4byte 0x0201A450 +_0800B080: .4byte 0x0200B0C0 +_0800B084: .4byte 0x000002F6 +_0800B088: .4byte 0x0202C790 + + thumb_func_start nullsub_11 +nullsub_11: @ 0x0800B08C + bx lr + + thumb_func_start sub_B090 +sub_B090: @ 0x0800B090 + push {lr} + sub sp, #8 + bl sub_10480 + bl sub_578 + movs r2, #0 + str r2, [sp] + ldr r1, _0800B0D4 @ =0x040000D4 + mov r0, sp + str r0, [r1] + movs r0, #0xe0 + lsls r0, r0, #0x13 + str r0, [r1, #4] + ldr r0, _0800B0D8 @ =0x85000100 + str r0, [r1, #8] + ldr r0, [r1, #8] + add r0, sp, #4 + strh r2, [r0] + str r0, [r1] + ldr r0, _0800B0DC @ =0x06010000 + str r0, [r1, #4] + ldr r0, _0800B0E0 @ =0x81002800 + str r0, [r1, #8] + ldr r0, [r1, #8] + bl sub_10544 + ldr r1, _0800B0E4 @ =0x0202C790 + ldrb r0, [r1] + adds r0, #1 + strb r0, [r1] + add sp, #8 + pop {r0} + bx r0 + .align 2, 0 +_0800B0D4: .4byte 0x040000D4 +_0800B0D8: .4byte 0x85000100 +_0800B0DC: .4byte 0x06010000 +_0800B0E0: .4byte 0x81002800 +_0800B0E4: .4byte 0x0202C790 + + thumb_func_start sub_B0E8 +sub_B0E8: @ 0x0800B0E8 + push {r4, r5, r6, r7, lr} + mov r7, sl + mov r6, sb + mov r5, r8 + push {r5, r6, r7} + ldr r4, _0800B2C0 @ =0x0200B0C0 + ldrh r0, [r4, #0x38] + movs r0, #0xf1 + lsls r0, r0, #4 + strh r0, [r4, #0x38] + ldrh r0, [r4, #0x3a] + ldr r0, _0800B2C4 @ =0x00000808 + strh r0, [r4, #0x3a] + ldr r1, _0800B2C8 @ =0x04000050 + ldrh r0, [r4, #0x38] + strh r0, [r1] + adds r1, #2 + ldrh r0, [r4, #0x3a] + strh r0, [r1] + movs r0, #0xec + lsls r0, r0, #2 + adds r0, r0, r4 + mov sl, r0 + movs r1, #0xbe + lsls r1, r1, #2 + adds r1, r1, r4 + mov r8, r1 + movs r2, #0x8d + lsls r2, r2, #3 + adds r2, r2, r4 + mov sb, r2 + movs r0, #1 + mov r7, sl + strh r0, [r7] + strh r0, [r1] + strh r0, [r2] + ldr r0, _0800B2CC @ =0x086A79EC + movs r1, #3 + mov r2, r8 + bl sub_358 + ldrh r0, [r7] + cmp r0, #1 + bne _0800B1B8 + ldr r0, _0800B2D0 @ =0x0201A450 + ldrh r1, [r0] + strh r1, [r7, #2] + ldrh r0, [r0, #2] + strh r0, [r7, #4] + ldr r6, _0800B2D4 @ =0x03005000 + movs r0, #0xd + rsbs r0, r0, #0 + mov ip, r0 + movs r1, #0xee + lsls r1, r1, #2 + adds r4, r4, r1 + movs r5, #3 +_0800B15A: + ldrh r1, [r4] + lsls r1, r1, #3 + adds r1, r1, r6 + ldrb r2, [r1, #1] + mov r0, ip + ands r0, r2 + movs r2, #4 + orrs r0, r2 + strb r0, [r1, #1] + ldrh r1, [r4] + lsls r1, r1, #3 + adds r1, r1, r6 + ldrb r2, [r1, #5] + mov r0, ip + ands r0, r2 + movs r7, #4 + orrs r0, r7 + strb r0, [r1, #5] + ldrh r3, [r4] + lsls r3, r3, #3 + adds r3, r3, r6 + movs r0, #2 + ldrsh r1, [r4, r0] + mov r2, sl + movs r7, #2 + ldrsh r0, [r2, r7] + adds r1, r1, r0 + ldr r2, _0800B2D8 @ =0x000001FF + adds r0, r2, #0 + ands r1, r0 + ldrh r2, [r3, #2] + ldr r0, _0800B2DC @ =0xFFFFFE00 + ands r0, r2 + orrs r0, r1 + strh r0, [r3, #2] + ldrh r1, [r4] + lsls r1, r1, #3 + adds r1, r1, r6 + mov r7, sl + ldrb r0, [r7, #4] + ldrb r2, [r4, #4] + adds r0, r0, r2 + strb r0, [r1] + adds r4, #8 + subs r5, #1 + cmp r5, #0 + bge _0800B15A +_0800B1B8: + mov r7, r8 + ldrh r0, [r7] + cmp r0, #1 + bne _0800B234 + ldr r0, _0800B2D0 @ =0x0201A450 + ldrh r1, [r0, #0x10] + strh r1, [r7, #2] + ldrh r0, [r0, #0x12] + strh r0, [r7, #4] + ldr r6, _0800B2D4 @ =0x03005000 + ldr r0, _0800B2DC @ =0xFFFFFE00 + mov ip, r0 + mov r4, r8 + adds r4, #8 + movs r5, #3 +_0800B1D6: + ldrh r1, [r4] + lsls r1, r1, #3 + adds r1, r1, r6 + ldrb r2, [r1, #1] + movs r0, #0xd + rsbs r0, r0, #0 + ands r0, r2 + strb r0, [r1, #1] + ldrh r2, [r4] + lsls r2, r2, #3 + adds r2, r2, r6 + ldrb r1, [r2, #5] + movs r0, #0xd + rsbs r0, r0, #0 + ands r0, r1 + movs r1, #4 + orrs r0, r1 + strb r0, [r2, #5] + ldrh r3, [r4] + lsls r3, r3, #3 + adds r3, r3, r6 + movs r2, #2 + ldrsh r1, [r4, r2] + mov r7, r8 + movs r2, #2 + ldrsh r0, [r7, r2] + adds r1, r1, r0 + ldr r7, _0800B2D8 @ =0x000001FF + adds r0, r7, #0 + ands r1, r0 + ldrh r2, [r3, #2] + mov r0, ip + ands r0, r2 + orrs r0, r1 + strh r0, [r3, #2] + ldrh r1, [r4] + lsls r1, r1, #3 + adds r1, r1, r6 + mov r2, r8 + ldrb r0, [r2, #4] + ldrb r7, [r4, #4] + adds r0, r0, r7 + strb r0, [r1] + adds r4, #8 + subs r5, #1 + cmp r5, #0 + bge _0800B1D6 +_0800B234: + mov r1, sb + ldrh r0, [r1] + cmp r0, #1 + bne _0800B2A2 + ldr r0, _0800B2D0 @ =0x0201A450 + ldrh r1, [r0, #0x20] + mov r2, sb + strh r1, [r2, #2] + ldrh r0, [r0, #0x22] + strh r0, [r2, #4] + ldr r6, _0800B2D4 @ =0x03005000 + movs r7, #0xd + rsbs r7, r7, #0 + mov ip, r7 + mov r4, sb + adds r4, #8 + movs r5, #7 +_0800B256: + ldrh r2, [r4] + lsls r2, r2, #3 + adds r2, r2, r6 + ldrb r1, [r2, #5] + mov r0, ip + ands r0, r1 + movs r1, #8 + orrs r0, r1 + strb r0, [r2, #5] + ldrh r3, [r4] + lsls r3, r3, #3 + adds r3, r3, r6 + movs r0, #2 + ldrsh r1, [r4, r0] + mov r2, sb + movs r7, #2 + ldrsh r0, [r2, r7] + adds r1, r1, r0 + ldr r2, _0800B2D8 @ =0x000001FF + adds r0, r2, #0 + ands r1, r0 + ldrh r2, [r3, #2] + ldr r0, _0800B2DC @ =0xFFFFFE00 + ands r0, r2 + orrs r0, r1 + strh r0, [r3, #2] + ldrh r1, [r4] + lsls r1, r1, #3 + adds r1, r1, r6 + mov r7, sb + ldrb r0, [r7, #4] + ldrb r2, [r4, #4] + adds r0, r0, r2 + strb r0, [r1] + adds r4, #8 + subs r5, #1 + cmp r5, #0 + bge _0800B256 +_0800B2A2: + movs r0, #0 + mov r7, sl + strh r0, [r7] + mov r1, r8 + strh r0, [r1] + mov r2, sb + strh r0, [r2] + pop {r3, r4, r5} + mov r8, r3 + mov sb, r4 + mov sl, r5 + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + .align 2, 0 +_0800B2C0: .4byte 0x0200B0C0 +_0800B2C4: .4byte 0x00000808 +_0800B2C8: .4byte 0x04000050 +_0800B2CC: .4byte 0x086A79EC +_0800B2D0: .4byte 0x0201A450 +_0800B2D4: .4byte 0x03005000 +_0800B2D8: .4byte 0x000001FF +_0800B2DC: .4byte 0xFFFFFE00 + + thumb_func_start sub_B2E0 +sub_B2E0: @ 0x0800B2E0 + push {lr} + bl sub_518 + ldr r1, _0800B2F4 @ =0x0202C790 + ldrb r0, [r1] + adds r0, #1 + strb r0, [r1] + pop {r0} + bx r0 + .align 2, 0 +_0800B2F4: .4byte 0x0202C790 + + thumb_func_start sub_B2F8 +sub_B2F8: @ 0x0800B2F8 + push {r4, lr} + movs r2, #0x80 + lsls r2, r2, #0x13 + movs r1, #0x80 + lsls r1, r1, #5 + adds r0, r1, #0 + strh r0, [r2] + ldr r1, _0800B428 @ =0x04000008 + movs r3, #0xf0 + lsls r3, r3, #4 + adds r0, r3, #0 + strh r0, [r1] + ldrh r0, [r2] + movs r4, #0x80 + lsls r4, r4, #1 + adds r1, r4, #0 + orrs r0, r1 + strh r0, [r2] + ldr r1, _0800B42C @ =0x0400000A + ldr r3, _0800B430 @ =0x0000DA01 + adds r0, r3, #0 + strh r0, [r1] + ldrh r0, [r2] + movs r4, #0x80 + lsls r4, r4, #2 + adds r1, r4, #0 + orrs r0, r1 + strh r0, [r2] + ldr r1, _0800B434 @ =0x0400000C + ldr r3, _0800B438 @ =0x00001E02 + adds r0, r3, #0 + strh r0, [r1] + ldrh r0, [r2] + movs r4, #0x80 + lsls r4, r4, #3 + adds r1, r4, #0 + orrs r0, r1 + strh r0, [r2] + ldr r1, _0800B43C @ =0x0400000E + ldr r3, _0800B440 @ =0x00001F03 + adds r0, r3, #0 + strh r0, [r1] + ldrh r0, [r2] + movs r4, #0x80 + lsls r4, r4, #4 + adds r1, r4, #0 + orrs r0, r1 + strh r0, [r2] + ldr r0, _0800B444 @ =0x040000D4 + ldr r1, _0800B448 @ =0x080FD7C0 + str r1, [r0] + ldr r1, _0800B44C @ =0x06007800 + str r1, [r0, #4] + ldr r2, _0800B450 @ =0x80000400 + str r2, [r0, #8] + ldr r1, [r0, #8] + ldr r1, _0800B454 @ =0x080FDFC0 + str r1, [r0] + ldr r1, _0800B458 @ =0x0600D000 + str r1, [r0, #4] + ldr r1, _0800B45C @ =0x80001000 + str r1, [r0, #8] + ldr r1, [r0, #8] + ldr r1, _0800B460 @ =0x080FCFC0 + str r1, [r0] + ldr r1, _0800B464 @ =0x0600F000 + str r1, [r0, #4] + str r2, [r0, #8] + ldr r1, [r0, #8] + ldr r1, _0800B468 @ =0x080F63A0 + str r1, [r0] + ldr r1, _0800B46C @ =0x0600F800 + str r1, [r0, #4] + str r2, [r0, #8] + ldr r1, [r0, #8] + ldr r1, _0800B470 @ =0x080F6BA0 + str r1, [r0] + movs r1, #0xc0 + lsls r1, r1, #0x13 + str r1, [r0, #4] + ldr r1, _0800B474 @ =0x80003200 + str r1, [r0, #8] + ldr r1, [r0, #8] + ldr r3, _0800B478 @ =0x080F61A0 + str r3, [r0] + movs r1, #0xa0 + lsls r1, r1, #0x13 + str r1, [r0, #4] + ldr r2, _0800B47C @ =0x80000040 + str r2, [r0, #8] + ldr r1, [r0, #8] + ldr r1, _0800B480 @ =0x080FFFC0 + str r1, [r0] + ldr r1, _0800B484 @ =0x06010000 + str r1, [r0, #4] + ldr r1, _0800B488 @ =0x80000800 + str r1, [r0, #8] + ldr r1, [r0, #8] + str r3, [r0] + ldr r1, _0800B48C @ =0x05000200 + str r1, [r0, #4] + str r2, [r0, #8] + ldr r0, [r0, #8] + bl sub_B4A0 + ldr r1, _0800B490 @ =0x0200B0C0 + ldr r2, _0800B494 @ =0x0202ADA0 + ldrh r3, [r2] + movs r4, #0xba + lsls r4, r4, #2 + adds r0, r1, r4 + strh r3, [r0] + ldrh r3, [r2, #2] + adds r4, #2 + adds r0, r1, r4 + strh r3, [r0] + ldrh r3, [r2, #0xc] + adds r4, #2 + adds r0, r1, r4 + strh r3, [r0] + ldrh r3, [r2, #0xe] + adds r4, #2 + adds r0, r1, r4 + strh r3, [r0] + ldrh r3, [r2, #0x18] + adds r4, #2 + adds r0, r1, r4 + strh r3, [r0] + ldrh r3, [r2, #0x1a] + adds r4, #2 + adds r0, r1, r4 + strh r3, [r0] + ldrh r3, [r2, #0x24] + adds r4, #2 + adds r0, r1, r4 + strh r3, [r0] + ldrh r0, [r2, #0x26] + ldr r2, _0800B498 @ =0x000002F6 + adds r1, r1, r2 + strh r0, [r1] + bl sub_CBC + bl sub_10424 + ldr r1, _0800B49C @ =0x0202C790 + ldrb r0, [r1] + adds r0, #1 + strb r0, [r1] + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_0800B428: .4byte 0x04000008 +_0800B42C: .4byte 0x0400000A +_0800B430: .4byte 0x0000DA01 +_0800B434: .4byte 0x0400000C +_0800B438: .4byte 0x00001E02 +_0800B43C: .4byte 0x0400000E +_0800B440: .4byte 0x00001F03 +_0800B444: .4byte 0x040000D4 +_0800B448: .4byte 0x080FD7C0 +_0800B44C: .4byte 0x06007800 +_0800B450: .4byte 0x80000400 +_0800B454: .4byte 0x080FDFC0 +_0800B458: .4byte 0x0600D000 +_0800B45C: .4byte 0x80001000 +_0800B460: .4byte 0x080FCFC0 +_0800B464: .4byte 0x0600F000 +_0800B468: .4byte 0x080F63A0 +_0800B46C: .4byte 0x0600F800 +_0800B470: .4byte 0x080F6BA0 +_0800B474: .4byte 0x80003200 +_0800B478: .4byte 0x080F61A0 +_0800B47C: .4byte 0x80000040 +_0800B480: .4byte 0x080FFFC0 +_0800B484: .4byte 0x06010000 +_0800B488: .4byte 0x80000800 +_0800B48C: .4byte 0x05000200 +_0800B490: .4byte 0x0200B0C0 +_0800B494: .4byte 0x0202ADA0 +_0800B498: .4byte 0x000002F6 +_0800B49C: .4byte 0x0202C790 + + thumb_func_start sub_B4A0 +sub_B4A0: @ 0x0800B4A0 + push {r4, r5, r6, r7, lr} + ldr r1, _0800B540 @ =0x0202ADA0 + movs r3, #0 + movs r4, #0x1e + strh r4, [r1, #0xc] + ldr r0, _0800B544 @ =0x0000FF6A + strh r0, [r1, #0xe] + movs r0, #1 + strh r0, [r1, #0x14] + ldr r0, _0800B548 @ =0x0000FFFE + strh r0, [r1] + subs r0, #3 + strh r0, [r1, #2] + strh r3, [r1, #4] + movs r2, #8 + strh r2, [r1, #6] + subs r0, #0x6b + strh r0, [r1, #0x18] + adds r0, #0x44 + strh r0, [r1, #0x1a] + strh r2, [r1, #0x1c] + strh r3, [r1, #0x1e] + strh r3, [r1, #0x24] + strh r3, [r1, #0x26] + ldr r3, _0800B54C @ =0x0201A450 + movs r0, #0x32 + strh r0, [r3] + movs r1, #0x3c + strh r1, [r3, #2] + movs r0, #0x50 + strh r0, [r3, #0x10] + strh r1, [r3, #0x12] + movs r0, #0x8c + strh r0, [r3, #0x20] + movs r2, #0x64 + strh r2, [r3, #0x22] + movs r0, #0xc8 + strh r0, [r3, #0x30] + movs r0, #0x5a + strh r0, [r3, #0x32] + adds r0, r3, #0 + adds r0, #0x40 + strh r1, [r0] + adds r0, #2 + strh r4, [r0] + adds r1, r3, #0 + adds r1, #0x50 + movs r0, #0x96 + strh r0, [r1] + adds r0, r3, #0 + adds r0, #0x52 + strh r2, [r0] + ldr r5, _0800B550 @ =0x0202C548 + ldr r6, _0800B554 @ =0x0202BF10 + ldr r7, _0800B558 @ =0x0202A578 + ldr r0, _0800B55C @ =0x0202BEB4 + mov ip, r0 + movs r4, #0 + movs r2, #0 + adds r0, r3, #0 + adds r0, #8 + movs r1, #5 +_0800B51C: + strh r2, [r0] + strh r2, [r0, #2] + strb r4, [r0, #4] + adds r0, #0x10 + subs r1, #1 + cmp r1, #0 + bge _0800B51C + movs r0, #0 + strb r0, [r5] + movs r0, #0 + strh r0, [r6] + strh r0, [r7] + mov r1, ip + strb r0, [r1] + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + .align 2, 0 +_0800B540: .4byte 0x0202ADA0 +_0800B544: .4byte 0x0000FF6A +_0800B548: .4byte 0x0000FFFE +_0800B54C: .4byte 0x0201A450 +_0800B550: .4byte 0x0202C548 +_0800B554: .4byte 0x0202BF10 +_0800B558: .4byte 0x0202A578 +_0800B55C: .4byte 0x0202BEB4 + + thumb_func_start sub_B560 +sub_B560: @ 0x0800B560 + push {r4, r5, lr} + ldr r2, _0800B694 @ =0x0202ADA0 + ldr r3, _0800B698 @ =0x086A7AC0 + ldr r1, _0800B69C @ =0x0202C548 + movs r0, #0 + ldrsb r0, [r1, r0] + lsls r0, r0, #2 + adds r0, r0, r3 + ldrb r0, [r0] + lsls r0, r0, #0x18 + asrs r0, r0, #0x18 + ldrh r4, [r2, #0xc] + adds r0, r0, r4 + strh r0, [r2, #0xc] + movs r0, #0 + ldrsb r0, [r1, r0] + lsls r0, r0, #2 + adds r0, r0, r3 + ldrb r0, [r0, #1] + lsls r0, r0, #0x18 + asrs r0, r0, #0x18 + ldrh r5, [r2, #0xe] + adds r0, r0, r5 + strh r0, [r2, #0xe] + ldr r3, _0800B6A0 @ =0x086A7AE4 + ldr r4, _0800B6A4 @ =0x0202BF10 + movs r1, #0 + ldrsh r0, [r4, r1] + adds r0, r0, r3 + ldrb r1, [r0] + movs r0, #0x10 + ands r0, r1 + adds r5, r2, #0 + cmp r0, #0 + beq _0800B5C2 + ldrh r0, [r5, #6] + ldrh r2, [r5, #2] + adds r1, r0, r2 + strh r1, [r5, #2] + subs r0, #2 + strh r0, [r5, #6] + lsls r0, r0, #0x10 + asrs r0, r0, #0x10 + movs r1, #0xa + rsbs r1, r1, #0 + cmp r0, r1 + bgt _0800B5C2 + movs r0, #8 + strh r0, [r5, #6] +_0800B5C2: + movs r1, #0 + ldrsh r0, [r4, r1] + adds r0, r0, r3 + ldrb r1, [r0] + movs r0, #1 + ands r0, r1 + cmp r0, #0 + beq _0800B5EE + ldrh r0, [r5, #0x1c] + ldrh r2, [r5, #0x18] + adds r1, r0, r2 + strh r1, [r5, #0x18] + subs r0, #2 + strh r0, [r5, #0x1c] + lsls r0, r0, #0x10 + asrs r0, r0, #0x10 + movs r1, #0xa + rsbs r1, r1, #0 + cmp r0, r1 + bgt _0800B5EE + movs r0, #8 + strh r0, [r5, #0x1c] +_0800B5EE: + ldr r1, _0800B6A8 @ =0x0200B0C0 + ldrh r2, [r5] + movs r3, #0xba + lsls r3, r3, #2 + adds r0, r1, r3 + strh r2, [r0] + ldrh r2, [r5, #2] + adds r3, #2 + adds r0, r1, r3 + strh r2, [r0] + ldrh r2, [r5, #0xc] + adds r3, #2 + adds r0, r1, r3 + strh r2, [r0] + ldrh r2, [r5, #0xe] + adds r3, #2 + adds r0, r1, r3 + strh r2, [r0] + ldrh r2, [r5, #0x18] + adds r3, #2 + adds r0, r1, r3 + strh r2, [r0] + ldrh r0, [r5, #0x1a] + ldr r5, _0800B6AC @ =0x000002F2 + adds r1, r1, r5 + strh r0, [r1] + ldr r1, _0800B6B0 @ =0x086A7B34 + ldr r3, _0800B6B4 @ =0x0202BEB4 + movs r2, #0 + ldrsb r2, [r3, r2] + lsls r0, r2, #2 + adds r0, r0, r1 + movs r5, #0 + ldrsh r1, [r4, r5] + ldrb r0, [r0, #2] + lsls r0, r0, #0x18 + asrs r0, r0, #0x18 + cmp r1, r0 + bne _0800B64C + ldr r1, _0800B6B8 @ =0x0201A450 + lsls r0, r2, #4 + adds r0, r0, r1 + movs r1, #1 + strb r1, [r0, #0xc] + ldrb r0, [r3] + adds r0, #1 + strb r0, [r3] +_0800B64C: + bl sub_B7F8 + ldr r4, _0800B6BC @ =0x0202A578 + ldrh r0, [r4] + adds r0, #1 + strh r0, [r4] + ldr r2, _0800B698 @ =0x086A7AC0 + ldr r3, _0800B69C @ =0x0202C548 + movs r1, #0 + ldrsb r1, [r3, r1] + lsls r1, r1, #2 + adds r1, r1, r2 + lsls r0, r0, #0x10 + asrs r0, r0, #0x10 + ldrb r1, [r1, #2] + lsls r1, r1, #0x18 + asrs r1, r1, #0x18 + cmp r0, r1 + ble _0800B68C + movs r0, #0 + strh r0, [r4] + ldrb r0, [r3] + adds r0, #1 + strb r0, [r3] + lsls r0, r0, #0x18 + asrs r0, r0, #0x18 + cmp r0, #8 + ble _0800B68C + ldr r1, _0800B6C0 @ =0x0202C790 + ldrb r0, [r1] + adds r0, #1 + strb r0, [r1] +_0800B68C: + pop {r4, r5} + pop {r0} + bx r0 + .align 2, 0 +_0800B694: .4byte 0x0202ADA0 +_0800B698: .4byte 0x086A7AC0 +_0800B69C: .4byte 0x0202C548 +_0800B6A0: .4byte 0x086A7AE4 +_0800B6A4: .4byte 0x0202BF10 +_0800B6A8: .4byte 0x0200B0C0 +_0800B6AC: .4byte 0x000002F2 +_0800B6B0: .4byte 0x086A7B34 +_0800B6B4: .4byte 0x0202BEB4 +_0800B6B8: .4byte 0x0201A450 +_0800B6BC: .4byte 0x0202A578 +_0800B6C0: .4byte 0x0202C790 + + thumb_func_start sub_B6C4 +sub_B6C4: @ 0x0800B6C4 + push {r4, r5, lr} + ldr r2, _0800B784 @ =0x086A7AE4 + ldr r3, _0800B788 @ =0x0202BF10 + movs r1, #0 + ldrsh r0, [r3, r1] + adds r0, r0, r2 + ldrb r1, [r0] + movs r0, #0x10 + ands r0, r1 + adds r4, r2, #0 + adds r2, r3, #0 + ldr r3, _0800B78C @ =0x0202ADA0 + cmp r0, #0 + beq _0800B6FC + ldrh r0, [r3, #6] + ldrh r5, [r3, #2] + adds r1, r0, r5 + strh r1, [r3, #2] + subs r0, #2 + strh r0, [r3, #6] + lsls r0, r0, #0x10 + asrs r0, r0, #0x10 + movs r1, #0xa + rsbs r1, r1, #0 + cmp r0, r1 + bgt _0800B6FC + movs r0, #8 + strh r0, [r3, #6] +_0800B6FC: + movs r1, #0 + ldrsh r0, [r2, r1] + adds r0, r0, r4 + ldrb r1, [r0] + movs r0, #1 + ands r0, r1 + cmp r0, #0 + beq _0800B728 + ldrh r0, [r3, #0x1c] + ldrh r2, [r3, #0x18] + adds r1, r0, r2 + strh r1, [r3, #0x18] + subs r0, #2 + strh r0, [r3, #0x1c] + lsls r0, r0, #0x10 + asrs r0, r0, #0x10 + movs r1, #0xa + rsbs r1, r1, #0 + cmp r0, r1 + bgt _0800B728 + movs r0, #8 + strh r0, [r3, #0x1c] +_0800B728: + ldr r1, _0800B790 @ =0x0200B0C0 + ldrh r2, [r3] + movs r4, #0xba + lsls r4, r4, #2 + adds r0, r1, r4 + strh r2, [r0] + ldrh r2, [r3, #2] + ldr r5, _0800B794 @ =0x000002EA + adds r0, r1, r5 + strh r2, [r0] + ldrh r2, [r3, #0xc] + adds r4, #4 + adds r0, r1, r4 + strh r2, [r0] + ldrh r2, [r3, #0xe] + adds r5, #4 + adds r0, r1, r5 + strh r2, [r0] + ldrh r2, [r3, #0x18] + adds r4, #4 + adds r0, r1, r4 + strh r2, [r0] + ldrh r0, [r3, #0x1a] + adds r5, #4 + adds r1, r1, r5 + strh r0, [r1] + bl sub_B7F8 + ldr r1, _0800B798 @ =0x0202A578 + ldrh r0, [r1] + adds r0, #1 + strh r0, [r1] + lsls r0, r0, #0x10 + asrs r0, r0, #0x10 + cmp r0, #0x10 + ble _0800B77C + movs r0, #0 + strh r0, [r1] + ldr r1, _0800B79C @ =0x0202C790 + ldrb r0, [r1] + adds r0, #1 + strb r0, [r1] +_0800B77C: + pop {r4, r5} + pop {r0} + bx r0 + .align 2, 0 +_0800B784: .4byte 0x086A7AE4 +_0800B788: .4byte 0x0202BF10 +_0800B78C: .4byte 0x0202ADA0 +_0800B790: .4byte 0x0200B0C0 +_0800B794: .4byte 0x000002EA +_0800B798: .4byte 0x0202A578 +_0800B79C: .4byte 0x0202C790 + + thumb_func_start sub_B7A0 +sub_B7A0: @ 0x0800B7A0 + push {lr} + sub sp, #8 + bl sub_578 + movs r2, #0 + str r2, [sp] + ldr r1, _0800B7E4 @ =0x040000D4 + mov r0, sp + str r0, [r1] + movs r0, #0xe0 + lsls r0, r0, #0x13 + str r0, [r1, #4] + ldr r0, _0800B7E8 @ =0x85000100 + str r0, [r1, #8] + ldr r0, [r1, #8] + add r0, sp, #4 + strh r2, [r0] + str r0, [r1] + ldr r0, _0800B7EC @ =0x06010000 + str r0, [r1, #4] + ldr r0, _0800B7F0 @ =0x81002800 + str r0, [r1, #8] + ldr r0, [r1, #8] + bl sub_10480 + bl sub_10544 + ldr r1, _0800B7F4 @ =0x0202C790 + ldrb r0, [r1] + adds r0, #1 + strb r0, [r1] + add sp, #8 + pop {r0} + bx r0 + .align 2, 0 +_0800B7E4: .4byte 0x040000D4 +_0800B7E8: .4byte 0x85000100 +_0800B7EC: .4byte 0x06010000 +_0800B7F0: .4byte 0x81002800 +_0800B7F4: .4byte 0x0202C790 + + thumb_func_start sub_B7F8 +sub_B7F8: @ 0x0800B7F8 + push {r4, r5, r6, r7, lr} + mov r7, sl + mov r6, sb + mov r5, r8 + push {r5, r6, r7} + sub sp, #0x24 + ldr r6, _0800BA0C @ =0x0201A450 + movs r1, #8 + ldrsh r0, [r6, r1] + lsls r2, r0, #4 + adds r2, r2, r0 + lsls r2, r2, #2 + adds r2, r2, r0 + lsls r2, r2, #4 + ldr r3, _0800BA10 @ =0x0200B3B8 + adds r2, r2, r3 + str r2, [sp] + movs r4, #0x18 + ldrsh r1, [r6, r4] + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r1 + lsls r0, r0, #4 + adds r1, r3, #0 + adds r1, #0xb8 + adds r0, r0, r1 + str r0, [sp, #4] + movs r0, #0x28 + ldrsh r1, [r6, r0] + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r1 + lsls r0, r0, #4 + movs r4, #0xb8 + lsls r4, r4, #1 + adds r1, r3, r4 + adds r0, r0, r1 + str r0, [sp, #8] + movs r0, #0x38 + ldrsh r1, [r6, r0] + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r1 + lsls r0, r0, #4 + adds r4, #0xb8 + adds r1, r3, r4 + adds r0, r0, r1 + str r0, [sp, #0xc] + adds r0, r6, #0 + adds r0, #0x48 + movs r4, #0 + ldrsh r1, [r0, r4] + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r1 + lsls r0, r0, #4 + movs r4, #0xb8 + lsls r4, r4, #2 + adds r1, r3, r4 + adds r0, r0, r1 + str r0, [sp, #0x10] + adds r0, r6, #0 + adds r0, #0x58 + movs r4, #0 + ldrsh r1, [r0, r4] + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r1 + lsls r0, r0, #4 + movs r4, #0xe6 + lsls r4, r4, #2 + adds r1, r3, r4 + adds r0, r0, r1 + str r0, [sp, #0x14] + movs r0, #0xc + ldrsb r0, [r6, r0] + strh r0, [r2] + ldr r1, [sp, #4] + movs r0, #0x1c + ldrsb r0, [r6, r0] + strh r0, [r1] + ldr r1, [sp, #8] + adds r0, r6, #0 + adds r0, #0x2c + ldrb r0, [r0] + lsls r0, r0, #0x18 + asrs r0, r0, #0x18 + strh r0, [r1] + ldr r1, [sp, #0xc] + adds r0, r6, #0 + adds r0, #0x3c + ldrb r0, [r0] + lsls r0, r0, #0x18 + asrs r0, r0, #0x18 + strh r0, [r1] + ldr r1, [sp, #0x10] + adds r0, r6, #0 + adds r0, #0x4c + ldrb r0, [r0] + lsls r0, r0, #0x18 + asrs r0, r0, #0x18 + strh r0, [r1] + ldr r1, [sp, #0x14] + adds r0, r6, #0 + adds r0, #0x5c + ldrb r0, [r0] + lsls r0, r0, #0x18 + asrs r0, r0, #0x18 + strh r0, [r1] + ldr r4, _0800BA14 @ =0x086A7A78 + adds r0, r4, #0 + movs r1, #0x12 + adds r2, r3, #0 + bl sub_358 + movs r5, #0 + str r6, [sp, #0x18] +_0800B8EC: + lsls r0, r5, #2 + mov r6, sp + adds r4, r6, r0 + ldr r1, [r4] + ldrh r1, [r1] + str r0, [sp, #0x20] + adds r0, r5, #1 + str r0, [sp, #0x1c] + cmp r1, #1 + bne _0800B9DA + lsls r3, r5, #4 + ldr r1, [sp, #0x18] + adds r2, r3, r1 + ldr r6, [sp, #0x20] + ldr r1, _0800BA18 @ =0x086A7B34 + adds r0, r6, r1 + movs r1, #0 + ldrsb r1, [r0, r1] + ldrh r6, [r2] + adds r1, r1, r6 + strh r1, [r2] + ldrb r0, [r0, #1] + lsls r0, r0, #0x18 + asrs r0, r0, #0x18 + ldrh r6, [r2, #2] + adds r0, r0, r6 + strh r0, [r2, #2] + ldr r0, [r4] + strh r1, [r0, #2] + ldr r1, [r4] + ldrh r0, [r2, #2] + strh r0, [r1, #4] + movs r0, #8 + ldrsh r1, [r2, r0] + lsls r0, r1, #1 + adds r0, r0, r1 + lsls r0, r0, #1 + adds r0, r5, r0 + lsls r0, r0, #2 + ldr r1, _0800BA14 @ =0x086A7A78 + adds r0, r0, r1 + ldr r0, [r0] + mov r8, r0 + movs r7, #0 + mov sb, r3 + ldrh r2, [r0] + cmp r7, r2 + bge _0800B998 + adds r5, r4, #0 + ldr r3, _0800BA1C @ =0x03005000 + mov ip, r3 + ldr r4, _0800BA20 @ =0xFFFFFE00 + mov sl, r4 + movs r6, #8 +_0800B958: + ldr r0, [r5] + adds r4, r0, r6 + ldrh r2, [r4] + lsls r2, r2, #3 + add r2, ip + movs r3, #2 + ldrsh r1, [r4, r3] + movs r3, #2 + ldrsh r0, [r0, r3] + adds r1, r1, r0 + ldr r3, _0800BA24 @ =0x000001FF + adds r0, r3, #0 + ands r1, r0 + ldrh r3, [r2, #2] + mov r0, sl + ands r0, r3 + orrs r0, r1 + strh r0, [r2, #2] + ldrh r1, [r4] + lsls r1, r1, #3 + add r1, ip + ldr r0, [r5] + ldrb r0, [r0, #4] + ldrb r4, [r4, #4] + adds r0, r0, r4 + strb r0, [r1] + adds r6, #8 + adds r7, #1 + mov r4, r8 + ldrh r4, [r4] + cmp r7, r4 + blt _0800B958 +_0800B998: + ldr r1, [sp, #0x18] + add r1, sb + ldrh r0, [r1, #0xa] + adds r0, #1 + movs r2, #0 + strh r0, [r1, #0xa] + lsls r0, r0, #0x10 + asrs r0, r0, #0x10 + cmp r0, #4 + ble _0800B9BC + strh r2, [r1, #0xa] + ldrh r2, [r1, #8] + movs r6, #8 + ldrsh r0, [r1, r6] + cmp r0, #1 + bgt _0800B9BC + adds r0, r2, #1 + strh r0, [r1, #8] +_0800B9BC: + ldr r1, [sp, #0x20] + ldr r2, _0800BA18 @ =0x086A7B34 + adds r0, r1, r2 + ldr r3, _0800BA28 @ =0x0202BF10 + movs r4, #0 + ldrsh r1, [r3, r4] + ldrb r0, [r0, #3] + lsls r0, r0, #0x18 + asrs r0, r0, #0x18 + cmp r1, r0 + bne _0800B9DA + ldr r1, [sp, #0x18] + add r1, sb + movs r0, #0 + strb r0, [r1, #0xc] +_0800B9DA: + ldr r5, [sp, #0x1c] + cmp r5, #5 + ble _0800B8EC + ldr r0, [sp] + movs r1, #0 + strh r1, [r0] + ldr r0, [sp, #4] + strh r1, [r0] + ldr r0, [sp, #8] + strh r1, [r0] + ldr r0, [sp, #0xc] + strh r1, [r0] + ldr r0, [sp, #0x10] + strh r1, [r0] + ldr r0, [sp, #0x14] + strh r1, [r0] + add sp, #0x24 + pop {r3, r4, r5} + mov r8, r3 + mov sb, r4 + mov sl, r5 + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + .align 2, 0 +_0800BA0C: .4byte 0x0201A450 +_0800BA10: .4byte 0x0200B3B8 +_0800BA14: .4byte 0x086A7A78 +_0800BA18: .4byte 0x086A7B34 +_0800BA1C: .4byte 0x03005000 +_0800BA20: .4byte 0xFFFFFE00 +_0800BA24: .4byte 0x000001FF +_0800BA28: .4byte 0x0202BF10 + + thumb_func_start sub_BA2C +sub_BA2C: @ 0x0800BA2C + ldr r1, _0800BA38 @ =0x0202C790 + ldrb r0, [r1] + adds r0, #1 + strb r0, [r1] + bx lr + .align 2, 0 +_0800BA38: .4byte 0x0202C790 + + thumb_func_start sub_BA3C +sub_BA3C: @ 0x0800BA3C + push {r4, r5, lr} + movs r2, #0x80 + lsls r2, r2, #0x13 + movs r1, #0x80 + lsls r1, r1, #5 + adds r0, r1, #0 + strh r0, [r2] + ldr r1, _0800BB6C @ =0x04000008 + movs r3, #0xd4 + lsls r3, r3, #8 + adds r0, r3, #0 + strh r0, [r1] + ldrh r0, [r2] + movs r3, #0x80 + lsls r3, r3, #1 + adds r1, r3, #0 + orrs r0, r1 + strh r0, [r2] + ldr r1, _0800BB70 @ =0x0400000A + ldr r3, _0800BB74 @ =0x0000D801 + adds r0, r3, #0 + strh r0, [r1] + ldrh r0, [r2] + movs r3, #0x80 + lsls r3, r3, #2 + adds r1, r3, #0 + orrs r0, r1 + strh r0, [r2] + ldr r1, _0800BB78 @ =0x0400000C + ldr r3, _0800BB7C @ =0x0000DC02 + adds r0, r3, #0 + strh r0, [r1] + ldrh r0, [r2] + movs r3, #0x80 + lsls r3, r3, #3 + adds r1, r3, #0 + orrs r0, r1 + strh r0, [r2] + ldr r1, _0800BB80 @ =0x0400000E + ldr r3, _0800BB84 @ =0x00000F03 + adds r0, r3, #0 + strh r0, [r1] + ldrh r0, [r2] + movs r3, #0x80 + lsls r3, r3, #4 + adds r1, r3, #0 + orrs r0, r1 + strh r0, [r2] + ldr r0, _0800BB88 @ =0x040000D4 + ldr r1, _0800BB8C @ =0x08108A00 + str r1, [r0] + ldr r1, _0800BB90 @ =0x0600A000 + str r1, [r0, #4] + ldr r3, _0800BB94 @ =0x80001000 + str r3, [r0, #8] + ldr r1, [r0, #8] + ldr r1, _0800BB98 @ =0x0810AA00 + str r1, [r0] + ldr r1, _0800BB9C @ =0x0600C000 + str r1, [r0, #4] + str r3, [r0, #8] + ldr r1, [r0, #8] + ldr r1, _0800BBA0 @ =0x08106A00 + str r1, [r0] + ldr r1, _0800BBA4 @ =0x0600E000 + str r1, [r0, #4] + str r3, [r0, #8] + ldr r1, [r0, #8] + ldr r1, _0800BBA8 @ =0x081011E0 + str r1, [r0] + ldr r1, _0800BBAC @ =0x06007800 + str r1, [r0, #4] + ldr r1, _0800BBB0 @ =0x80000400 + str r1, [r0, #8] + ldr r1, [r0, #8] + ldr r1, _0800BBB4 @ =0x081019E0 + str r1, [r0] + movs r1, #0xc0 + lsls r1, r1, #0x13 + str r1, [r0, #4] + ldr r1, _0800BBB8 @ =0x80002800 + str r1, [r0, #8] + ldr r1, [r0, #8] + ldr r5, _0800BBBC @ =0x08100FE0 + str r5, [r0] + movs r1, #0xa0 + lsls r1, r1, #0x13 + str r1, [r0, #4] + ldr r4, _0800BBC0 @ =0x800000B0 + str r4, [r0, #8] + ldr r1, [r0, #8] + ldr r1, _0800BBC4 @ =0x0810CA00 + str r1, [r0] + ldr r1, _0800BBC8 @ =0x06010000 + str r1, [r0, #4] + str r3, [r0, #8] + ldr r1, [r0, #8] + str r5, [r0] + ldr r1, _0800BBCC @ =0x05000200 + str r1, [r0, #4] + str r4, [r0, #8] + ldr r0, [r0, #8] + ldr r4, _0800BBD0 @ =0x0200B0C0 + ldrh r0, [r2] + strh r0, [r4, #0x16] + bl sub_BBE0 + ldr r1, _0800BBD4 @ =0x0202ADA0 + ldrh r2, [r1] + movs r3, #0xba + lsls r3, r3, #2 + adds r0, r4, r3 + strh r2, [r0] + ldrh r2, [r1, #2] + adds r3, #2 + adds r0, r4, r3 + strh r2, [r0] + ldrh r2, [r1, #0xc] + adds r3, #2 + adds r0, r4, r3 + strh r2, [r0] + ldrh r2, [r1, #0xe] + adds r3, #2 + adds r0, r4, r3 + strh r2, [r0] + ldrh r2, [r1, #0x18] + adds r3, #2 + adds r0, r4, r3 + strh r2, [r0] + ldrh r2, [r1, #0x1a] + adds r3, #2 + adds r0, r4, r3 + strh r2, [r0] + ldrh r2, [r1, #0x24] + adds r3, #2 + adds r0, r4, r3 + strh r2, [r0] + ldrh r0, [r1, #0x26] + ldr r1, _0800BBD8 @ =0x000002F6 + adds r4, r4, r1 + strh r0, [r4] + bl sub_CBC + bl sub_10424 + ldr r1, _0800BBDC @ =0x0202C790 + ldrb r0, [r1] + adds r0, #1 + strb r0, [r1] + pop {r4, r5} + pop {r0} + bx r0 + .align 2, 0 +_0800BB6C: .4byte 0x04000008 +_0800BB70: .4byte 0x0400000A +_0800BB74: .4byte 0x0000D801 +_0800BB78: .4byte 0x0400000C +_0800BB7C: .4byte 0x0000DC02 +_0800BB80: .4byte 0x0400000E +_0800BB84: .4byte 0x00000F03 +_0800BB88: .4byte 0x040000D4 +_0800BB8C: .4byte 0x08108A00 +_0800BB90: .4byte 0x0600A000 +_0800BB94: .4byte 0x80001000 +_0800BB98: .4byte 0x0810AA00 +_0800BB9C: .4byte 0x0600C000 +_0800BBA0: .4byte 0x08106A00 +_0800BBA4: .4byte 0x0600E000 +_0800BBA8: .4byte 0x081011E0 +_0800BBAC: .4byte 0x06007800 +_0800BBB0: .4byte 0x80000400 +_0800BBB4: .4byte 0x081019E0 +_0800BBB8: .4byte 0x80002800 +_0800BBBC: .4byte 0x08100FE0 +_0800BBC0: .4byte 0x800000B0 +_0800BBC4: .4byte 0x0810CA00 +_0800BBC8: .4byte 0x06010000 +_0800BBCC: .4byte 0x05000200 +_0800BBD0: .4byte 0x0200B0C0 +_0800BBD4: .4byte 0x0202ADA0 +_0800BBD8: .4byte 0x000002F6 +_0800BBDC: .4byte 0x0202C790 + + thumb_func_start sub_BBE0 +sub_BBE0: @ 0x0800BBE0 + ldr r1, _0800BC30 @ =0x0202ADA0 + movs r2, #0 + ldr r0, _0800BC34 @ =0x0000FEFC + strh r0, [r1] + movs r0, #0x46 + strh r0, [r1, #2] + strh r2, [r1, #6] + ldr r0, _0800BC38 @ =0x0000FEE8 + strh r0, [r1, #0xc] + movs r0, #0x5a + strh r0, [r1, #0xe] + strh r2, [r1, #0x12] + ldr r0, _0800BC3C @ =0x0000FF10 + strh r0, [r1, #0x18] + adds r0, #0xbe + strh r0, [r1, #0x1a] + adds r0, #0x2f + strh r0, [r1, #0x1e] + strh r2, [r1, #0x24] + strh r2, [r1, #0x26] + ldr r1, _0800BC40 @ =0x0201A450 + movs r0, #0x94 + lsls r0, r0, #1 + strh r0, [r1] + movs r0, #0x2c + strh r0, [r1, #2] + strh r2, [r1, #4] + strh r2, [r1, #6] + ldr r0, _0800BC44 @ =0x0202BF10 + strh r2, [r0] + ldr r0, _0800BC48 @ =0x0202A578 + strh r2, [r0] + ldr r0, _0800BC4C @ =0x0202C5E4 + movs r2, #0x80 + lsls r2, r2, #1 + adds r1, r2, #0 + strh r1, [r0] + ldr r0, _0800BC50 @ =0x0202ADD8 + strh r1, [r0] + bx lr + .align 2, 0 +_0800BC30: .4byte 0x0202ADA0 +_0800BC34: .4byte 0x0000FEFC +_0800BC38: .4byte 0x0000FEE8 +_0800BC3C: .4byte 0x0000FF10 +_0800BC40: .4byte 0x0201A450 +_0800BC44: .4byte 0x0202BF10 +_0800BC48: .4byte 0x0202A578 +_0800BC4C: .4byte 0x0202C5E4 +_0800BC50: .4byte 0x0202ADD8 + + thumb_func_start sub_BC54 +sub_BC54: @ 0x0800BC54 + push {r4, r5, r6, lr} + ldr r4, _0800BCD0 @ =0x0202ADA0 + ldrh r0, [r4, #0x18] + adds r0, #2 + strh r0, [r4, #0x18] + ldrh r0, [r4, #0x1a] + ldrh r6, [r4, #0x1e] + subs r0, r0, r6 + strh r0, [r4, #0x1a] + ldr r5, _0800BCD4 @ =0x0202BF10 + movs r1, #0 + ldrsh r0, [r5, r1] + movs r1, #3 + bl __modsi3 + lsls r0, r0, #0x10 + cmp r0, #0 + bne _0800BC88 + adds r0, r6, #1 + strh r0, [r4, #0x1e] + lsls r0, r0, #0x10 + asrs r0, r0, #0x10 + cmp r0, #4 + ble _0800BC88 + ldr r0, _0800BCD8 @ =0x0000FFFD + strh r0, [r4, #0x1e] +_0800BC88: + ldrh r0, [r4, #0x24] + subs r0, #1 + strh r0, [r4, #0x24] + ldrh r0, [r4, #0x26] + subs r0, #1 + strh r0, [r4, #0x26] + ldr r1, _0800BCDC @ =0x0200B0C0 + ldrh r2, [r4, #0x18] + movs r3, #0xbc + lsls r3, r3, #2 + adds r0, r1, r3 + strh r2, [r0] + ldrh r2, [r4, #0x1a] + adds r3, #2 + adds r0, r1, r3 + strh r2, [r0] + ldrh r2, [r4, #0x24] + adds r3, #2 + adds r0, r1, r3 + strh r2, [r0] + ldrh r0, [r4, #0x26] + ldr r2, _0800BCE0 @ =0x000002F6 + adds r1, r1, r2 + strh r0, [r1] + movs r3, #0 + ldrsh r0, [r5, r3] + cmp r0, #0x20 + ble _0800BCC8 + ldr r1, _0800BCE4 @ =0x0202C790 + ldrb r0, [r1] + adds r0, #1 + strb r0, [r1] +_0800BCC8: + pop {r4, r5, r6} + pop {r0} + bx r0 + .align 2, 0 +_0800BCD0: .4byte 0x0202ADA0 +_0800BCD4: .4byte 0x0202BF10 +_0800BCD8: .4byte 0x0000FFFD +_0800BCDC: .4byte 0x0200B0C0 +_0800BCE0: .4byte 0x000002F6 +_0800BCE4: .4byte 0x0202C790 + + thumb_func_start sub_BCE8 +sub_BCE8: @ 0x0800BCE8 + push {r4, r5, r6, r7, lr} + ldr r4, _0800BDA4 @ =0x0202ADA0 + ldrh r0, [r4, #0x18] + adds r0, #2 + strh r0, [r4, #0x18] + ldrh r0, [r4, #0x1a] + ldrh r6, [r4, #0x1e] + subs r0, r0, r6 + strh r0, [r4, #0x1a] + ldr r5, _0800BDA8 @ =0x0202BF10 + movs r1, #0 + ldrsh r0, [r5, r1] + movs r1, #3 + bl __modsi3 + lsls r0, r0, #0x10 + adds r7, r5, #0 + cmp r0, #0 + bne _0800BD1E + adds r0, r6, #1 + strh r0, [r4, #0x1e] + lsls r0, r0, #0x10 + asrs r0, r0, #0x10 + cmp r0, #4 + ble _0800BD1E + ldr r0, _0800BDAC @ =0x0000FFFD + strh r0, [r4, #0x1e] +_0800BD1E: + ldrh r0, [r4, #0xc] + adds r0, #3 + strh r0, [r4, #0xc] + ldrh r0, [r4, #0xe] + ldrh r5, [r4, #0x12] + subs r0, r0, r5 + strh r0, [r4, #0xe] + movs r2, #0 + ldrsh r0, [r7, r2] + movs r1, #5 + bl __modsi3 + lsls r0, r0, #0x10 + cmp r0, #0 + bne _0800BD4C + adds r0, r5, #1 + strh r0, [r4, #0x12] + lsls r0, r0, #0x10 + asrs r0, r0, #0x10 + cmp r0, #7 + ble _0800BD4C + ldr r0, _0800BDB0 @ =0x0000FFFA + strh r0, [r4, #0x12] +_0800BD4C: + ldrh r0, [r4, #0x24] + subs r0, #1 + strh r0, [r4, #0x24] + ldrh r0, [r4, #0x26] + subs r0, #1 + strh r0, [r4, #0x26] + ldr r1, _0800BDB4 @ =0x0200B0C0 + ldrh r2, [r4, #0x18] + movs r3, #0xbc + lsls r3, r3, #2 + adds r0, r1, r3 + strh r2, [r0] + ldrh r2, [r4, #0x1a] + adds r3, #2 + adds r0, r1, r3 + strh r2, [r0] + ldrh r2, [r4, #0xc] + subs r3, #6 + adds r0, r1, r3 + strh r2, [r0] + ldrh r2, [r4, #0xe] + adds r3, #2 + adds r0, r1, r3 + strh r2, [r0] + ldrh r2, [r4, #0x24] + adds r3, #6 + adds r0, r1, r3 + strh r2, [r0] + ldrh r0, [r4, #0x26] + ldr r2, _0800BDB8 @ =0x000002F6 + adds r1, r1, r2 + strh r0, [r1] + movs r3, #0 + ldrsh r0, [r7, r3] + cmp r0, #0x50 + ble _0800BD9C + ldr r1, _0800BDBC @ =0x0202C790 + ldrb r0, [r1] + adds r0, #1 + strb r0, [r1] +_0800BD9C: + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + .align 2, 0 +_0800BDA4: .4byte 0x0202ADA0 +_0800BDA8: .4byte 0x0202BF10 +_0800BDAC: .4byte 0x0000FFFD +_0800BDB0: .4byte 0x0000FFFA +_0800BDB4: .4byte 0x0200B0C0 +_0800BDB8: .4byte 0x000002F6 +_0800BDBC: .4byte 0x0202C790 + + thumb_func_start sub_BDC0 +sub_BDC0: @ 0x0800BDC0 + push {r4, r5, r6, r7, lr} + ldr r4, _0800BEB4 @ =0x0202ADA0 + ldrh r0, [r4, #0x18] + adds r0, #2 + strh r0, [r4, #0x18] + ldrh r0, [r4, #0x1a] + ldrh r6, [r4, #0x1e] + subs r0, r0, r6 + strh r0, [r4, #0x1a] + ldr r5, _0800BEB8 @ =0x0202BF10 + movs r1, #0 + ldrsh r0, [r5, r1] + movs r1, #3 + bl __modsi3 + lsls r0, r0, #0x10 + adds r7, r5, #0 + cmp r0, #0 + bne _0800BDF6 + adds r0, r6, #1 + strh r0, [r4, #0x1e] + lsls r0, r0, #0x10 + asrs r0, r0, #0x10 + cmp r0, #4 + ble _0800BDF6 + ldr r0, _0800BEBC @ =0x0000FFFD + strh r0, [r4, #0x1e] +_0800BDF6: + ldrh r0, [r4, #0xc] + adds r0, #3 + strh r0, [r4, #0xc] + ldrh r0, [r4, #0xe] + ldrh r5, [r4, #0x12] + subs r0, r0, r5 + strh r0, [r4, #0xe] + movs r2, #0 + ldrsh r0, [r7, r2] + movs r1, #5 + bl __modsi3 + lsls r0, r0, #0x10 + cmp r0, #0 + bne _0800BE24 + adds r0, r5, #1 + strh r0, [r4, #0x12] + lsls r0, r0, #0x10 + asrs r0, r0, #0x10 + cmp r0, #7 + ble _0800BE24 + ldr r0, _0800BEC0 @ =0x0000FFFA + strh r0, [r4, #0x12] +_0800BE24: + ldrh r0, [r4] + adds r0, #4 + strh r0, [r4] + ldrh r0, [r4, #2] + ldrh r2, [r4, #6] + subs r0, r0, r2 + strh r0, [r4, #2] + ldrh r0, [r7] + movs r1, #3 + ands r0, r1 + cmp r0, #0 + bne _0800BE4C + adds r0, r2, #1 + strh r0, [r4, #6] + lsls r0, r0, #0x10 + asrs r0, r0, #0x10 + cmp r0, #7 + ble _0800BE4C + ldr r0, _0800BEBC @ =0x0000FFFD + strh r0, [r4, #6] +_0800BE4C: + ldrh r0, [r4, #0x24] + subs r0, #1 + strh r0, [r4, #0x24] + ldrh r0, [r4, #0x26] + subs r0, #1 + strh r0, [r4, #0x26] + ldr r1, _0800BEC4 @ =0x0200B0C0 + ldrh r2, [r4, #0x18] + movs r3, #0xbc + lsls r3, r3, #2 + adds r0, r1, r3 + strh r2, [r0] + ldrh r2, [r4, #0x1a] + adds r3, #2 + adds r0, r1, r3 + strh r2, [r0] + ldrh r2, [r4, #0xc] + subs r3, #6 + adds r0, r1, r3 + strh r2, [r0] + ldrh r2, [r4, #0xe] + adds r3, #2 + adds r0, r1, r3 + strh r2, [r0] + ldrh r2, [r4] + subs r3, #6 + adds r0, r1, r3 + strh r2, [r0] + ldrh r2, [r4, #2] + adds r3, #2 + adds r0, r1, r3 + strh r2, [r0] + ldrh r2, [r4, #0x24] + adds r3, #0xa + adds r0, r1, r3 + strh r2, [r0] + ldrh r0, [r4, #0x26] + ldr r2, _0800BEC8 @ =0x000002F6 + adds r1, r1, r2 + strh r0, [r1] + movs r3, #0 + ldrsh r0, [r7, r3] + cmp r0, #0x64 + ble _0800BEAC + ldr r1, _0800BECC @ =0x0202C790 + ldrb r0, [r1] + adds r0, #1 + strb r0, [r1] +_0800BEAC: + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + .align 2, 0 +_0800BEB4: .4byte 0x0202ADA0 +_0800BEB8: .4byte 0x0202BF10 +_0800BEBC: .4byte 0x0000FFFD +_0800BEC0: .4byte 0x0000FFFA +_0800BEC4: .4byte 0x0200B0C0 +_0800BEC8: .4byte 0x000002F6 +_0800BECC: .4byte 0x0202C790 + + thumb_func_start sub_BED0 +sub_BED0: @ 0x0800BED0 + push {r4, r5, r6, r7, lr} + ldr r4, _0800BFF4 @ =0x0202ADA0 + ldrh r0, [r4, #0x18] + adds r0, #2 + strh r0, [r4, #0x18] + ldrh r0, [r4, #0x1a] + ldrh r6, [r4, #0x1e] + subs r0, r0, r6 + strh r0, [r4, #0x1a] + ldr r5, _0800BFF8 @ =0x0202BF10 + movs r1, #0 + ldrsh r0, [r5, r1] + movs r1, #3 + bl __modsi3 + lsls r0, r0, #0x10 + adds r7, r5, #0 + cmp r0, #0 + bne _0800BF06 + adds r0, r6, #1 + strh r0, [r4, #0x1e] + lsls r0, r0, #0x10 + asrs r0, r0, #0x10 + cmp r0, #4 + ble _0800BF06 + ldr r0, _0800BFFC @ =0x0000FFFD + strh r0, [r4, #0x1e] +_0800BF06: + ldrh r0, [r4, #0xc] + adds r0, #3 + strh r0, [r4, #0xc] + ldrh r0, [r4, #0xe] + ldrh r5, [r4, #0x12] + subs r0, r0, r5 + strh r0, [r4, #0xe] + movs r2, #0 + ldrsh r0, [r7, r2] + movs r1, #5 + bl __modsi3 + lsls r0, r0, #0x10 + cmp r0, #0 + bne _0800BF34 + adds r0, r5, #1 + strh r0, [r4, #0x12] + lsls r0, r0, #0x10 + asrs r0, r0, #0x10 + cmp r0, #7 + ble _0800BF34 + ldr r0, _0800C000 @ =0x0000FFFA + strh r0, [r4, #0x12] +_0800BF34: + ldrh r0, [r4] + adds r0, #4 + strh r0, [r4] + ldrh r0, [r4, #2] + ldrh r2, [r4, #6] + subs r0, r0, r2 + strh r0, [r4, #2] + ldrh r0, [r7] + movs r1, #3 + ands r0, r1 + cmp r0, #0 + bne _0800BF5C + adds r0, r2, #1 + strh r0, [r4, #6] + lsls r0, r0, #0x10 + asrs r0, r0, #0x10 + cmp r0, #7 + ble _0800BF5C + ldr r0, _0800BFFC @ =0x0000FFFD + strh r0, [r4, #6] +_0800BF5C: + ldr r2, _0800C004 @ =0x0201A450 + ldrh r0, [r2] + subs r0, #2 + strh r0, [r2] + ldrh r3, [r2, #6] + ldrh r1, [r2, #2] + adds r0, r3, r1 + strh r0, [r2, #2] + ldrh r0, [r7] + movs r1, #3 + ands r0, r1 + cmp r0, #0 + bne _0800BF86 + adds r0, r3, #1 + strh r0, [r2, #6] + lsls r0, r0, #0x10 + asrs r0, r0, #0x10 + cmp r0, #4 + ble _0800BF86 + ldr r0, _0800C008 @ =0x0000FFFC + strh r0, [r2, #6] +_0800BF86: + ldrh r0, [r4, #0x24] + subs r0, #1 + strh r0, [r4, #0x24] + ldrh r0, [r4, #0x26] + subs r0, #1 + strh r0, [r4, #0x26] + ldr r1, _0800C00C @ =0x0200B0C0 + ldrh r2, [r4, #0x18] + movs r3, #0xbc + lsls r3, r3, #2 + adds r0, r1, r3 + strh r2, [r0] + ldrh r2, [r4, #0x1a] + adds r3, #2 + adds r0, r1, r3 + strh r2, [r0] + ldrh r2, [r4, #0xc] + subs r3, #6 + adds r0, r1, r3 + strh r2, [r0] + ldrh r2, [r4, #0xe] + adds r3, #2 + adds r0, r1, r3 + strh r2, [r0] + ldrh r2, [r4] + subs r3, #6 + adds r0, r1, r3 + strh r2, [r0] + ldrh r2, [r4, #2] + adds r3, #2 + adds r0, r1, r3 + strh r2, [r0] + ldrh r2, [r4, #0x24] + adds r3, #0xa + adds r0, r1, r3 + strh r2, [r0] + ldrh r0, [r4, #0x26] + ldr r2, _0800C010 @ =0x000002F6 + adds r1, r1, r2 + strh r0, [r1] + bl sub_C0D8 + ldr r0, _0800BFF8 @ =0x0202BF10 + movs r3, #0 + ldrsh r0, [r0, r3] + cmp r0, #0xc0 + ble _0800BFEC + ldr r1, _0800C014 @ =0x0202C790 + ldrb r0, [r1] + adds r0, #1 + strb r0, [r1] +_0800BFEC: + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + .align 2, 0 +_0800BFF4: .4byte 0x0202ADA0 +_0800BFF8: .4byte 0x0202BF10 +_0800BFFC: .4byte 0x0000FFFD +_0800C000: .4byte 0x0000FFFA +_0800C004: .4byte 0x0201A450 +_0800C008: .4byte 0x0000FFFC +_0800C00C: .4byte 0x0200B0C0 +_0800C010: .4byte 0x000002F6 +_0800C014: .4byte 0x0202C790 + + thumb_func_start sub_C018 +sub_C018: @ 0x0800C018 + push {r4, r5, lr} + ldr r4, _0800C044 @ =0x0202ADA0 + ldrh r0, [r4, #0x24] + subs r0, #1 + strh r0, [r4, #0x24] + ldrh r0, [r4, #0x26] + subs r0, #1 + strh r0, [r4, #0x26] + ldr r5, _0800C048 @ =0x0202BF10 + movs r1, #0 + ldrsh r0, [r5, r1] + movs r1, #6 + bl __modsi3 + lsls r0, r0, #0x10 + asrs r0, r0, #0x10 + cmp r0, #0 + bne _0800C050 + ldr r1, _0800C04C @ =0x0201A450 + ldrh r0, [r1] + subs r0, #3 + b _0800C05A + .align 2, 0 +_0800C044: .4byte 0x0202ADA0 +_0800C048: .4byte 0x0202BF10 +_0800C04C: .4byte 0x0201A450 +_0800C050: + cmp r0, #3 + bne _0800C05C + ldr r1, _0800C0A4 @ =0x0201A450 + ldrh r0, [r1] + adds r0, #3 +_0800C05A: + strh r0, [r1] +_0800C05C: + movs r2, #0 + ldrsh r0, [r5, r2] + cmp r0, #0xca + ble _0800C074 + ldr r1, _0800C0A8 @ =0x0202C5E4 + ldrh r0, [r1] + subs r0, #1 + strh r0, [r1] + ldr r1, _0800C0AC @ =0x0202ADD8 + ldrh r0, [r1] + subs r0, #1 + strh r0, [r1] +_0800C074: + ldr r1, _0800C0B0 @ =0x0200B0C0 + ldrh r2, [r4, #0x24] + movs r3, #0xbd + lsls r3, r3, #2 + adds r0, r1, r3 + strh r2, [r0] + ldrh r0, [r4, #0x26] + ldr r2, _0800C0B4 @ =0x000002F6 + adds r1, r1, r2 + strh r0, [r1] + bl sub_C0D8 + movs r3, #0 + ldrsh r0, [r5, r3] + cmp r0, #0xde + ble _0800C09C + ldr r1, _0800C0B8 @ =0x0202C790 + ldrb r0, [r1] + adds r0, #1 + strb r0, [r1] +_0800C09C: + pop {r4, r5} + pop {r0} + bx r0 + .align 2, 0 +_0800C0A4: .4byte 0x0201A450 +_0800C0A8: .4byte 0x0202C5E4 +_0800C0AC: .4byte 0x0202ADD8 +_0800C0B0: .4byte 0x0200B0C0 +_0800C0B4: .4byte 0x000002F6 +_0800C0B8: .4byte 0x0202C790 + + thumb_func_start sub_C0BC +sub_C0BC: @ 0x0800C0BC + push {lr} + bl sub_10480 + bl sub_10544 + ldr r1, _0800C0D4 @ =0x0202C790 + ldrb r0, [r1] + adds r0, #1 + strb r0, [r1] + pop {r0} + bx r0 + .align 2, 0 +_0800C0D4: .4byte 0x0202C790 + + thumb_func_start sub_C0D8 +sub_C0D8: @ 0x0800C0D8 + push {r4, r5, r6, r7, lr} + mov r7, sl + mov r6, sb + mov r5, r8 + push {r5, r6, r7} + sub sp, #4 + ldr r0, _0800C1EC @ =0x0200B3B8 + mov r8, r0 + movs r0, #1 + mov r1, r8 + strh r0, [r1] + ldr r0, _0800C1F0 @ =0x086A7B74 + movs r1, #1 + mov r2, r8 + bl sub_358 + mov r2, r8 + ldrh r0, [r2] + cmp r0, #1 + bne _0800C1D4 + ldr r5, _0800C1F4 @ =0x0202C5E4 + movs r3, #0 + ldrsh r0, [r5, r3] + ldr r4, _0800C1F8 @ =0x0202ADD8 + movs r2, #0 + ldrsh r1, [r4, r2] + movs r2, #0 + bl sub_7C0 + ldr r1, _0800C1FC @ =0x0201A450 + ldrh r0, [r1] + mov r3, r8 + strh r0, [r3, #2] + ldrh r0, [r1, #2] + strh r0, [r3, #4] + movs r7, #0 + ldr r6, _0800C200 @ =0x03005000 + mov sl, r4 + mov r5, r8 + adds r5, #8 + ldr r4, _0800C204 @ =0xFFFFFE00 + mov sb, r4 + movs r0, #4 + rsbs r0, r0, #0 + mov ip, r0 +_0800C132: + ldrh r2, [r5] + lsls r2, r2, #3 + adds r2, r2, r6 + ldrb r1, [r2, #5] + movs r0, #0xd + rsbs r0, r0, #0 + ands r0, r1 + movs r1, #4 + orrs r0, r1 + strb r0, [r2, #5] + ldrh r0, [r5] + lsls r0, r0, #3 + adds r3, r0, r6 + lsls r0, r7, #2 + ldr r1, _0800C208 @ =0x086A7B7C + adds r4, r0, r1 + movs r0, #0 + ldrsh r2, [r4, r0] + str r2, [sp] + ldr r1, _0800C1F4 @ =0x0202C5E4 + movs r2, #0 + ldrsh r0, [r1, r2] + ldr r2, [sp] + adds r1, r2, #0 + muls r1, r0, r1 + cmp r1, #0 + bge _0800C16A + adds r1, #0xff +_0800C16A: + asrs r1, r1, #8 + str r1, [sp] + mov r1, r8 + movs r2, #2 + ldrsh r0, [r1, r2] + ldr r2, [sp] + adds r1, r2, r0 + ldr r2, _0800C20C @ =0x000001FF + adds r0, r2, #0 + ands r1, r0 + ldrh r2, [r3, #2] + mov r0, sb + ands r0, r2 + orrs r0, r1 + strh r0, [r3, #2] + ldrh r0, [r5] + lsls r0, r0, #3 + adds r2, r0, r6 + movs r3, #2 + ldrsh r1, [r4, r3] + mov r4, sl + movs r3, #0 + ldrsh r0, [r4, r3] + muls r0, r1, r0 + cmp r0, #0 + bge _0800C1A0 + adds r0, #0xff +_0800C1A0: + asrs r0, r0, #8 + mov r4, r8 + ldrb r4, [r4, #4] + adds r0, r0, r4 + strb r0, [r2] + ldrh r2, [r5] + lsls r2, r2, #3 + adds r2, r2, r6 + ldrb r1, [r2, #1] + mov r0, ip + ands r0, r1 + movs r1, #1 + orrs r0, r1 + strb r0, [r2, #1] + ldrh r1, [r5] + lsls r1, r1, #3 + adds r1, r1, r6 + ldrb r2, [r1, #3] + movs r0, #0xf + rsbs r0, r0, #0 + ands r0, r2 + strb r0, [r1, #3] + adds r5, #8 + adds r7, #1 + cmp r7, #3 + ble _0800C132 +_0800C1D4: + movs r0, #0 + mov r1, r8 + strh r0, [r1] + add sp, #4 + pop {r3, r4, r5} + mov r8, r3 + mov sb, r4 + mov sl, r5 + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + .align 2, 0 +_0800C1EC: .4byte 0x0200B3B8 +_0800C1F0: .4byte 0x086A7B74 +_0800C1F4: .4byte 0x0202C5E4 +_0800C1F8: .4byte 0x0202ADD8 +_0800C1FC: .4byte 0x0201A450 +_0800C200: .4byte 0x03005000 +_0800C204: .4byte 0xFFFFFE00 +_0800C208: .4byte 0x086A7B7C +_0800C20C: .4byte 0x000001FF + + thumb_func_start sub_C210 +sub_C210: @ 0x0800C210 + push {lr} + bl sub_518 + ldr r1, _0800C224 @ =0x0202C790 + ldrb r0, [r1] + adds r0, #1 + strb r0, [r1] + pop {r0} + bx r0 + .align 2, 0 +_0800C224: .4byte 0x0202C790 + + thumb_func_start sub_C228 +sub_C228: @ 0x0800C228 + push {r4, lr} + movs r3, #0x80 + lsls r3, r3, #0x13 + movs r1, #0x80 + lsls r1, r1, #5 + adds r0, r1, #0 + strh r0, [r3] + ldr r1, _0800C2B4 @ =0x0400000C + movs r0, #7 + strh r0, [r1] + ldrh r0, [r3] + movs r2, #0x80 + lsls r2, r2, #3 + adds r1, r2, #0 + orrs r0, r1 + strh r0, [r3] + ldr r0, _0800C2B8 @ =0x040000D4 + ldr r1, _0800C2BC @ =0x0810EC20 + str r1, [r0] + movs r1, #0xc0 + lsls r1, r1, #0x13 + str r1, [r0, #4] + ldr r1, _0800C2C0 @ =0x80000400 + str r1, [r0, #8] + ldr r1, [r0, #8] + ldr r1, _0800C2C4 @ =0x0810F420 + str r1, [r0] + ldr r1, _0800C2C8 @ =0x06004000 + str r1, [r0, #4] + ldr r1, _0800C2CC @ =0x80001A00 + str r1, [r0, #8] + ldr r1, [r0, #8] + ldr r4, _0800C2D0 @ =0x0810EA20 + str r4, [r0] + movs r1, #0xa0 + lsls r1, r1, #0x13 + str r1, [r0, #4] + ldr r2, _0800C2D4 @ =0x800000A0 + str r2, [r0, #8] + ldr r1, [r0, #8] + ldr r1, _0800C2D8 @ =0x08112840 + str r1, [r0] + ldr r1, _0800C2DC @ =0x06010000 + str r1, [r0, #4] + ldr r1, _0800C2E0 @ =0x80001600 + str r1, [r0, #8] + ldr r1, [r0, #8] + str r4, [r0] + ldr r1, _0800C2E4 @ =0x05000200 + str r1, [r0, #4] + str r2, [r0, #8] + ldr r0, [r0, #8] + ldr r1, _0800C2E8 @ =0x0200B0C0 + ldrh r0, [r3] + strh r0, [r1, #0x16] + bl sub_C2F0 + bl sub_C4F0 + bl sub_CBC + bl sub_10424 + ldr r1, _0800C2EC @ =0x0202C790 + ldrb r0, [r1] + adds r0, #1 + strb r0, [r1] + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_0800C2B4: .4byte 0x0400000C +_0800C2B8: .4byte 0x040000D4 +_0800C2BC: .4byte 0x0810EC20 +_0800C2C0: .4byte 0x80000400 +_0800C2C4: .4byte 0x0810F420 +_0800C2C8: .4byte 0x06004000 +_0800C2CC: .4byte 0x80001A00 +_0800C2D0: .4byte 0x0810EA20 +_0800C2D4: .4byte 0x800000A0 +_0800C2D8: .4byte 0x08112840 +_0800C2DC: .4byte 0x06010000 +_0800C2E0: .4byte 0x80001600 +_0800C2E4: .4byte 0x05000200 +_0800C2E8: .4byte 0x0200B0C0 +_0800C2EC: .4byte 0x0202C790 + + thumb_func_start sub_C2F0 +sub_C2F0: @ 0x0800C2F0 + push {r4, r5, r6, lr} + ldr r0, _0800C380 @ =0x0201A450 + mov ip, r0 + movs r4, #0 + movs r1, #0 + movs r5, #0x78 + strh r5, [r0, #0x10] + movs r2, #0x50 + strh r2, [r0, #0x12] + movs r0, #4 + mov r3, ip + strh r0, [r3, #0x14] + strh r0, [r3, #0x16] + strh r1, [r3, #0x18] + strh r5, [r3] + strh r2, [r3, #2] + strb r4, [r3, #0xc] + movs r2, #0x80 + strh r2, [r3, #0x20] + movs r3, #0x58 + mov r0, ip + strh r3, [r0, #0x22] + strh r1, [r0, #0x28] + strh r1, [r0, #0x2a] + adds r0, #0x2c + strb r4, [r0] + mov r0, ip + strh r2, [r0, #0x30] + movs r6, #0x48 + strh r6, [r0, #0x32] + strh r1, [r0, #0x38] + strh r1, [r0, #0x3a] + adds r0, #0x3c + strb r4, [r0] + adds r0, #4 + movs r2, #0x70 + strh r2, [r0] + adds r0, #2 + strh r3, [r0] + adds r0, #6 + strh r1, [r0] + adds r0, #2 + strh r1, [r0] + adds r0, #2 + strb r4, [r0] + adds r0, #4 + strh r5, [r0] + adds r0, #2 + strh r3, [r0] + adds r0, #6 + strh r1, [r0] + adds r0, #2 + strh r1, [r0] + adds r0, #2 + strb r4, [r0] + adds r0, #4 + strh r2, [r0] + adds r0, #2 + strh r6, [r0] + adds r0, #6 + strh r1, [r0] + adds r0, #2 + strh r1, [r0] + adds r0, #2 + strb r4, [r0] + ldr r0, _0800C384 @ =0x0202BF10 + strh r1, [r0] + ldr r0, _0800C388 @ =0x0202A578 + strh r1, [r0] + pop {r4, r5, r6} + pop {r0} + bx r0 + .align 2, 0 +_0800C380: .4byte 0x0201A450 +_0800C384: .4byte 0x0202BF10 +_0800C388: .4byte 0x0202A578 + + thumb_func_start sub_C38C +sub_C38C: @ 0x0800C38C + push {lr} + bl sub_C4F0 + ldr r0, _0800C3C4 @ =0x0202BF10 + movs r1, #0 + ldrsh r0, [r0, r1] + cmp r0, #1 + ble _0800C3C0 + ldr r2, _0800C3C8 @ =0x0201A450 + movs r1, #1 + strb r1, [r2, #0xc] + adds r0, r2, #0 + adds r0, #0x2c + strb r1, [r0] + adds r0, #0x10 + strb r1, [r0] + adds r0, #0x10 + strb r1, [r0] + adds r0, #0x10 + strb r1, [r0] + adds r0, #0x10 + strb r1, [r0] + ldr r1, _0800C3CC @ =0x0202C790 + ldrb r0, [r1] + adds r0, #1 + strb r0, [r1] +_0800C3C0: + pop {r0} + bx r0 + .align 2, 0 +_0800C3C4: .4byte 0x0202BF10 +_0800C3C8: .4byte 0x0201A450 +_0800C3CC: .4byte 0x0202C790 + + thumb_func_start sub_C3D0 +sub_C3D0: @ 0x0800C3D0 + push {r4, lr} + ldr r3, _0800C408 @ =0x0201A450 + ldrh r0, [r3] + subs r0, #9 + strh r0, [r3] + ldrh r0, [r3, #2] + subs r0, #6 + strh r0, [r3, #2] + ldrh r0, [r3, #0x18] + adds r0, #1 + strh r0, [r3, #0x18] + lsls r0, r0, #0x10 + asrs r0, r0, #0x10 + cmp r0, #3 + bgt _0800C40C + ldrh r2, [r3, #0x14] + ldrh r1, [r3, #0x10] + adds r0, r2, r1 + strh r0, [r3, #0x10] + ldrh r1, [r3, #0x16] + ldrh r4, [r3, #0x12] + adds r0, r1, r4 + strh r0, [r3, #0x12] + subs r2, #1 + strh r2, [r3, #0x14] + subs r1, #1 + strh r1, [r3, #0x16] + b _0800C424 + .align 2, 0 +_0800C408: .4byte 0x0201A450 +_0800C40C: + ldr r0, _0800C444 @ =0x0202BF10 + ldrh r0, [r0] + movs r1, #1 + ands r0, r1 + cmp r0, #0 + bne _0800C424 + ldrh r0, [r3, #0x10] + adds r0, #1 + strh r0, [r3, #0x10] + ldrh r0, [r3, #0x12] + adds r0, #1 + strh r0, [r3, #0x12] +_0800C424: + bl sub_C4F0 + ldr r0, _0800C448 @ =0x0201A450 + movs r2, #2 + ldrsh r1, [r0, r2] + movs r0, #0x20 + rsbs r0, r0, #0 + cmp r1, r0 + bge _0800C43E + ldr r1, _0800C44C @ =0x0202C790 + ldrb r0, [r1] + adds r0, #1 + strb r0, [r1] +_0800C43E: + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_0800C444: .4byte 0x0202BF10 +_0800C448: .4byte 0x0201A450 +_0800C44C: .4byte 0x0202C790 + + thumb_func_start sub_C450 +sub_C450: @ 0x0800C450 + push {lr} + bl sub_C4F0 + ldr r2, _0800C484 @ =0x0202BF10 + ldrh r0, [r2] + movs r1, #1 + ands r0, r1 + cmp r0, #0 + bne _0800C470 + ldr r0, _0800C488 @ =0x0201A450 + ldrh r1, [r0, #0x10] + adds r1, #1 + strh r1, [r0, #0x10] + ldrh r1, [r0, #0x12] + adds r1, #1 + strh r1, [r0, #0x12] +_0800C470: + movs r1, #0 + ldrsh r0, [r2, r1] + cmp r0, #0x14 + ble _0800C480 + ldr r1, _0800C48C @ =0x0202C790 + ldrb r0, [r1] + adds r0, #3 + strb r0, [r1] +_0800C480: + pop {r0} + bx r0 + .align 2, 0 +_0800C484: .4byte 0x0202BF10 +_0800C488: .4byte 0x0201A450 +_0800C48C: .4byte 0x0202C790 + + thumb_func_start nullsub_12 +nullsub_12: @ 0x0800C490 + bx lr + + thumb_func_start nullsub_13 +nullsub_13: @ 0x0800C494 + bx lr + + thumb_func_start sub_C498 +sub_C498: @ 0x0800C498 + push {lr} + sub sp, #8 + bl sub_10480 + bl sub_578 + movs r2, #0 + str r2, [sp] + ldr r1, _0800C4DC @ =0x040000D4 + mov r0, sp + str r0, [r1] + movs r0, #0xe0 + lsls r0, r0, #0x13 + str r0, [r1, #4] + ldr r0, _0800C4E0 @ =0x85000100 + str r0, [r1, #8] + ldr r0, [r1, #8] + add r0, sp, #4 + strh r2, [r0] + str r0, [r1] + ldr r0, _0800C4E4 @ =0x06010000 + str r0, [r1, #4] + ldr r0, _0800C4E8 @ =0x81002800 + str r0, [r1, #8] + ldr r0, [r1, #8] + bl sub_10544 + ldr r1, _0800C4EC @ =0x0202C790 + ldrb r0, [r1] + adds r0, #1 + strb r0, [r1] + add sp, #8 + pop {r0} + bx r0 + .align 2, 0 +_0800C4DC: .4byte 0x040000D4 +_0800C4E0: .4byte 0x85000100 +_0800C4E4: .4byte 0x06010000 +_0800C4E8: .4byte 0x81002800 +_0800C4EC: .4byte 0x0202C790 + + thumb_func_start sub_C4F0 +sub_C4F0: @ 0x0800C4F0 + push {r4, r5, r6, r7, lr} + mov r7, sl + mov r6, sb + mov r5, r8 + push {r5, r6, r7} + sub sp, #0x20 + ldr r0, _0800C64C @ =0x0200B3B8 + mov r8, r0 + ldr r6, _0800C650 @ =0x0201A450 + movs r1, #0x28 + ldrsh r0, [r6, r1] + movs r2, #0xe6 + lsls r2, r2, #2 + adds r3, r0, #0 + muls r3, r2, r3 + movs r0, #0xb8 + lsls r0, r0, #1 + add r0, r8 + adds r3, r3, r0 + str r3, [sp] + movs r7, #0x38 + ldrsh r0, [r6, r7] + muls r0, r2, r0 + movs r1, #0x8a + lsls r1, r1, #2 + add r1, r8 + adds r0, r0, r1 + str r0, [sp, #4] + adds r0, r6, #0 + adds r0, #0x48 + movs r1, #0 + ldrsh r0, [r0, r1] + muls r0, r2, r0 + movs r1, #0xb8 + lsls r1, r1, #2 + add r1, r8 + adds r0, r0, r1 + str r0, [sp, #8] + adds r0, r6, #0 + adds r0, #0x58 + movs r7, #0 + ldrsh r0, [r0, r7] + muls r0, r2, r0 + adds r1, r2, #0 + add r1, r8 + adds r0, r0, r1 + str r0, [sp, #0xc] + adds r0, r6, #0 + adds r0, #0x68 + movs r1, #0 + ldrsh r0, [r0, r1] + muls r0, r2, r0 + movs r1, #0x8a + lsls r1, r1, #3 + add r1, r8 + adds r0, r0, r1 + str r0, [sp, #0x10] + movs r0, #0xc + ldrsb r0, [r6, r0] + mov r2, r8 + strh r0, [r2] + movs r0, #1 + ldr r7, _0800C654 @ =0x0200B470 + strh r0, [r7] + adds r0, r6, #0 + adds r0, #0x2c + ldrb r0, [r0] + lsls r0, r0, #0x18 + asrs r0, r0, #0x18 + strh r0, [r3] + ldr r1, [sp, #4] + adds r0, r6, #0 + adds r0, #0x3c + ldrb r0, [r0] + lsls r0, r0, #0x18 + asrs r0, r0, #0x18 + strh r0, [r1] + ldr r1, [sp, #8] + adds r0, r6, #0 + adds r0, #0x4c + ldrb r0, [r0] + lsls r0, r0, #0x18 + asrs r0, r0, #0x18 + strh r0, [r1] + ldr r1, [sp, #0xc] + adds r0, r6, #0 + adds r0, #0x5c + ldrb r0, [r0] + lsls r0, r0, #0x18 + asrs r0, r0, #0x18 + strh r0, [r1] + ldr r1, [sp, #0x10] + adds r0, r6, #0 + adds r0, #0x6c + ldrb r0, [r0] + lsls r0, r0, #0x18 + asrs r0, r0, #0x18 + strh r0, [r1] + ldr r0, _0800C658 @ =0x086A7C24 + movs r1, #0x11 + bl sub_358 + mov r1, r8 + ldrh r0, [r1] + cmp r0, #1 + bne _0800C614 + ldrh r0, [r6] + strh r0, [r1, #2] + ldrh r0, [r6, #2] + strh r0, [r1, #4] + mov r5, r8 + adds r5, #8 + ldr r4, _0800C65C @ =0x03005000 + ldrh r1, [r1, #8] + lsls r1, r1, #3 + adds r1, r1, r4 + ldrb r2, [r1, #5] + movs r0, #0xd + rsbs r0, r0, #0 + ands r0, r2 + strb r0, [r1, #5] + mov r3, r8 + ldrh r2, [r3, #8] + lsls r2, r2, #3 + adds r2, r2, r4 + movs r7, #2 + ldrsh r1, [r5, r7] + movs r7, #2 + ldrsh r0, [r3, r7] + adds r1, r1, r0 + ldr r3, _0800C660 @ =0x000001FF + adds r0, r3, #0 + ands r1, r0 + ldrh r3, [r2, #2] + ldr r0, _0800C664 @ =0xFFFFFE00 + ands r0, r3 + orrs r0, r1 + strh r0, [r2, #2] + mov r7, r8 + ldrh r1, [r7, #8] + lsls r1, r1, #3 + adds r1, r1, r4 + ldrb r0, [r7, #4] + ldrb r5, [r5, #4] + adds r0, r0, r5 + strb r0, [r1] +_0800C614: + movs r5, #0 + str r6, [sp, #0x14] +_0800C618: + lsls r1, r5, #2 + mov r2, sp + adds r0, r2, r1 + ldr r0, [r0] + ldrh r0, [r0] + adds r4, r1, #0 + adds r3, r5, #1 + str r3, [sp, #0x18] + cmp r0, #1 + beq _0800C62E + b _0800C75A +_0800C62E: + ldr r1, _0800C668 @ =0x0202A578 + ldrh r0, [r1] + adds r0, #1 + strh r0, [r1] + lsls r0, r0, #0x10 + asrs r0, r0, #0x10 + cmp r0, #5 + ble _0800C670 + lsls r1, r5, #3 + ldr r6, _0800C66C @ =0x086A7C68 + adds r0, r1, r6 + ldrb r2, [r0, #2] + ldrb r0, [r0, #3] + b _0800C67A + .align 2, 0 +_0800C64C: .4byte 0x0200B3B8 +_0800C650: .4byte 0x0201A450 +_0800C654: .4byte 0x0200B470 +_0800C658: .4byte 0x086A7C24 +_0800C65C: .4byte 0x03005000 +_0800C660: .4byte 0x000001FF +_0800C664: .4byte 0xFFFFFE00 +_0800C668: .4byte 0x0202A578 +_0800C66C: .4byte 0x086A7C68 +_0800C670: + lsls r1, r5, #3 + ldr r7, _0800C7F8 @ =0x086A7C68 + adds r0, r1, r7 + ldrb r2, [r0] + ldrb r0, [r0, #1] +_0800C67A: + adds r7, r1, #0 + adds r3, r5, #2 + lsls r1, r3, #4 + ldr r6, [sp, #0x14] + adds r1, r1, r6 + lsls r2, r2, #0x18 + asrs r2, r2, #0x18 + ldrh r6, [r1] + adds r2, r2, r6 + strh r2, [r1] + lsls r0, r0, #0x18 + asrs r0, r0, #0x18 + ldrh r6, [r1, #2] + adds r0, r0, r6 + strh r0, [r1, #2] + add r4, sp + ldr r0, [r4] + strh r2, [r0, #2] + ldr r2, [r4] + ldrh r0, [r1, #2] + strh r0, [r2, #4] + movs r0, #8 + ldrsh r1, [r1, r0] + lsls r0, r1, #2 + adds r0, r0, r1 + adds r0, #2 + adds r0, r5, r0 + lsls r0, r0, #2 + ldr r1, _0800C7FC @ =0x086A7C24 + adds r0, r0, r1 + ldr r0, [r0] + mov sb, r0 + movs r6, #0 + str r3, [sp, #0x1c] + adds r5, #1 + str r5, [sp, #0x18] + ldrh r2, [r0] + cmp r6, r2 + bge _0800C732 + ldr r3, _0800C800 @ =0x03005000 + mov ip, r3 + ldr r0, _0800C7F8 @ =0x086A7C68 + adds r7, r7, r0 + mov sl, r7 + movs r7, #8 +_0800C6D4: + ldr r0, [r4] + adds r5, r0, r7 + ldrh r2, [r5] + lsls r2, r2, #3 + add r2, ip + mov r0, sl + ldrb r1, [r0, #5] + movs r3, #3 + ands r1, r3 + lsls r1, r1, #2 + ldrb r3, [r2, #5] + movs r0, #0xd + rsbs r0, r0, #0 + ands r0, r3 + orrs r0, r1 + strb r0, [r2, #5] + ldrh r2, [r5] + lsls r2, r2, #3 + add r2, ip + movs r0, #2 + ldrsh r1, [r5, r0] + ldr r0, [r4] + movs r3, #2 + ldrsh r0, [r0, r3] + adds r1, r1, r0 + ldr r3, _0800C804 @ =0x000001FF + adds r0, r3, #0 + ands r1, r0 + ldrh r3, [r2, #2] + ldr r0, _0800C808 @ =0xFFFFFE00 + ands r0, r3 + orrs r0, r1 + strh r0, [r2, #2] + ldrh r1, [r5] + lsls r1, r1, #3 + add r1, ip + ldr r0, [r4] + ldrb r0, [r0, #4] + ldrb r5, [r5, #4] + adds r0, r0, r5 + strb r0, [r1] + adds r7, #8 + adds r6, #1 + mov r0, sb + ldrh r0, [r0] + cmp r6, r0 + blt _0800C6D4 +_0800C732: + ldr r1, [sp, #0x1c] + lsls r0, r1, #4 + ldr r2, [sp, #0x14] + adds r3, r0, r2 + ldrh r0, [r3, #0xa] + adds r0, #1 + movs r1, #0 + strh r0, [r3, #0xa] + lsls r0, r0, #0x10 + asrs r0, r0, #0x10 + cmp r0, #4 + ble _0800C75A + strh r1, [r3, #0xa] + ldrh r1, [r3, #8] + movs r6, #8 + ldrsh r0, [r3, r6] + cmp r0, #1 + bgt _0800C75A + adds r0, r1, #1 + strh r0, [r3, #8] +_0800C75A: + ldr r5, [sp, #0x18] + cmp r5, #4 + bgt _0800C762 + b _0800C618 +_0800C762: + ldr r7, _0800C80C @ =0x0200B470 + ldrh r0, [r7] + cmp r0, #1 + bne _0800C7C8 + ldr r0, _0800C810 @ =0x0201A450 + ldrh r1, [r0, #0x10] + strh r1, [r7, #2] + ldrh r0, [r0, #0x12] + strh r0, [r7, #4] + ldr r5, _0800C800 @ =0x03005000 + ldr r0, _0800C808 @ =0xFFFFFE00 + mov sb, r0 + adds r4, r7, #0 + adds r4, #8 + movs r6, #3 +_0800C780: + ldrh r2, [r4] + lsls r2, r2, #3 + adds r2, r2, r5 + ldrb r0, [r2, #5] + movs r1, #0xc + orrs r0, r1 + strb r0, [r2, #5] + ldrh r3, [r4] + lsls r3, r3, #3 + adds r3, r3, r5 + movs r2, #2 + ldrsh r1, [r4, r2] + ldr r7, _0800C80C @ =0x0200B470 + movs r2, #2 + ldrsh r0, [r7, r2] + adds r1, r1, r0 + ldr r7, _0800C804 @ =0x000001FF + adds r0, r7, #0 + ands r1, r0 + ldrh r2, [r3, #2] + mov r0, sb + ands r0, r2 + orrs r0, r1 + strh r0, [r3, #2] + ldrh r1, [r4] + lsls r1, r1, #3 + adds r1, r1, r5 + ldr r2, _0800C80C @ =0x0200B470 + ldrb r0, [r2, #4] + ldrb r3, [r4, #4] + adds r0, r0, r3 + strb r0, [r1] + adds r4, #8 + subs r6, #1 + cmp r6, #0 + bge _0800C780 +_0800C7C8: + movs r0, #0 + ldr r6, _0800C80C @ =0x0200B470 + strh r0, [r6] + mov r7, r8 + strh r0, [r7] + ldr r1, [sp] + strh r0, [r1] + ldr r1, [sp, #4] + strh r0, [r1] + ldr r1, [sp, #8] + strh r0, [r1] + ldr r1, [sp, #0xc] + strh r0, [r1] + ldr r1, [sp, #0x10] + strh r0, [r1] + add sp, #0x20 + pop {r3, r4, r5} + mov r8, r3 + mov sb, r4 + mov sl, r5 + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + .align 2, 0 +_0800C7F8: .4byte 0x086A7C68 +_0800C7FC: .4byte 0x086A7C24 +_0800C800: .4byte 0x03005000 +_0800C804: .4byte 0x000001FF +_0800C808: .4byte 0xFFFFFE00 +_0800C80C: .4byte 0x0200B470 +_0800C810: .4byte 0x0201A450 + + thumb_func_start sub_C814 +sub_C814: @ 0x0800C814 + push {r4, r5, r6, r7, lr} + mov r7, sl + mov r6, sb + mov r5, r8 + push {r5, r6, r7} + sub sp, #4 + bl sub_518 + movs r0, #0 + str r0, [sp] + ldr r1, _0800C924 @ =0x040000D4 + mov r0, sp + str r0, [r1] + movs r0, #0xe0 + lsls r0, r0, #0x13 + str r0, [r1, #4] + ldr r0, _0800C928 @ =0x85000100 + str r0, [r1, #8] + ldr r0, [r1, #8] + movs r5, #0 + ldr r6, _0800C92C @ =0x0200B0C0 + movs r1, #0xb8 + mov sb, r1 + movs r4, #0 + movs r3, #0xc0 + lsls r3, r3, #2 + mov r8, r3 + ldr r7, _0800C930 @ =0x00000302 + mov ip, r7 + movs r0, #0xc1 + lsls r0, r0, #2 + mov sl, r0 +_0800C854: + mov r2, sb + muls r2, r5, r2 + adds r1, r2, r6 + movs r3, #0xbe + lsls r3, r3, #2 + adds r0, r1, r3 + strh r4, [r0] + ldr r7, _0800C934 @ =0x000002FA + adds r0, r1, r7 + strh r4, [r0] + movs r0, #0xbf + lsls r0, r0, #2 + adds r1, r1, r0 + strh r4, [r1] + movs r3, #0 +_0800C872: + lsls r0, r3, #3 + adds r0, r0, r2 + adds r0, r0, r6 + mov r7, r8 + adds r1, r0, r7 + strh r4, [r1] + mov r7, ip + adds r1, r0, r7 + strh r4, [r1] + add r0, sl + strh r4, [r0] + adds r0, r3, #1 + lsls r0, r0, #0x10 + lsrs r3, r0, #0x10 + cmp r3, #0x15 + bls _0800C872 + adds r0, r5, #1 + lsls r0, r0, #0x10 + lsrs r5, r0, #0x10 + cmp r5, #0x13 + bls _0800C854 + movs r5, #0 + mov sl, r5 + movs r0, #0xd + rsbs r0, r0, #0 + mov ip, r0 + movs r1, #0x11 + rsbs r1, r1, #0 + mov sb, r1 + movs r3, #0x21 + rsbs r3, r3, #0 + mov r8, r3 + movs r4, #0x3f + ldr r6, _0800C938 @ =0xFFFFFE00 + adds r3, #0x12 +_0800C8B8: + lsls r2, r5, #3 + ldr r7, _0800C93C @ =0x03005000 + adds r2, r2, r7 + movs r0, #0xf4 + strb r0, [r2] + movs r0, #0 + strb r0, [r2, #1] + ldrh r1, [r2, #2] + adds r0, r6, #0 + ands r0, r1 + movs r7, #0xfa + lsls r7, r7, #1 + adds r1, r7, #0 + orrs r0, r1 + strh r0, [r2, #2] + ldrb r1, [r2, #3] + adds r0, r3, #0 + ands r0, r1 + mov r1, sb + ands r0, r1 + mov r7, r8 + ands r0, r7 + ands r0, r4 + strb r0, [r2, #3] + ldrh r1, [r2, #4] + ldr r0, _0800C940 @ =0xFFFFFC00 + ands r0, r1 + strh r0, [r2, #4] + ldrb r1, [r2, #5] + mov r0, ip + ands r0, r1 + movs r1, #0xf + ands r0, r1 + strb r0, [r2, #5] + mov r0, sl + strh r0, [r2, #6] + adds r0, r5, #1 + lsls r0, r0, #0x10 + lsrs r5, r0, #0x10 + cmp r5, #0x13 + bls _0800C8B8 + ldr r1, _0800C944 @ =0x0202C790 + ldrb r0, [r1] + adds r0, #1 + strb r0, [r1] + add sp, #4 + pop {r3, r4, r5} + mov r8, r3 + mov sb, r4 + mov sl, r5 + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + .align 2, 0 +_0800C924: .4byte 0x040000D4 +_0800C928: .4byte 0x85000100 +_0800C92C: .4byte 0x0200B0C0 +_0800C930: .4byte 0x00000302 +_0800C934: .4byte 0x000002FA +_0800C938: .4byte 0xFFFFFE00 +_0800C93C: .4byte 0x03005000 +_0800C940: .4byte 0xFFFFFC00 +_0800C944: .4byte 0x0202C790 + + thumb_func_start sub_C948 +sub_C948: @ 0x0800C948 + push {r4, lr} + movs r3, #0x80 + lsls r3, r3, #0x13 + movs r1, #0x80 + lsls r1, r1, #5 + adds r0, r1, #0 + strh r0, [r3] + ldr r1, _0800C9E4 @ =0x0400000E + movs r0, #7 + strh r0, [r1] + ldrh r0, [r3] + movs r2, #0x80 + lsls r2, r2, #4 + adds r1, r2, #0 + orrs r0, r1 + strh r0, [r3] + ldr r0, _0800C9E8 @ =0x040000D4 + ldr r1, _0800C9EC @ =0x08115A60 + str r1, [r0] + movs r1, #0xc0 + lsls r1, r1, #0x13 + str r1, [r0, #4] + ldr r1, _0800C9F0 @ =0x80000400 + str r1, [r0, #8] + ldr r1, [r0, #8] + ldr r1, _0800C9F4 @ =0x08116260 + str r1, [r0] + ldr r1, _0800C9F8 @ =0x06004000 + str r1, [r0, #4] + ldr r1, _0800C9FC @ =0x80001200 + str r1, [r0, #8] + ldr r1, [r0, #8] + ldr r4, _0800CA00 @ =0x08115860 + str r4, [r0] + movs r1, #0xa0 + lsls r1, r1, #0x13 + str r1, [r0, #4] + ldr r2, _0800CA04 @ =0x80000020 + str r2, [r0, #8] + ldr r1, [r0, #8] + ldr r1, _0800CA08 @ =0x08118680 + str r1, [r0] + ldr r1, _0800CA0C @ =0x06010000 + str r1, [r0, #4] + ldr r1, _0800CA10 @ =0x80003800 + str r1, [r0, #8] + ldr r1, [r0, #8] + str r4, [r0] + ldr r1, _0800CA14 @ =0x05000200 + str r1, [r0, #4] + str r2, [r0, #8] + ldr r0, [r0, #8] + ldr r4, _0800CA18 @ =0x0200B0C0 + ldrh r0, [r3] + strh r0, [r4, #0x16] + bl sub_CA28 + ldr r2, _0800CA1C @ =0x0202ADA0 + ldrh r1, [r2] + movs r3, #0xbd + lsls r3, r3, #2 + adds r0, r4, r3 + strh r1, [r0] + ldrh r0, [r2, #2] + ldr r1, _0800CA20 @ =0x000002F6 + adds r4, r4, r1 + strh r0, [r4] + bl sub_CBC + bl sub_10424 + ldr r1, _0800CA24 @ =0x0202C790 + ldrb r0, [r1] + adds r0, #1 + strb r0, [r1] + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_0800C9E4: .4byte 0x0400000E +_0800C9E8: .4byte 0x040000D4 +_0800C9EC: .4byte 0x08115A60 +_0800C9F0: .4byte 0x80000400 +_0800C9F4: .4byte 0x08116260 +_0800C9F8: .4byte 0x06004000 +_0800C9FC: .4byte 0x80001200 +_0800CA00: .4byte 0x08115860 +_0800CA04: .4byte 0x80000020 +_0800CA08: .4byte 0x08118680 +_0800CA0C: .4byte 0x06010000 +_0800CA10: .4byte 0x80003800 +_0800CA14: .4byte 0x05000200 +_0800CA18: .4byte 0x0200B0C0 +_0800CA1C: .4byte 0x0202ADA0 +_0800CA20: .4byte 0x000002F6 +_0800CA24: .4byte 0x0202C790 + + thumb_func_start sub_CA28 +sub_CA28: @ 0x0800CA28 + push {r4, lr} + ldr r0, _0800CA80 @ =0x0202ADA0 + movs r4, #0 + movs r3, #0 + strh r3, [r0] + strh r3, [r0, #2] + ldr r1, _0800CA84 @ =0x0201A450 + movs r0, #0xf0 + strh r0, [r1] + movs r0, #0x1e + strh r0, [r1, #2] + movs r0, #0xe + strh r0, [r1, #4] + movs r2, #1 + movs r0, #1 + strh r0, [r1, #8] + strb r2, [r1, #0xc] + movs r0, #0x84 + lsls r0, r0, #1 + strh r0, [r1, #0x10] + movs r0, #0x50 + strh r0, [r1, #0x12] + movs r0, #6 + strh r0, [r1, #0x14] + strb r4, [r1, #0x1c] + ldr r0, _0800CA88 @ =0x0202BF10 + strh r3, [r0] + ldr r0, _0800CA8C @ =0x0202A578 + strh r3, [r0] + ldr r0, _0800CA90 @ =0x0202C5E4 + movs r2, #0x80 + lsls r2, r2, #1 + adds r1, r2, #0 + strh r1, [r0] + ldr r0, _0800CA94 @ =0x0202ADD8 + strh r1, [r0] + ldr r0, _0800CA98 @ =0x0202BEDC + strb r4, [r0] + ldr r0, _0800CA9C @ =0x0202A56C + strb r4, [r0] + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_0800CA80: .4byte 0x0202ADA0 +_0800CA84: .4byte 0x0201A450 +_0800CA88: .4byte 0x0202BF10 +_0800CA8C: .4byte 0x0202A578 +_0800CA90: .4byte 0x0202C5E4 +_0800CA94: .4byte 0x0202ADD8 +_0800CA98: .4byte 0x0202BEDC +_0800CA9C: .4byte 0x0202A56C + + thumb_func_start sub_CAA0 +sub_CAA0: @ 0x0800CAA0 + push {r4, r5, lr} + ldr r4, _0800CB48 @ =0x0202ADA0 + ldrh r0, [r4] + subs r0, #0x24 + strh r0, [r4] + ldr r5, _0800CB4C @ =0x0201A450 + ldr r1, _0800CB50 @ =0x086A7D4C + ldr r2, _0800CB54 @ =0x0202A578 + movs r3, #0 + ldrsh r0, [r2, r3] + adds r0, r0, r1 + movs r1, #0 + ldrsb r1, [r0, r1] + ldrh r0, [r5] + subs r0, r0, r1 + strh r0, [r5] + ldrh r0, [r2] + adds r0, #1 + strh r0, [r2] + ldr r0, _0800CB58 @ =0x0202BF10 + movs r1, #0 + ldrsh r0, [r0, r1] + movs r1, #5 + bl __modsi3 + lsls r0, r0, #0x10 + cmp r0, #0 + bne _0800CAEA + ldrh r0, [r5, #8] + adds r0, #1 + strh r0, [r5, #8] + lsls r0, r0, #0x10 + asrs r0, r0, #0x10 + cmp r0, #0xa + ble _0800CAEA + movs r0, #1 + strh r0, [r5, #8] +_0800CAEA: + ldr r0, _0800CB5C @ =0x0200B0C0 + ldrh r1, [r4] + movs r2, #0xbd + lsls r2, r2, #2 + adds r0, r0, r2 + strh r1, [r0] + bl sub_CD18 + ldr r2, _0800CB58 @ =0x0202BF10 + movs r3, #0 + ldrsh r0, [r2, r3] + cmp r0, #0x28 + ble _0800CB26 + ldr r1, _0800CB60 @ =0x0202C5E4 + ldrh r0, [r1] + adds r0, #6 + strh r0, [r1] + ldr r1, _0800CB64 @ =0x0202ADD8 + ldrh r0, [r1] + adds r0, #6 + strh r0, [r1] + ldrh r0, [r2] + movs r1, #1 + ands r0, r1 + cmp r0, #0 + bne _0800CB26 + ldr r1, _0800CB4C @ =0x0201A450 + ldrh r0, [r1, #2] + adds r0, #1 + strh r0, [r1, #2] +_0800CB26: + ldr r0, _0800CB58 @ =0x0202BF10 + movs r1, #0 + ldrsh r0, [r0, r1] + cmp r0, #0x5a + ble _0800CB42 + ldr r1, _0800CB4C @ =0x0201A450 + movs r0, #0 + strb r0, [r1, #0xc] + movs r0, #1 + strb r0, [r1, #0x1c] + ldr r1, _0800CB68 @ =0x0202C790 + ldrb r0, [r1] + adds r0, #1 + strb r0, [r1] +_0800CB42: + pop {r4, r5} + pop {r0} + bx r0 + .align 2, 0 +_0800CB48: .4byte 0x0202ADA0 +_0800CB4C: .4byte 0x0201A450 +_0800CB50: .4byte 0x086A7D4C +_0800CB54: .4byte 0x0202A578 +_0800CB58: .4byte 0x0202BF10 +_0800CB5C: .4byte 0x0200B0C0 +_0800CB60: .4byte 0x0202C5E4 +_0800CB64: .4byte 0x0202ADD8 +_0800CB68: .4byte 0x0202C790 + + thumb_func_start sub_CB6C +sub_CB6C: @ 0x0800CB6C + ldr r0, _0800CB94 @ =0x0202ADA0 + ldrh r1, [r0] + subs r1, #0x24 + strh r1, [r0] + ldr r0, _0800CB98 @ =0x0200B0C0 + movs r2, #0xbd + lsls r2, r2, #2 + adds r0, r0, r2 + strh r1, [r0] + ldr r0, _0800CB9C @ =0x0202BF10 + movs r1, #0 + ldrsh r0, [r0, r1] + cmp r0, #0x78 + ble _0800CB90 + ldr r1, _0800CBA0 @ =0x0202C790 + ldrb r0, [r1] + adds r0, #1 + strb r0, [r1] +_0800CB90: + bx lr + .align 2, 0 +_0800CB94: .4byte 0x0202ADA0 +_0800CB98: .4byte 0x0200B0C0 +_0800CB9C: .4byte 0x0202BF10 +_0800CBA0: .4byte 0x0202C790 + + thumb_func_start sub_CBA4 +sub_CBA4: @ 0x0800CBA4 + push {r4, lr} + ldr r0, _0800CBBC @ =0x0202BF10 + movs r2, #0 + ldrsh r1, [r0, r2] + adds r2, r0, #0 + cmp r1, #0x86 + bgt _0800CBC4 + ldr r1, _0800CBC0 @ =0x0201A450 + ldrh r0, [r1, #0x10] + subs r0, #0xc + b _0800CBCA + .align 2, 0 +_0800CBBC: .4byte 0x0202BF10 +_0800CBC0: .4byte 0x0201A450 +_0800CBC4: + ldr r1, _0800CC68 @ =0x0201A450 + ldrh r0, [r1, #0x10] + subs r0, #1 +_0800CBCA: + strh r0, [r1, #0x10] + ldrh r0, [r2] + movs r1, #1 + ands r0, r1 + ldr r2, _0800CC6C @ =0x0202BEDC + cmp r0, #0 + bne _0800CBEA + ldrb r0, [r2] + adds r0, #3 + strb r0, [r2] + lsls r0, r0, #0x18 + asrs r0, r0, #0x18 + cmp r0, #0x20 + ble _0800CBEA + movs r0, #0x20 + strb r0, [r2] +_0800CBEA: + ldr r4, _0800CC70 @ =0x08115860 + ldr r1, _0800CC74 @ =0x05000200 + movs r3, #0 + ldrsb r3, [r2, r3] + lsls r3, r3, #0x10 + lsrs r3, r3, #0x10 + adds r0, r4, #0 + movs r2, #0x20 + bl sub_102A8 + ldr r0, _0800CC78 @ =0x0202BF10 + movs r1, #0 + ldrsh r0, [r0, r1] + cmp r0, #0x88 + ble _0800CC30 + ldr r2, _0800CC7C @ =0x0202A56C + ldrb r0, [r2] + adds r0, #2 + strb r0, [r2] + lsls r0, r0, #0x18 + asrs r0, r0, #0x18 + cmp r0, #0x20 + ble _0800CC1C + movs r0, #0x20 + strb r0, [r2] +_0800CC1C: + movs r1, #0xa0 + lsls r1, r1, #0x13 + movs r3, #0 + ldrsb r3, [r2, r3] + lsls r3, r3, #0x10 + lsrs r3, r3, #0x10 + adds r0, r4, #0 + movs r2, #0x40 + bl sub_102A8 +_0800CC30: + ldr r0, _0800CC80 @ =0x0202ADA0 + ldrh r1, [r0] + subs r1, #0x24 + strh r1, [r0] + ldr r0, _0800CC84 @ =0x0200B0C0 + movs r2, #0xbd + lsls r2, r2, #2 + adds r0, r0, r2 + strh r1, [r0] + bl sub_CD18 + ldr r1, _0800CC78 @ =0x0202BF10 + movs r2, #0 + ldrsh r0, [r1, r2] + cmp r0, #0x98 + ble _0800CC62 + movs r0, #0 + strh r0, [r1] + ldr r1, _0800CC88 @ =0x0202A578 + movs r0, #1 + strh r0, [r1] + ldr r1, _0800CC8C @ =0x0202C790 + ldrb r0, [r1] + adds r0, #2 + strb r0, [r1] +_0800CC62: + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_0800CC68: .4byte 0x0201A450 +_0800CC6C: .4byte 0x0202BEDC +_0800CC70: .4byte 0x08115860 +_0800CC74: .4byte 0x05000200 +_0800CC78: .4byte 0x0202BF10 +_0800CC7C: .4byte 0x0202A56C +_0800CC80: .4byte 0x0202ADA0 +_0800CC84: .4byte 0x0200B0C0 +_0800CC88: .4byte 0x0202A578 +_0800CC8C: .4byte 0x0202C790 + + thumb_func_start nullsub_14 +nullsub_14: @ 0x0800CC90 + bx lr + + thumb_func_start sub_CC94 +sub_CC94: @ 0x0800CC94 + push {r4, r5, r6, lr} + ldr r6, _0800CCE4 @ =0x0202BF10 + movs r1, #0 + ldrsh r0, [r6, r1] + movs r1, #0xa + bl __modsi3 + lsls r0, r0, #0x10 + cmp r0, #0 + bne _0800CCCE + ldr r1, _0800CCE8 @ =0x0202A578 + ldrh r0, [r1] + adds r0, #1 + strh r0, [r1] + ldr r4, _0800CCEC @ =0x02032EE0 + ldr r5, _0800CCF0 @ =0x0000FFFF + movs r0, #0 + ldrsh r1, [r1, r0] + movs r0, #0x80 + lsls r0, r0, #1 + bl __divsi3 + adds r2, r0, #0 + lsls r2, r2, #0x10 + lsrs r2, r2, #0x10 + adds r0, r4, #0 + adds r1, r5, #0 + bl m4aMPlayVolumeControl +_0800CCCE: + movs r1, #0 + ldrsh r0, [r6, r1] + cmp r0, #0x2d + ble _0800CCDE + ldr r1, _0800CCF4 @ =0x0202C790 + ldrb r0, [r1] + adds r0, #1 + strb r0, [r1] +_0800CCDE: + pop {r4, r5, r6} + pop {r0} + bx r0 + .align 2, 0 +_0800CCE4: .4byte 0x0202BF10 +_0800CCE8: .4byte 0x0202A578 +_0800CCEC: .4byte 0x02032EE0 +_0800CCF0: .4byte 0x0000FFFF +_0800CCF4: .4byte 0x0202C790 + + thumb_func_start sub_CCF8 +sub_CCF8: @ 0x0800CCF8 + push {lr} + bl sub_2B4 + bl m4aMPlayAllStop + bl sub_D10 + ldr r1, _0800CD14 @ =0x0200B0C0 + ldrb r0, [r1, #3] + adds r0, #1 + strb r0, [r1, #3] + pop {r0} + bx r0 + .align 2, 0 +_0800CD14: .4byte 0x0200B0C0 + + thumb_func_start sub_CD18 +sub_CD18: @ 0x0800CD18 + push {r4, r5, r6, r7, lr} + mov r7, sb + mov r6, r8 + push {r6, r7} + ldr r7, _0800CE28 @ =0x0201A450 + movs r0, #8 + ldrsh r1, [r7, r0] + movs r0, #0xb8 + muls r1, r0, r1 + ldr r0, _0800CE2C @ =0x0200B3B8 + adds r6, r1, r0 + mov r8, r0 + movs r0, #0xc + ldrsb r0, [r7, r0] + strh r0, [r6] + movs r0, #0x1c + ldrsb r0, [r7, r0] + mov r1, r8 + strh r0, [r1] + ldr r0, _0800CE30 @ =0x086A7D20 + movs r1, #0xb + mov r2, r8 + bl sub_358 + ldrh r0, [r6] + cmp r0, #1 + bne _0800CDBA + ldr r0, _0800CE34 @ =0x0202C5E4 + movs r2, #0 + ldrsh r0, [r0, r2] + ldr r1, _0800CE38 @ =0x0202ADD8 + movs r3, #0 + ldrsh r1, [r1, r3] + movs r2, #0 + bl sub_7C0 + ldrh r0, [r7] + strh r0, [r6, #2] + ldrh r0, [r7, #2] + strh r0, [r6, #4] + adds r5, r6, #0 + adds r5, #8 + ldr r4, _0800CE3C @ =0x03005000 + ldrh r2, [r6, #8] + lsls r2, r2, #3 + adds r2, r2, r4 + movs r0, #2 + ldrsh r1, [r5, r0] + movs r3, #2 + ldrsh r0, [r6, r3] + adds r1, r1, r0 + ldr r3, _0800CE40 @ =0x000001FF + adds r0, r3, #0 + ands r1, r0 + ldrh r3, [r2, #2] + ldr r0, _0800CE44 @ =0xFFFFFE00 + ands r0, r3 + orrs r0, r1 + strh r0, [r2, #2] + ldrh r1, [r6, #8] + lsls r1, r1, #3 + adds r1, r1, r4 + ldrb r0, [r6, #4] + ldrb r5, [r5, #4] + adds r0, r0, r5 + strb r0, [r1] + ldrh r1, [r6, #8] + lsls r1, r1, #3 + adds r1, r1, r4 + ldrb r0, [r1, #1] + movs r2, #3 + orrs r0, r2 + strb r0, [r1, #1] + ldrh r1, [r6, #8] + lsls r1, r1, #3 + adds r1, r1, r4 + ldrb r2, [r1, #3] + movs r0, #0xf + rsbs r0, r0, #0 + ands r0, r2 + strb r0, [r1, #3] +_0800CDBA: + mov r1, r8 + ldrh r0, [r1] + cmp r0, #1 + bne _0800CE12 + ldrh r0, [r7, #0x10] + strh r0, [r1, #2] + ldrh r0, [r7, #0x12] + strh r0, [r1, #4] + ldr r2, _0800CE3C @ =0x03005000 + mov sb, r2 + ldr r3, _0800CE44 @ =0xFFFFFE00 + mov ip, r3 + mov r4, r8 + adds r4, #8 + movs r5, #3 +_0800CDD8: + ldrh r3, [r4] + lsls r3, r3, #3 + add r3, sb + movs r7, #2 + ldrsh r1, [r4, r7] + mov r2, r8 + movs r7, #2 + ldrsh r0, [r2, r7] + adds r1, r1, r0 + ldr r2, _0800CE40 @ =0x000001FF + adds r0, r2, #0 + ands r1, r0 + ldrh r2, [r3, #2] + mov r0, ip + ands r0, r2 + orrs r0, r1 + strh r0, [r3, #2] + ldrh r1, [r4] + lsls r1, r1, #3 + add r1, sb + mov r3, r8 + ldrb r0, [r3, #4] + ldrb r7, [r4, #4] + adds r0, r0, r7 + strb r0, [r1] + adds r4, #8 + subs r5, #1 + cmp r5, #0 + bge _0800CDD8 +_0800CE12: + movs r0, #0 + strh r0, [r6] + mov r1, r8 + strh r0, [r1] + pop {r3, r4} + mov r8, r3 + mov sb, r4 + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + .align 2, 0 +_0800CE28: .4byte 0x0201A450 +_0800CE2C: .4byte 0x0200B3B8 +_0800CE30: .4byte 0x086A7D20 +_0800CE34: .4byte 0x0202C5E4 +_0800CE38: .4byte 0x0202ADD8 +_0800CE3C: .4byte 0x03005000 +_0800CE40: .4byte 0x000001FF +_0800CE44: .4byte 0xFFFFFE00 |