diff options
author | Marijn van der Werf <marijn.vanderwerf@gmail.com> | 2017-06-25 03:17:17 +0200 |
---|---|---|
committer | Marijn van der Werf <marijn.vanderwerf@gmail.com> | 2017-06-25 03:17:17 +0200 |
commit | 68206d17de4beeb9f98af8c0b54047f9ef30de44 (patch) | |
tree | 9434000f6d68a7092b90c199d6354110dc99a266 | |
parent | 7695f0f536581e11791a055744bd66f099ed5a63 (diff) |
add alternative asm
-rw-r--r-- | .travis.yml | 1 | ||||
-rw-r--r-- | asm-de/berry_blender.s | 9141 | ||||
-rw-r--r-- | asm-de/contest_link_80C2020.s | 5639 | ||||
-rw-r--r-- | asm-de/contest_link_80C857C.s | 1409 | ||||
-rw-r--r-- | asm-de/easy_chat.s | 10905 |
5 files changed, 27095 insertions, 0 deletions
diff --git a/.travis.yml b/.travis.yml index 6a8602d30..3d620e560 100644 --- a/.travis.yml +++ b/.travis.yml @@ -49,6 +49,7 @@ matrix: env: _="Build German" before_script: - cp override-de.mk override.mk + - rsync -avhI asm-de/ asm/ - rsync -avhI data-de/ data/ - rsync -avhI graphics-de/ graphics/ script: diff --git a/asm-de/berry_blender.s b/asm-de/berry_blender.s new file mode 100644 index 000000000..59aa1894a --- /dev/null +++ b/asm-de/berry_blender.s @@ -0,0 +1,9141 @@ + .include "constants/gba_constants.inc" + .include "constants/species_constants.inc" + .include "asm/macros.inc" + + .syntax unified + + .text + + thumb_func_start sub_804E290 +sub_804E290: @ 804E290 + push {lr} + ldr r0, _0804E2B0 @ =gMPlay_SE2 + ldr r1, _0804E2B4 @ =0x0000ffff + ldr r2, _0804E2B8 @ =gUnknown_03004854 + ldr r2, [r2] + adds r2, 0x56 + movs r3, 0 + ldrsh r2, [r2, r3] + subs r2, 0x80 + lsls r2, 17 + asrs r2, 16 + bl m4aMPlayPitchControl + pop {r0} + bx r0 + .align 2, 0 +_0804E2B0: .4byte gMPlay_SE2 +_0804E2B4: .4byte 0x0000ffff +_0804E2B8: .4byte gUnknown_03004854 + thumb_func_end sub_804E290 + + thumb_func_start sub_804E2BC +sub_804E2BC: @ 804E2BC + push {lr} + bl sub_80514A4 + bl sub_80514F0 + bl LoadOam + bl ProcessSpriteCopyRequests + bl TransferPlttBuffer + pop {r0} + bx r0 + thumb_func_end sub_804E2BC + + thumb_func_start sub_804E2D8 +sub_804E2D8: @ 804E2D8 + push {lr} + bl LoadOam + bl ProcessSpriteCopyRequests + bl TransferPlttBuffer + pop {r0} + bx r0 + thumb_func_end sub_804E2D8 + + thumb_func_start sub_804E2EC +sub_804E2EC: @ 804E2EC + push {r4-r7,lr} + ldr r1, _0804E308 @ =gUnknown_03004854 + ldr r0, [r1] + ldrb r0, [r0, 0x1] + mov r12, r1 + cmp r0, 0x9 + bls _0804E2FC + b _0804E4F4 +_0804E2FC: + lsls r0, 2 + ldr r1, _0804E30C @ =_0804E310 + adds r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_0804E308: .4byte gUnknown_03004854 +_0804E30C: .4byte _0804E310 + .align 2, 0 +_0804E310: + .4byte _0804E338 + .4byte _0804E34C + .4byte _0804E380 + .4byte _0804E3C4 + .4byte _0804E3D8 + .4byte _0804E3EC + .4byte _0804E410 + .4byte _0804E434 + .4byte _0804E48C + .4byte _0804E4BC +_0804E338: + ldr r0, _0804E344 @ =gUnknown_08E6C100 + ldr r1, _0804E348 @ =0x02010000 + bl sub_800D238 + b _0804E49E + .align 2, 0 +_0804E344: .4byte gUnknown_08E6C100 +_0804E348: .4byte 0x02010000 +_0804E34C: + ldr r1, _0804E36C @ =gUnknown_08215C2C + ldr r2, _0804E370 @ =0x06004000 + ldr r0, _0804E374 @ =0x040000d4 + str r1, [r0] + str r2, [r0, 0x4] + ldr r1, _0804E378 @ =0x80000200 + str r1, [r0, 0x8] + ldr r0, [r0, 0x8] + ldr r0, _0804E37C @ =gUnknown_08215C0C + movs r2, 0x80 + lsls r2, 1 + movs r1, 0 + bl LoadPalette + b _0804E49E + .align 2, 0 +_0804E36C: .4byte gUnknown_08215C2C +_0804E370: .4byte 0x06004000 +_0804E374: .4byte 0x040000d4 +_0804E378: .4byte 0x80000200 +_0804E37C: .4byte gUnknown_08215C0C +_0804E380: + ldr r3, _0804E3B8 @ =0x02010000 + movs r4, 0xC0 + lsls r4, 19 + movs r5, 0x80 + lsls r5, 6 + ldr r1, _0804E3BC @ =0x040000d4 + ldr r6, _0804E3C0 @ =0x80000800 + movs r2, 0x80 + lsls r2, 5 + movs r7, 0x80 + lsls r7, 24 +_0804E396: + str r3, [r1] + str r4, [r1, 0x4] + str r6, [r1, 0x8] + ldr r0, [r1, 0x8] + adds r3, r2 + adds r4, r2 + subs r5, r2 + cmp r5, r2 + bhi _0804E396 + str r3, [r1] + str r4, [r1, 0x4] + lsrs r0, r5, 1 + orrs r0, r7 + str r0, [r1, 0x8] + ldr r0, [r1, 0x8] + mov r0, r12 + b _0804E4A0 + .align 2, 0 +_0804E3B8: .4byte 0x02010000 +_0804E3BC: .4byte 0x040000d4 +_0804E3C0: .4byte 0x80000800 +_0804E3C4: + ldr r0, _0804E3D0 @ =gUnknown_08E6C920 + ldr r1, _0804E3D4 @ =0x02010000 + bl sub_800D238 + b _0804E49E + .align 2, 0 +_0804E3D0: .4byte gUnknown_08E6C920 +_0804E3D4: .4byte 0x02010000 +_0804E3D8: + ldr r0, _0804E3E4 @ =gUnknown_08E6D354 + ldr r1, _0804E3E8 @ =0x02013000 + bl sub_800D238 + b _0804E49E + .align 2, 0 +_0804E3E4: .4byte gUnknown_08E6D354 +_0804E3E8: .4byte 0x02013000 +_0804E3EC: + ldr r1, _0804E400 @ =0x02010000 + ldr r2, _0804E404 @ =0x0600e000 + ldr r0, _0804E408 @ =0x040000d4 + str r1, [r0] + str r2, [r0, 0x4] + ldr r1, _0804E40C @ =0x80000800 + str r1, [r0, 0x8] + ldr r0, [r0, 0x8] + mov r0, r12 + b _0804E4A0 + .align 2, 0 +_0804E400: .4byte 0x02010000 +_0804E404: .4byte 0x0600e000 +_0804E408: .4byte 0x040000d4 +_0804E40C: .4byte 0x80000800 +_0804E410: + ldr r1, _0804E424 @ =0x02011000 + ldr r2, _0804E428 @ =0x0600f000 + ldr r0, _0804E42C @ =0x040000d4 + str r1, [r0] + str r2, [r0, 0x4] + ldr r1, _0804E430 @ =0x80000800 + str r1, [r0, 0x8] + ldr r0, [r0, 0x8] + mov r0, r12 + b _0804E4A0 + .align 2, 0 +_0804E424: .4byte 0x02011000 +_0804E428: .4byte 0x0600f000 +_0804E42C: .4byte 0x040000d4 +_0804E430: .4byte 0x80000800 +_0804E434: + ldr r3, _0804E474 @ =0x02013000 + movs r2, 0 + adds r6, r3, 0 + ldr r7, _0804E478 @ =gUnknown_0821602C + movs r0, 0x80 + lsls r0, 1 + adds r5, r0, 0 + ldr r4, _0804E47C @ =0x0000027f +_0804E444: + lsls r0, r2, 1 + adds r0, r3 + ldrh r1, [r0] + orrs r1, r5 + strh r1, [r0] + adds r0, r2, 0x1 + lsls r0, 16 + lsrs r2, r0, 16 + cmp r2, r4 + bls _0804E444 + ldr r1, _0804E480 @ =0x06006000 + ldr r0, _0804E484 @ =0x040000d4 + str r6, [r0] + str r1, [r0, 0x4] + ldr r1, _0804E488 @ =0x80000280 + str r1, [r0, 0x8] + ldr r0, [r0, 0x8] + adds r0, r7, 0 + movs r1, 0x80 + movs r2, 0x20 + bl LoadPalette + b _0804E49E + .align 2, 0 +_0804E474: .4byte 0x02013000 +_0804E478: .4byte gUnknown_0821602C +_0804E47C: .4byte 0x0000027f +_0804E480: .4byte 0x06006000 +_0804E484: .4byte 0x040000d4 +_0804E488: .4byte 0x80000280 +_0804E48C: + ldr r0, _0804E4AC @ =gUnknown_082163DC + bl LoadSpriteSheet + ldr r0, _0804E4B0 @ =gUnknown_082164F4 + bl LoadSpriteSheet + ldr r0, _0804E4B4 @ =gUnknown_08216454 + bl LoadSpriteSheet +_0804E49E: + ldr r0, _0804E4B8 @ =gUnknown_03004854 +_0804E4A0: + ldr r1, [r0] + ldrb r0, [r1, 0x1] + adds r0, 0x1 + strb r0, [r1, 0x1] + b _0804E4F4 + .align 2, 0 +_0804E4AC: .4byte gUnknown_082163DC +_0804E4B0: .4byte gUnknown_082164F4 +_0804E4B4: .4byte gUnknown_08216454 +_0804E4B8: .4byte gUnknown_03004854 +_0804E4BC: + ldr r0, _0804E4E0 @ =gUnknown_08216540 + bl LoadSpriteSheet + ldr r0, _0804E4E4 @ =gUnknown_08216574 + bl LoadSpriteSheet + ldr r0, _0804E4E8 @ =gUnknown_082163EC + bl LoadSpritePalette + ldr r0, _0804E4EC @ =gUnknown_082163E4 + bl LoadSpritePalette + ldr r0, _0804E4F0 @ =gUnknown_03004854 + ldr r1, [r0] + movs r0, 0 + strb r0, [r1, 0x1] + movs r0, 0x1 + b _0804E4F6 + .align 2, 0 +_0804E4E0: .4byte gUnknown_08216540 +_0804E4E4: .4byte gUnknown_08216574 +_0804E4E8: .4byte gUnknown_082163EC +_0804E4EC: .4byte gUnknown_082163E4 +_0804E4F0: .4byte gUnknown_03004854 +_0804E4F4: + movs r0, 0 +_0804E4F6: + pop {r4-r7} + pop {r1} + bx r1 + thumb_func_end sub_804E2EC + + thumb_func_start sub_804E4FC +sub_804E4FC: @ 804E4FC + movs r1, 0x80 + lsls r1, 19 + ldr r2, _0804E52C @ =0x00001341 + adds r0, r2, 0 + strh r0, [r1] + adds r1, 0xC + movs r2, 0x91 + lsls r2, 7 + adds r0, r2, 0 + strh r0, [r1] + subs r1, 0x2 + ldr r2, _0804E530 @ =0x00000c0d + adds r0, r2, 0 + strh r0, [r1] + ldr r0, _0804E534 @ =REG_BG0HOFS + movs r1, 0 + strh r1, [r0] + adds r0, 0x2 + strh r1, [r0] + adds r0, 0x2 + strh r1, [r0] + adds r0, 0x2 + strh r1, [r0] + bx lr + .align 2, 0 +_0804E52C: .4byte 0x00001341 +_0804E530: .4byte 0x00000c0d +_0804E534: .4byte REG_BG0HOFS + thumb_func_end sub_804E4FC + + thumb_func_start sub_804E538 +sub_804E538: @ 804E538 + push {lr} + ldr r1, _0804E55C @ =gUnknown_03004854 + ldr r0, _0804E560 @ =0x02018000 + str r0, [r1] + adds r2, r0, 0 + adds r2, 0x6F + movs r1, 0 + strb r1, [r0] + strb r1, [r2] + ldr r0, _0804E564 @ =gSpecialVar_0x8004 + ldrb r0, [r0] + bl sub_804E884 + ldr r0, _0804E568 @ =sub_804E56C + bl SetMainCallback2 + pop {r0} + bx r0 + .align 2, 0 +_0804E55C: .4byte gUnknown_03004854 +_0804E560: .4byte 0x02018000 +_0804E564: .4byte gSpecialVar_0x8004 +_0804E568: .4byte sub_804E56C + thumb_func_end sub_804E538 + + thumb_func_start sub_804E56C +sub_804E56C: @ 804E56C + push {r4-r6,lr} + sub sp, 0x4 + ldr r0, _0804E588 @ =gUnknown_03004854 + ldr r0, [r0] + ldrb r0, [r0] + cmp r0, 0x6 + bls _0804E57C + b _0804E71A +_0804E57C: + lsls r0, 2 + ldr r1, _0804E58C @ =_0804E590 + adds r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_0804E588: .4byte gUnknown_03004854 +_0804E58C: .4byte _0804E590 + .align 2, 0 +_0804E590: + .4byte _0804E5AC + .4byte _0804E614 + .4byte _0804E67C + .4byte _0804E692 + .4byte _0804E6A8 + .4byte _0804E6D4 + .4byte _0804E700 +_0804E5AC: + movs r0, 0x80 + lsls r0, 19 + movs r5, 0 + strh r5, [r0] + bl ResetSpriteData + bl FreeAllSpritePalettes + movs r0, 0 + bl SetVBlankCallback + ldr r4, _0804E60C @ =gWindowConfig_81E6F68 + adds r0, r4, 0 + bl SetUpWindowConfig + adds r0, r4, 0 + bl InitMenuWindow + ldr r3, _0804E610 @ =gUnknown_03004854 + ldr r2, [r3] + ldrb r0, [r2] + adds r0, 0x1 + movs r1, 0 + strb r0, [r2] + ldr r2, [r3] + movs r3, 0xA0 + lsls r3, 1 + adds r0, r2, r3 + strh r1, [r0] + subs r3, 0x2 + adds r0, r2, r3 + strh r1, [r0] + movs r0, 0xA1 + lsls r0, 1 + adds r3, r2, r0 + movs r0, 0x50 + strh r0, [r3] + movs r3, 0xA2 + lsls r3, 1 + adds r0, r2, r3 + strh r1, [r0] + adds r3, 0x2 + adds r0, r2, r3 + strh r1, [r0] + strb r5, [r2, 0x1] + bl sub_8051474 + b _0804E71A + .align 2, 0 +_0804E60C: .4byte gWindowConfig_81E6F68 +_0804E610: .4byte gUnknown_03004854 +_0804E614: + bl sub_804E2EC + lsls r0, 24 + cmp r0, 0 + bne _0804E620 + b _0804E71A +_0804E620: + movs r4, 0 + ldr r5, _0804E668 @ =gUnknown_082162E4 + ldr r6, _0804E66C @ =gUnknown_03004854 +_0804E626: + ldrb r1, [r5] + ldrb r2, [r5, 0x1] + ldr r0, _0804E670 @ =gSpriteTemplate_82163F4 + movs r3, 0x1 + bl CreateSprite + ldr r1, [r6] + adds r1, 0x5C + adds r1, r4 + strb r0, [r1] + ldr r0, [r6] + adds r0, 0x5C + adds r0, r4 + ldrb r1, [r0] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + ldr r1, _0804E674 @ =gSprites + adds r0, r1 + adds r1, r4, 0 + adds r1, 0x8 + lsls r1, 24 + lsrs r1, 24 + bl StartSpriteAnim + adds r5, 0x2 + adds r4, 0x1 + cmp r4, 0x3 + ble _0804E626 + ldr r0, _0804E678 @ =sub_804E2BC + bl SetVBlankCallback + b _0804E6BE + .align 2, 0 +_0804E668: .4byte gUnknown_082162E4 +_0804E66C: .4byte gUnknown_03004854 +_0804E670: .4byte gSpriteTemplate_82163F4 +_0804E674: .4byte gSprites +_0804E678: .4byte sub_804E2BC +_0804E67C: + movs r0, 0x1 + negs r0, r0 + movs r1, 0 + str r1, [sp] + movs r2, 0x10 + movs r3, 0 + bl BeginNormalPaletteFade + bl sub_8051474 + b _0804E6BE +_0804E692: + bl sub_804E4FC + ldr r0, _0804E6A4 @ =gPaletteFade + ldrb r1, [r0, 0x7] + movs r0, 0x80 + ands r0, r1 + cmp r0, 0 + bne _0804E71A + b _0804E6BE + .align 2, 0 +_0804E6A4: .4byte gPaletteFade +_0804E6A8: + movs r0, 0 + movs r1, 0xE + movs r2, 0x1D + movs r3, 0x13 + bl MenuDrawTextWindow + ldr r0, _0804E6CC @ =gOtherText_BlenderChooseBerry + movs r1, 0x1 + movs r2, 0xF + bl MenuPrintMessage +_0804E6BE: + ldr r0, _0804E6D0 @ =gUnknown_03004854 + ldr r1, [r0] + ldrb r0, [r1] + adds r0, 0x1 + strb r0, [r1] + b _0804E71A + .align 2, 0 +_0804E6CC: .4byte gOtherText_BlenderChooseBerry +_0804E6D0: .4byte gUnknown_03004854 +_0804E6D4: + bl MenuUpdateWindowText + lsls r0, 24 + cmp r0, 0 + beq _0804E71A + ldr r0, _0804E6FC @ =gUnknown_03004854 + ldr r1, [r0] + ldrb r0, [r1] + adds r0, 0x1 + movs r2, 0 + strb r0, [r1] + movs r0, 0x1 + negs r0, r0 + str r2, [sp] + movs r1, 0 + movs r3, 0x10 + bl BeginNormalPaletteFade + b _0804E71A + .align 2, 0 +_0804E6FC: .4byte gUnknown_03004854 +_0804E700: + ldr r0, _0804E730 @ =gPaletteFade + ldrb r1, [r0, 0x7] + movs r0, 0x80 + ands r0, r1 + lsls r0, 24 + lsrs r4, r0, 24 + cmp r4, 0 + bne _0804E71A + bl sub_80A6978 + ldr r0, _0804E734 @ =gUnknown_03004854 + ldr r0, [r0] + strb r4, [r0] +_0804E71A: + bl AnimateSprites + bl BuildOamBuffer + bl UpdatePaletteFade + add sp, 0x4 + pop {r4-r6} + pop {r0} + bx r0 + .align 2, 0 +_0804E730: .4byte gPaletteFade +_0804E734: .4byte gUnknown_03004854 + thumb_func_end sub_804E56C + + thumb_func_start sub_804E738 +sub_804E738: @ 804E738 + push {r4,lr} + adds r4, r0, 0 + ldrh r0, [r4, 0x3A] + ldrh r1, [r4, 0x30] + adds r0, r1 + strh r0, [r4, 0x30] + ldrh r1, [r4, 0x32] + ldrh r2, [r4, 0x36] + subs r1, r2 + ldrh r0, [r4, 0x3C] + adds r1, r0 + strh r1, [r4, 0x32] + ldrh r3, [r4, 0x2E] + adds r0, r3 + strh r0, [r4, 0x2E] + subs r2, 0x1 + strh r2, [r4, 0x36] + lsls r0, 16 + lsls r1, 16 + cmp r0, r1 + bge _0804E786 + ldrh r0, [r4, 0x34] + subs r0, 0x1 + strh r0, [r4, 0x36] + strh r0, [r4, 0x34] + ldrh r0, [r4, 0x38] + adds r0, 0x1 + strh r0, [r4, 0x38] + lsls r0, 16 + asrs r0, 16 + cmp r0, 0x3 + ble _0804E780 + adds r0, r4, 0 + bl DestroySprite + b _0804E786 +_0804E780: + movs r0, 0x74 + bl PlaySE +_0804E786: + ldrh r0, [r4, 0x30] + strh r0, [r4, 0x20] + ldrh r0, [r4, 0x32] + strh r0, [r4, 0x22] + pop {r4} + pop {r0} + bx r0 + thumb_func_end sub_804E738 + + thumb_func_start sub_804E794 +sub_804E794: @ 804E794 + push {r4-r6,lr} + ldr r5, [sp, 0x10] + ldr r6, [sp, 0x14] + lsls r2, 16 + lsrs r2, 16 + movs r4, 0 + strh r2, [r0, 0x2E] + strh r1, [r0, 0x30] + strh r2, [r0, 0x32] + strh r3, [r0, 0x34] + movs r1, 0xA + strh r1, [r0, 0x36] + strh r4, [r0, 0x38] + strh r5, [r0, 0x3A] + strh r6, [r0, 0x3C] + ldr r1, _0804E7BC @ =sub_804E738 + str r1, [r0, 0x1C] + pop {r4-r6} + pop {r0} + bx r0 + .align 2, 0 +_0804E7BC: .4byte sub_804E738 + thumb_func_end sub_804E794 + + thumb_func_start sub_804E7C0 +sub_804E7C0: @ 804E7C0 + push {r4-r6,lr} + mov r6, r8 + push {r6} + sub sp, 0x8 + adds r6, r1, 0 + lsls r6, 24 + lsrs r6, 24 + lsls r0, 24 + movs r1, 0xF6 + lsls r1, 23 + adds r0, r1 + lsrs r0, 24 + movs r3, 0x1 + ands r3, r6 + movs r1, 0 + movs r2, 0x50 + bl sub_80A7DEC + lsls r0, 24 + lsrs r0, 24 + lsls r2, r0, 4 + mov r8, r2 + add r8, r0 + mov r3, r8 + lsls r3, 2 + mov r8, r3 + ldr r0, _0804E83C @ =gSprites + add r8, r0 + ldr r5, _0804E840 @ =gUnknown_08216594 + lsls r4, r6, 2 + adds r4, r6 + lsls r4, 1 + adds r0, r4, r5 + movs r6, 0 + ldrsh r1, [r0, r6] + adds r0, r5, 0x2 + adds r0, r4, r0 + movs r3, 0 + ldrsh r2, [r0, r3] + adds r0, r5, 0x4 + adds r0, r4, r0 + movs r6, 0 + ldrsh r3, [r0, r6] + adds r0, r5, 0x6 + adds r0, r4, r0 + movs r6, 0 + ldrsh r0, [r0, r6] + str r0, [sp] + adds r5, 0x8 + adds r4, r5 + movs r5, 0 + ldrsh r0, [r4, r5] + str r0, [sp, 0x4] + mov r0, r8 + bl sub_804E794 + add sp, 0x8 + pop {r3} + mov r8, r3 + pop {r4-r6} + pop {r0} + bx r0 + .align 2, 0 +_0804E83C: .4byte gSprites +_0804E840: .4byte gUnknown_08216594 + thumb_func_end sub_804E7C0 + + thumb_func_start sub_804E844 +sub_804E844: @ 804E844 + push {r4-r6,lr} + adds r6, r0, 0 + lsls r5, r1, 16 + lsrs r5, 16 + adds r0, r5, 0 + adds r0, 0x7C + lsls r0, 24 + lsrs r0, 24 + bl GetBerryInfo + adds r4, r0, 0 + strh r5, [r6] + adds r0, r6, 0x2 + adds r1, r4, 0 + bl StringCopy + ldrb r0, [r4, 0x15] + strb r0, [r6, 0x9] + ldrb r0, [r4, 0x16] + strb r0, [r6, 0xA] + ldrb r0, [r4, 0x17] + strb r0, [r6, 0xB] + ldrb r0, [r4, 0x18] + strb r0, [r6, 0xC] + ldrb r0, [r4, 0x19] + strb r0, [r6, 0xD] + ldrb r0, [r4, 0x1A] + strb r0, [r6, 0xE] + pop {r4-r6} + pop {r0} + bx r0 + thumb_func_end sub_804E844 + + thumb_func_start sub_804E884 +sub_804E884: @ 804E884 + push {r4,r5,lr} + lsls r0, 24 + lsrs r1, r0, 24 + cmp r1, 0 + beq _0804E89E + ldr r2, _0804E8AC @ =gLinkPlayers + movs r3, 0x5 + adds r0, r2, 0 + adds r0, 0x54 +_0804E896: + strh r3, [r0, 0x1A] + subs r0, 0x1C + cmp r0, r2 + bge _0804E896 +_0804E89E: + cmp r1, 0x1 + beq _0804E8C4 + cmp r1, 0x1 + bgt _0804E8B0 + cmp r1, 0 + beq _0804E8BA + b _0804E974 + .align 2, 0 +_0804E8AC: .4byte gLinkPlayers +_0804E8B0: + cmp r1, 0x2 + beq _0804E8F8 + cmp r1, 0x3 + beq _0804E93C + b _0804E974 +_0804E8BA: + ldr r0, _0804E8C0 @ =gUnknown_03004834 + strb r1, [r0] + b _0804E974 + .align 2, 0 +_0804E8C0: .4byte gUnknown_03004834 +_0804E8C4: + ldr r0, _0804E8E4 @ =gUnknown_03004834 + strb r1, [r0] + ldr r0, _0804E8E8 @ =gUnknown_03004854 + ldr r0, [r0] + adds r0, 0x88 + movs r1, 0x2 + strb r1, [r0] + ldr r4, _0804E8EC @ =gLinkPlayers + 0x8 + ldr r1, _0804E8F0 @ =gSaveBlock2 + adds r0, r4, 0 + bl StringCopy + adds r4, 0x1C + ldr r0, _0804E8F4 @ =gUnknown_082162B8 + ldr r1, [r0] + b _0804E920 + .align 2, 0 +_0804E8E4: .4byte gUnknown_03004834 +_0804E8E8: .4byte gUnknown_03004854 +_0804E8EC: .4byte gLinkPlayers + 0x8 +_0804E8F0: .4byte gSaveBlock2 +_0804E8F4: .4byte gUnknown_082162B8 +_0804E8F8: + ldr r0, _0804E928 @ =gUnknown_03004834 + strb r1, [r0] + ldr r0, _0804E92C @ =gUnknown_03004854 + ldr r0, [r0] + adds r0, 0x88 + movs r1, 0x3 + strb r1, [r0] + ldr r4, _0804E930 @ =gLinkPlayers + 0x8 + ldr r1, _0804E934 @ =gSaveBlock2 + adds r0, r4, 0 + bl StringCopy + adds r0, r4, 0 + adds r0, 0x1C + ldr r5, _0804E938 @ =gUnknown_082162B8 + ldr r1, [r5] + bl StringCopy + adds r4, 0x38 + ldr r1, [r5, 0x4] +_0804E920: + adds r0, r4, 0 + bl StringCopy + b _0804E974 + .align 2, 0 +_0804E928: .4byte gUnknown_03004834 +_0804E92C: .4byte gUnknown_03004854 +_0804E930: .4byte gLinkPlayers + 0x8 +_0804E934: .4byte gSaveBlock2 +_0804E938: .4byte gUnknown_082162B8 +_0804E93C: + ldr r0, _0804E97C @ =gUnknown_03004834 + strb r1, [r0] + ldr r0, _0804E980 @ =gUnknown_03004854 + ldr r0, [r0] + adds r0, 0x88 + movs r1, 0x4 + strb r1, [r0] + ldr r4, _0804E984 @ =gLinkPlayers + 0x8 + ldr r1, _0804E988 @ =gSaveBlock2 + adds r0, r4, 0 + bl StringCopy + adds r0, r4, 0 + adds r0, 0x1C + ldr r5, _0804E98C @ =gUnknown_082162B8 + ldr r1, [r5] + bl StringCopy + adds r0, r4, 0 + adds r0, 0x38 + ldr r1, [r5, 0x4] + bl StringCopy + adds r4, 0x54 + ldr r1, [r5, 0x8] + adds r0, r4, 0 + bl StringCopy +_0804E974: + pop {r4,r5} + pop {r0} + bx r0 + .align 2, 0 +_0804E97C: .4byte gUnknown_03004834 +_0804E980: .4byte gUnknown_03004854 +_0804E984: .4byte gLinkPlayers + 0x8 +_0804E988: .4byte gSaveBlock2 +_0804E98C: .4byte gUnknown_082162B8 + thumb_func_end sub_804E884 + + thumb_func_start sub_804E990 +sub_804E990: @ 804E990 + push {r4,r5,lr} + movs r0, 0x80 + lsls r0, 19 + movs r2, 0 + strh r2, [r0] + ldr r3, _0804E9D8 @ =gUnknown_03004854 + ldr r0, _0804E9DC @ =0x02018000 + str r0, [r3] + movs r1, 0 + strb r2, [r0] + movs r2, 0x9A + lsls r2, 1 + adds r0, r2 + str r1, [r0] + movs r2, 0 + ldr r5, _0804E9E0 @ =gSpecialVar_0x8004 + adds r4, r3, 0 + movs r3, 0 +_0804E9B4: + ldr r0, [r4] + lsls r1, r2, 1 + adds r0, 0x80 + adds r0, r1 + strh r3, [r0] + adds r2, 0x1 + cmp r2, 0x3 + ble _0804E9B4 + ldrb r0, [r5] + bl sub_804E884 + ldrh r0, [r5] + cmp r0, 0 + bne _0804E9E8 + ldr r0, _0804E9E4 @ =sub_804E9F8 + bl SetMainCallback2 + b _0804E9EE + .align 2, 0 +_0804E9D8: .4byte gUnknown_03004854 +_0804E9DC: .4byte 0x02018000 +_0804E9E0: .4byte gSpecialVar_0x8004 +_0804E9E4: .4byte sub_804E9F8 +_0804E9E8: + ldr r0, _0804E9F4 @ =sub_804F378 + bl SetMainCallback2 +_0804E9EE: + pop {r4,r5} + pop {r0} + bx r0 + .align 2, 0 +_0804E9F4: .4byte sub_804F378 + thumb_func_end sub_804E990 + + thumb_func_start sub_804E9F8 +sub_804E9F8: @ 804E9F8 + push {r4-r7,lr} + mov r7, r8 + push {r7} + sub sp, 0x4 + ldr r1, _0804EA18 @ =gUnknown_03004854 + ldr r0, [r1] + ldrb r0, [r0] + mov r8, r1 + cmp r0, 0x66 + bls _0804EA0E + b _0804F0CE +_0804EA0E: + lsls r0, 2 + ldr r1, _0804EA1C @ =_0804EA20 + adds r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_0804EA18: .4byte gUnknown_03004854 +_0804EA1C: .4byte _0804EA20 + .align 2, 0 +_0804EA20: + .4byte _0804EBBC + .4byte _0804EC74 + .4byte _0804EC94 + .4byte _0804ECE8 + .4byte _0804ECFA + .4byte _0804ED14 + .4byte _0804F0CE + .4byte _0804F0CE + .4byte _0804ED48 + .4byte _0804ED94 + .4byte _0804EDB8 + .4byte _0804EE46 + .4byte _0804EEA0 + .4byte _0804EF16 + .4byte _0804EF34 + .4byte _0804EFD8 + .4byte _0804F00C + .4byte _0804F0CE + .4byte _0804F020 + .4byte _0804F024 + .4byte _0804F02A + .4byte _0804F03A + .4byte _0804F0CE + .4byte _0804F0CE + .4byte _0804F0CE + .4byte _0804F0CE + .4byte _0804F0CE + .4byte _0804F0CE + .4byte _0804F0CE + .4byte _0804F0CE + .4byte _0804F0CE + .4byte _0804F0CE + .4byte _0804F0CE + .4byte _0804F0CE + .4byte _0804F0CE + .4byte _0804F0CE + .4byte _0804F0CE + .4byte _0804F0CE + .4byte _0804F0CE + .4byte _0804F0CE + .4byte _0804F0CE + .4byte _0804F0CE + .4byte _0804F0CE + .4byte _0804F0CE + .4byte _0804F0CE + .4byte _0804F0CE + .4byte _0804F0CE + .4byte _0804F0CE + .4byte _0804F0CE + .4byte _0804F0CE + .4byte _0804F0CE + .4byte _0804F0CE + .4byte _0804F0CE + .4byte _0804F0CE + .4byte _0804F0CE + .4byte _0804F0CE + .4byte _0804F0CE + .4byte _0804F0CE + .4byte _0804F0CE + .4byte _0804F0CE + .4byte _0804F0CE + .4byte _0804F0CE + .4byte _0804F0CE + .4byte _0804F0CE + .4byte _0804F0CE + .4byte _0804F0CE + .4byte _0804F0CE + .4byte _0804F0CE + .4byte _0804F0CE + .4byte _0804F0CE + .4byte _0804F0CE + .4byte _0804F0CE + .4byte _0804F0CE + .4byte _0804F0CE + .4byte _0804F0CE + .4byte _0804F0CE + .4byte _0804F0CE + .4byte _0804F0CE + .4byte _0804F0CE + .4byte _0804F0CE + .4byte _0804F0CE + .4byte _0804F0CE + .4byte _0804F0CE + .4byte _0804F0CE + .4byte _0804F0CE + .4byte _0804F0CE + .4byte _0804F0CE + .4byte _0804F0CE + .4byte _0804F0CE + .4byte _0804F0CE + .4byte _0804F0CE + .4byte _0804F0CE + .4byte _0804F0CE + .4byte _0804F0CE + .4byte _0804F0CE + .4byte _0804F0CE + .4byte _0804F0CE + .4byte _0804F0CE + .4byte _0804F0CE + .4byte _0804F0CE + .4byte _0804F084 + .4byte _0804F0A0 + .4byte _0804F0BC +_0804EBBC: + bl ResetSpriteData + bl FreeAllSpritePalettes + bl ResetTasks + ldr r0, _0804EC60 @ =sub_804E2BC + bl SetVBlankCallback + ldr r4, _0804EC64 @ =gWindowConfig_81E6F68 + adds r0, r4, 0 + bl SetUpWindowConfig + adds r0, r4, 0 + bl InitMenuWindow + ldr r1, _0804EC68 @ =gLinkType + ldr r2, _0804EC6C @ =0x00004422 + adds r0, r2, 0 + strh r0, [r1] + ldr r3, _0804EC70 @ =gUnknown_03004854 + ldr r1, [r3] + ldrb r0, [r1] + adds r0, 0x1 + movs r2, 0 + strb r0, [r1] + ldr r0, [r3] + adds r4, r0, 0 + adds r4, 0x4E + movs r1, 0 + strh r2, [r4] + adds r0, 0x7E + strb r1, [r0] + ldr r1, [r3] + movs r4, 0xA2 + lsls r4, 1 + adds r0, r1, r4 + strh r2, [r0] + adds r4, 0x2 + adds r0, r1, r4 + strh r2, [r0] + movs r5, 0 + movs r6, 0 + mov r8, r3 + movs r7, 0xA6 + lsls r7, 1 +_0804EC18: + ldr r0, [r3] + lsls r1, r5, 1 + adds r0, 0x70 + adds r0, r1 + strh r6, [r0] + adds r4, r5, 0x1 + adds r1, r5 + lsls r1, 1 + movs r2, 0x2 +_0804EC2A: + ldr r0, [r3] + adds r0, r7 + adds r0, r1 + strh r6, [r0] + adds r1, 0x2 + subs r2, 0x1 + cmp r2, 0 + bge _0804EC2A + adds r5, r4, 0 + cmp r5, 0x3 + ble _0804EC18 + mov r0, r8 + ldr r3, [r0] + adds r0, r3, 0 + adds r0, 0x7C + movs r2, 0 + movs r1, 0 + strh r1, [r0] + subs r0, 0x26 + strh r1, [r0] + subs r0, 0x2 + strh r1, [r0] + adds r0, 0x6 + strh r1, [r0] + strb r2, [r3, 0x1] + b _0804F0CE + .align 2, 0 +_0804EC60: .4byte sub_804E2BC +_0804EC64: .4byte gWindowConfig_81E6F68 +_0804EC68: .4byte gLinkType +_0804EC6C: .4byte 0x00004422 +_0804EC70: .4byte gUnknown_03004854 +_0804EC74: + bl sub_804E2EC + lsls r0, 24 + cmp r0, 0 + bne _0804EC80 + b _0804F0CE +_0804EC80: + ldr r0, _0804EC90 @ =gUnknown_03004854 + ldr r1, [r0] + ldrb r0, [r1] + adds r0, 0x1 + strb r0, [r1] + bl sub_8051474 + b _0804F0CE + .align 2, 0 +_0804EC90: .4byte gUnknown_03004854 +_0804EC94: + movs r5, 0 + ldr r4, _0804ECD8 @ =gUnknown_082162E4 + ldr r6, _0804ECDC @ =gUnknown_03004854 +_0804EC9A: + ldrb r1, [r4] + ldrb r2, [r4, 0x1] + ldr r0, _0804ECE0 @ =gSpriteTemplate_82163F4 + movs r3, 0x1 + bl CreateSprite + ldr r1, [r6] + adds r1, 0x60 + adds r1, r5 + strb r0, [r1] + ldr r0, [r6] + adds r0, 0x60 + adds r0, r5 + ldrb r1, [r0] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + ldr r1, _0804ECE4 @ =gSprites + adds r0, r1 + adds r1, r5, 0 + adds r1, 0x8 + lsls r1, 24 + lsrs r1, 24 + bl StartSpriteAnim + adds r4, 0x2 + adds r5, 0x1 + cmp r5, 0x3 + ble _0804EC9A + b _0804F0AA + .align 2, 0 +_0804ECD8: .4byte gUnknown_082162E4 +_0804ECDC: .4byte gUnknown_03004854 +_0804ECE0: .4byte gSpriteTemplate_82163F4 +_0804ECE4: .4byte gSprites +_0804ECE8: + movs r0, 0x1 + negs r0, r0 + movs r1, 0 + str r1, [sp] + movs r2, 0x10 + movs r3, 0 + bl BeginNormalPaletteFade + b _0804F0AA +_0804ECFA: + bl sub_804E4FC + ldr r0, _0804ED10 @ =gPaletteFade + ldrb r1, [r0, 0x7] + movs r0, 0x80 + ands r0, r1 + cmp r0, 0 + beq _0804ED0C + b _0804F0CE +_0804ED0C: + b _0804F0AA + .align 2, 0 +_0804ED10: .4byte gPaletteFade +_0804ED14: + movs r0, 0 + movs r1, 0xD + movs r2, 0x1D + movs r3, 0x13 + bl MenuDrawTextWindow + ldr r0, _0804ED40 @ =gOtherText_LinkStandby3 + movs r1, 0x1 + movs r2, 0xE + bl MenuPrint + ldr r2, _0804ED44 @ =gUnknown_03004854 + ldr r1, [r2] + movs r3, 0 + movs r0, 0x8 + strb r0, [r1] + ldr r0, [r2] + movs r1, 0x98 + lsls r1, 1 + adds r0, r1 + str r3, [r0] + b _0804F0CE + .align 2, 0 +_0804ED40: .4byte gOtherText_LinkStandby3 +_0804ED44: .4byte gUnknown_03004854 +_0804ED48: + mov r2, r8 + ldr r1, [r2] + ldrb r0, [r1] + adds r0, 0x1 + movs r5, 0 + strb r0, [r1] + ldr r0, [r2] + movs r3, 0x9E + lsls r3, 1 + adds r0, r3 + strb r5, [r0] + ldr r0, [r2] + movs r4, 0xBE + lsls r4, 1 + adds r0, r4 + ldr r1, _0804ED8C @ =gScriptItemId + ldrh r1, [r1] + bl sub_804E844 + ldr r0, _0804ED90 @ =gBlockSendBuffer + mov r2, r8 + ldr r1, [r2] + adds r1, r4 + movs r2, 0x10 + bl memcpy + bl sub_80084A4 + mov r3, r8 + ldr r0, [r3] + subs r4, 0x4C + adds r0, r4 + str r5, [r0] + b _0804F0CE + .align 2, 0 +_0804ED8C: .4byte gScriptItemId +_0804ED90: .4byte gBlockSendBuffer +_0804ED94: + bl sub_8007ECC + lsls r0, 24 + cmp r0, 0 + bne _0804EDA0 + b _0804F0CE +_0804EDA0: + bl ResetBlockReceivedFlags + bl GetMultiplayerId + lsls r0, 24 + cmp r0, 0 + beq _0804EDB0 + b _0804F0AA +_0804EDB0: + movs r0, 0x4 + bl sub_8007E9C + b _0804F0AA +_0804EDB8: + mov r0, r8 + ldr r1, [r0] + movs r2, 0x98 + lsls r2, 1 + adds r1, r2 + ldr r0, [r1] + adds r0, 0x1 + str r0, [r1] + cmp r0, 0x14 + bgt _0804EDCE + b _0804F0CE +_0804EDCE: + bl MenuZeroFillScreen + bl GetBlockReceivedStatus + adds r4, r0, 0 + bl sub_8008198 + lsls r4, 24 + lsls r0, 24 + cmp r4, r0 + beq _0804EDE6 + b _0804F0CE +_0804EDE6: + movs r5, 0 + mov r7, r8 + movs r6, 0xBE + lsls r6, 1 + b _0804EE18 +_0804EDF0: + ldr r0, [r7] + lsls r4, r5, 4 + adds r0, r4, r0 + adds r0, r6 + lsls r1, r5, 8 + ldr r2, _0804EE2C @ =gBlockRecvBuffer + adds r1, r2 + movs r2, 0x10 + bl memcpy + ldr r0, [r7] + lsls r2, r5, 1 + adds r1, r0, 0 + adds r1, 0x80 + adds r1, r2 + adds r0, r4 + adds r0, r6 + ldrh r0, [r0] + strh r0, [r1] + adds r5, 0x1 +_0804EE18: + bl GetLinkPlayerCount + lsls r0, 24 + lsrs r0, 24 + cmp r5, r0 + blt _0804EDF0 + bl ResetBlockReceivedFlags + b _0804F0AA + .align 2, 0 +_0804EE2C: .4byte gBlockRecvBuffer +_0804EE30: + ldrb r1, [r4] + lsls r1, 1 + adds r0, r2, 0 + adds r0, 0x80 + adds r0, r1 + ldrh r0, [r0] + lsls r1, r5, 24 + lsrs r1, 24 + bl sub_804E7C0 + b _0804EE7A +_0804EE46: + bl GetLinkPlayerCount + ldr r2, _0804EE98 @ =gUnknown_03004854 + ldr r1, [r2] + adds r1, 0x88 + strb r0, [r1] + movs r5, 0 + ldr r2, [r2] + movs r3, 0x9E + lsls r3, 1 + adds r4, r2, r3 + ldr r1, _0804EE9C @ =gUnknown_082162EC + adds r0, r2, 0 + adds r0, 0x88 + ldrb r0, [r0] + subs r0, 0x2 + lsls r0, 2 + ldrb r3, [r4] + adds r0, r1 +_0804EE6C: + ldrb r1, [r0] + cmp r3, r1 + beq _0804EE30 + adds r0, 0x1 + adds r5, 0x1 + cmp r5, 0x3 + ble _0804EE6C +_0804EE7A: + ldr r3, _0804EE98 @ =gUnknown_03004854 + ldr r1, [r3] + movs r4, 0x98 + lsls r4, 1 + adds r2, r1, r4 + movs r0, 0 + str r0, [r2] + ldrb r0, [r1] + adds r0, 0x1 + strb r0, [r1] + ldr r1, [r3] + movs r0, 0x9E + lsls r0, 1 + adds r1, r0 + b _0804F0AE + .align 2, 0 +_0804EE98: .4byte gUnknown_03004854 +_0804EE9C: .4byte gUnknown_082162EC +_0804EEA0: + mov r1, r8 + ldr r2, [r1] + movs r3, 0x98 + lsls r3, 1 + adds r1, r2, r3 + ldr r0, [r1] + adds r0, 0x1 + str r0, [r1] + cmp r0, 0x3C + bgt _0804EEB6 + b _0804F0CE +_0804EEB6: + movs r4, 0x9E + lsls r4, 1 + adds r0, r2, r4 + adds r1, r2, 0 + adds r1, 0x88 + ldrb r0, [r0] + ldrb r1, [r1] + cmp r0, r1 + bcc _0804EF00 + ldrb r0, [r2] + adds r0, 0x1 + strb r0, [r2] + mov r0, r8 + ldr r2, [r0] + ldr r3, _0804EEF4 @ =gUnknown_082162F8 + ldr r1, _0804EEF8 @ =gUnknown_08216300 + adds r0, r2, 0 + adds r0, 0x88 + ldrb r0, [r0] + subs r0, 0x2 + adds r0, r1 + ldrb r0, [r0] + lsls r0, 1 + adds r0, r3 + ldr r3, _0804EEFC @ =0xffffa800 + adds r1, r3, 0 + ldrh r0, [r0] + adds r1, r0 + adds r2, 0x54 + strh r1, [r2] + b _0804EF06 + .align 2, 0 +_0804EEF4: .4byte gUnknown_082162F8 +_0804EEF8: .4byte gUnknown_08216300 +_0804EEFC: .4byte 0xffffa800 +_0804EF00: + ldrb r0, [r2] + subs r0, 0x1 + strb r0, [r2] +_0804EF06: + mov r4, r8 + ldr r0, [r4] + movs r1, 0x98 + lsls r1, 1 + adds r0, r1 + movs r1, 0 + str r1, [r0] + b _0804F0CE +_0804EF16: + bl sub_8007ECC + lsls r0, 24 + cmp r0, 0 + bne _0804EF22 + b _0804F0CE +_0804EF22: + ldr r2, _0804EF30 @ =gUnknown_03004854 + ldr r1, [r2] + ldrb r0, [r1] + adds r0, 0x1 + strb r0, [r1] + ldr r0, [r2] + b _0804EFBC + .align 2, 0 +_0804EF30: .4byte gUnknown_03004854 +_0804EF34: + movs r2, 0x80 + lsls r2, 19 + ldrh r0, [r2] + movs r3, 0x80 + lsls r3, 3 + adds r1, r3, 0 + orrs r0, r1 + strh r0, [r2] + mov r4, r8 + ldr r2, [r4] + adds r1, r2, 0 + adds r1, 0x54 + movs r3, 0x80 + lsls r3, 2 + adds r0, r3, 0 + ldrh r4, [r1] + adds r0, r4 + strh r0, [r1] + movs r0, 0xA1 + lsls r0, 1 + adds r1, r2, r0 + ldrh r0, [r1] + adds r0, 0x4 + strh r0, [r1] + lsls r0, 16 + lsrs r0, 16 + cmp r0, 0xFF + bls _0804EFB8 + ldrb r0, [r2] + adds r0, 0x1 + strb r0, [r2] + mov r1, r8 + ldr r3, [r1] + movs r2, 0xA1 + lsls r2, 1 + adds r1, r3, r2 + movs r0, 0x80 + lsls r0, 1 + strh r0, [r1] + ldr r2, _0804EFC8 @ =gUnknown_082162F8 + ldr r1, _0804EFCC @ =gUnknown_08216300 + adds r0, r3, 0 + adds r0, 0x88 + ldrb r0, [r0] + subs r0, 0x2 + adds r0, r1 + ldrb r0, [r0] + lsls r0, 1 + adds r0, r2 + ldrh r1, [r0] + adds r0, r3, 0 + adds r0, 0x54 + strh r1, [r0] + ldr r1, _0804EFD0 @ =REG_BG2CNT + ldr r4, _0804EFD4 @ =0x00004882 + adds r0, r4, 0 + strh r0, [r1] + movs r0, 0x98 + lsls r0, 1 + adds r1, r3, r0 + movs r0, 0 + str r0, [r1] + bl sub_804F238 + bl BuyMenuDrawFieldObjects +_0804EFB8: + mov r1, r8 + ldr r0, [r1] +_0804EFBC: + movs r2, 0xB4 + lsls r2, 1 + adds r0, r2 + bl sub_8051414 + b _0804F0CE + .align 2, 0 +_0804EFC8: .4byte gUnknown_082162F8 +_0804EFCC: .4byte gUnknown_08216300 +_0804EFD0: .4byte REG_BG2CNT +_0804EFD4: .4byte 0x00004882 +_0804EFD8: + bl sub_8051B8C + lsls r0, 24 + cmp r0, 0 + beq _0804EFF6 + ldr r0, _0804F008 @ =gUnknown_03004854 + ldr r1, [r0] + movs r3, 0x98 + lsls r3, 1 + adds r2, r1, r3 + movs r0, 0 + str r0, [r2] + ldrb r0, [r1] + adds r0, 0x1 + strb r0, [r1] +_0804EFF6: + ldr r0, _0804F008 @ =gUnknown_03004854 + ldr r0, [r0] + movs r4, 0xB4 + lsls r4, 1 + adds r0, r4 + bl sub_8051414 + b _0804F0CE + .align 2, 0 +_0804F008: .4byte gUnknown_03004854 +_0804F00C: + ldr r0, _0804F01C @ =gSpriteTemplate_8216548 + movs r2, 0x10 + negs r2, r2 + movs r1, 0x78 + movs r3, 0x3 + bl CreateSprite + b _0804F0AA + .align 2, 0 +_0804F01C: .4byte gSpriteTemplate_8216548 +_0804F020: + mov r0, r8 + b _0804F0AC +_0804F024: + bl sub_80084A4 + b _0804F0AA +_0804F02A: + bl sub_8007ECC + lsls r0, 24 + cmp r0, 0 + beq _0804F0CE + bl sub_8007E24 + b _0804F0AA +_0804F03A: + mov r1, r8 + ldr r3, [r1] + adds r2, r3, 0 + adds r2, 0x56 + movs r1, 0 + movs r0, 0x80 + strh r0, [r2] + movs r2, 0x96 + lsls r2, 1 + adds r0, r3, r2 + str r1, [r0] + ldr r0, _0804F07C @ =sub_80501FC + bl SetMainCallback2 + bl GetCurrentMapMusic + lsls r0, 16 + lsrs r0, 16 + ldr r4, _0804F080 @ =0x00000193 + cmp r0, r4 + beq _0804F074 + bl GetCurrentMapMusic + mov r3, r8 + ldr r1, [r3] + movs r2, 0xBC + lsls r2, 1 + adds r1, r2 + strh r0, [r1] +_0804F074: + adds r0, r4, 0 + bl PlayBGM + b _0804F0CE + .align 2, 0 +_0804F07C: .4byte sub_80501FC +_0804F080: .4byte 0x00000193 +_0804F084: + movs r0, 0 + movs r1, 0xD + movs r2, 0x1D + movs r3, 0x13 + bl MenuDrawTextWindow + ldr r0, _0804F09C @ =gOtherText_LinkNotFound + movs r1, 0x1 + movs r2, 0xF + bl MenuPrintMessage + b _0804F0AA + .align 2, 0 +_0804F09C: .4byte gOtherText_LinkNotFound +_0804F0A0: + bl MenuUpdateWindowText + lsls r0, 24 + cmp r0, 0 + beq _0804F0CE +_0804F0AA: + ldr r0, _0804F0B8 @ =gUnknown_03004854 +_0804F0AC: + ldr r1, [r0] +_0804F0AE: + ldrb r0, [r1] + adds r0, 0x1 + strb r0, [r1] + b _0804F0CE + .align 2, 0 +_0804F0B8: .4byte gUnknown_03004854 +_0804F0BC: + ldr r0, _0804F0EC @ =gPaletteFade + ldrb r1, [r0, 0x7] + movs r0, 0x80 + ands r0, r1 + cmp r0, 0 + bne _0804F0CE + ldr r0, _0804F0F0 @ =c2_exit_to_overworld_1_continue_scripts_restart_music + bl SetMainCallback2 +_0804F0CE: + bl RunTasks + bl AnimateSprites + bl BuildOamBuffer + bl UpdatePaletteFade + add sp, 0x4 + pop {r3} + mov r8, r3 + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_0804F0EC: .4byte gPaletteFade +_0804F0F0: .4byte c2_exit_to_overworld_1_continue_scripts_restart_music + thumb_func_end sub_804E9F8 + + thumb_func_start sub_804F0F4 +sub_804F0F4: @ 804F0F4 + push {r4,lr} + movs r1, 0x80 + lsls r1, 19 + movs r0, 0 + strh r0, [r1] + bl ResetSpriteData + bl FreeAllSpritePalettes + bl ResetTasks + ldr r0, _0804F158 @ =sub_804E2BC + bl SetVBlankCallback + ldr r4, _0804F15C @ =gWindowConfig_81E6F68 + adds r0, r4, 0 + bl SetUpWindowConfig + adds r0, r4, 0 + bl InitMenuWindow + ldr r1, _0804F160 @ =gLinkType + ldr r2, _0804F164 @ =0x00004422 + adds r0, r2, 0 + strh r0, [r1] + ldr r0, _0804F168 @ =gUnknown_03004854 + ldr r2, [r0] + adds r0, r2, 0 + adds r0, 0x4E + movs r1, 0 + strh r1, [r0] + adds r0, 0x8 + strh r1, [r0] + subs r0, 0x2 + strh r1, [r0] + adds r0, 0x6 + strh r1, [r0] + movs r3, 0xA2 + lsls r3, 1 + adds r0, r2, r3 + strh r1, [r0] + adds r3, 0x2 + adds r0, r2, r3 + strh r1, [r0] + ldrb r0, [r2] + adds r0, 0x1 + strb r0, [r2] + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_0804F158: .4byte sub_804E2BC +_0804F15C: .4byte gWindowConfig_81E6F68 +_0804F160: .4byte gLinkType +_0804F164: .4byte 0x00004422 +_0804F168: .4byte gUnknown_03004854 + thumb_func_end sub_804F0F4 + + thumb_func_start task_tutorial_oak_boy_girl +task_tutorial_oak_boy_girl: @ 804F16C + push {lr} + lsls r0, 16 + lsls r1, 24 + lsrs r0, 24 + adds r2, r0, 0 + adds r2, 0x18 + ldr r0, _0804F1A8 @ =gUnknown_03004854 + ldr r0, [r0] + lsrs r1, 23 + adds r0, 0xA2 + adds r0, r1 + ldrb r0, [r0] + ldr r1, _0804F1AC @ =gUnknown_08216303 + adds r0, r1 + ldrb r1, [r0] + cmp r2, r1 + bcc _0804F1B4 + adds r0, r1, 0 + adds r0, 0x30 + cmp r2, r0 + bcs _0804F1B4 + subs r0, 0x1C + cmp r2, r0 + bcc _0804F1B0 + adds r0, 0x8 + cmp r2, r0 + bcs _0804F1B0 + movs r0, 0x2 + b _0804F1B6 + .align 2, 0 +_0804F1A8: .4byte gUnknown_03004854 +_0804F1AC: .4byte gUnknown_08216303 +_0804F1B0: + movs r0, 0x1 + b _0804F1B6 +_0804F1B4: + movs r0, 0 +_0804F1B6: + pop {r1} + bx r1 + thumb_func_end task_tutorial_oak_boy_girl + + thumb_func_start sub_804F1BC +sub_804F1BC: @ 804F1BC + push {r4-r7,lr} + lsls r0, 16 + lsrs r0, 16 + lsls r1, 24 + lsrs r1, 24 + movs r4, 0 + cmp r0, 0xAF + bne _0804F1EE + movs r3, 0 + subs r5, r1, 0x1 + adds r2, 0x9 +_0804F1D2: + adds r0, r2, r4 + adds r1, r2, r3 + ldrb r0, [r0] + ldrb r1, [r1] + cmp r0, r1 + bls _0804F1E0 + adds r4, r3, 0 +_0804F1E0: + adds r0, r3, 0x1 + lsls r0, 16 + lsrs r3, r0, 16 + cmp r3, 0x4 + bls _0804F1D2 + adds r0, r4, 0x5 + b _0804F204 +_0804F1EE: + subs r0, 0x85 + lsls r0, 16 + lsrs r4, r0, 16 + subs r5, r1, 0x1 + cmp r4, 0x4 + bls _0804F208 + adds r0, r4, 0 + movs r1, 0x5 + bl __umodsi3 + adds r0, 0x5 +_0804F204: + lsls r0, 16 + lsrs r4, r0, 16 +_0804F208: + movs r3, 0 + cmp r3, r5 + bge _0804F22E + ldr r7, _0804F234 @ =gUnknown_082165BC + lsls r0, r4, 1 + adds r6, r0, r4 +_0804F214: + adds r4, r3, 0x1 + lsls r0, r4, 24 + lsrs r0, 24 + adds r1, r3, r6 + adds r1, r7 + ldrb r1, [r1] + adds r1, 0x85 + bl sub_80516C4 + lsls r4, 16 + lsrs r3, r4, 16 + cmp r3, r5 + blt _0804F214 +_0804F22E: + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_0804F234: .4byte gUnknown_082165BC + thumb_func_end sub_804F1BC + + thumb_func_start sub_804F238 +sub_804F238: @ 804F238 + push {r4-r7,lr} + movs r4, 0 + ldr r7, _0804F2A0 @ =gUnknown_03004854 + movs r6, 0xFF + ldr r5, _0804F2A4 @ =gUnknown_082162EC +_0804F242: + ldr r3, [r7] + lsls r2, r4, 1 + adds r0, r3, 0 + adds r0, 0xA2 + adds r0, r2 + strh r6, [r0] + adds r1, r3, 0 + adds r1, 0x9A + adds r1, r2 + adds r0, r3, 0 + adds r0, 0x88 + ldrb r0, [r0] + subs r0, 0x2 + lsls r0, 2 + adds r0, r4, r0 + adds r0, r5 + ldrb r0, [r0] + strh r0, [r1] + adds r4, 0x1 + cmp r4, 0x3 + ble _0804F242 + movs r3, 0 + ldr r7, _0804F2A0 @ =gUnknown_03004854 +_0804F270: + movs r4, 0 + adds r6, r3, 0x1 + lsls r5, r3, 1 +_0804F276: + ldr r2, [r7] + lsls r0, r4, 1 + adds r1, r2, 0 + adds r1, 0x9A + adds r1, r0 + ldrh r0, [r1] + cmp r0, r3 + bne _0804F28E + adds r0, r2, 0 + adds r0, 0xA2 + adds r0, r5 + strh r4, [r0] +_0804F28E: + adds r4, 0x1 + cmp r4, 0x3 + ble _0804F276 + adds r3, r6, 0 + cmp r3, 0x3 + ble _0804F270 + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_0804F2A0: .4byte gUnknown_03004854 +_0804F2A4: .4byte gUnknown_082162EC + thumb_func_end sub_804F238 + + thumb_func_start BuyMenuDrawFieldObjects +BuyMenuDrawFieldObjects: @ 804F2A8 + push {r4-r7,lr} + mov r7, r8 + push {r7} + movs r6, 0 + ldr r7, _0804F360 @ =gUnknown_03004854 + ldr r0, _0804F364 @ =gUnknown_082162D4 + mov r8, r0 +_0804F2B6: + ldr r2, [r7] + lsls r4, r6, 1 + adds r0, r2, 0 + adds r0, 0x9A + adds r3, r0, r4 + ldrh r0, [r3] + cmp r0, 0xFF + beq _0804F34A + ldr r5, _0804F368 @ =gStringVar1 + adds r1, r2, 0 + adds r1, 0x5C + ldrh r3, [r3] + adds r1, r3 + adds r0, r2, 0 + adds r0, 0x60 + adds r0, r6 + ldrb r0, [r0] + strb r0, [r1] + ldr r0, [r7] + adds r1, r0, 0 + adds r1, 0x9A + adds r1, r4 + adds r0, 0x5C + ldrh r1, [r1] + adds r0, r1 + ldrb r1, [r0] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + ldr r1, _0804F36C @ =gSprites + adds r0, r1 + lsls r1, r6, 24 + lsrs r1, 24 + bl StartSpriteAnim + bl GetMultiplayerId + lsls r0, 24 + ldr r1, [r7] + adds r1, 0x9A + adds r1, r4 + lsrs r0, 24 + ldrh r1, [r1] + cmp r0, r1 + bne _0804F31A + adds r0, r5, 0 + ldr r1, _0804F370 @ =gUnknown_082162C4 + bl StringCopy + adds r5, r0, 0 +_0804F31A: + ldr r0, [r7] + adds r0, 0x9A + adds r0, r4 + ldrh r0, [r0] + lsls r1, r0, 3 + subs r1, r0 + lsls r1, 2 + ldr r0, _0804F374 @ =gLinkPlayers + 0x8 + adds r1, r0 + adds r0, r5, 0 + bl StringCopy + mov r0, r8 + ldrb r1, [r0] + lsls r1, 3 + adds r1, 0x1 + lsls r1, 24 + lsrs r1, 24 + ldrb r2, [r0, 0x1] + lsls r2, 3 + ldr r0, _0804F368 @ =gStringVar1 + movs r3, 0x1 + bl MenuPrint_PixelCoords +_0804F34A: + movs r0, 0x2 + add r8, r0 + adds r6, 0x1 + cmp r6, 0x3 + ble _0804F2B6 + pop {r3} + mov r8, r3 + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_0804F360: .4byte gUnknown_03004854 +_0804F364: .4byte gUnknown_082162D4 +_0804F368: .4byte gStringVar1 +_0804F36C: .4byte gSprites +_0804F370: .4byte gUnknown_082162C4 +_0804F374: .4byte gLinkPlayers + 0x8 + thumb_func_end BuyMenuDrawFieldObjects + + thumb_func_start sub_804F378 +sub_804F378: @ 804F378 + push {r4-r7,lr} + mov r7, r8 + push {r7} + sub sp, 0x4 + ldr r1, _0804F398 @ =gUnknown_03004854 + ldr r0, [r1] + ldrb r0, [r0] + mov r8, r1 + cmp r0, 0x15 + bls _0804F38E + b _0804F7E6 +_0804F38E: + lsls r0, 2 + ldr r1, _0804F39C @ =_0804F3A0 + adds r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_0804F398: .4byte gUnknown_03004854 +_0804F39C: .4byte _0804F3A0 + .align 2, 0 +_0804F3A0: + .4byte _0804F3F8 + .4byte _0804F474 + .4byte _0804F494 + .4byte _0804F4EC + .4byte _0804F518 + .4byte _0804F7E6 + .4byte _0804F7E6 + .4byte _0804F7E6 + .4byte _0804F54C + .4byte _0804F7E6 + .4byte _0804F7E6 + .4byte _0804F578 + .4byte _0804F5C8 + .4byte _0804F636 + .4byte _0804F650 + .4byte _0804F6F8 + .4byte _0804F720 + .4byte _0804F7E6 + .4byte _0804F73C + .4byte _0804F742 + .4byte _0804F748 + .4byte _0804F754 +_0804F3F8: + bl sub_804F0F4 + ldr r4, _0804F46C @ =gScriptItemId + ldrh r1, [r4] + movs r0, 0 + bl sub_80516C4 + ldr r5, _0804F470 @ =gUnknown_03004854 + ldr r0, [r5] + movs r6, 0xBE + lsls r6, 1 + adds r0, r6 + ldrh r1, [r4] + bl sub_804E844 + ldrh r0, [r4] + ldr r2, [r5] + adds r1, r2, 0 + adds r1, 0x88 + ldrb r1, [r1] + adds r2, r6 + bl sub_804F1BC + movs r4, 0 + movs r6, 0 + mov r8, r5 + movs r7, 0xA6 + lsls r7, 1 +_0804F430: + ldr r0, [r5] + lsls r1, r4, 1 + adds r0, 0x70 + adds r0, r1 + strh r6, [r0] + adds r3, r4, 0x1 + adds r1, r4 + lsls r1, 1 + movs r2, 0x2 +_0804F442: + ldr r0, [r5] + adds r0, r7 + adds r0, r1 + strh r6, [r0] + adds r1, 0x2 + subs r2, 0x1 + cmp r2, 0 + bge _0804F442 + adds r4, r3, 0 + cmp r4, 0x3 + ble _0804F430 + mov r0, r8 + ldr r3, [r0] + adds r1, r3, 0 + adds r1, 0x7C + movs r2, 0 + movs r0, 0 + strh r0, [r1] + strb r2, [r3, 0x1] + b _0804F7E6 + .align 2, 0 +_0804F46C: .4byte gScriptItemId +_0804F470: .4byte gUnknown_03004854 +_0804F474: + bl sub_804E2EC + lsls r0, 24 + cmp r0, 0 + bne _0804F480 + b _0804F7E6 +_0804F480: + ldr r0, _0804F490 @ =gUnknown_03004854 + ldr r1, [r0] + ldrb r0, [r1] + adds r0, 0x1 + strb r0, [r1] + bl sub_8051474 + b _0804F7E6 + .align 2, 0 +_0804F490: .4byte gUnknown_03004854 +_0804F494: + movs r4, 0 + ldr r5, _0804F4DC @ =gUnknown_082162E4 + ldr r6, _0804F4E0 @ =gUnknown_03004854 +_0804F49A: + ldrb r1, [r5] + ldrb r2, [r5, 0x1] + ldr r0, _0804F4E4 @ =gSpriteTemplate_82163F4 + movs r3, 0x1 + bl CreateSprite + ldr r1, [r6] + adds r1, 0x60 + adds r1, r4 + strb r0, [r1] + ldr r0, [r6] + adds r0, 0x60 + adds r0, r4 + ldrb r1, [r0] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + ldr r1, _0804F4E8 @ =gSprites + adds r0, r1 + adds r1, r4, 0 + adds r1, 0x8 + lsls r1, 24 + lsrs r1, 24 + bl StartSpriteAnim + adds r5, 0x2 + adds r4, 0x1 + cmp r4, 0x3 + ble _0804F49A + ldr r0, _0804F4E0 @ =gUnknown_03004854 + ldr r1, [r0] + b _0804F74C + .align 2, 0 +_0804F4DC: .4byte gUnknown_082162E4 +_0804F4E0: .4byte gUnknown_03004854 +_0804F4E4: .4byte gSpriteTemplate_82163F4 +_0804F4E8: .4byte gSprites +_0804F4EC: + movs r0, 0x1 + negs r0, r0 + movs r4, 0 + str r4, [sp] + movs r1, 0 + movs r2, 0x10 + movs r3, 0 + bl BeginNormalPaletteFade + ldr r2, _0804F514 @ =gUnknown_03004854 + ldr r1, [r2] + ldrb r0, [r1] + adds r0, 0x1 + strb r0, [r1] + ldr r0, [r2] + movs r1, 0x98 + lsls r1, 1 + adds r0, r1 + str r4, [r0] + b _0804F7E6 + .align 2, 0 +_0804F514: .4byte gUnknown_03004854 +_0804F518: + mov r2, r8 + ldr r1, [r2] + movs r3, 0x98 + lsls r3, 1 + adds r1, r3 + ldr r0, [r1] + adds r0, 0x1 + str r0, [r1] + cmp r0, 0x2 + bne _0804F530 + bl sub_804E4FC +_0804F530: + ldr r0, _0804F548 @ =gPaletteFade + ldrb r1, [r0, 0x7] + movs r0, 0x80 + ands r0, r1 + cmp r0, 0 + beq _0804F53E + b _0804F7E6 +_0804F53E: + mov r5, r8 + ldr r1, [r5] + movs r0, 0x8 + strb r0, [r1] + b _0804F7E6 + .align 2, 0 +_0804F548: .4byte gPaletteFade +_0804F54C: + mov r0, r8 + ldr r1, [r0] + movs r2, 0 + movs r0, 0xB + strb r0, [r1] + mov r1, r8 + ldr r0, [r1] + movs r3, 0x9E + lsls r3, 1 + adds r0, r3 + strb r2, [r0] + b _0804F7E6 +_0804F564: + lsls r1, 1 + adds r0, r3, 0 + adds r0, 0x80 + adds r0, r1 + ldrh r0, [r0] + lsls r1, r4, 24 + lsrs r1, 24 + bl sub_804E7C0 + b _0804F5A2 +_0804F578: + movs r4, 0 + ldr r2, _0804F5C0 @ =gUnknown_082162EC + ldr r0, _0804F5C4 @ =gUnknown_03004854 + ldr r3, [r0] + adds r0, r3, 0 + adds r0, 0x88 + ldrb r0, [r0] + subs r0, 0x2 + lsls r0, 2 + movs r5, 0x9E + lsls r5, 1 + adds r1, r3, r5 + ldrb r1, [r1] + adds r0, r2 +_0804F594: + ldrb r2, [r0] + cmp r1, r2 + beq _0804F564 + adds r0, 0x1 + adds r4, 0x1 + cmp r4, 0x3 + ble _0804F594 +_0804F5A2: + ldr r3, _0804F5C4 @ =gUnknown_03004854 + ldr r1, [r3] + movs r5, 0x98 + lsls r5, 1 + adds r2, r1, r5 + movs r0, 0 + str r0, [r2] + ldrb r0, [r1] + adds r0, 0x1 + strb r0, [r1] + ldr r1, [r3] + movs r0, 0x9E + lsls r0, 1 + adds r1, r0 + b _0804F74C + .align 2, 0 +_0804F5C0: .4byte gUnknown_082162EC +_0804F5C4: .4byte gUnknown_03004854 +_0804F5C8: + mov r1, r8 + ldr r3, [r1] + movs r2, 0x98 + lsls r2, 1 + adds r1, r3, r2 + ldr r0, [r1] + adds r0, 0x1 + str r0, [r1] + cmp r0, 0x3C + bgt _0804F5DE + b _0804F7E6 +_0804F5DE: + movs r5, 0x9E + lsls r5, 1 + adds r0, r3, r5 + adds r4, r3, 0 + adds r4, 0x88 + ldrb r0, [r0] + ldrb r1, [r4] + cmp r0, r1 + bcc _0804F620 + ldr r2, _0804F614 @ =gUnknown_082162F8 + ldr r1, _0804F618 @ =gUnknown_08216300 + ldrb r0, [r4] + subs r0, 0x2 + adds r0, r1 + ldrb r0, [r0] + lsls r0, 1 + adds r0, r2 + ldr r2, _0804F61C @ =0xffffa800 + adds r1, r2, 0 + ldrh r0, [r0] + adds r1, r0 + adds r0, r3, 0 + adds r0, 0x54 + strh r1, [r0] + ldrb r0, [r3] + adds r0, 0x1 + b _0804F624 + .align 2, 0 +_0804F614: .4byte gUnknown_082162F8 +_0804F618: .4byte gUnknown_08216300 +_0804F61C: .4byte 0xffffa800 +_0804F620: + ldrb r0, [r3] + subs r0, 0x1 +_0804F624: + strb r0, [r3] + mov r3, r8 + ldr r0, [r3] + movs r5, 0x98 + lsls r5, 1 + adds r0, r5 + movs r1, 0 + str r1, [r0] + b _0804F7E6 +_0804F636: + mov r1, r8 + ldr r0, [r1] + ldrb r1, [r0] + adds r1, 0x1 + strb r1, [r0] + bl sub_804F238 + movs r0, 0x2B + bl PlaySE + mov r2, r8 + ldr r0, [r2] + b _0804F710 +_0804F650: + movs r2, 0x80 + lsls r2, 19 + ldrh r0, [r2] + movs r5, 0x80 + lsls r5, 3 + adds r1, r5, 0 + orrs r0, r1 + strh r0, [r2] + mov r0, r8 + ldr r2, [r0] + adds r1, r2, 0 + adds r1, 0x54 + movs r3, 0x80 + lsls r3, 2 + adds r0, r3, 0 + ldrh r5, [r1] + adds r0, r5 + strh r0, [r1] + movs r0, 0xA1 + lsls r0, 1 + adds r1, r2, r0 + ldrh r0, [r1] + adds r0, 0x4 + strh r0, [r1] + lsls r0, 16 + lsrs r0, 16 + cmp r0, 0xFF + bls _0804F6D6 + ldrb r0, [r2] + adds r0, 0x1 + strb r0, [r2] + mov r1, r8 + ldr r3, [r1] + movs r2, 0xA1 + lsls r2, 1 + adds r1, r3, r2 + movs r0, 0x80 + lsls r0, 1 + strh r0, [r1] + ldr r2, _0804F6E8 @ =gUnknown_082162F8 + ldr r1, _0804F6EC @ =gUnknown_08216300 + adds r0, r3, 0 + adds r0, 0x88 + ldrb r0, [r0] + subs r0, 0x2 + adds r0, r1 + ldrb r0, [r0] + lsls r0, 1 + adds r0, r2 + ldrh r1, [r0] + adds r0, r3, 0 + adds r0, 0x54 + strh r1, [r0] + ldr r1, _0804F6F0 @ =REG_BG2CNT + ldr r5, _0804F6F4 @ =0x00004882 + adds r0, r5, 0 + strh r0, [r1] + movs r0, 0x98 + lsls r0, 1 + adds r1, r3, r0 + movs r0, 0 + str r0, [r1] + movs r0, 0x34 + bl PlaySE + bl BuyMenuDrawFieldObjects +_0804F6D6: + mov r1, r8 + ldr r0, [r1] + movs r2, 0xB4 + lsls r2, 1 + adds r0, r2 + bl sub_8051414 + b _0804F7E6 + .align 2, 0 +_0804F6E8: .4byte gUnknown_082162F8 +_0804F6EC: .4byte gUnknown_08216300 +_0804F6F0: .4byte REG_BG2CNT +_0804F6F4: .4byte 0x00004882 +_0804F6F8: + bl sub_8051B8C + lsls r0, 24 + cmp r0, 0 + beq _0804F70C + ldr r0, _0804F71C @ =gUnknown_03004854 + ldr r1, [r0] + ldrb r0, [r1] + adds r0, 0x1 + strb r0, [r1] +_0804F70C: + ldr r0, _0804F71C @ =gUnknown_03004854 + ldr r0, [r0] +_0804F710: + movs r3, 0xB4 + lsls r3, 1 + adds r0, r3 + bl sub_8051414 + b _0804F7E6 + .align 2, 0 +_0804F71C: .4byte gUnknown_03004854 +_0804F720: + ldr r0, _0804F734 @ =gSpriteTemplate_8216548 + movs r2, 0x10 + negs r2, r2 + movs r1, 0x78 + movs r3, 0x3 + bl CreateSprite + ldr r0, _0804F738 @ =gUnknown_03004854 + ldr r1, [r0] + b _0804F74C + .align 2, 0 +_0804F734: .4byte gSpriteTemplate_8216548 +_0804F738: .4byte gUnknown_03004854 +_0804F73C: + mov r5, r8 + ldr r1, [r5] + b _0804F74C +_0804F742: + mov r0, r8 + ldr r1, [r0] + b _0804F74C +_0804F748: + mov r2, r8 + ldr r1, [r2] +_0804F74C: + ldrb r0, [r1] + adds r0, 0x1 + strb r0, [r1] + b _0804F7E6 +_0804F754: + bl sub_804F81C + ldr r3, _0804F804 @ =gUnknown_03004854 + ldr r4, [r3] + adds r5, r4, 0 + adds r5, 0x56 + movs r2, 0 + movs r1, 0 + movs r0, 0x80 + strh r0, [r5] + movs r5, 0x96 + lsls r5, 1 + adds r0, r4, r5 + str r1, [r0] + ldr r1, _0804F808 @ =0x0000014b + adds r0, r4, r1 + strb r2, [r0] + ldr r0, [r3] + adds r0, 0x7E + strb r2, [r0] + ldr r0, _0804F80C @ =sub_80501FC + bl SetMainCallback2 + movs r4, 0 + ldr r0, _0804F810 @ =gSpecialVar_0x8004 + ldrh r0, [r0] + cmp r4, r0 + bge _0804F7B8 + movs r5, 0xA0 + lsls r5, 20 + ldr r6, _0804F814 @ =gUnknown_08216308 +_0804F792: + ldm r6!, {r0} + lsrs r1, r5, 24 + bl CreateTask + ldr r1, _0804F804 @ =gUnknown_03004854 + ldr r1, [r1] + movs r2, 0xA4 + lsls r2, 1 + adds r1, r2 + adds r1, r4 + strb r0, [r1] + movs r3, 0x80 + lsls r3, 17 + adds r5, r3 + adds r4, 0x1 + ldr r0, _0804F810 @ =gSpecialVar_0x8004 + ldrh r0, [r0] + cmp r4, r0 + blt _0804F792 +_0804F7B8: + bl GetCurrentMapMusic + lsls r0, 16 + lsrs r0, 16 + ldr r4, _0804F818 @ =0x00000193 + cmp r0, r4 + beq _0804F7D6 + bl GetCurrentMapMusic + ldr r1, _0804F804 @ =gUnknown_03004854 + ldr r1, [r1] + movs r5, 0xBC + lsls r5, 1 + adds r1, r5 + strh r0, [r1] +_0804F7D6: + adds r0, r4, 0 + bl PlayBGM + movs r0, 0x35 + bl PlaySE + bl sub_804E290 +_0804F7E6: + bl RunTasks + bl AnimateSprites + bl BuildOamBuffer + bl UpdatePaletteFade + add sp, 0x4 + pop {r3} + mov r8, r3 + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_0804F804: .4byte gUnknown_03004854 +_0804F808: .4byte 0x0000014b +_0804F80C: .4byte sub_80501FC +_0804F810: .4byte gSpecialVar_0x8004 +_0804F814: .4byte gUnknown_08216308 +_0804F818: .4byte 0x00000193 + thumb_func_end sub_804F378 + + thumb_func_start sub_804F81C +sub_804F81C: @ 804F81C + push {lr} + ldr r3, _0804F83C @ =gSendCmd + movs r0, 0 + ldr r1, _0804F840 @ =gRecvCmds + movs r2, 0x3 +_0804F826: + strh r0, [r3] + strh r0, [r3, 0x4] + strh r0, [r1] + strh r0, [r1, 0x10] + adds r1, 0x2 + subs r2, 0x1 + cmp r2, 0 + bge _0804F826 + pop {r0} + bx r0 + .align 2, 0 +_0804F83C: .4byte gSendCmd +_0804F840: .4byte gRecvCmds + thumb_func_end sub_804F81C + + thumb_func_start sub_804F844 +sub_804F844: @ 804F844 + push {r4,lr} + lsls r0, 24 + lsrs r3, r0, 24 + ldr r1, _0804F884 @ =gTasks + lsls r0, r3, 2 + adds r0, r3 + lsls r0, 3 + adds r2, r0, r1 + ldrh r0, [r2, 0x8] + adds r0, 0x1 + strh r0, [r2, 0x8] + lsls r0, 16 + asrs r0, 16 + movs r4, 0xA + ldrsh r1, [r2, r4] + cmp r0, r1 + ble _0804F87C + ldr r0, _0804F888 @ =gRecvCmds + movs r4, 0xC + ldrsh r1, [r2, r4] + lsls r1, 1 + adds r0, 0x10 + adds r1, r0 + ldr r0, _0804F88C @ =0x00002345 + strh r0, [r1] + adds r0, r3, 0 + bl DestroyTask +_0804F87C: + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_0804F884: .4byte gTasks +_0804F888: .4byte gRecvCmds +_0804F88C: .4byte 0x00002345 + thumb_func_end sub_804F844 + + thumb_func_start sub_804F890 +sub_804F890: @ 804F890 + push {r4,r5,lr} + adds r5, r0, 0 + adds r4, r1, 0 + lsls r5, 24 + lsrs r5, 24 + lsls r4, 24 + lsrs r4, 24 + ldr r0, _0804F8C0 @ =sub_804F844 + movs r1, 0x50 + bl CreateTask + lsls r0, 24 + lsrs r0, 24 + ldr r2, _0804F8C4 @ =gTasks + lsls r1, r0, 2 + adds r1, r0 + lsls r1, 3 + adds r1, r2 + strh r4, [r1, 0xA] + strh r5, [r1, 0xC] + pop {r4,r5} + pop {r0} + bx r0 + .align 2, 0 +_0804F8C0: .4byte sub_804F844 +_0804F8C4: .4byte gTasks + thumb_func_end sub_804F890 + + thumb_func_start sub_804F8C8 +sub_804F8C8: @ 804F8C8 + push {r4-r6,lr} + lsls r0, 24 + lsrs r5, r0, 24 + ldr r4, _0804F934 @ =gUnknown_03004854 + ldr r0, [r4] + adds r0, 0x54 + ldrh r0, [r0] + movs r1, 0x1 + bl task_tutorial_oak_boy_girl + lsls r0, 24 + lsrs r0, 24 + cmp r0, 0x2 + beq _0804F8E6 + b _0804F9DC +_0804F8E6: + ldr r2, _0804F938 @ =gTasks + lsls r1, r5, 2 + adds r0, r1, r5 + lsls r0, 3 + adds r0, r2 + movs r2, 0x8 + ldrsh r0, [r0, r2] + adds r6, r1, 0 + cmp r0, 0 + beq _0804F8FC + b _0804F9EA +_0804F8FC: + ldr r0, [r4] + ldr r1, _0804F93C @ =0x0000014b + adds r0, r1 + ldrb r0, [r0] + cmp r0, 0 + bne _0804F9BE + bl Random + lsls r0, 16 + lsrs r0, 16 + ldr r1, _0804F940 @ =0x0000028f + bl __udivsi3 + lsls r0, 24 + lsrs r1, r0, 24 + adds r3, r1, 0 + ldr r0, [r4] + adds r0, 0x56 + movs r4, 0 + ldrsh r2, [r0, r4] + ldr r0, _0804F944 @ =0x000001f3 + cmp r2, r0 + bgt _0804F964 + cmp r1, 0x4B + bls _0804F950 + ldr r1, _0804F948 @ =gRecvCmds + ldr r0, _0804F94C @ =0x00004523 + b _0804F954 + .align 2, 0 +_0804F934: .4byte gUnknown_03004854 +_0804F938: .4byte gTasks +_0804F93C: .4byte 0x0000014b +_0804F940: .4byte 0x0000028f +_0804F944: .4byte 0x000001f3 +_0804F948: .4byte gRecvCmds +_0804F94C: .4byte 0x00004523 +_0804F950: + ldr r1, _0804F95C @ =gRecvCmds + ldr r0, _0804F960 @ =0x00005432 +_0804F954: + strh r0, [r1, 0x12] + ldr r0, _0804F960 @ =0x00005432 + b _0804F9C2 + .align 2, 0 +_0804F95C: .4byte gRecvCmds +_0804F960: .4byte 0x00005432 +_0804F964: + ldr r0, _0804F980 @ =0x000005db + cmp r2, r0 + bgt _0804F992 + cmp r1, 0x50 + bhi _0804F9BE + adds r0, r1, 0 + subs r0, 0x15 + lsls r0, 24 + lsrs r0, 24 + cmp r0, 0x3B + bhi _0804F98C + ldr r1, _0804F984 @ =gRecvCmds + ldr r0, _0804F988 @ =0x00005432 + b _0804F9C2 + .align 2, 0 +_0804F980: .4byte 0x000005db +_0804F984: .4byte gRecvCmds +_0804F988: .4byte 0x00005432 +_0804F98C: + cmp r1, 0x9 + bhi _0804F9C4 + b _0804F9B4 +_0804F992: + cmp r1, 0x5A + bhi _0804F9BE + adds r0, r1, 0 + subs r0, 0x47 + lsls r0, 24 + lsrs r0, 24 + cmp r0, 0x13 + bhi _0804F9B0 + ldr r1, _0804F9A8 @ =gRecvCmds + ldr r0, _0804F9AC @ =0x00005432 + b _0804F9C2 + .align 2, 0 +_0804F9A8: .4byte gRecvCmds +_0804F9AC: .4byte 0x00005432 +_0804F9B0: + cmp r3, 0x1D + bhi _0804F9C4 +_0804F9B4: + movs r0, 0x1 + movs r1, 0x5 + bl sub_804F890 + b _0804F9C4 +_0804F9BE: + ldr r1, _0804F9D0 @ =gRecvCmds + ldr r0, _0804F9D4 @ =0x00004523 +_0804F9C2: + strh r0, [r1, 0x12] +_0804F9C4: + ldr r0, _0804F9D8 @ =gTasks + adds r1, r6, r5 + lsls r1, 3 + adds r1, r0 + movs r0, 0x1 + b _0804F9E8 + .align 2, 0 +_0804F9D0: .4byte gRecvCmds +_0804F9D4: .4byte 0x00004523 +_0804F9D8: .4byte gTasks +_0804F9DC: + ldr r0, _0804F9F0 @ =gTasks + lsls r1, r5, 2 + adds r1, r5 + lsls r1, 3 + adds r1, r0 + movs r0, 0 +_0804F9E8: + strh r0, [r1, 0x8] +_0804F9EA: + pop {r4-r6} + pop {r0} + bx r0 + .align 2, 0 +_0804F9F0: .4byte gTasks + thumb_func_end sub_804F8C8 + + thumb_func_start sub_804F9F4 +sub_804F9F4: @ 804F9F4 + push {r4-r6,lr} + lsls r0, 24 + lsrs r4, r0, 24 + ldr r6, _0804FA78 @ =gUnknown_03004854 + ldr r3, [r6] + adds r0, r3, 0 + adds r0, 0x54 + ldrh r0, [r0] + movs r1, 0xC0 + lsls r1, 5 + adds r0, r1 + ldr r1, _0804FA7C @ =0x0000ffff + ands r0, r1 + adds r1, r3, 0 + adds r1, 0xA6 + ldrb r1, [r1] + lsrs r2, r0, 8 + ldr r0, _0804FA80 @ =gUnknown_08216303 + adds r1, r0 + ldrb r1, [r1] + adds r0, r1, 0 + adds r0, 0x14 + cmp r2, r0 + bls _0804FB04 + adds r0, 0x14 + cmp r2, r0 + bcs _0804FB04 + ldr r2, _0804FA84 @ =gTasks + lsls r1, r4, 2 + adds r0, r1, r4 + lsls r0, 3 + adds r2, r0, r2 + movs r5, 0x8 + ldrsh r0, [r2, r5] + adds r5, r1, 0 + cmp r0, 0 + bne _0804FB12 + ldr r1, _0804FA88 @ =0x0000014b + adds r0, r3, r1 + ldrb r0, [r0] + cmp r0, 0 + bne _0804FAF0 + bl Random + lsls r0, 16 + lsrs r0, 16 + ldr r1, _0804FA8C @ =0x0000028f + bl __udivsi3 + lsls r0, 24 + lsrs r2, r0, 24 + adds r3, r2, 0 + ldr r0, [r6] + adds r0, 0x56 + movs r6, 0 + ldrsh r1, [r0, r6] + ldr r0, _0804FA90 @ =0x000001f3 + cmp r1, r0 + bgt _0804FAAC + cmp r2, 0x42 + bls _0804FA9C + ldr r1, _0804FA94 @ =gRecvCmds + ldr r0, _0804FA98 @ =0x00004523 + strh r0, [r1, 0x14] + b _0804FAD4 + .align 2, 0 +_0804FA78: .4byte gUnknown_03004854 +_0804FA7C: .4byte 0x0000ffff +_0804FA80: .4byte gUnknown_08216303 +_0804FA84: .4byte gTasks +_0804FA88: .4byte 0x0000014b +_0804FA8C: .4byte 0x0000028f +_0804FA90: .4byte 0x000001f3 +_0804FA94: .4byte gRecvCmds +_0804FA98: .4byte 0x00004523 +_0804FA9C: + ldr r1, _0804FAA4 @ =gRecvCmds + ldr r0, _0804FAA8 @ =0x00005432 + strh r0, [r1, 0x14] + b _0804FAD4 + .align 2, 0 +_0804FAA4: .4byte gRecvCmds +_0804FAA8: .4byte 0x00005432 +_0804FAAC: + cmp r2, 0x41 + bls _0804FAB6 + ldr r1, _0804FAE0 @ =gRecvCmds + ldr r0, _0804FAE4 @ =0x00004523 + strh r0, [r1, 0x14] +_0804FAB6: + adds r0, r2, 0 + subs r0, 0x29 + lsls r0, 24 + lsrs r0, 24 + cmp r0, 0x18 + bhi _0804FAC8 + ldr r1, _0804FAE0 @ =gRecvCmds + ldr r0, _0804FAE8 @ =0x00005432 + strh r0, [r1, 0x14] +_0804FAC8: + cmp r3, 0x9 + bhi _0804FAD4 + movs r0, 0x2 + movs r1, 0x5 + bl sub_804F890 +_0804FAD4: + ldr r0, _0804FAEC @ =gTasks + adds r1, r5, r4 + lsls r1, 3 + adds r1, r0 + movs r0, 0x1 + b _0804FB10 + .align 2, 0 +_0804FAE0: .4byte gRecvCmds +_0804FAE4: .4byte 0x00004523 +_0804FAE8: .4byte 0x00005432 +_0804FAEC: .4byte gTasks +_0804FAF0: + ldr r0, _0804FAFC @ =gRecvCmds + ldr r1, _0804FB00 @ =0x00004523 + strh r1, [r0, 0x14] + movs r0, 0x1 + strh r0, [r2, 0x8] + b _0804FB12 + .align 2, 0 +_0804FAFC: .4byte gRecvCmds +_0804FB00: .4byte 0x00004523 +_0804FB04: + ldr r0, _0804FB18 @ =gTasks + lsls r1, r4, 2 + adds r1, r4 + lsls r1, 3 + adds r1, r0 + movs r0, 0 +_0804FB10: + strh r0, [r1, 0x8] +_0804FB12: + pop {r4-r6} + pop {r0} + bx r0 + .align 2, 0 +_0804FB18: .4byte gTasks + thumb_func_end sub_804F9F4 + + thumb_func_start sub_804FB1C +sub_804FB1C: @ 804FB1C + push {r4-r6,lr} + lsls r0, 24 + lsrs r4, r0, 24 + ldr r5, _0804FB9C @ =gUnknown_03004854 + ldr r3, [r5] + adds r0, r3, 0 + adds r0, 0x54 + ldrh r0, [r0] + movs r1, 0xC0 + lsls r1, 5 + adds r0, r1 + ldr r1, _0804FBA0 @ =0x0000ffff + ands r0, r1 + adds r1, r3, 0 + adds r1, 0xA8 + ldrb r1, [r1] + lsrs r2, r0, 8 + ldr r0, _0804FBA4 @ =gUnknown_08216303 + adds r1, r0 + ldrb r1, [r1] + adds r0, r1, 0 + adds r0, 0x14 + cmp r2, r0 + bls _0804FC30 + adds r0, 0x14 + cmp r2, r0 + bcs _0804FC30 + ldr r2, _0804FBA8 @ =gTasks + lsls r1, r4, 2 + adds r0, r1, r4 + lsls r0, 3 + adds r2, r0, r2 + movs r6, 0x8 + ldrsh r0, [r2, r6] + adds r6, r1, 0 + cmp r0, 0 + bne _0804FC3E + ldr r1, _0804FBAC @ =0x0000014b + adds r0, r3, r1 + ldrb r0, [r0] + cmp r0, 0 + bne _0804FC1C + bl Random + lsls r0, 16 + lsrs r0, 16 + ldr r1, _0804FBB0 @ =0x0000028f + bl __udivsi3 + lsls r0, 24 + lsrs r2, r0, 24 + ldr r0, [r5] + adds r0, 0x56 + movs r3, 0 + ldrsh r1, [r0, r3] + ldr r0, _0804FBB4 @ =0x000001f3 + cmp r1, r0 + bgt _0804FBD0 + cmp r2, 0x58 + bls _0804FBC0 + ldr r1, _0804FBB8 @ =gRecvCmds + ldr r0, _0804FBBC @ =0x00004523 + strh r0, [r1, 0x16] + b _0804FC02 + .align 2, 0 +_0804FB9C: .4byte gUnknown_03004854 +_0804FBA0: .4byte 0x0000ffff +_0804FBA4: .4byte gUnknown_08216303 +_0804FBA8: .4byte gTasks +_0804FBAC: .4byte 0x0000014b +_0804FBB0: .4byte 0x0000028f +_0804FBB4: .4byte 0x000001f3 +_0804FBB8: .4byte gRecvCmds +_0804FBBC: .4byte 0x00004523 +_0804FBC0: + ldr r1, _0804FBC8 @ =gRecvCmds + ldr r0, _0804FBCC @ =0x00005432 + strh r0, [r1, 0x16] + b _0804FC02 + .align 2, 0 +_0804FBC8: .4byte gRecvCmds +_0804FBCC: .4byte 0x00005432 +_0804FBD0: + cmp r2, 0x3C + bls _0804FBE4 + ldr r1, _0804FBDC @ =gRecvCmds + ldr r0, _0804FBE0 @ =0x00004523 + b _0804FBF4 + .align 2, 0 +_0804FBDC: .4byte gRecvCmds +_0804FBE0: .4byte 0x00004523 +_0804FBE4: + adds r0, r2, 0 + subs r0, 0x38 + lsls r0, 24 + lsrs r0, 24 + cmp r0, 0x4 + bhi _0804FBF6 + ldr r1, _0804FC10 @ =gRecvCmds + ldr r0, _0804FC14 @ =0x00005432 +_0804FBF4: + strh r0, [r1, 0x16] +_0804FBF6: + cmp r2, 0x4 + bhi _0804FC02 + movs r0, 0x3 + movs r1, 0x5 + bl sub_804F890 +_0804FC02: + ldr r0, _0804FC18 @ =gTasks + adds r1, r6, r4 + lsls r1, 3 + adds r1, r0 + movs r0, 0x1 + b _0804FC3C + .align 2, 0 +_0804FC10: .4byte gRecvCmds +_0804FC14: .4byte 0x00005432 +_0804FC18: .4byte gTasks +_0804FC1C: + ldr r0, _0804FC28 @ =gRecvCmds + ldr r1, _0804FC2C @ =0x00004523 + strh r1, [r0, 0x16] + movs r0, 0x1 + strh r0, [r2, 0x8] + b _0804FC3E + .align 2, 0 +_0804FC28: .4byte gRecvCmds +_0804FC2C: .4byte 0x00004523 +_0804FC30: + ldr r0, _0804FC44 @ =gTasks + lsls r1, r4, 2 + adds r1, r4 + lsls r1, 3 + adds r1, r0 + movs r0, 0 +_0804FC3C: + strh r0, [r1, 0x8] +_0804FC3E: + pop {r4-r6} + pop {r0} + bx r0 + .align 2, 0 +_0804FC44: .4byte gTasks + thumb_func_end sub_804FB1C + + thumb_func_start sub_804FC48 +sub_804FC48: @ 804FC48 + push {r4-r7,lr} + mov r7, r8 + push {r7} + lsls r0, 16 + lsrs r7, r0, 16 + mov r8, r7 + lsls r1, 24 + ldr r0, _0804FCBC @ =gSpriteTemplate_821645C + ldr r4, _0804FCC0 @ =gUnknown_082162E4 + lsrs r1, 23 + adds r2, r1, r4 + ldrb r6, [r2] + ldr r5, _0804FCC4 @ =gUnknown_082162CC + adds r2, r1, r5 + movs r3, 0 + ldrsb r3, [r2, r3] + lsls r2, r3, 2 + adds r2, r3 + lsls r2, 1 + subs r6, r2 + adds r4, 0x1 + adds r4, r1, r4 + ldrb r2, [r4] + adds r5, 0x1 + adds r1, r5 + movs r3, 0 + ldrsb r3, [r1, r3] + lsls r1, r3, 2 + adds r1, r3 + lsls r1, 1 + subs r2, r1 + adds r1, r6, 0 + movs r3, 0x1 + bl CreateSprite + lsls r0, 24 + lsrs r1, r0, 24 + adds r2, r1, 0 + ldr r0, _0804FCC8 @ =0x00004523 + cmp r7, r0 + bne _0804FCD4 + lsls r4, r1, 4 + adds r4, r1 + lsls r4, 2 + ldr r5, _0804FCCC @ =gSprites + adds r0, r4, r5 + movs r1, 0x2 + bl StartSpriteAnim + adds r5, 0x1C + adds r4, r5 + ldr r0, _0804FCD0 @ =sub_8051684 + str r0, [r4] + movs r0, 0x28 + bl PlaySE + b _0804FD18 + .align 2, 0 +_0804FCBC: .4byte gSpriteTemplate_821645C +_0804FCC0: .4byte gUnknown_082162E4 +_0804FCC4: .4byte gUnknown_082162CC +_0804FCC8: .4byte 0x00004523 +_0804FCCC: .4byte gSprites +_0804FCD0: .4byte sub_8051684 +_0804FCD4: + ldr r0, _0804FCF4 @ =0x00005432 + cmp r7, r0 + bne _0804FCFC + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + ldr r1, _0804FCF8 @ =gSprites + adds r0, r1 + movs r1, 0 + bl StartSpriteAnim + movs r0, 0x1F + bl PlaySE + b _0804FD18 + .align 2, 0 +_0804FCF4: .4byte 0x00005432 +_0804FCF8: .4byte gSprites +_0804FCFC: + ldr r0, _0804FD28 @ =0x00002345 + cmp r8, r0 + bne _0804FD18 + lsls r0, r2, 4 + adds r0, r2 + lsls r0, 2 + ldr r1, _0804FD2C @ =gSprites + adds r0, r1 + movs r1, 0x1 + bl StartSpriteAnim + movs r0, 0x20 + bl PlaySE +_0804FD18: + bl sub_805156C + pop {r3} + mov r8, r3 + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_0804FD28: .4byte 0x00002345 +_0804FD2C: .4byte gSprites + thumb_func_end sub_804FC48 + + thumb_func_start sub_804FD30 +sub_804FD30: @ 804FD30 + push {r4-r7,lr} + lsls r0, 16 + lsrs r4, r0, 16 + adds r5, r4, 0 + bl sub_804E290 + ldr r0, _0804FD50 @ =0x00004523 + cmp r4, r0 + beq _0804FD64 + cmp r4, r0 + bgt _0804FD58 + ldr r0, _0804FD54 @ =0x00002345 + cmp r4, r0 + beq _0804FE34 + b _0804FE60 + .align 2, 0 +_0804FD50: .4byte 0x00004523 +_0804FD54: .4byte 0x00002345 +_0804FD58: + ldr r0, _0804FD60 @ =0x00005432 + cmp r5, r0 + beq _0804FDFC + b _0804FE60 + .align 2, 0 +_0804FD60: .4byte 0x00005432 +_0804FD64: + ldr r7, _0804FD94 @ =gUnknown_03004854 + ldr r4, [r7] + adds r5, r4, 0 + adds r5, 0x56 + ldrh r6, [r5] + movs r0, 0 + ldrsh r1, [r5, r0] + ldr r0, _0804FD98 @ =0x000005db + cmp r1, r0 + bgt _0804FDA0 + ldr r1, _0804FD9C @ =gUnknown_082165DA + adds r0, r4, 0 + adds r0, 0x88 + ldrb r0, [r0] + adds r0, r1 + ldrb r1, [r0] + movs r0, 0xC0 + lsls r0, 1 + bl __divsi3 + adds r0, r6, r0 + strh r0, [r5] + b _0804FE60 + .align 2, 0 +_0804FD94: .4byte gUnknown_03004854 +_0804FD98: .4byte 0x000005db +_0804FD9C: .4byte gUnknown_082165DA +_0804FDA0: + ldr r1, _0804FDF8 @ =gUnknown_082165DA + adds r0, r4, 0 + adds r0, 0x88 + ldrb r0, [r0] + adds r0, r1 + ldrb r1, [r0] + movs r0, 0x80 + bl __divsi3 + adds r0, r6, r0 + strh r0, [r5] + movs r1, 0xA2 + lsls r1, 1 + adds r4, r1 + movs r1, 0 + ldrsh r0, [r5, r1] + movs r1, 0x64 + bl __divsi3 + adds r1, r0, 0 + subs r1, 0xA + lsls r1, 16 + lsrs r1, 16 + adds r0, r4, 0 + bl sub_8051AC8 + ldr r0, [r7] + movs r1, 0xA3 + lsls r1, 1 + adds r4, r0, r1 + adds r0, 0x56 + movs r1, 0 + ldrsh r0, [r0, r1] + movs r1, 0x64 + bl __divsi3 + adds r1, r0, 0 + subs r1, 0xA + lsls r1, 16 + lsrs r1, 16 + adds r0, r4, 0 + bl sub_8051AC8 + b _0804FE60 + .align 2, 0 +_0804FDF8: .4byte gUnknown_082165DA +_0804FDFC: + ldr r0, _0804FE28 @ =gUnknown_03004854 + ldr r2, [r0] + adds r4, r2, 0 + adds r4, 0x56 + ldrh r5, [r4] + movs r0, 0 + ldrsh r1, [r4, r0] + ldr r0, _0804FE2C @ =0x000005db + cmp r1, r0 + bgt _0804FE60 + ldr r1, _0804FE30 @ =gUnknown_082165DA + adds r0, r2, 0 + adds r0, 0x88 + ldrb r0, [r0] + adds r0, r1 + ldrb r1, [r0] + movs r0, 0x80 + lsls r0, 1 + bl __divsi3 + adds r0, r5, r0 + b _0804FE5E + .align 2, 0 +_0804FE28: .4byte gUnknown_03004854 +_0804FE2C: .4byte 0x000005db +_0804FE30: .4byte gUnknown_082165DA +_0804FE34: + ldr r0, _0804FE68 @ =gUnknown_03004854 + ldr r0, [r0] + adds r4, r0, 0 + adds r4, 0x56 + ldr r1, _0804FE6C @ =gUnknown_082165DA + adds r0, 0x88 + ldrb r0, [r0] + adds r0, r1 + ldrb r1, [r0] + movs r0, 0x80 + lsls r0, 1 + bl __divsi3 + ldrh r1, [r4] + subs r1, r0 + strh r1, [r4] + lsls r1, 16 + asrs r1, 16 + cmp r1, 0x7F + bgt _0804FE60 + movs r0, 0x80 +_0804FE5E: + strh r0, [r4] +_0804FE60: + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_0804FE68: .4byte gUnknown_03004854 +_0804FE6C: .4byte gUnknown_082165DA + thumb_func_end sub_804FD30 + + thumb_func_start sub_804FE70 +sub_804FE70: @ 804FE70 + push {r4-r7,lr} + mov r7, r10 + mov r6, r9 + mov r5, r8 + push {r5-r7} + sub sp, 0x4 + ldr r0, _0804FF40 @ =gSpecialVar_0x8004 + ldrh r0, [r0] + cmp r0, 0 + beq _0804FEB6 + ldr r3, _0804FF44 @ =gSendCmd + ldrh r0, [r3, 0x4] + ldr r2, _0804FF48 @ =gRecvCmds + cmp r0, 0 + beq _0804FE98 + movs r1, 0 + strh r0, [r2, 0x10] + ldr r0, _0804FF4C @ =0x00004444 + strh r0, [r2] + strh r1, [r3, 0x4] +_0804FE98: + ldr r0, _0804FF48 @ =gRecvCmds + ldr r3, _0804FF4C @ =0x00004444 + adds r1, r2, 0x2 + adds r2, r0, 0 + adds r2, 0x12 + movs r6, 0x2 +_0804FEA4: + ldrh r0, [r2] + cmp r0, 0 + beq _0804FEAC + strh r3, [r1] +_0804FEAC: + adds r1, 0x2 + adds r2, 0x2 + subs r6, 0x1 + cmp r6, 0 + bge _0804FEA4 +_0804FEB6: + movs r6, 0 + ldr r7, _0804FF50 @ =gUnknown_03004854 + adds r1, r7, 0 + ldr r0, [r1] + adds r0, 0x88 + ldrb r0, [r0] + cmp r6, r0 + blt _0804FEC8 + b _0805005C +_0804FEC8: + movs r2, 0 + str r2, [sp] + mov r9, r2 + ldr r0, _0804FF48 @ =gRecvCmds + adds r0, 0x10 + mov r8, r0 + ldr r1, _0804FF54 @ =0x00005432 + mov r10, r1 +_0804FED8: + ldr r2, [sp] + ldr r1, _0804FF48 @ =gRecvCmds + adds r0, r2, r1 + ldrh r1, [r0] + ldr r0, _0804FF4C @ =0x00004444 + cmp r1, r0 + beq _0804FEE8 + b _0805003E +_0804FEE8: + ldr r0, [r7] + adds r0, 0xA2 + adds r0, r2 + ldrh r5, [r0] + mov r2, r8 + ldrh r4, [r2] + ldr r0, _0804FF58 @ =0x00004523 + cmp r4, r0 + bne _0804FF60 + bl sub_804FD30 + ldr r0, [r7] + movs r1, 0x9F + lsls r1, 1 + adds r4, r0, r1 + adds r0, 0x56 + movs r2, 0 + ldrsh r0, [r0, r2] + movs r1, 0x37 + bl __divsi3 + ldrh r1, [r4] + adds r1, r0 + strh r1, [r4] + lsls r1, 16 + ldr r0, _0804FF5C @ =0x03e70000 + cmp r1, r0 + bls _0804FF26 + movs r0, 0xFA + lsls r0, 2 + strh r0, [r4] +_0804FF26: + lsls r1, r5, 24 + lsrs r1, 24 + ldr r0, _0804FF58 @ =0x00004523 + bl sub_804FC48 + ldr r1, [r7] + movs r0, 0xA6 + lsls r0, 1 + adds r1, r0 + add r1, r9 + ldrh r0, [r1] + adds r0, 0x1 + b _0804FFCA + .align 2, 0 +_0804FF40: .4byte gSpecialVar_0x8004 +_0804FF44: .4byte gSendCmd +_0804FF48: .4byte gRecvCmds +_0804FF4C: .4byte 0x00004444 +_0804FF50: .4byte gUnknown_03004854 +_0804FF54: .4byte 0x00005432 +_0804FF58: .4byte 0x00004523 +_0804FF5C: .4byte 0x03e70000 +_0804FF60: + cmp r4, r10 + bne _0804FF9E + mov r0, r10 + bl sub_804FD30 + ldr r0, [r7] + movs r1, 0x9F + lsls r1, 1 + adds r4, r0, r1 + adds r0, 0x56 + movs r2, 0 + ldrsh r0, [r0, r2] + movs r1, 0x46 + bl __divsi3 + ldrh r1, [r4] + adds r1, r0 + strh r1, [r4] + lsls r1, r5, 24 + lsrs r1, 24 + mov r0, r10 + bl sub_804FC48 + ldr r1, [r7] + movs r0, 0xA7 + lsls r0, 1 + adds r1, r0 + add r1, r9 + ldrh r0, [r1] + adds r0, 0x1 + b _0804FFCA +_0804FF9E: + ldr r0, _08050018 @ =0x00002345 + cmp r4, r0 + bne _0804FFD6 + lsls r1, r5, 24 + lsrs r1, 24 + adds r0, r4, 0 + bl sub_804FC48 + adds r0, r4, 0 + bl sub_804FD30 + ldr r0, [r7] + movs r1, 0xA8 + lsls r1, 1 + adds r0, r1 + mov r2, r9 + adds r1, r0, r2 + ldrh r2, [r1] + ldr r0, _0805001C @ =0x000003e6 + cmp r2, r0 + bhi _0804FFCC + adds r0, r2, 0x1 +_0804FFCA: + strh r0, [r1] +_0804FFCC: + mov r0, r8 + ldrh r1, [r0] + ldr r0, _08050018 @ =0x00002345 + cmp r1, r0 + beq _0804FFE4 +_0804FFD6: + mov r1, r8 + ldrh r0, [r1] + ldr r2, _08050020 @ =0x00004523 + cmp r0, r2 + beq _0804FFE4 + cmp r0, r10 + bne _0805003E +_0804FFE4: + ldr r0, _08050024 @ =gUnknown_03004854 + ldr r0, [r0] + adds r2, r0, 0 + adds r2, 0x56 + movs r0, 0 + ldrsh r1, [r2, r0] + ldr r0, _08050028 @ =0x000005dc + cmp r1, r0 + ble _08050034 + adds r0, r1, 0 + ldr r2, _0805002C @ =0xfffffd12 + adds r0, r2 + movs r1, 0x14 + bl __divsi3 + adds r1, r0, 0 + movs r0, 0x80 + lsls r0, 1 + adds r1, r0 + lsls r1, 16 + lsrs r1, 16 + ldr r0, _08050030 @ =gMPlay_BGM + bl m4aMPlayTempoControl + b _0805003E + .align 2, 0 +_08050018: .4byte 0x00002345 +_0805001C: .4byte 0x000003e6 +_08050020: .4byte 0x00004523 +_08050024: .4byte gUnknown_03004854 +_08050028: .4byte 0x000005dc +_0805002C: .4byte 0xfffffd12 +_08050030: .4byte gMPlay_BGM +_08050034: + ldr r0, _08050098 @ =gMPlay_BGM + movs r1, 0x80 + lsls r1, 1 + bl m4aMPlayTempoControl +_0805003E: + ldr r1, [sp] + adds r1, 0x2 + str r1, [sp] + movs r2, 0x6 + add r9, r2 + movs r0, 0x2 + add r8, r0 + adds r6, 0x1 + ldr r7, _0805009C @ =gUnknown_03004854 + ldr r0, [r7] + adds r0, 0x88 + ldrb r0, [r0] + cmp r6, r0 + bge _0805005C + b _0804FED8 +_0805005C: + ldr r0, _080500A0 @ =gSpecialVar_0x8004 + ldrh r0, [r0] + cmp r0, 0 + beq _08050088 + movs r6, 0 + ldr r3, _0805009C @ =gUnknown_03004854 + ldr r0, [r3] + adds r0, 0x88 + ldrb r0, [r0] + cmp r6, r0 + bge _08050088 + movs r2, 0 + ldr r1, _080500A4 @ =gRecvCmds +_08050076: + strh r2, [r1] + strh r2, [r1, 0x10] + adds r1, 0x2 + adds r6, 0x1 + ldr r0, [r3] + adds r0, 0x88 + ldrb r0, [r0] + cmp r6, r0 + blt _08050076 +_08050088: + add sp, 0x4 + pop {r3-r5} + mov r8, r3 + mov r9, r4 + mov r10, r5 + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_08050098: .4byte gMPlay_BGM +_0805009C: .4byte gUnknown_03004854 +_080500A0: .4byte gSpecialVar_0x8004 +_080500A4: .4byte gRecvCmds + thumb_func_end sub_804FE70 + + thumb_func_start sub_80500A8 +sub_80500A8: @ 80500A8 + push {r4-r6,lr} + movs r6, 0 + ldr r5, _080500EC @ =gUnknown_03004854 + ldr r4, [r5] + bl GetMultiplayerId + lsls r0, 24 + lsrs r0, 23 + adds r4, 0xA2 + adds r4, r0 + ldrb r3, [r4] + ldr r0, [r5] + adds r0, 0x6F + ldrb r0, [r0] + cmp r0, 0 + bne _0805018A + ldr r0, _080500F0 @ =gSaveBlock2 + ldrb r0, [r0, 0x13] + cmp r0, 0x2 + bne _080500FC + ldr r2, _080500F4 @ =gMain + ldrh r1, [r2, 0x2E] + movs r0, 0x1 + ands r0, r1 + cmp r0, 0 + beq _0805010A + ldrh r0, [r2, 0x28] + ldr r1, _080500F8 @ =0x00000201 + bics r1, r0 + negs r0, r1 + orrs r0, r1 + lsrs r6, r0, 31 + b _0805010A + .align 2, 0 +_080500EC: .4byte gUnknown_03004854 +_080500F0: .4byte gSaveBlock2 +_080500F4: .4byte gMain +_080500F8: .4byte 0x00000201 +_080500FC: + ldr r0, _0805015C @ =gMain + ldrh r1, [r0, 0x2E] + movs r0, 0x1 + ands r0, r1 + cmp r0, 0 + beq _0805010A + movs r6, 0x1 +_0805010A: + cmp r6, 0 + beq _0805018A + ldr r4, _08050160 @ =gUnknown_03004854 + ldr r1, [r4] + lsls r2, r3, 1 + adds r0, r1, 0 + adds r0, 0x9A + adds r0, r2 + adds r1, 0x5C + ldrh r0, [r0] + adds r1, r0 + ldrb r1, [r1] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + ldr r1, _08050164 @ =gSprites + adds r0, r1 + adds r1, r3, 0x4 + lsls r1, 24 + lsrs r1, 24 + bl StartSpriteAnim + ldr r0, [r4] + adds r0, 0x54 + ldrh r4, [r0] + bl GetMultiplayerId + adds r1, r0, 0 + lsls r1, 24 + lsrs r1, 24 + adds r0, r4, 0 + bl task_tutorial_oak_boy_girl + lsls r0, 24 + lsrs r0, 24 + cmp r0, 0x2 + bne _08050170 + ldr r1, _08050168 @ =gSendCmd + ldr r0, _0805016C @ =0x00004523 + b _08050188 + .align 2, 0 +_0805015C: .4byte gMain +_08050160: .4byte gUnknown_03004854 +_08050164: .4byte gSprites +_08050168: .4byte gSendCmd +_0805016C: .4byte 0x00004523 +_08050170: + cmp r0, 0x1 + bne _08050184 + ldr r1, _0805017C @ =gSendCmd + ldr r0, _08050180 @ =0x00005432 + b _08050188 + .align 2, 0 +_0805017C: .4byte gSendCmd +_08050180: .4byte 0x00005432 +_08050184: + ldr r1, _080501E4 @ =gSendCmd + ldr r0, _080501E8 @ =0x00002345 +_08050188: + strh r0, [r1, 0x4] +_0805018A: + ldr r2, _080501EC @ =gUnknown_03004854 + ldr r1, [r2] + adds r1, 0x7E + ldrb r0, [r1] + adds r0, 0x1 + strb r0, [r1] + lsls r0, 24 + lsrs r0, 24 + cmp r0, 0x5 + bls _080501BA + ldr r0, [r2] + adds r1, r0, 0 + adds r1, 0x56 + ldrh r3, [r1] + movs r4, 0 + ldrsh r0, [r1, r4] + cmp r0, 0x80 + ble _080501B2 + subs r0, r3, 0x1 + strh r0, [r1] +_080501B2: + ldr r0, [r2] + adds r0, 0x7E + movs r1, 0 + strb r1, [r0] +_080501BA: + ldr r0, _080501F0 @ =gUnknown_020297ED + ldrb r0, [r0] + cmp r0, 0 + beq _080501DE + ldr r0, _080501F4 @ =gMain + ldrh r1, [r0, 0x2E] + movs r0, 0x80 + lsls r0, 2 + ands r0, r1 + cmp r0, 0 + beq _080501DE + ldr r0, [r2] + ldr r1, _080501F8 @ =0x0000014b + adds r2, r0, r1 + ldrb r0, [r2] + movs r1, 0x1 + eors r0, r1 + strb r0, [r2] +_080501DE: + pop {r4-r6} + pop {r0} + bx r0 + .align 2, 0 +_080501E4: .4byte gSendCmd +_080501E8: .4byte 0x00002345 +_080501EC: .4byte gUnknown_03004854 +_080501F0: .4byte gUnknown_020297ED +_080501F4: .4byte gMain +_080501F8: .4byte 0x0000014b + thumb_func_end sub_80500A8 + + thumb_func_start sub_80501FC +sub_80501FC: @ 80501FC + push {r4-r6,lr} + bl sub_8051474 + ldr r4, _08050294 @ =gUnknown_03004854 + ldr r0, [r4] + movs r1, 0x96 + lsls r1, 1 + adds r2, r0, r1 + ldr r1, [r2] + ldr r0, _08050298 @ =0x00057e03 + cmp r1, r0 + bhi _08050218 + adds r0, r1, 0x1 + str r0, [r2] +_08050218: + bl sub_80500A8 + ldr r1, [r4] + adds r0, r1, 0 + adds r0, 0x56 + ldrh r0, [r0] + movs r5, 0x9F + lsls r5, 1 + adds r1, r5 + ldrh r1, [r1] + bl SetLinkDebugValues + bl sub_804FE70 + ldr r0, [r4] + adds r0, r5 + ldrh r0, [r0] + movs r6, 0xFA + lsls r6, 2 + adds r1, r6, 0 + bl sub_805194C + ldr r0, [r4] + adds r0, 0x56 + ldrh r0, [r0] + bl sub_8051A3C + bl sub_8051B18 + bl sub_805123C + ldr r2, [r4] + adds r3, r2, 0 + adds r3, 0x6F + ldrb r0, [r3] + cmp r0, 0 + bne _0805027E + movs r1, 0xA0 + lsls r1, 1 + adds r0, r2, r1 + ldrh r1, [r0] + ldr r0, _0805029C @ =0x000003e7 + cmp r1, r0 + bls _0805027E + adds r0, r2, r5 + strh r6, [r0] + movs r0, 0x1 + strb r0, [r3] + ldr r0, _080502A0 @ =sub_8050954 + bl SetMainCallback2 +_0805027E: + bl RunTasks + bl AnimateSprites + bl BuildOamBuffer + bl UpdatePaletteFade + pop {r4-r6} + pop {r0} + bx r0 + .align 2, 0 +_08050294: .4byte gUnknown_03004854 +_08050298: .4byte 0x00057e03 +_0805029C: .4byte 0x000003e7 +_080502A0: .4byte sub_8050954 + thumb_func_end sub_80501FC + + thumb_func_start help_system_is_not_first_time +help_system_is_not_first_time: @ 80502A4 + push {r4,r5,lr} + lsls r1, 24 + lsls r2, 24 + lsrs r1, 20 + adds r4, r1, r0 + lsrs r2, 20 + adds r5, r2, r0 + ldrh r0, [r4] + ldrh r1, [r5] + cmp r0, r1 + bne _080502E2 + adds r0, r4, 0x2 + adds r1, r5, 0x2 + bl StringCompare + cmp r0, 0 + bne _080502F0 + ldr r0, [r4, 0x8] + ldr r2, _080502E8 @ =0xffffff00 + ands r0, r2 + ldr r1, [r5, 0x8] + ands r1, r2 + cmp r0, r1 + bne _080502F0 + ldr r0, [r4, 0xC] + ldr r2, _080502EC @ =0x00ffffff + ands r0, r2 + ldr r1, [r5, 0xC] + ands r1, r2 + cmp r0, r1 + bne _080502F0 +_080502E2: + movs r0, 0x1 + b _080502F2 + .align 2, 0 +_080502E8: .4byte 0xffffff00 +_080502EC: .4byte 0x00ffffff +_080502F0: + movs r0, 0 +_080502F2: + pop {r4,r5} + pop {r1} + bx r1 + thumb_func_end help_system_is_not_first_time + + thumb_func_start sub_80502F8 +sub_80502F8: @ 80502F8 + push {r4-r7,lr} + mov r7, r10 + mov r6, r9 + mov r5, r8 + push {r5-r7} + sub sp, 0x14 + mov r10, r0 + lsls r2, 24 + lsrs r2, 24 + str r2, [sp, 0x10] + lsls r3, 24 + lsrs r3, 24 + mov r2, sp + movs r4, 0x5 +_08050314: + ldrh r0, [r1] + strh r0, [r2] + adds r1, 0x2 + adds r2, 0x2 + subs r4, 0x1 + cmp r4, 0 + bge _08050314 + movs r6, 0 + mov r1, sp + movs r4, 0x4 +_08050328: + movs r2, 0 + ldrsh r0, [r1, r2] + cmp r0, 0 + bne _08050332 + adds r6, 0x1 +_08050332: + adds r1, 0x2 + subs r4, 0x1 + cmp r4, 0 + bge _08050328 + cmp r6, 0x5 + beq _08050386 + cmp r3, 0x3 + bhi _08050386 + movs r4, 0 + ldr r3, [sp, 0x10] + cmp r4, r3 + bge _0805039E + mov r3, r10 +_0805034C: + movs r6, 0 + ldr r7, [sp, 0x10] + cmp r6, r7 + bge _08050394 + mov r9, r3 + mov r5, r10 + lsls r0, r4, 24 + mov r8, r0 +_0805035C: + mov r1, r9 + ldrh r0, [r1] + ldrh r2, [r5] + cmp r0, r2 + bne _0805038A + cmp r4, r6 + beq _0805038A + cmp r0, 0xAF + bne _08050386 + lsls r2, r6, 24 + lsrs r2, 24 + mov r0, r10 + mov r7, r8 + lsrs r1, r7, 24 + str r3, [sp, 0xC] + bl help_system_is_not_first_time + lsls r0, 24 + ldr r3, [sp, 0xC] + cmp r0, 0 + beq _0805038A +_08050386: + movs r0, 0xC + b _080504DE +_0805038A: + adds r5, 0x10 + adds r6, 0x1 + ldr r0, [sp, 0x10] + cmp r6, r0 + blt _0805035C +_08050394: + adds r3, 0x10 + adds r4, 0x1 + ldr r1, [sp, 0x10] + cmp r4, r1 + blt _0805034C +_0805039E: + movs r2, 0 + mov r1, sp + movs r4, 0x4 +_080503A4: + movs r3, 0 + ldrsh r0, [r1, r3] + cmp r0, 0 + ble _080503B2 + adds r0, r2, 0x1 + lsls r0, 24 + lsrs r2, r0, 24 +_080503B2: + adds r1, 0x2 + subs r4, 0x1 + cmp r4, 0 + bge _080503A4 + cmp r2, 0x3 + bls _080503C2 + movs r0, 0xD + b _080504DE +_080503C2: + cmp r2, 0x3 + bne _080503CA + movs r0, 0xB + b _080504DE +_080503CA: + movs r4, 0 + mov r1, sp +_080503CE: + movs r7, 0 + ldrsh r0, [r1, r7] + cmp r0, 0x32 + ble _080503D8 + b _080504D8 +_080503D8: + adds r1, 0x2 + adds r4, 0x1 + cmp r4, 0x4 + ble _080503CE + cmp r2, 0x1 + bne _0805042A + mov r0, sp + movs r1, 0 + ldrsh r0, [r0, r1] + cmp r0, 0 + ble _080503F2 + movs r0, 0x1 + b _080504DE +_080503F2: + mov r0, sp + ldrh r0, [r0, 0x2] + lsls r0, 16 + cmp r0, 0 + ble _08050400 + movs r0, 0x2 + b _080504DE +_08050400: + mov r0, sp + movs r3, 0x4 + ldrsh r0, [r0, r3] + cmp r0, 0 + ble _0805040E + movs r0, 0x3 + b _080504DE +_0805040E: + mov r0, sp + movs r4, 0x6 + ldrsh r0, [r0, r4] + cmp r0, 0 + ble _0805041C + movs r0, 0x4 + b _080504DE +_0805041C: + mov r0, sp + movs r7, 0x8 + ldrsh r0, [r0, r7] + cmp r0, 0 + ble _0805042A + movs r0, 0x5 + b _080504DE +_0805042A: + cmp r2, 0x2 + bne _080504DC + movs r4, 0 + ldr r5, _08050474 @ =gUnknown_03000520 + mov r1, sp + adds r2, r5, 0 +_08050436: + movs r3, 0 + ldrsh r0, [r1, r3] + cmp r0, 0 + ble _08050442 + strh r4, [r2] + adds r2, 0x2 +_08050442: + adds r1, 0x2 + adds r4, 0x1 + cmp r4, 0x4 + ble _08050436 + movs r4, 0 + ldrsh r3, [r5, r4] + lsls r0, r3, 1 + mov r7, sp + adds r1, r7, r0 + movs r0, 0x2 + ldrsh r2, [r5, r0] + lsls r0, r2, 1 + add r0, sp + movs r4, 0 + ldrsh r1, [r1, r4] + movs r7, 0 + ldrsh r0, [r0, r7] + cmp r1, r0 + blt _08050498 + adds r0, r3, 0 + cmp r0, 0 + bne _08050478 + lsls r0, r2, 16 + b _080504A2 + .align 2, 0 +_08050474: .4byte gUnknown_03000520 +_08050478: + cmp r0, 0x1 + bne _08050480 + lsls r0, r2, 16 + b _080504AE +_08050480: + cmp r0, 0x2 + bne _08050488 + lsls r0, r2, 16 + b _080504BA +_08050488: + cmp r0, 0x3 + bne _08050490 + lsls r0, r2, 16 + b _080504C6 +_08050490: + cmp r0, 0x4 + bne _080504DC + lsls r0, r2, 16 + b _080504D2 +_08050498: + movs r2, 0x2 + ldrsh r0, [r5, r2] + cmp r0, 0 + bne _080504A8 + lsls r0, r3, 16 +_080504A2: + movs r1, 0x6 + orrs r0, r1 + b _080504DE +_080504A8: + cmp r0, 0x1 + bne _080504B4 + lsls r0, r3, 16 +_080504AE: + movs r1, 0x7 + orrs r0, r1 + b _080504DE +_080504B4: + cmp r0, 0x2 + bne _080504C0 + lsls r0, r3, 16 +_080504BA: + movs r1, 0x8 + orrs r0, r1 + b _080504DE +_080504C0: + cmp r0, 0x3 + bne _080504CC + lsls r0, r3, 16 +_080504C6: + movs r1, 0x9 + orrs r0, r1 + b _080504DE +_080504CC: + cmp r0, 0x4 + bne _080504DC + lsls r0, r3, 16 +_080504D2: + movs r1, 0xA + orrs r0, r1 + b _080504DE +_080504D8: + movs r0, 0xE + b _080504DE +_080504DC: + movs r0, 0 +_080504DE: + add sp, 0x14 + pop {r3-r5} + mov r8, r3 + mov r9, r4 + mov r10, r5 + pop {r4-r7} + pop {r1} + bx r1 + thumb_func_end sub_80502F8 + + thumb_func_start sub_80504F0 +sub_80504F0: @ 80504F0 + ldr r1, _080504F8 @ =gUnknown_0300052C + strh r0, [r1] + bx lr + .align 2, 0 +_080504F8: .4byte gUnknown_0300052C + thumb_func_end sub_80504F0 + + thumb_func_start unref_sub_80504FC +unref_sub_80504FC: @ 80504FC + ldr r0, _08050504 @ =gUnknown_0300052C + movs r1, 0 + ldrsh r0, [r0, r1] + bx lr + .align 2, 0 +_08050504: .4byte gUnknown_0300052C + thumb_func_end unref_sub_80504FC + + thumb_func_start sub_8050508 +sub_8050508: @ 8050508 + ldr r1, _08050510 @ =gUnknown_0300052E + strh r0, [r1] + bx lr + .align 2, 0 +_08050510: .4byte gUnknown_0300052E + thumb_func_end sub_8050508 + + thumb_func_start unref_sub_8050514 +unref_sub_8050514: @ 8050514 + ldr r0, _0805051C @ =gUnknown_0300052E + movs r1, 0 + ldrsh r0, [r0, r1] + bx lr + .align 2, 0 +_0805051C: .4byte gUnknown_0300052E + thumb_func_end unref_sub_8050514 + + thumb_func_start sub_8050520 +sub_8050520: @ 8050520 + push {r4-r7,lr} + mov r7, r10 + mov r6, r9 + mov r5, r8 + push {r5-r7} + sub sp, 0x10 + str r0, [sp] + mov r8, r1 + str r3, [sp, 0x4] + ldr r0, [sp, 0x30] + lsls r2, 24 + lsrs r2, 24 + mov r9, r2 + lsls r0, 16 + lsrs r0, 16 + str r0, [sp, 0x8] + ldr r7, _080505DC @ =gUnknown_03000510 + adds r2, r7, 0 + movs r1, 0 + adds r0, r7, 0 + adds r0, 0xA +_0805054A: + strh r1, [r0] + subs r0, 0x2 + cmp r0, r2 + bge _0805054A + movs r6, 0 + cmp r6, r9 + bge _08050580 + ldr r0, _080505DC @ =gUnknown_03000510 + mov r12, r0 + ldr r5, [sp] + adds r5, 0x9 +_08050560: + movs r3, 0 + adds r4, r5, 0 + mov r2, r12 +_08050566: + adds r1, r4, r3 + ldrh r0, [r2] + ldrb r1, [r1] + adds r0, r1 + strh r0, [r2] + adds r2, 0x2 + adds r3, 0x1 + cmp r3, 0x5 + ble _08050566 + adds r5, 0x10 + adds r6, 0x1 + cmp r6, r9 + blt _08050560 +_08050580: + movs r1, 0 + ldrsh r3, [r7, r1] + ldrh r0, [r7] + ldrh r1, [r7, 0x2] + subs r0, r1 + strh r0, [r7] + ldrh r0, [r7, 0x4] + subs r1, r0 + strh r1, [r7, 0x2] + ldrh r1, [r7, 0x6] + subs r0, r1 + strh r0, [r7, 0x4] + ldrh r0, [r7, 0x8] + subs r1, r0 + strh r1, [r7, 0x6] + subs r0, r3 + strh r0, [r7, 0x8] + movs r3, 0 + movs r2, 0 + adds r1, r7, 0 + movs r6, 0x4 +_080505AA: + movs r4, 0 + ldrsh r0, [r1, r4] + cmp r0, 0 + bge _080505B6 + strh r2, [r1] + adds r3, 0x1 +_080505B6: + adds r1, 0x2 + subs r6, 0x1 + cmp r6, 0 + bge _080505AA + lsls r0, r3, 24 + lsrs r0, 24 + mov r10, r0 + movs r4, 0 + ldr r1, _080505DC @ =gUnknown_03000510 + movs r6, 0x4 +_080505CA: + ldrh r2, [r1] + movs r5, 0 + ldrsh r0, [r1, r5] + cmp r0, 0 + ble _080505E4 + cmp r0, r3 + bge _080505E0 + strh r4, [r1] + b _080505E4 + .align 2, 0 +_080505DC: .4byte gUnknown_03000510 +_080505E0: + subs r0, r2, r3 + strh r0, [r1] +_080505E4: + adds r1, 0x2 + subs r6, 0x1 + cmp r6, 0 + bge _080505CA + ldr r1, _080506C4 @ =gUnknown_03000510 + ldr r2, _080506C8 @ =gUnknown_03000530 + movs r6, 0x4 +_080505F2: + movs r3, 0 + ldrsh r0, [r1, r3] + stm r2!, {r0} + adds r1, 0x2 + subs r6, 0x1 + cmp r6, 0 + bge _080505F2 + ldr r1, _080506CC @ =0x0000014d + ldr r0, [sp, 0x8] + bl __udivsi3 + lsls r0, 16 + lsrs r0, 16 + adds r3, r0, 0 + adds r3, 0x64 + ldr r4, _080506D0 @ =gUnknown_0300055C + str r3, [r4] + movs r6, 0x4 +_08050616: + movs r0, 0 + ldrsh r5, [r7, r0] + adds r0, r5, 0 + muls r0, r3 + movs r1, 0xA + str r3, [sp, 0xC] + bl __divsi3 + adds r5, r0, 0 + movs r1, 0xA + bl __modsi3 + adds r4, r0, 0 + adds r0, r5, 0 + movs r1, 0xA + bl __divsi3 + adds r5, r0, 0 + ldr r3, [sp, 0xC] + cmp r4, 0x4 + ble _08050642 + adds r5, 0x1 +_08050642: + strh r5, [r7] + adds r7, 0x2 + subs r6, 0x1 + cmp r6, 0 + bge _08050616 + ldr r1, _080506C4 @ =gUnknown_03000510 + ldr r2, _080506D4 @ =gUnknown_03000548 + movs r6, 0x4 +_08050652: + movs r3, 0 + ldrsh r0, [r1, r3] + stm r2!, {r0} + adds r1, 0x2 + subs r6, 0x1 + cmp r6, 0 + bge _08050652 + ldr r4, _080506C4 @ =gUnknown_03000510 + ldr r0, [sp] + adds r1, r4, 0 + mov r2, r9 + mov r3, r10 + bl sub_80502F8 + mov r5, r8 + strb r0, [r5] + movs r1, 0xA + ldrsh r0, [r4, r1] + mov r1, r9 + bl __divsi3 + mov r3, r9 + subs r0, r3 + strh r0, [r4, 0xA] + lsls r0, 16 + cmp r0, 0 + bge _0805068C + movs r0, 0 + strh r0, [r4, 0xA] +_0805068C: + mov r5, r8 + ldrb r0, [r5] + cmp r0, 0xC + bne _080506E6 + bl Random + lsls r0, 16 + lsrs r0, 16 + movs r1, 0xA + bl __umodsi3 + lsls r0, 16 + lsrs r3, r0, 16 + movs r6, 0 + ldr r0, _080506D8 @ =gUnknown_082165DF + adds r0, r3, r0 + ldrb r0, [r0] + adds r1, r4, 0 + movs r4, 0x1 + movs r3, 0x2 +_080506B4: + adds r2, r0, 0 + asrs r2, r6 + ands r2, r4 + cmp r2, 0 + beq _080506DC + strh r3, [r1] + b _080506DE + .align 2, 0 +_080506C4: .4byte gUnknown_03000510 +_080506C8: .4byte gUnknown_03000530 +_080506CC: .4byte 0x0000014d +_080506D0: .4byte gUnknown_0300055C +_080506D4: .4byte gUnknown_03000548 +_080506D8: .4byte gUnknown_082165DF +_080506DC: + strh r2, [r1] +_080506DE: + adds r1, 0x2 + adds r6, 0x1 + cmp r6, 0x4 + ble _080506B4 +_080506E6: + ldr r7, _08050740 @ =gUnknown_03000510 + movs r2, 0xFF + adds r1, r7, 0 + movs r6, 0x5 +_080506EE: + movs r3, 0 + ldrsh r0, [r1, r3] + cmp r0, 0xFF + ble _080506F8 + strh r2, [r1] +_080506F8: + adds r1, 0x2 + subs r6, 0x1 + cmp r6, 0 + bge _080506EE + ldrh r0, [r7] + mov r4, r8 + strb r0, [r4, 0x1] + ldrh r0, [r7, 0x2] + strb r0, [r4, 0x2] + ldrh r0, [r7, 0x4] + strb r0, [r4, 0x3] + ldrh r0, [r7, 0x6] + strb r0, [r4, 0x4] + ldrh r0, [r7, 0x8] + strb r0, [r4, 0x5] + ldrh r0, [r7, 0xA] + strb r0, [r4, 0x6] + movs r6, 0 + adds r2, r7, 0 +_0805071E: + ldr r5, [sp, 0x4] + adds r1, r5, r6 + ldrh r0, [r2] + strb r0, [r1] + adds r2, 0x2 + adds r6, 0x1 + cmp r6, 0x5 + ble _0805071E + add sp, 0x10 + pop {r3-r5} + mov r8, r3 + mov r9, r4 + mov r10, r5 + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_08050740: .4byte gUnknown_03000510 + thumb_func_end sub_8050520 + + thumb_func_start sub_8050744 +sub_8050744: @ 8050744 + push {r4,lr} + sub sp, 0x4 + ldr r4, [sp, 0xC] + lsls r2, 24 + lsrs r2, 24 + lsls r4, 16 + lsrs r4, 16 + str r4, [sp] + bl sub_8050520 + add sp, 0x4 + pop {r4} + pop {r0} + bx r0 + thumb_func_end sub_8050744 + + thumb_func_start sub_8050760 +sub_8050760: @ 8050760 + push {r4-r6,lr} + ldr r0, _08050780 @ =gUnknown_03004854 + ldr r0, [r0] + movs r2, 0x96 + lsls r2, 1 + adds r1, r0, r2 + ldrh r1, [r1] + adds r0, 0x5A + ldrh r4, [r0] + movs r2, 0 + ldr r5, _08050784 @ =0x00000383 + cmp r1, r5 + bhi _08050788 + movs r2, 0x5 + b _080507DA + .align 2, 0 +_08050780: .4byte gUnknown_03004854 +_08050784: .4byte 0x00000383 +_08050788: + ldr r3, _0805079C @ =0xfffffc7c + adds r0, r1, r3 + lsls r0, 16 + lsrs r0, 16 + ldr r3, _080507A0 @ =0x00000257 + cmp r0, r3 + bhi _080507A4 + movs r2, 0x4 + b _080507DA + .align 2, 0 +_0805079C: .4byte 0xfffffc7c +_080507A0: .4byte 0x00000257 +_080507A4: + ldr r6, _080507B4 @ =0xfffffa24 + adds r0, r1, r6 + lsls r0, 16 + lsrs r0, 16 + cmp r0, r3 + bhi _080507B8 + movs r2, 0x3 + b _080507DA + .align 2, 0 +_080507B4: .4byte 0xfffffa24 +_080507B8: + ldr r3, _080507C8 @ =0xfffff7cc + adds r0, r1, r3 + lsls r0, 16 + lsrs r0, 16 + cmp r0, r5 + bhi _080507CC + movs r2, 0x2 + b _080507DA + .align 2, 0 +_080507C8: .4byte 0xfffff7cc +_080507CC: + ldr r6, _080507F8 @ =0xfffff31c + adds r0, r1, r6 + lsls r0, 16 + ldr r1, _080507FC @ =0x012b0000 + cmp r0, r1 + bhi _080507DA + movs r2, 0x1 +_080507DA: + lsls r0, r2, 16 + asrs r0, 16 + bl sub_8050508 + movs r2, 0 + cmp r4, 0x40 + bhi _080508BC + adds r0, r4, 0 + subs r0, 0x32 + lsls r0, 16 + lsrs r0, 16 + cmp r0, 0x31 + bhi _08050804 + ldr r2, _08050800 @ =0x0000ffff + b _080508BC + .align 2, 0 +_080507F8: .4byte 0xfffff31c +_080507FC: .4byte 0x012b0000 +_08050800: .4byte 0x0000ffff +_08050804: + adds r0, r4, 0 + subs r0, 0x64 + lsls r0, 16 + lsrs r0, 16 + cmp r0, 0x31 + bhi _08050818 + ldr r2, _08050814 @ =0x0000fffe + b _080508BC + .align 2, 0 +_08050814: .4byte 0x0000fffe +_08050818: + adds r0, r4, 0 + subs r0, 0x96 + lsls r0, 16 + lsrs r0, 16 + cmp r0, 0x31 + bhi _0805082C + ldr r2, _08050828 @ =0x0000fffd + b _080508BC + .align 2, 0 +_08050828: .4byte 0x0000fffd +_0805082C: + adds r0, r4, 0 + subs r0, 0xC8 + lsls r0, 16 + lsrs r0, 16 + cmp r0, 0x31 + bhi _08050840 + ldr r2, _0805083C @ =0x0000fffc + b _080508BC + .align 2, 0 +_0805083C: .4byte 0x0000fffc +_08050840: + adds r0, r4, 0 + subs r0, 0xFA + lsls r0, 16 + lsrs r0, 16 + cmp r0, 0x31 + bhi _08050854 + ldr r2, _08050850 @ =0x0000fffb + b _080508BC + .align 2, 0 +_08050850: .4byte 0x0000fffb +_08050854: + ldr r1, _08050864 @ =0xfffffea2 + adds r0, r4, r1 + lsls r0, 16 + lsrs r0, 16 + cmp r0, 0x31 + bhi _0805086C + ldr r2, _08050868 @ =0x0000fffa + b _080508BC + .align 2, 0 +_08050864: .4byte 0xfffffea2 +_08050868: .4byte 0x0000fffa +_0805086C: + ldr r3, _0805087C @ =0xfffffe70 + adds r0, r4, r3 + lsls r0, 16 + lsrs r0, 16 + cmp r0, 0x31 + bhi _08050884 + ldr r2, _08050880 @ =0x0000fff9 + b _080508BC + .align 2, 0 +_0805087C: .4byte 0xfffffe70 +_08050880: .4byte 0x0000fff9 +_08050884: + ldr r6, _08050894 @ =0xfffffe0c + adds r0, r4, r6 + lsls r0, 16 + lsrs r0, 16 + cmp r0, 0x31 + bhi _0805089C + ldr r2, _08050898 @ =0x0000fff8 + b _080508BC + .align 2, 0 +_08050894: .4byte 0xfffffe0c +_08050898: .4byte 0x0000fff8 +_0805089C: + ldr r1, _080508AC @ =0xfffffdda + adds r0, r4, r1 + lsls r0, 16 + lsrs r0, 16 + cmp r0, 0x31 + bhi _080508B4 + ldr r2, _080508B0 @ =0x0000fff7 + b _080508BC + .align 2, 0 +_080508AC: .4byte 0xfffffdda +_080508B0: .4byte 0x0000fff7 +_080508B4: + ldr r0, _080508CC @ =0x00000257 + cmp r4, r0 + bls _080508BC + ldr r2, _080508D0 @ =0x0000fff6 +_080508BC: + lsls r0, r2, 16 + asrs r0, 16 + bl sub_80504F0 + pop {r4-r6} + pop {r0} + bx r0 + .align 2, 0 +_080508CC: .4byte 0x00000257 +_080508D0: .4byte 0x0000fff6 + thumb_func_end sub_8050760 + + thumb_func_start sub_80508D4 +sub_80508D4: @ 80508D4 + push {lr} + ldr r2, _080508F8 @ =gUnknown_03004854 + ldr r1, [r2] + adds r1, 0xAA + strb r0, [r1] + ldr r0, [r2] + adds r0, 0xAA + ldrb r1, [r0] + lsls r1, 28 + movs r0, 0x90 + lsls r0, 23 + adds r1, r0 + lsrs r1, 24 + movs r0, 0xC0 + bl sub_814A880 + pop {r0} + bx r0 + .align 2, 0 +_080508F8: .4byte gUnknown_03004854 + thumb_func_end sub_80508D4 + + thumb_func_start sub_80508FC +sub_80508FC: @ 80508FC + push {r4,lr} + sub sp, 0x4 + ldr r4, _08050944 @ =gUnknown_03004854 + ldr r0, [r4] + adds r0, 0xAA + movs r1, 0 + strb r1, [r0] + movs r0, 0x17 + movs r1, 0x8 + movs r2, 0x1C + movs r3, 0xD + bl MenuDrawTextWindow + ldr r1, _08050948 @ =0x0000ffff + ldr r3, _0805094C @ =0x00002d9f + movs r0, 0x20 + str r0, [sp] + movs r0, 0 + movs r2, 0xC + bl sub_814A5C0 + ldr r0, _08050950 @ =gOtherText_YesNoTerminating + movs r1, 0x18 + movs r2, 0x9 + bl MenuPrint + ldr r0, [r4] + adds r0, 0xAA + ldrb r0, [r0] + bl sub_80508D4 + add sp, 0x4 + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_08050944: .4byte gUnknown_03004854 +_08050948: .4byte 0x0000ffff +_0805094C: .4byte 0x00002d9f +_08050950: .4byte gOtherText_YesNoTerminating + thumb_func_end sub_80508FC + + thumb_func_start sub_8050954 +sub_8050954: @ 8050954 + push {r4-r7,lr} + bl sub_8051474 + bl GetMultiplayerId + ldr r0, _08050978 @ =gUnknown_03004854 + ldr r0, [r0] + adds r0, 0x6F + ldrb r0, [r0] + subs r0, 0x1 + cmp r0, 0xC + bls _0805096E + b _08050CB6 +_0805096E: + lsls r0, 2 + ldr r1, _0805097C @ =_08050980 + adds r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_08050978: .4byte gUnknown_03004854 +_0805097C: .4byte _08050980 + .align 2, 0 +_08050980: + .4byte _080509B4 + .4byte _080509F8 + .4byte _08050A4C + .4byte _08050A94 + .4byte _08050AD0 + .4byte _08050ADE + .4byte _08050B08 + .4byte _08050B34 + .4byte _08050B42 + .4byte _08050B58 + .4byte _08050BE0 + .4byte _08050C64 + .4byte _08050C98 +_080509B4: + bl ClearLinkCallback + ldr r0, _080509C8 @ =gMPlay_BGM + movs r1, 0x80 + lsls r1, 1 + bl m4aMPlayTempoControl + movs r4, 0 + b _080509E4 + .align 2, 0 +_080509C8: .4byte gMPlay_BGM +_080509CC: + ldr r0, _080509F0 @ =gUnknown_03004854 + ldr r0, [r0] + movs r1, 0xA4 + lsls r1, 1 + adds r0, r1 + adds r0, r4 + ldrb r0, [r0] + bl DestroyTask + adds r0, r4, 0x1 + lsls r0, 24 + lsrs r4, r0, 24 +_080509E4: + ldr r0, _080509F4 @ =gSpecialVar_0x8004 + ldrh r0, [r0] + cmp r4, r0 + bcc _080509CC + b _08050C82 + .align 2, 0 +_080509F0: .4byte gUnknown_03004854 +_080509F4: .4byte gSpecialVar_0x8004 +_080509F8: + ldr r1, _08050A24 @ =gUnknown_03004854 + ldr r3, [r1] + adds r2, r3, 0 + adds r2, 0x56 + ldrh r0, [r2] + subs r0, 0x20 + strh r0, [r2] + lsls r0, 16 + adds r4, r1, 0 + cmp r0, 0 + bgt _08050A40 + movs r0, 0 + strh r0, [r2] + ldr r0, _08050A28 @ =gReceivedRemoteLinkPlayers + ldrb r0, [r0] + cmp r0, 0 + beq _08050A2C + adds r1, r3, 0 + adds r1, 0x6F + ldrb r0, [r1] + adds r0, 0x1 + b _08050A32 + .align 2, 0 +_08050A24: .4byte gUnknown_03004854 +_08050A28: .4byte gReceivedRemoteLinkPlayers +_08050A2C: + adds r1, r3, 0 + adds r1, 0x6F + movs r0, 0x5 +_08050A32: + strb r0, [r1] + ldr r0, [r4] + movs r1, 0 + strb r1, [r0] + ldr r0, _08050A48 @ =gMPlay_SE2 + bl m4aMPlayStop +_08050A40: + bl sub_804E290 + b _08050CB6 + .align 2, 0 +_08050A48: .4byte gMPlay_SE2 +_08050A4C: + bl GetMultiplayerId + lsls r0, 24 + cmp r0, 0 + beq _08050A58 + b _08050C82 +_08050A58: + bl sub_8007ECC + lsls r0, 24 + cmp r0, 0 + bne _08050A64 + b _08050CB6 +_08050A64: + ldr r4, _08050A90 @ =gUnknown_03004854 + ldr r3, [r4] + movs r2, 0xDE + lsls r2, 1 + adds r1, r3, r2 + movs r5, 0x96 + lsls r5, 1 + adds r0, r3, r5 + ldr r0, [r0] + str r0, [r1] + adds r0, r3, 0 + adds r0, 0x5A + ldrh r2, [r0] + adds r5, 0x94 + adds r0, r3, r5 + strh r2, [r0] + movs r0, 0 + movs r2, 0x28 + bl SendBlock + ldr r1, [r4] + b _08050C86 + .align 2, 0 +_08050A90: .4byte gUnknown_03004854 +_08050A94: + bl GetBlockReceivedStatus + lsls r0, 24 + cmp r0, 0 + bne _08050AA0 + b _08050CB6 +_08050AA0: + ldr r2, _08050AC8 @ =gBlockRecvBuffer + ldr r0, _08050ACC @ =gUnknown_03004854 + ldr r3, [r0] + ldrh r0, [r2, 0x4] + adds r1, r3, 0 + adds r1, 0x5A + strh r0, [r1] + movs r0, 0x96 + lsls r0, 1 + adds r1, r3, r0 + ldr r0, [r2] + str r0, [r1] + adds r1, r3, 0 + adds r1, 0x6F + ldrb r0, [r1] + adds r0, 0x1 + strb r0, [r1] + bl ResetBlockReceivedFlags + b _08050CB6 + .align 2, 0 +_08050AC8: .4byte gBlockRecvBuffer +_08050ACC: .4byte gUnknown_03004854 +_08050AD0: + bl sub_8052228 + lsls r0, 24 + cmp r0, 0 + bne _08050ADC + b _08050CB6 +_08050ADC: + b _08050C82 +_08050ADE: + bl sub_8051C58 + lsls r0, 24 + cmp r0, 0 + bne _08050AEA + b _08050CB6 +_08050AEA: + ldr r0, _08050AFC @ =gUnknown_03004834 + ldrb r0, [r0] + cmp r0, 0 + bne _08050B00 + movs r0, 0x22 + bl IncrementGameStat + b _08050C82 + .align 2, 0 +_08050AFC: .4byte gUnknown_03004834 +_08050B00: + movs r0, 0x21 + bl IncrementGameStat + b _08050C82 +_08050B08: + ldr r0, _08050B2C @ =gUnknown_03004854 + ldr r1, [r0] + adds r1, 0x6F + ldrb r0, [r1] + adds r0, 0x1 + strb r0, [r1] + movs r0, 0 + movs r1, 0xE + movs r2, 0x1D + movs r3, 0x13 + bl MenuDrawTextWindow + ldr r0, _08050B30 @ =gOtherText_BlendAnotherBerryPrompt + movs r1, 0x1 + movs r2, 0xF + bl MenuPrintMessage + b _08050CB6 + .align 2, 0 +_08050B2C: .4byte gUnknown_03004854 +_08050B30: .4byte gOtherText_BlendAnotherBerryPrompt +_08050B34: + bl MenuUpdateWindowText + lsls r0, 24 + cmp r0, 0 + bne _08050B40 + b _08050CB6 +_08050B40: + b _08050C82 +_08050B42: + ldr r4, _08050B54 @ =gUnknown_03004854 + ldr r0, [r4] + adds r0, 0xAA + movs r1, 0 + strb r1, [r0] + bl sub_80508FC + ldr r1, [r4] + b _08050C86 + .align 2, 0 +_08050B54: .4byte gUnknown_03004854 +_08050B58: + ldr r0, _08050B80 @ =gMain + ldrh r1, [r0, 0x2E] + movs r0, 0x40 + ands r0, r1 + cmp r0, 0 + beq _08050B88 + ldr r0, _08050B84 @ =gUnknown_03004854 + ldr r0, [r0] + adds r0, 0xAA + ldrb r0, [r0] + cmp r0, 0 + beq _08050B76 + movs r0, 0x5 + bl PlaySE +_08050B76: + movs r0, 0 + bl sub_80508D4 + b _08050CB6 + .align 2, 0 +_08050B80: .4byte gMain +_08050B84: .4byte gUnknown_03004854 +_08050B88: + movs r0, 0x80 + ands r0, r1 + cmp r0, 0 + beq _08050BA8 + ldr r0, _08050BA4 @ =gUnknown_03004854 + ldr r0, [r0] + adds r0, 0xAA + ldrb r0, [r0] + cmp r0, 0x1 + beq _08050BD4 + movs r0, 0x5 + bl PlaySE + b _08050BD4 + .align 2, 0 +_08050BA4: .4byte gUnknown_03004854 +_08050BA8: + movs r0, 0x1 + ands r0, r1 + cmp r0, 0 + beq _08050BB8 + movs r0, 0x5 + bl PlaySE + b _08050C82 +_08050BB8: + movs r0, 0x2 + ands r0, r1 + cmp r0, 0 + bne _08050BC2 + b _08050CB6 +_08050BC2: + movs r0, 0x5 + bl PlaySE + ldr r0, _08050BDC @ =gUnknown_03004854 + ldr r1, [r0] + adds r1, 0x6F + ldrb r0, [r1] + adds r0, 0x1 + strb r0, [r1] +_08050BD4: + movs r0, 0x1 + bl sub_80508D4 + b _08050CB6 + .align 2, 0 +_08050BDC: .4byte gUnknown_03004854 +_08050BE0: + ldr r6, _08050C10 @ =gSendCmd + movs r7, 0 + ldr r0, _08050C14 @ =0x00002fff + strh r0, [r6] + ldr r4, _08050C18 @ =gUnknown_03004854 + ldr r2, [r4] + adds r0, r2, 0 + adds r0, 0xAA + ldrb r5, [r0] + cmp r5, 0 + bne _08050C50 + movs r0, 0x4 + bl IsBagPocketNonEmpty + lsls r0, 24 + cmp r0, 0 + bne _08050C20 + ldr r0, [r4] + adds r0, 0x7C + movs r1, 0x2 + strh r1, [r0] + ldr r0, _08050C1C @ =0x00009999 + b _08050C48 + .align 2, 0 +_08050C10: .4byte gSendCmd +_08050C14: .4byte 0x00002fff +_08050C18: .4byte gUnknown_03004854 +_08050C1C: .4byte 0x00009999 +_08050C20: + bl sub_810CA00 + lsls r0, 24 + asrs r0, 24 + movs r1, 0x1 + negs r1, r1 + cmp r0, r1 + bne _08050C40 + ldr r0, [r4] + adds r0, 0x7C + movs r1, 0x3 + strh r1, [r0] + ldr r0, _08050C3C @ =0x0000aaaa + b _08050C48 + .align 2, 0 +_08050C3C: .4byte 0x0000aaaa +_08050C40: + ldr r0, [r4] + adds r0, 0x7C + strh r5, [r0] + ldr r0, _08050C4C @ =0x00007779 +_08050C48: + strh r0, [r6, 0x2] + b _08050C82 + .align 2, 0 +_08050C4C: .4byte 0x00007779 +_08050C50: + adds r1, r2, 0 + adds r1, 0x7C + movs r0, 0x1 + strh r0, [r1] + ldr r0, _08050C60 @ =0x00008888 + strh r0, [r6, 0x2] + subs r1, 0xD + b _08050C88 + .align 2, 0 +_08050C60: .4byte 0x00008888 +_08050C64: + ldr r0, _08050C70 @ =gUnknown_03004834 + ldrb r0, [r0] + cmp r0, 0 + beq _08050C78 + ldr r0, _08050C74 @ =sub_80510E8 + b _08050CA4 + .align 2, 0 +_08050C70: .4byte gUnknown_03004834 +_08050C74: .4byte sub_80510E8 +_08050C78: + ldr r0, _08050C90 @ =gOtherText_LinkStandby3 + movs r1, 0x1 + movs r2, 0xF + bl MenuPrintMessage +_08050C82: + ldr r0, _08050C94 @ =gUnknown_03004854 + ldr r1, [r0] +_08050C86: + adds r1, 0x6F +_08050C88: + ldrb r0, [r1] + adds r0, 0x1 + strb r0, [r1] + b _08050CB6 + .align 2, 0 +_08050C90: .4byte gOtherText_LinkStandby3 +_08050C94: .4byte gUnknown_03004854 +_08050C98: + bl MenuUpdateWindowText + lsls r0, 24 + cmp r0, 0 + beq _08050CB6 + ldr r0, _08050CE0 @ =sub_8050E30 +_08050CA4: + bl SetMainCallback2 + ldr r2, _08050CE4 @ =gUnknown_03004854 + ldr r0, [r2] + adds r0, 0x6F + movs r1, 0 + strb r1, [r0] + ldr r0, [r2] + strb r1, [r0] +_08050CB6: + bl sub_8051B18 + ldr r0, _08050CE4 @ =gUnknown_03004854 + ldr r0, [r0] + adds r0, 0x56 + ldrh r0, [r0] + bl sub_8051A3C + bl sub_805123C + bl RunTasks + bl AnimateSprites + bl BuildOamBuffer + bl UpdatePaletteFade + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_08050CE0: .4byte sub_8050E30 +_08050CE4: .4byte gUnknown_03004854 + thumb_func_end sub_8050954 + + thumb_func_start sub_8050CE8 +sub_8050CE8: @ 8050CE8 + push {r4,lr} + ldr r1, _08050D08 @ =gUnknown_03004854 + ldr r0, [r1] + movs r2, 0xE2 + lsls r2, 1 + adds r0, r2 + ldr r0, [r0] + adds r4, r1, 0 + cmp r0, 0x6 + bls _08050CFE + b _08050E28 +_08050CFE: + lsls r0, 2 + ldr r1, _08050D0C @ =_08050D10 + adds r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_08050D08: .4byte gUnknown_03004854 +_08050D0C: .4byte _08050D10 + .align 2, 0 +_08050D10: + .4byte _08050D2C + .4byte _08050D44 + .4byte _08050D70 + .4byte _08050D80 + .4byte _08050DA6 + .4byte _08050DEC + .4byte _08050E06 +_08050D2C: + bl sub_80084A4 + ldr r0, _08050D40 @ =gUnknown_03004854 + ldr r2, [r0] + movs r3, 0xE2 + lsls r3, 1 + adds r1, r2, r3 + movs r0, 0x1 + b _08050DF8 + .align 2, 0 +_08050D40: .4byte gUnknown_03004854 +_08050D44: + bl sub_8007ECC + lsls r0, 24 + cmp r0, 0 + beq _08050E28 + ldr r0, _08050D68 @ =gUnknown_03004854 + ldr r1, [r0] + movs r2, 0xE2 + lsls r2, 1 + adds r1, r2 + ldr r0, [r1] + adds r0, 0x1 + str r0, [r1] + ldr r1, _08050D6C @ =gSoftResetDisabled + movs r0, 0x1 + strb r0, [r1] + b _08050E28 + .align 2, 0 +_08050D68: .4byte gUnknown_03004854 +_08050D6C: .4byte gSoftResetDisabled +_08050D70: + bl sub_8125E2C + ldr r0, _08050D7C @ =gUnknown_03004854 + ldr r2, [r0] + b _08050DEE + .align 2, 0 +_08050D7C: .4byte gUnknown_03004854 +_08050D80: + ldr r1, [r4] + movs r2, 0x98 + lsls r2, 1 + adds r1, r2 + ldr r0, [r1] + adds r0, 0x1 + str r0, [r1] + cmp r0, 0xA + bne _08050E28 + bl sub_80084A4 + ldr r1, [r4] + movs r3, 0xE2 + lsls r3, 1 + adds r1, r3 + ldr r0, [r1] + adds r0, 0x1 + str r0, [r1] + b _08050E28 +_08050DA6: + bl sub_8007ECC + lsls r0, 24 + cmp r0, 0 + beq _08050E28 + bl sub_8125E6C + lsls r0, 24 + lsrs r2, r0, 24 + cmp r2, 0 + beq _08050DD0 + ldr r0, _08050DCC @ =gUnknown_03004854 + ldr r0, [r0] + movs r1, 0xE2 + lsls r1, 1 + adds r0, r1 + movs r1, 0x5 + str r1, [r0] + b _08050E28 + .align 2, 0 +_08050DCC: .4byte gUnknown_03004854 +_08050DD0: + ldr r0, _08050DE8 @ =gUnknown_03004854 + ldr r1, [r0] + movs r3, 0x98 + lsls r3, 1 + adds r0, r1, r3 + str r2, [r0] + movs r0, 0xE2 + lsls r0, 1 + adds r1, r0 + movs r0, 0x3 + str r0, [r1] + b _08050E28 + .align 2, 0 +_08050DE8: .4byte gUnknown_03004854 +_08050DEC: + ldr r2, [r4] +_08050DEE: + movs r3, 0xE2 + lsls r3, 1 + adds r1, r2, r3 + ldr r0, [r1] + adds r0, 0x1 +_08050DF8: + str r0, [r1] + movs r0, 0x98 + lsls r0, 1 + adds r1, r2, r0 + movs r0, 0 + str r0, [r1] + b _08050E28 +_08050E06: + ldr r1, [r4] + movs r2, 0x98 + lsls r2, 1 + adds r1, r2 + ldr r0, [r1] + adds r0, 0x1 + str r0, [r1] + cmp r0, 0x5 + ble _08050E28 + ldr r1, _08050E24 @ =gSoftResetDisabled + movs r0, 0 + strb r0, [r1] + movs r0, 0x1 + b _08050E2A + .align 2, 0 +_08050E24: .4byte gSoftResetDisabled +_08050E28: + movs r0, 0 +_08050E2A: + pop {r4} + pop {r1} + bx r1 + thumb_func_end sub_8050CE8 + + thumb_func_start sub_8050E30 +sub_8050E30: @ 8050E30 + push {r4,r5,lr} + sub sp, 0x4 + ldr r1, _08050E50 @ =gUnknown_03004854 + ldr r0, [r1] + adds r0, 0x6F + ldrb r0, [r0] + adds r5, r1, 0 + cmp r0, 0xC + bls _08050E44 + b _080510AC +_08050E44: + lsls r0, 2 + ldr r1, _08050E54 @ =_08050E58 + adds r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_08050E50: .4byte gUnknown_03004854 +_08050E54: .4byte _08050E58 + .align 2, 0 +_08050E58: + .4byte _08050E8C + .4byte _08050ED8 + .4byte _08050F00 + .4byte _08050F54 + .4byte _08050F74 + .4byte _08050F92 + .4byte _08050FBC + .4byte _08050FEC + .4byte _08051008 + .4byte _08051018 + .4byte _0805103C + .4byte _0805107C + .4byte _0805109E +_08050E8C: + ldr r1, [r5] + adds r0, r1, 0 + adds r0, 0x70 + ldrh r2, [r0] + ldr r0, _08050EB8 @ =0x00002222 + cmp r2, r0 + beq _08050F8A + ldr r0, _08050EBC @ =0x00001111 + cmp r2, r0 + beq _08050EA2 + b _080510AC +_08050EA2: + adds r0, r1, 0 + adds r0, 0x78 + ldrh r2, [r0] + ldr r0, _08050EC0 @ =0x00009999 + cmp r2, r0 + bne _08050EC4 + adds r1, 0x6F + movs r0, 0x2 + strb r0, [r1] + b _080510AC + .align 2, 0 +_08050EB8: .4byte 0x00002222 +_08050EBC: .4byte 0x00001111 +_08050EC0: .4byte 0x00009999 +_08050EC4: + ldr r0, _08050ED4 @ =0x0000aaaa + cmp r2, r0 + bne _08050F8A + adds r1, 0x6F + movs r0, 0x1 + strb r0, [r1] + b _080510AC + .align 2, 0 +_08050ED4: .4byte 0x0000aaaa +_08050ED8: + ldr r0, [r5] + adds r0, 0x6F + movs r1, 0x3 + strb r1, [r0] + bl DestroyMenuCursor + movs r0, 0x17 + movs r1, 0x8 + movs r2, 0x1C + movs r3, 0xD + bl MenuZeroFillWindowRect + ldr r4, _08050EF8 @ =gStringVar4 + ldr r1, _08050EFC @ =gOtherText_OtherCaseIsFull + b _08050F1E + .align 2, 0 +_08050EF8: .4byte gStringVar4 +_08050EFC: .4byte gOtherText_OtherCaseIsFull +_08050F00: + ldr r1, [r5] + adds r1, 0x6F + ldrb r0, [r1] + adds r0, 0x1 + strb r0, [r1] + bl DestroyMenuCursor + movs r0, 0x17 + movs r1, 0x8 + movs r2, 0x1C + movs r3, 0xD + bl MenuZeroFillWindowRect + ldr r4, _08050F48 @ =gStringVar4 + ldr r1, _08050F4C @ =gOtherText_NoBerriesForBlend +_08050F1E: + adds r0, r4, 0 + bl StringCopy + ldr r0, [r5] + adds r0, 0x7A + ldrh r0, [r0] + lsls r1, r0, 3 + subs r1, r0 + lsls r1, 2 + ldr r0, _08050F50 @ =gLinkPlayers + 0x8 + adds r1, r0 + adds r0, r4, 0 + bl de_sub_8073110 + adds r0, r4, 0 + movs r1, 0x1 + movs r2, 0xF + bl MenuPrintMessage + b _080510AC + .align 2, 0 +_08050F48: .4byte gStringVar4 +_08050F4C: .4byte gOtherText_NoBerriesForBlend +_08050F50: .4byte gLinkPlayers + 0x8 +_08050F54: + bl MenuUpdateWindowText + lsls r0, 24 + cmp r0, 0 + bne _08050F60 + b _080510AC +_08050F60: + ldr r0, _08050F70 @ =gUnknown_03004854 + ldr r1, [r0] + movs r0, 0x98 + lsls r0, 1 + adds r2, r1, r0 + movs r0, 0 + str r0, [r2] + b _08051094 + .align 2, 0 +_08050F70: .4byte gUnknown_03004854 +_08050F74: + ldr r2, [r5] + movs r0, 0x98 + lsls r0, 1 + adds r1, r2, r0 + ldr r0, [r1] + adds r0, 0x1 + str r0, [r1] + cmp r0, 0x3C + bgt _08050F88 + b _080510AC +_08050F88: + adds r1, r2, 0 +_08050F8A: + adds r1, 0x6F + movs r0, 0x5 + strb r0, [r1] + b _080510AC +_08050F92: + movs r0, 0 + movs r1, 0xE + movs r2, 0x1D + movs r3, 0x13 + bl MenuDrawTextWindow + ldr r0, _08050FB4 @ =gMultiText_Saving + movs r1, 0x2 + movs r2, 0xF + bl MenuPrint + bl sub_80084A4 + ldr r0, _08050FB8 @ =gUnknown_03004854 + ldr r1, [r0] + b _08051094 + .align 2, 0 +_08050FB4: .4byte gMultiText_Saving +_08050FB8: .4byte gUnknown_03004854 +_08050FBC: + bl sub_8007ECC + lsls r0, 24 + cmp r0, 0 + beq _080510AC + ldr r3, _08050FE8 @ =gUnknown_03004854 + ldr r1, [r3] + movs r2, 0x98 + lsls r2, 1 + adds r0, r1, r2 + movs r2, 0 + str r2, [r0] + adds r1, 0x6F + ldrb r0, [r1] + adds r0, 0x1 + strb r0, [r1] + ldr r0, [r3] + movs r1, 0xE2 + lsls r1, 1 + adds r0, r1 + str r2, [r0] + b _080510AC + .align 2, 0 +_08050FE8: .4byte gUnknown_03004854 +_08050FEC: + bl sub_8050CE8 + lsls r0, 24 + cmp r0, 0 + beq _080510AC + movs r0, 0x37 + bl PlaySE + ldr r0, _08051004 @ =gUnknown_03004854 + ldr r1, [r0] + b _08051094 + .align 2, 0 +_08051004: .4byte gUnknown_03004854 +_08051008: + ldr r1, [r5] + adds r1, 0x6F + ldrb r0, [r1] + adds r0, 0x1 + strb r0, [r1] + bl sub_80084A4 + b _080510AC +_08051018: + bl sub_8007ECC + lsls r0, 24 + cmp r0, 0 + beq _080510AC + movs r0, 0x1 + negs r0, r0 + movs r1, 0 + str r1, [sp] + movs r2, 0 + movs r3, 0x10 + bl BeginNormalPaletteFade + ldr r0, _08051038 @ =gUnknown_03004854 + ldr r1, [r0] + b _08051094 + .align 2, 0 +_08051038: .4byte gUnknown_03004854 +_0805103C: + ldr r0, _08051064 @ =gPaletteFade + ldrb r1, [r0, 0x7] + movs r0, 0x80 + ands r0, r1 + lsls r0, 24 + lsrs r3, r0, 24 + cmp r3, 0 + bne _080510AC + ldr r2, [r5] + adds r0, r2, 0 + adds r0, 0x70 + ldrh r1, [r0] + ldr r0, _08051068 @ =0x00002222 + cmp r1, r0 + bne _08051070 + ldr r0, _0805106C @ =sub_804E538 + bl SetMainCallback2 + b _080510AC + .align 2, 0 +_08051064: .4byte gPaletteFade +_08051068: .4byte 0x00002222 +_0805106C: .4byte sub_804E538 +_08051070: + movs r1, 0x98 + lsls r1, 1 + adds r0, r2, r1 + str r3, [r0] + adds r1, r2, 0 + b _08051094 +_0805107C: + ldr r1, [r5] + movs r2, 0x98 + lsls r2, 1 + adds r1, r2 + ldr r0, [r1] + adds r0, 0x1 + str r0, [r1] + cmp r0, 0x1E + ble _080510AC + bl sub_800832C + ldr r1, [r5] +_08051094: + adds r1, 0x6F + ldrb r0, [r1] + adds r0, 0x1 + strb r0, [r1] + b _080510AC +_0805109E: + ldr r0, _080510C8 @ =gReceivedRemoteLinkPlayers + ldrb r0, [r0] + cmp r0, 0 + bne _080510AC + ldr r0, _080510CC @ =c2_exit_to_overworld_1_continue_scripts_restart_music + bl SetMainCallback2 +_080510AC: + bl sub_805123C + bl RunTasks + bl AnimateSprites + bl BuildOamBuffer + bl UpdatePaletteFade + add sp, 0x4 + pop {r4,r5} + pop {r0} + bx r0 + .align 2, 0 +_080510C8: .4byte gReceivedRemoteLinkPlayers +_080510CC: .4byte c2_exit_to_overworld_1_continue_scripts_restart_music + thumb_func_end sub_8050E30 + + thumb_func_start sub_80510E8 +sub_80510E8: @ 80510E8 + push {lr} + ldr r1, _08051104 @ =gUnknown_03004854 + ldr r0, [r1] + adds r0, 0x6F + ldrb r0, [r0] + adds r3, r1, 0 + cmp r0, 0xA + bls _080510FA + b _0805121E +_080510FA: + lsls r0, 2 + ldr r1, _08051108 @ =_0805110C + adds r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_08051104: .4byte gUnknown_03004854 +_08051108: .4byte _0805110C + .align 2, 0 +_0805110C: + .4byte _08051138 + .4byte _0805116E + .4byte _08051190 + .4byte _080511BC + .4byte _0805121E + .4byte _0805121E + .4byte _0805121E + .4byte _0805121E + .4byte _0805121E + .4byte _080511D8 + .4byte _080511F0 +_08051138: + ldr r1, [r3] + adds r0, r1, 0 + adds r0, 0x7C + ldrh r0, [r0] + cmp r0, 0x1 + bhi _0805114A + adds r1, 0x6F + movs r0, 0x9 + strb r0, [r1] +_0805114A: + ldr r2, [r3] + adds r0, r2, 0 + adds r0, 0x7C + ldrh r1, [r0] + cmp r1, 0x2 + bne _0805115A + subs r0, 0xD + strb r1, [r0] +_0805115A: + ldr r1, [r3] + adds r0, r1, 0 + adds r0, 0x7C + ldrh r0, [r0] + cmp r0, 0x3 + bne _0805121E + adds r1, 0x6F + movs r0, 0x1 + strb r0, [r1] + b _0805121E +_0805116E: + ldr r0, [r3] + adds r0, 0x6F + movs r1, 0x3 + strb r1, [r0] + bl DestroyMenuCursor + movs r0, 0x17 + movs r1, 0x8 + movs r2, 0x1C + movs r3, 0xD + bl MenuZeroFillWindowRect + ldr r0, _0805118C @ =gOtherText_CaseIsFull + b _080511AC + .align 2, 0 +_0805118C: .4byte gOtherText_CaseIsFull +_08051190: + ldr r0, [r3] + adds r0, 0x6F + ldrb r1, [r0] + adds r1, 0x1 + strb r1, [r0] + bl DestroyMenuCursor + movs r0, 0x17 + movs r1, 0x8 + movs r2, 0x1C + movs r3, 0xD + bl MenuZeroFillWindowRect + ldr r0, _080511B8 @ =gOtherText_OutOfBerries +_080511AC: + movs r1, 0x1 + movs r2, 0xF + bl MenuPrintMessage + b _0805121E + .align 2, 0 +_080511B8: .4byte gOtherText_OutOfBerries +_080511BC: + bl MenuUpdateWindowText + lsls r0, 24 + cmp r0, 0 + beq _0805121E + ldr r0, _080511D4 @ =gUnknown_03004854 + ldr r0, [r0] + adds r0, 0x6F + movs r1, 0x9 + strb r1, [r0] + b _0805121E + .align 2, 0 +_080511D4: .4byte gUnknown_03004854 +_080511D8: + movs r0, 0x3 + bl BeginFastPaletteFade + ldr r0, _080511EC @ =gUnknown_03004854 + ldr r1, [r0] + adds r1, 0x6F + ldrb r0, [r1] + adds r0, 0x1 + strb r0, [r1] + b _0805121E + .align 2, 0 +_080511EC: .4byte gUnknown_03004854 +_080511F0: + ldr r0, _08051210 @ =gPaletteFade + ldrb r1, [r0, 0x7] + movs r0, 0x80 + ands r0, r1 + cmp r0, 0 + bne _0805121E + ldr r0, [r3] + adds r0, 0x7C + ldrh r0, [r0] + cmp r0, 0 + bne _08051218 + ldr r0, _08051214 @ =sub_804E538 + bl SetMainCallback2 + b _0805121E + .align 2, 0 +_08051210: .4byte gPaletteFade +_08051214: .4byte sub_804E538 +_08051218: + ldr r0, _08051238 @ =c2_exit_to_overworld_1_continue_scripts_restart_music + bl SetMainCallback2 +_0805121E: + bl sub_805123C + bl RunTasks + bl AnimateSprites + bl BuildOamBuffer + bl UpdatePaletteFade + pop {r0} + bx r0 + .align 2, 0 +_08051238: .4byte c2_exit_to_overworld_1_continue_scripts_restart_music + thumb_func_end sub_80510E8 + + thumb_func_start sub_805123C +sub_805123C: @ 805123C + push {r4-r6,lr} + ldr r0, _0805126C @ =gReceivedRemoteLinkPlayers + ldrb r0, [r0] + cmp r0, 0 + bne _08051248 + b _08051404 +_08051248: + ldr r4, _08051270 @ =gRecvCmds + ldrh r1, [r4] + ldr r0, _08051274 @ =0x00002fff + cmp r1, r0 + bne _080512C6 + ldrh r1, [r4, 0x8] + ldr r0, _08051278 @ =0x00001111 + cmp r1, r0 + bne _080512B8 + ldrh r3, [r4, 0x10] + ldr r0, _0805127C @ =0x00009999 + cmp r3, r0 + beq _08051298 + cmp r3, r0 + bgt _08051284 + ldr r0, _08051280 @ =0x00008888 + b _08051286 + .align 2, 0 +_0805126C: .4byte gReceivedRemoteLinkPlayers +_08051270: .4byte gRecvCmds +_08051274: .4byte 0x00002fff +_08051278: .4byte 0x00001111 +_0805127C: .4byte 0x00009999 +_08051280: .4byte 0x00008888 +_08051284: + ldr r0, _08051290 @ =0x0000aaaa +_08051286: + cmp r3, r0 + beq _08051298 + ldr r2, _08051294 @ =gUnknown_03004854 + b _080512A8 + .align 2, 0 +_08051290: .4byte 0x0000aaaa +_08051294: .4byte gUnknown_03004854 +_08051298: + ldr r2, _080512B0 @ =gUnknown_03004854 + ldr r0, [r2] + adds r1, r0, 0 + adds r1, 0x78 + strh r3, [r1] + ldrh r1, [r4, 0x18] + adds r0, 0x7A + strh r1, [r0] +_080512A8: + ldr r0, [r2] + adds r0, 0x70 + ldr r1, _080512B4 @ =0x00001111 + b _080512C4 + .align 2, 0 +_080512B0: .4byte gUnknown_03004854 +_080512B4: .4byte 0x00001111 +_080512B8: + ldr r0, _080512F4 @ =0x00002222 + cmp r1, r0 + bne _080512C6 + ldr r0, _080512F8 @ =gUnknown_03004854 + ldr r0, [r0] + adds r0, 0x70 +_080512C4: + strh r1, [r0] +_080512C6: + bl GetMultiplayerId + lsls r0, 24 + cmp r0, 0 + beq _080512D2 + b _08051404 +_080512D2: + ldr r2, _080512F8 @ =gUnknown_03004854 + ldr r0, [r2] + adds r0, 0x70 + ldrh r1, [r0] + ldr r0, _080512FC @ =0x00001111 + cmp r1, r0 + bne _080512E2 + b _08051404 +_080512E2: + ldr r0, _080512F4 @ =0x00002222 + cmp r1, r0 + bne _080512EA + b _08051404 +_080512EA: + movs r4, 0 + ldr r6, _08051300 @ =0x00002fff + adds r5, r2, 0 + b _0805134E + .align 2, 0 +_080512F4: .4byte 0x00002222 +_080512F8: .4byte gUnknown_03004854 +_080512FC: .4byte 0x00001111 +_08051300: .4byte 0x00002fff +_08051304: + ldr r1, _08051328 @ =gRecvCmds + lsls r2, r4, 1 + adds r0, r2, r1 + ldrh r0, [r0] + cmp r0, r6 + bne _08051348 + adds r0, r1, 0 + adds r0, 0x8 + adds r0, r2, r0 + ldrh r1, [r0] + ldr r0, _0805132C @ =0x00008888 + cmp r1, r0 + beq _08051340 + cmp r1, r0 + bgt _08051334 + ldr r0, _08051330 @ =0x00007779 + b _0805133C + .align 2, 0 +_08051328: .4byte gRecvCmds +_0805132C: .4byte 0x00008888 +_08051330: .4byte 0x00007779 +_08051334: + ldr r0, _08051360 @ =0x00009999 + cmp r1, r0 + beq _08051340 + ldr r0, _08051364 @ =0x0000aaaa +_0805133C: + cmp r1, r0 + bne _08051348 +_08051340: + ldr r0, [r5] + adds r0, 0x70 + adds r0, r2 + strh r1, [r0] +_08051348: + adds r0, r4, 0x1 + lsls r0, 24 + lsrs r4, r0, 24 +_0805134E: + bl GetLinkPlayerCount + lsls r0, 24 + lsrs r0, 24 + cmp r4, r0 + bcc _08051304 + movs r4, 0 + b _0805136E + .align 2, 0 +_08051360: .4byte 0x00009999 +_08051364: .4byte 0x0000aaaa +_08051368: + adds r0, r4, 0x1 + lsls r0, 24 + lsrs r4, r0, 24 +_0805136E: + bl GetLinkPlayerCount + lsls r0, 24 + lsrs r0, 24 + cmp r4, r0 + bcs _0805138A + ldr r0, _0805139C @ =gUnknown_03004854 + ldr r0, [r0] + lsls r1, r4, 1 + adds r0, 0x70 + adds r0, r1 + ldrh r0, [r0] + cmp r0, 0 + bne _08051368 +_0805138A: + bl GetLinkPlayerCount + lsls r0, 24 + lsrs r0, 24 + cmp r4, r0 + bne _08051404 + movs r4, 0 + ldr r5, _080513A0 @ =0x00007779 + b _080513AA + .align 2, 0 +_0805139C: .4byte gUnknown_03004854 +_080513A0: .4byte 0x00007779 +_080513A4: + adds r0, r4, 0x1 + lsls r0, 24 + lsrs r4, r0, 24 +_080513AA: + bl GetLinkPlayerCount + lsls r0, 24 + lsrs r0, 24 + cmp r4, r0 + bcs _080513C6 + ldr r0, _080513E0 @ =gUnknown_03004854 + ldr r0, [r0] + lsls r1, r4, 1 + adds r0, 0x70 + adds r0, r1 + ldrh r0, [r0] + cmp r0, r5 + beq _080513A4 +_080513C6: + ldr r5, _080513E4 @ =gSendCmd + movs r6, 0 + ldr r0, _080513E8 @ =0x00002fff + strh r0, [r5] + bl GetLinkPlayerCount + lsls r0, 24 + lsrs r0, 24 + cmp r4, r0 + bne _080513F0 + ldr r0, _080513EC @ =0x00002222 + strh r0, [r5, 0x2] + b _08051404 + .align 2, 0 +_080513E0: .4byte gUnknown_03004854 +_080513E4: .4byte gSendCmd +_080513E8: .4byte 0x00002fff +_080513EC: .4byte 0x00002222 +_080513F0: + ldr r0, _0805140C @ =0x00001111 + strh r0, [r5, 0x2] + ldr r0, _08051410 @ =gUnknown_03004854 + ldr r0, [r0] + lsls r1, r4, 1 + adds r0, 0x70 + adds r0, r1 + ldrh r0, [r0] + strh r0, [r5, 0x4] + strh r4, [r5, 0x6] +_08051404: + pop {r4-r6} + pop {r0} + bx r0 + .align 2, 0 +_0805140C: .4byte 0x00001111 +_08051410: .4byte gUnknown_03004854 + thumb_func_end sub_805123C + + thumb_func_start sub_8051414 +sub_8051414: @ 8051414 + push {lr} + sub sp, 0x14 + adds r1, r0, 0 + movs r0, 0xF0 + lsls r0, 7 + str r0, [sp] + movs r0, 0xA0 + lsls r0, 7 + str r0, [sp, 0x4] + mov r3, sp + ldr r0, _08051470 @ =gUnknown_03004854 + ldr r0, [r0] + mov r12, r0 + movs r0, 0xA2 + lsls r0, 1 + add r0, r12 + ldrh r2, [r0] + movs r0, 0x78 + subs r0, r2 + strh r0, [r3, 0x8] + movs r0, 0xA3 + lsls r0, 1 + add r0, r12 + ldrh r2, [r0] + movs r0, 0x50 + subs r0, r2 + strh r0, [r3, 0xA] + mov r2, sp + movs r3, 0xA1 + lsls r3, 1 + add r3, r12 + ldrh r0, [r3] + strh r0, [r2, 0xC] + ldrh r0, [r3] + strh r0, [r2, 0xE] + mov r0, r12 + adds r0, 0x54 + ldrh r0, [r0] + strh r0, [r2, 0x10] + mov r0, sp + movs r2, 0x1 + bl BgAffineSet + add sp, 0x14 + pop {r0} + bx r0 + .align 2, 0 +_08051470: .4byte gUnknown_03004854 + thumb_func_end sub_8051414 + + thumb_func_start sub_8051474 +sub_8051474: @ 8051474 + push {lr} + ldr r0, _080514A0 @ =gUnknown_03004854 + ldr r3, [r0] + adds r1, r3, 0 + adds r1, 0x54 + ldrh r2, [r1] + adds r0, r3, 0 + adds r0, 0x58 + strh r2, [r0] + subs r0, 0x2 + ldrh r0, [r0] + ldrh r2, [r1] + adds r0, r2 + strh r0, [r1] + movs r1, 0xB4 + lsls r1, 1 + adds r0, r3, r1 + bl sub_8051414 + pop {r0} + bx r0 + .align 2, 0 +_080514A0: .4byte gUnknown_03004854 + thumb_func_end sub_8051474 + + thumb_func_start sub_80514A4 +sub_80514A4: @ 80514A4 + ldr r1, _080514E8 @ =REG_BG2PA + ldr r0, _080514EC @ =gUnknown_03004854 + ldr r2, [r0] + movs r3, 0xB4 + lsls r3, 1 + adds r0, r2, r3 + ldrh r0, [r0] + strh r0, [r1] + adds r1, 0x2 + adds r3, 0x2 + adds r0, r2, r3 + ldrh r0, [r0] + strh r0, [r1] + adds r1, 0x2 + adds r3, 0x2 + adds r0, r2, r3 + ldrh r0, [r0] + strh r0, [r1] + adds r1, 0x2 + adds r3, 0x2 + adds r0, r2, r3 + ldrh r0, [r0] + strh r0, [r1] + adds r1, 0x2 + adds r3, 0x2 + adds r0, r2, r3 + ldr r0, [r0] + str r0, [r1] + adds r1, 0x4 + adds r3, 0x4 + adds r0, r2, r3 + ldr r0, [r0] + str r0, [r1] + bx lr + .align 2, 0 +_080514E8: .4byte REG_BG2PA +_080514EC: .4byte gUnknown_03004854 + thumb_func_end sub_80514A4 + + thumb_func_start sub_80514F0 +sub_80514F0: @ 80514F0 + ldr r1, _0805151C @ =REG_BG1HOFS + ldr r0, _08051520 @ =gUnknown_03004854 + ldr r3, [r0] + movs r0, 0xA2 + lsls r0, 1 + adds r2, r3, r0 + ldrh r0, [r2] + strh r0, [r1] + adds r1, 0x2 + movs r0, 0xA3 + lsls r0, 1 + adds r3, r0 + ldrh r0, [r3] + strh r0, [r1] + subs r1, 0x6 + ldrh r0, [r2] + strh r0, [r1] + adds r1, 0x2 + ldrh r0, [r3] + strh r0, [r1] + bx lr + .align 2, 0 +_0805151C: .4byte REG_BG1HOFS +_08051520: .4byte gUnknown_03004854 + thumb_func_end sub_80514F0 + + thumb_func_start sub_8051524 +sub_8051524: @ 8051524 + push {lr} + adds r2, r0, 0 + ldrh r0, [r2, 0x2E] + ldrh r1, [r2, 0x32] + adds r0, r1 + strh r0, [r2, 0x32] + ldrh r0, [r2, 0x30] + ldrh r1, [r2, 0x34] + adds r0, r1 + strh r0, [r2, 0x34] + movs r1, 0x32 + ldrsh r0, [r2, r1] + cmp r0, 0 + bge _08051542 + adds r0, 0x7 +_08051542: + asrs r0, 3 + strh r0, [r2, 0x24] + movs r1, 0x34 + ldrsh r0, [r2, r1] + cmp r0, 0 + bge _08051550 + adds r0, 0x7 +_08051550: + asrs r0, 3 + strh r0, [r2, 0x26] + adds r0, r2, 0 + adds r0, 0x3F + ldrb r1, [r0] + movs r0, 0x10 + ands r0, r1 + cmp r0, 0 + beq _08051568 + adds r0, r2, 0 + bl DestroySprite +_08051568: + pop {r0} + bx r0 + thumb_func_end sub_8051524 + + thumb_func_start sub_805156C +sub_805156C: @ 805156C + push {r4-r7,lr} + mov r7, r10 + mov r6, r9 + mov r5, r8 + push {r5-r7} + bl Random + lsls r0, 16 + lsrs r1, r0, 16 + movs r0, 0x1 + ands r1, r0 + adds r0, r1, 0x1 + cmp r0, 0 + beq _08051628 + ldr r0, _08051638 @ =gSineTable + mov r9, r0 + ldr r2, _0805163C @ =gSprites + mov r10, r2 + adds r6, r1, 0x1 + movs r3, 0x1F + mov r8, r3 + movs r7, 0x10 +_08051598: + bl Random + ldr r1, _08051640 @ =gUnknown_03004854 + ldr r4, [r1] + adds r4, 0x54 + lsls r0, 16 + lsrs r0, 16 + movs r1, 0x14 + bl __umodsi3 + ldrh r1, [r4] + adds r1, r0 + lsls r1, 16 + movs r0, 0xFF + lsls r0, 16 + ands r0, r1 + lsrs r2, r0, 16 + adds r0, r2, 0 + adds r0, 0x40 + lsls r0, 1 + add r0, r9 + movs r3, 0 + ldrsh r1, [r0, r3] + cmp r1, 0 + bge _080515CC + adds r1, 0x3 +_080515CC: + asrs r1, 2 + lsls r0, r2, 1 + add r0, r9 + movs r2, 0 + ldrsh r0, [r0, r2] + cmp r0, 0 + bge _080515DC + adds r0, 0x3 +_080515DC: + asrs r2, r0, 2 + adds r1, 0x78 + adds r2, 0x50 + ldr r0, _08051644 @ =gSpriteTemplate_82164FC + movs r3, 0x1 + bl CreateSprite + adds r4, r0, 0 + lsls r4, 24 + lsrs r4, 24 + bl Random + lsls r5, r4, 4 + adds r5, r4 + lsls r5, 2 + mov r3, r10 + adds r4, r5, r3 + lsls r0, 16 + lsrs r0, 16 + mov r1, r8 + ands r0, r1 + subs r0, r7, r0 + strh r0, [r4, 0x2E] + bl Random + lsls r0, 16 + lsrs r0, 16 + mov r2, r8 + ands r0, r2 + subs r0, r7, r0 + strh r0, [r4, 0x30] + ldr r3, _08051648 @ =gSprites + 0x1C + adds r5, r3 + ldr r0, _0805164C @ =sub_8051524 + str r0, [r5] + subs r6, 0x1 + cmp r6, 0 + bne _08051598 +_08051628: + pop {r3-r5} + mov r8, r3 + mov r9, r4 + mov r10, r5 + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_08051638: .4byte gSineTable +_0805163C: .4byte gSprites +_08051640: .4byte gUnknown_03004854 +_08051644: .4byte gSpriteTemplate_82164FC +_08051648: .4byte gSprites + 0x1C +_0805164C: .4byte sub_8051524 + thumb_func_end sub_805156C + + thumb_func_start sub_8051650 +sub_8051650: @ 8051650 + push {r4,lr} + adds r4, r0, 0 + ldrh r0, [r4, 0x2E] + adds r0, 0x1 + strh r0, [r4, 0x2E] + movs r1, 0x2E + ldrsh r0, [r4, r1] + movs r1, 0x3 + bl __divsi3 + negs r0, r0 + strh r0, [r4, 0x26] + adds r0, r4, 0 + adds r0, 0x3F + ldrb r1, [r0] + movs r0, 0x10 + ands r0, r1 + cmp r0, 0 + beq _0805167C + adds r0, r4, 0 + bl DestroySprite +_0805167C: + pop {r4} + pop {r0} + bx r0 + thumb_func_end sub_8051650 + + thumb_func_start sub_8051684 +sub_8051684: @ 8051684 + push {lr} + adds r2, r0, 0 + ldrh r0, [r2, 0x2E] + adds r0, 0x1 + strh r0, [r2, 0x2E] + movs r1, 0x2E + ldrsh r0, [r2, r1] + lsls r0, 1 + negs r0, r0 + strh r0, [r2, 0x26] + lsls r0, 16 + asrs r0, 16 + movs r1, 0xC + negs r1, r1 + cmp r0, r1 + bge _080516A8 + ldr r0, _080516C0 @ =0x0000fff4 + strh r0, [r2, 0x26] +_080516A8: + adds r0, r2, 0 + adds r0, 0x3F + ldrb r1, [r0] + movs r0, 0x10 + ands r0, r1 + cmp r0, 0 + beq _080516BC + adds r0, r2, 0 + bl DestroySprite +_080516BC: + pop {r0} + bx r0 + .align 2, 0 +_080516C0: .4byte 0x0000fff4 + thumb_func_end sub_8051684 + + thumb_func_start sub_80516C4 +sub_80516C4: @ 80516C4 + push {r4,lr} + lsls r0, 24 + lsrs r0, 24 + lsls r1, 16 + lsrs r1, 16 + ldr r2, _080516F4 @ =gUnknown_03004854 + ldr r3, [r2] + lsls r4, r0, 1 + adds r2, r3, 0 + adds r2, 0x80 + adds r2, r4 + strh r1, [r2] + lsls r0, 4 + movs r2, 0xBE + lsls r2, 1 + adds r0, r2 + adds r3, r0 + adds r0, r3, 0 + bl sub_804E844 + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_080516F4: .4byte gUnknown_03004854 + thumb_func_end sub_80516C4 + + thumb_func_start unref_sub_80516F8 +unref_sub_80516F8: @ 80516F8 + push {r4-r6,lr} + sub sp, 0x4 + lsls r0, 24 + lsrs r0, 24 + adds r5, r0, 0 + lsls r0, r5, 2 + adds r0, r5 + lsls r0, 3 + ldr r1, _080517B8 @ =gTasks + adds r4, r0, r1 + ldr r6, _080517BC @ =gReceivedRemoteLinkPlayers + ldrb r0, [r6] + cmp r0, 0 + beq _0805180C + bl GetMultiplayerId + lsls r0, 24 + lsrs r1, r0, 24 + cmp r1, 0 + bne _080517D4 + ldrh r0, [r4, 0x8] + adds r0, 0x1 + strh r0, [r4, 0x8] + lsls r0, 16 + asrs r0, 16 + cmp r0, 0x78 + ble _08051730 + strh r1, [r4, 0x8] +_08051730: + movs r1, 0x8 + ldrsh r0, [r4, r1] + cmp r0, 0x64 + bne _080517A0 + ldr r0, _080517C0 @ =gUnknown_03004854 + ldr r0, [r0] + adds r0, 0x4 + movs r1, 0x14 + str r1, [sp] + movs r1, 0 + movs r2, 0 + movs r3, 0x10 + bl ZeroFillWindowRect + movs r0, 0x4 + movs r1, 0x4 + movs r2, 0xA + movs r3, 0xC + bl MenuDrawTextWindow + movs r2, 0 + ldr r6, _080517C4 @ =gLinkPlayers + 0x4 +_0805175C: + adds r4, r2, 0x1 + lsls r0, r4, 3 + subs r0, r4 + lsls r0, 2 + adds r0, r6 + ldr r0, [r0] + cmp r0, 0 + beq _08051784 + ldr r1, _080517C8 @ =gUnknown_08216284 + lsls r0, r2, 2 + adds r0, r1 + ldr r0, [r0] + lsls r2, 25 + movs r1, 0xA0 + lsls r1, 19 + adds r2, r1 + lsrs r2, 24 + movs r1, 0x5 + bl MenuPrint +_08051784: + movs r0, 0 + movs r1, 0xD + movs r2, 0x1D + movs r3, 0x13 + bl MenuDrawTextWindow + ldr r0, _080517CC @ =gOtherText_PressAToStart + movs r1, 0x1 + movs r2, 0xF + bl MenuPrint + adds r2, r4, 0 + cmp r2, 0x2 + ble _0805175C +_080517A0: + ldr r0, _080517D0 @ =gMain + ldrh r1, [r0, 0x2E] + movs r0, 0x1 + ands r0, r1 + cmp r0, 0 + beq _0805180C + bl sub_8007E4C + adds r0, r5, 0 + bl DestroyTask + b _0805180C + .align 2, 0 +_080517B8: .4byte gTasks +_080517BC: .4byte gReceivedRemoteLinkPlayers +_080517C0: .4byte gUnknown_03004854 +_080517C4: .4byte gLinkPlayers + 0x4 +_080517C8: .4byte gUnknown_08216284 +_080517CC: .4byte gOtherText_PressAToStart +_080517D0: .4byte gMain +_080517D4: + movs r1, 0x8 + ldrsh r0, [r4, r1] + cmp r0, 0xA + bne _080517E6 + ldr r0, _08051814 @ =gOtherText_PleaseWait + movs r1, 0x3 + movs r2, 0xA + bl MenuPrint +_080517E6: + ldrh r0, [r4, 0x8] + adds r0, 0x1 + strh r0, [r4, 0x8] + lsls r0, 16 + asrs r0, 16 + cmp r0, 0x78 + ble _080517F8 + movs r0, 0 + strh r0, [r4, 0x8] +_080517F8: + ldr r0, _08051818 @ =byte_3002A68 + ldrb r0, [r0] + cmp r0, 0x4 + bls _0805180C + ldrb r0, [r6] + cmp r0, 0x1 + bne _0805180C + adds r0, r5, 0 + bl DestroyTask +_0805180C: + add sp, 0x4 + pop {r4-r6} + pop {r0} + bx r0 + .align 2, 0 +_08051814: .4byte gOtherText_PleaseWait +_08051818: .4byte byte_3002A68 + thumb_func_end unref_sub_80516F8 + + thumb_func_start sub_805181C +sub_805181C: @ 805181C + push {r4,lr} + adds r4, r0, 0 + movs r1, 0x2E + ldrsh r0, [r4, r1] + cmp r0, 0x1 + beq _08051858 + cmp r0, 0x1 + bgt _08051832 + cmp r0, 0 + beq _08051838 + b _080518BE +_08051832: + cmp r0, 0x2 + beq _08051872 + b _080518BE +_08051838: + ldrh r0, [r4, 0x30] + adds r0, 0x8 + strh r0, [r4, 0x30] + lsls r0, 16 + asrs r0, 16 + cmp r0, 0x58 + ble _080518BE + movs r0, 0x58 + strh r0, [r4, 0x30] + ldrh r0, [r4, 0x2E] + adds r0, 0x1 + strh r0, [r4, 0x2E] + movs r0, 0x38 + bl PlaySE + b _080518BE +_08051858: + ldrh r0, [r4, 0x32] + adds r0, 0x1 + strh r0, [r4, 0x32] + lsls r0, 16 + asrs r0, 16 + cmp r0, 0x14 + ble _080518BE + ldrh r0, [r4, 0x2E] + adds r0, 0x1 + strh r0, [r4, 0x2E] + movs r0, 0 + strh r0, [r4, 0x32] + b _080518BE +_08051872: + ldrh r0, [r4, 0x30] + adds r0, 0x4 + strh r0, [r4, 0x30] + lsls r0, 16 + asrs r0, 16 + cmp r0, 0xB0 + ble _080518BE + ldrh r0, [r4, 0x34] + adds r0, 0x1 + adds r1, r0, 0 + strh r0, [r4, 0x34] + lsls r0, 16 + asrs r0, 16 + cmp r0, 0x3 + bne _080518AC + adds r0, r4, 0 + bl DestroySprite + ldr r0, _080518A8 @ =gSpriteTemplate_821657C + movs r2, 0x14 + negs r2, r2 + movs r1, 0x78 + movs r3, 0x2 + bl CreateSprite + b _080518BE + .align 2, 0 +_080518A8: .4byte gSpriteTemplate_821657C +_080518AC: + movs r0, 0 + strh r0, [r4, 0x2E] + ldr r0, _080518C8 @ =0x0000fff0 + strh r0, [r4, 0x30] + lsls r1, 24 + lsrs r1, 24 + adds r0, r4, 0 + bl StartSpriteAnim +_080518BE: + ldrh r0, [r4, 0x30] + strh r0, [r4, 0x26] + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_080518C8: .4byte 0x0000fff0 + thumb_func_end sub_805181C + + thumb_func_start sub_80518CC +sub_80518CC: @ 80518CC + push {r4,lr} + adds r4, r0, 0 + movs r1, 0x2E + ldrsh r0, [r4, r1] + cmp r0, 0x1 + beq _08051908 + cmp r0, 0x1 + bgt _080518E2 + cmp r0, 0 + beq _080518E8 + b _0805193C +_080518E2: + cmp r0, 0x2 + beq _0805191E + b _0805193C +_080518E8: + ldrh r0, [r4, 0x30] + adds r0, 0x8 + strh r0, [r4, 0x30] + lsls r0, 16 + asrs r0, 16 + cmp r0, 0x5C + ble _0805193C + movs r0, 0x5C + strh r0, [r4, 0x30] + ldrh r0, [r4, 0x2E] + adds r0, 0x1 + strh r0, [r4, 0x2E] + movs r0, 0x15 + bl PlaySE + b _0805193C +_08051908: + ldrh r0, [r4, 0x32] + adds r0, 0x1 + strh r0, [r4, 0x32] + lsls r0, 16 + asrs r0, 16 + cmp r0, 0x14 + ble _0805193C + ldrh r0, [r4, 0x2E] + adds r0, 0x1 + strh r0, [r4, 0x2E] + b _0805193C +_0805191E: + ldrh r0, [r4, 0x30] + adds r0, 0x4 + strh r0, [r4, 0x30] + lsls r0, 16 + asrs r0, 16 + cmp r0, 0xB0 + ble _0805193C + ldr r0, _08051948 @ =gUnknown_03004854 + ldr r1, [r0] + ldrb r0, [r1] + adds r0, 0x1 + strb r0, [r1] + adds r0, r4, 0 + bl DestroySprite +_0805193C: + ldrh r0, [r4, 0x30] + strh r0, [r4, 0x26] + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_08051948: .4byte gUnknown_03004854 + thumb_func_end sub_80518CC + + thumb_func_start sub_805194C +sub_805194C: @ 805194C + push {lr} + lsls r0, 16 + lsrs r0, 16 + lsls r1, 16 + lsrs r3, r1, 16 + ldr r1, _08051978 @ =gUnknown_03004854 + ldr r1, [r1] + movs r2, 0xA0 + lsls r2, 1 + adds r1, r2 + ldrh r2, [r1] + cmp r2, r0 + bcs _08051972 + adds r0, r2, 0x2 + strh r0, [r1] + ldrh r0, [r1] + adds r1, r3, 0 + bl sub_805197C +_08051972: + pop {r0} + bx r0 + .align 2, 0 +_08051978: .4byte gUnknown_03004854 + thumb_func_end sub_805194C + + thumb_func_start sub_805197C +sub_805197C: @ 805197C + push {r4-r7,lr} + lsls r0, 16 + lsls r1, 16 + lsrs r1, 16 + ldr r7, _08051A0C @ =0x06006000 + lsrs r0, 10 + bl __divsi3 + adds r1, r0, 0 + cmp r1, 0 + bge _08051994 + adds r0, r1, 0x7 +_08051994: + asrs r4, r0, 3 + movs r3, 0 + cmp r3, r4 + bge _080519BC + ldr r0, _08051A10 @ =0x000081e9 + adds r6, r0, 0 + adds r0, 0x10 + adds r5, r0, 0 + adds r2, r7, 0 + adds r2, 0x56 + adds r0, r7, 0 + adds r3, r4, 0 +_080519AC: + strh r6, [r0, 0x16] + strh r5, [r2] + adds r2, 0x2 + adds r0, 0x2 + subs r3, 0x1 + cmp r3, 0 + bne _080519AC + adds r3, r4, 0 +_080519BC: + adds r0, r1, 0 + cmp r1, 0 + bge _080519C4 + adds r0, r1, 0x7 +_080519C4: + asrs r2, r0, 3 + lsls r0, r2, 3 + subs r2, r1, r0 + cmp r2, 0 + beq _080519E2 + lsls r0, r3, 1 + adds r0, r7 + ldr r4, _08051A14 @ =0xffff81e1 + adds r1, r2, r4 + strh r1, [r0, 0x16] + adds r0, 0x56 + adds r4, 0x10 + adds r1, r2, r4 + strh r1, [r0] + adds r3, 0x1 +_080519E2: + cmp r3, 0x7 + bgt _08051A06 + ldr r0, _08051A18 @ =0x000081e1 + adds r4, r0, 0 + adds r0, 0x10 + adds r2, r0, 0 + lsls r1, r3, 1 + adds r0, r1, 0 + adds r0, 0x56 + adds r0, r7 + adds r1, r7 +_080519F8: + strh r4, [r1, 0x16] + strh r2, [r0] + adds r0, 0x2 + adds r1, 0x2 + adds r3, 0x1 + cmp r3, 0x7 + ble _080519F8 +_08051A06: + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_08051A0C: .4byte 0x06006000 +_08051A10: .4byte 0x000081e9 +_08051A14: .4byte 0xffff81e1 +_08051A18: .4byte 0x000081e1 + thumb_func_end sub_805197C + + thumb_func_start sub_8051A1C +sub_8051A1C: @ 8051A1C + push {lr} + lsls r0, 16 + lsrs r0, 16 + ldr r1, _08051A34 @ =0x00057e40 + muls r0, r1 + cmp r0, 0 + bge _08051A2E + ldr r1, _08051A38 @ =0x0000ffff + adds r0, r1 +_08051A2E: + asrs r0, 16 + pop {r1} + bx r1 + .align 2, 0 +_08051A34: .4byte 0x00057e40 +_08051A38: .4byte 0x0000ffff + thumb_func_end sub_8051A1C + + thumb_func_start sub_8051A3C +sub_8051A3C: @ 8051A3C + push {r4-r6,lr} + sub sp, 0x8 + lsls r0, 16 + lsrs r0, 16 + bl sub_8051A1C + adds r5, r0, 0 + ldr r0, _08051ABC @ =gUnknown_03004854 + ldr r0, [r0] + adds r1, r0, 0 + adds r1, 0x5A + ldrh r0, [r1] + cmp r0, r5 + bcs _08051A5A + strh r5, [r1] +_08051A5A: + movs r6, 0 +_08051A5C: + mov r0, sp + adds r4, r0, r6 + adds r0, r5, 0 + movs r1, 0xA + bl __umodsi3 + strb r0, [r4] + adds r0, r5, 0 + movs r1, 0xA + bl __udivsi3 + adds r5, r0, 0 + adds r0, r6, 0x1 + lsls r0, 24 + lsrs r6, r0, 24 + cmp r6, 0x4 + bls _08051A5C + ldr r2, _08051AC0 @ =0x06006458 + mov r0, sp + ldr r3, _08051AC4 @ =0x00008172 + adds r1, r3, 0 + ldrb r0, [r0, 0x4] + adds r0, r1, r0 + strh r0, [r2] + adds r2, 0x2 + mov r0, sp + ldrb r0, [r0, 0x3] + adds r0, r1 + strh r0, [r2] + adds r2, 0x2 + mov r0, sp + ldrb r0, [r0, 0x2] + adds r0, r1 + strh r0, [r2] + adds r2, 0x4 + mov r0, sp + ldrb r0, [r0, 0x1] + adds r0, r1 + strh r0, [r2] + adds r2, 0x2 + mov r0, sp + ldrb r0, [r0] + adds r1, r0 + strh r1, [r2] + add sp, 0x8 + pop {r4-r6} + pop {r0} + bx r0 + .align 2, 0 +_08051ABC: .4byte gUnknown_03004854 +_08051AC0: .4byte 0x06006458 +_08051AC4: .4byte 0x00008172 + thumb_func_end sub_8051A3C + + thumb_func_start sub_8051AC8 +sub_8051AC8: @ 8051AC8 + push {r4-r6,lr} + adds r6, r0, 0 + lsls r4, r1, 16 + lsrs r5, r4, 16 + movs r1, 0 + ldrsh r0, [r6, r1] + cmp r0, 0 + bne _08051AEC + bl Random + lsls r0, 16 + lsrs r0, 16 + adds r1, r5, 0 + bl __umodsi3 + lsrs r1, r4, 17 + subs r0, r1 + strh r0, [r6] +_08051AEC: + pop {r4-r6} + pop {r0} + bx r0 + thumb_func_end sub_8051AC8 + + thumb_func_start sub_8051AF4 +sub_8051AF4: @ 8051AF4 + push {lr} + adds r1, r0, 0 + ldrh r2, [r1] + movs r3, 0 + ldrsh r0, [r1, r3] + cmp r0, 0 + bge _08051B06 + adds r0, r2, 0x1 + strh r0, [r1] +_08051B06: + ldrh r2, [r1] + movs r3, 0 + ldrsh r0, [r1, r3] + cmp r0, 0 + ble _08051B14 + subs r0, r2, 0x1 + strh r0, [r1] +_08051B14: + pop {r0} + bx r0 + thumb_func_end sub_8051AF4 + + thumb_func_start sub_8051B18 +sub_8051B18: @ 8051B18 + push {r4,lr} + ldr r4, _08051B3C @ =gUnknown_03004854 + ldr r0, [r4] + movs r1, 0xA2 + lsls r1, 1 + adds r0, r1 + bl sub_8051AF4 + ldr r0, [r4] + movs r1, 0xA3 + lsls r1, 1 + adds r0, r1 + bl sub_8051AF4 + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_08051B3C: .4byte gUnknown_03004854 + thumb_func_end sub_8051B18 + + thumb_func_start sub_8051B40 +sub_8051B40: @ 8051B40 + push {r4,r5,lr} + adds r4, r0, 0 + lsls r1, 16 + lsrs r1, 16 + movs r5, 0x8 + cmp r1, 0x9 + bhi _08051B50 + movs r5, 0x10 +_08051B50: + ldrh r0, [r4] + movs r2, 0 + ldrsh r1, [r4, r2] + cmp r1, 0 + bne _08051B6E + bl Random + lsls r0, 16 + lsrs r0, 16 + adds r1, r5, 0 + bl __modsi3 + lsrs r1, r5, 1 + subs r0, r1 + b _08051B82 +_08051B6E: + cmp r1, 0 + bge _08051B76 + adds r0, 0x1 + strh r0, [r4] +_08051B76: + ldrh r1, [r4] + movs r2, 0 + ldrsh r0, [r4, r2] + cmp r0, 0 + ble _08051B84 + subs r0, r1, 0x1 +_08051B82: + strh r0, [r4] +_08051B84: + pop {r4,r5} + pop {r0} + bx r0 + thumb_func_end sub_8051B40 + + thumb_func_start sub_8051B8C +sub_8051B8C: @ 8051B8C + push {r4,r5,lr} + ldr r5, _08051BE4 @ =gUnknown_03004854 + ldr r2, [r5] + movs r4, 0x98 + lsls r4, 1 + adds r0, r2, r4 + ldr r1, [r0] + cmp r1, 0 + bne _08051BAC + movs r3, 0xA2 + lsls r3, 1 + adds r0, r2, r3 + strh r1, [r0] + adds r3, 0x2 + adds r0, r2, r3 + strh r1, [r0] +_08051BAC: + ldr r0, [r5] + adds r2, r0, r4 + ldr r1, [r2] + adds r1, 0x1 + str r1, [r2] + movs r2, 0xA2 + lsls r2, 1 + adds r0, r2 + lsls r1, 16 + lsrs r1, 16 + bl sub_8051B40 + ldr r1, [r5] + movs r3, 0xA3 + lsls r3, 1 + adds r0, r1, r3 + adds r1, r4 + ldrh r1, [r1] + bl sub_8051B40 + ldr r2, [r5] + adds r0, r2, r4 + ldr r0, [r0] + cmp r0, 0x14 + beq _08051BE8 + movs r0, 0 + b _08051BFC + .align 2, 0 +_08051BE4: .4byte gUnknown_03004854 +_08051BE8: + movs r1, 0xA2 + lsls r1, 1 + adds r0, r2, r1 + movs r1, 0 + strh r1, [r0] + movs r3, 0xA3 + lsls r3, 1 + adds r0, r2, r3 + strh r1, [r0] + movs r0, 0x1 +_08051BFC: + pop {r4,r5} + pop {r1} + bx r1 + thumb_func_end sub_8051B8C + + thumb_func_start sub_8051C04 +sub_8051C04: @ 8051C04 + ldr r1, _08051C20 @ =gUnknown_03004854 + ldr r2, [r1] + movs r3, 0xA2 + lsls r3, 1 + adds r1, r2, r3 + ldrh r1, [r1] + negs r1, r1 + strh r1, [r0, 0x24] + adds r3, 0x2 + adds r1, r2, r3 + ldrh r1, [r1] + negs r1, r1 + strh r1, [r0, 0x26] + bx lr + .align 2, 0 +_08051C20: .4byte gUnknown_03004854 + thumb_func_end sub_8051C04 + + thumb_func_start sub_8051C24 +sub_8051C24: @ 8051C24 + push {lr} + ldr r2, _08051C4C @ =gSaveBlock1 + ldr r0, _08051C50 @ =gUnknown_03004854 + ldr r1, [r0] + adds r0, r1, 0 + adds r0, 0x88 + ldrb r0, [r0] + subs r0, 0x2 + lsls r0, 1 + ldr r3, _08051C54 @ =0x0000096c + adds r2, r3 + adds r2, r0, r2 + adds r1, 0x5A + ldrh r1, [r1] + ldrh r0, [r2] + cmp r0, r1 + bcs _08051C48 + strh r1, [r2] +_08051C48: + pop {r0} + bx r0 + .align 2, 0 +_08051C4C: .4byte gSaveBlock1 +_08051C50: .4byte gUnknown_03004854 +_08051C54: .4byte 0x0000096c + thumb_func_end sub_8051C24 + + thumb_func_start sub_8051C58 +sub_8051C58: @ 8051C58 + push {r4-r7,lr} + mov r7, r10 + mov r6, r9 + mov r5, r8 + push {r5-r7} + sub sp, 0x34 + ldr r1, _08051C7C @ =gUnknown_03004854 + ldr r0, [r1] + ldrb r0, [r0] + adds r2, r1, 0 + cmp r0, 0x6 + bls _08051C72 + b _08052006 +_08051C72: + lsls r0, 2 + ldr r1, _08051C80 @ =_08051C84 + adds r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_08051C7C: .4byte gUnknown_03004854 +_08051C80: .4byte _08051C84 + .align 2, 0 +_08051C84: + .4byte _08051CA0 + .4byte _08051CB6 + .4byte _08051CD0 + .4byte _08051D20 + .4byte _08051F40 + .4byte _08051F54 + .4byte _08051FF4 +_08051CA0: + ldr r1, [r2] + ldrb r0, [r1] + adds r0, 0x1 + strb r0, [r1] + ldr r0, [r2] + movs r1, 0x98 + lsls r1, 1 + adds r0, r1 + movs r1, 0x11 + str r1, [r0] + b _08052006 +_08051CB6: + ldr r1, [r2] + movs r0, 0x98 + lsls r0, 1 + adds r2, r1, r0 + ldr r0, [r2] + subs r0, 0xA + str r0, [r2] + cmp r0, 0 + blt _08051CCA + b _08052006 +_08051CCA: + movs r0, 0 + str r0, [r2] + b _08051FDE +_08051CD0: + ldr r1, [r2] + movs r2, 0x98 + lsls r2, 1 + adds r1, r2 + ldr r0, [r1] + adds r0, 0x1 + str r0, [r1] + cmp r0, 0x14 + bgt _08051CE4 + b _08052006 +_08051CE4: + movs r6, 0 +_08051CE6: + ldr r4, _08051D18 @ =gUnknown_03004854 + ldr r0, [r4] + adds r0, 0x50 + adds r0, r6 + ldrb r1, [r0] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + ldr r1, _08051D1C @ =gSprites + adds r0, r1 + bl DestroySprite + adds r0, r6, 0x1 + lsls r0, 16 + lsrs r6, r0, 16 + cmp r6, 0x2 + bls _08051CE6 + ldr r1, [r4] + movs r0, 0x98 + lsls r0, 1 + adds r2, r1, r0 + movs r0, 0 + str r0, [r2] + b _08051FDE + .align 2, 0 +_08051D18: .4byte gUnknown_03004854 +_08051D1C: .4byte gSprites +_08051D20: + movs r0, 0x4 + movs r1, 0x2 + movs r2, 0x19 + movs r3, 0x11 + bl MenuDrawTextWindow + ldr r0, _08051F10 @ =gOtherText_ResultsOfBlending + movs r1, 0x5 + movs r2, 0x3 + movs r3, 0xA0 + bl sub_8072BD8 + movs r6, 0 + ldr r1, _08051F14 @ =gUnknown_03004854 + ldr r0, [r1] + adds r0, 0x88 + add r2, sp, 0xC + mov r9, r2 + mov r2, sp + adds r2, 0x16 + str r2, [sp, 0x30] + ldrb r0, [r0] + cmp r6, r0 + bcs _08051E04 + mov r8, r1 + ldr r0, _08051F18 @ =gLinkPlayers + mov r10, r0 +_08051D56: + mov r1, r8 + ldr r2, [r1] + movs r1, 0xB2 + lsls r1, 1 + adds r0, r2, r1 + adds r0, r6 + ldrb r5, [r0] + mov r7, r9 + lsls r1, r5, 4 + adds r1, r2 + movs r2, 0xBF + lsls r2, 1 + adds r1, r2 + adds r0, r7, 0 + bl StringCopy + lsls r4, r5, 3 + subs r4, r5 + lsls r4, 2 + mov r1, r10 + adds r0, r4, r1 + ldrb r1, [r0, 0x1A] + adds r0, r7, 0 + bl ConvertInternationalString + adds r0, r7, 0 + ldr r1, _08051F1C @ =gOtherText_Berry + bl de_sub_8073174 + mov r2, r8 + ldr r0, [r2] + adds r7, r0, 0 + adds r7, 0xAB + adds r5, r6, 0x1 + adds r0, r7, 0 + adds r1, r5, 0 + bl ConvertIntToDecimalString + adds r7, r0, 0 + movs r1, 0 + strb r1, [r7] + movs r0, 0xAD + strb r0, [r7, 0x1] + strb r1, [r7, 0x2] + adds r7, 0x3 + ldr r0, _08051F20 @ =gLinkPlayers + 0x8 + adds r4, r0 + adds r0, r7, 0 + adds r1, r4, 0 + movs r2, 0x58 + movs r3, 0 + bl sub_8072C74 + adds r7, r0, 0 + add r1, sp, 0xC + movs r2, 0x9D + movs r3, 0 + bl sub_8072C74 + mov r2, r8 + ldr r1, [r2] + adds r0, r1, 0 + adds r0, 0xAB + ldr r3, _08051F24 @ =gUnknown_082165E9 + adds r1, 0x88 + ldrb r2, [r1] + adds r3, r2, r3 + ldr r1, _08051F28 @ =gUnknown_082165EE + adds r2, r1 + ldrb r1, [r2] + adds r2, r6, 0 + muls r2, r1 + ldrb r3, [r3] + adds r2, r3 + lsls r2, 24 + lsrs r2, 24 + movs r1, 0x5 + bl MenuPrint + lsls r5, 16 + lsrs r6, r5, 16 + mov r1, r8 + ldr r0, [r1] + adds r0, 0x88 + ldrb r0, [r0] + cmp r6, r0 + bcc _08051D56 +_08051E04: + ldr r6, _08051F14 @ =gUnknown_03004854 + ldr r0, [r6] + adds r0, 0x5A + ldrh r0, [r0] + movs r1, 0x64 + bl __umodsi3 + adds r1, r0, 0 + lsls r1, 16 + lsrs r1, 16 + mov r0, r9 + movs r2, 0x2 + movs r3, 0x2 + bl ConvertIntToDecimalStringN + ldr r0, [r6] + adds r7, r0, 0 + adds r7, 0xAB + ldr r1, _08051F2C @ =gOtherText_MaxSpeed + adds r0, r7, 0 + bl StringCopy + adds r7, r0, 0 + ldr r0, [r6] + adds r0, 0x5A + ldrh r0, [r0] + movs r1, 0x64 + bl __udivsi3 + adds r1, r0, 0 + lsls r1, 16 + lsrs r1, 16 + adds r0, r7, 0 + movs r2, 0x79 + movs r3, 0x1 + bl sub_8072C14 + adds r7, r0, 0 + movs r0, 0xB8 + strb r0, [r7] + adds r7, 0x1 + adds r0, r7, 0 + mov r1, r9 + movs r2, 0x88 + movs r3, 0x1 + bl sub_8072C74 + adds r7, r0, 0 + ldr r1, _08051F30 @ =gOtherText_RPM + bl StringCopy + ldr r0, [r6] + adds r0, 0xAB + movs r1, 0x5 + movs r2, 0xD + bl MenuPrint + ldr r0, [r6] + movs r2, 0x96 + lsls r2, 1 + adds r0, r2 + ldr r0, [r0] + movs r1, 0x3C + bl __udivsi3 + adds r4, r0, 0 + lsls r4, 16 + lsrs r4, 16 + adds r0, r4, 0 + movs r1, 0x3C + bl __umodsi3 + adds r5, r0, 0 + lsls r5, 16 + lsrs r5, 16 + adds r0, r4, 0 + movs r1, 0x3C + bl __udivsi3 + adds r1, r0, 0 + lsls r1, 16 + lsrs r1, 16 + mov r0, r9 + movs r2, 0x2 + movs r3, 0x2 + bl ConvertIntToDecimalStringN + ldr r0, [sp, 0x30] + adds r1, r5, 0 + movs r2, 0x2 + movs r3, 0x2 + bl ConvertIntToDecimalStringN + ldr r0, [r6] + adds r7, r0, 0 + adds r7, 0xAB + ldr r1, _08051F34 @ =gOtherText_RequiredTime + adds r0, r7, 0 + bl StringCopy + adds r7, r0, 0 + mov r1, r9 + movs r2, 0x63 + movs r3, 0x1 + bl sub_8072C74 + adds r7, r0, 0 + ldr r1, _08051F38 @ =gOtherText_Min + bl StringAppend + adds r7, r0, 0 + ldr r1, [sp, 0x30] + movs r2, 0x88 + movs r3, 0x1 + bl sub_8072C74 + adds r7, r0, 0 + ldr r1, _08051F3C @ =gOtherText_Sec + bl StringCopy + ldr r0, [r6] + adds r0, 0xAB + movs r1, 0x5 + movs r2, 0xF + bl MenuPrint + ldr r1, [r6] + movs r0, 0x98 + lsls r0, 1 + adds r2, r1, r0 + movs r0, 0 + str r0, [r2] + b _08051FDE + .align 2, 0 +_08051F10: .4byte gOtherText_ResultsOfBlending +_08051F14: .4byte gUnknown_03004854 +_08051F18: .4byte gLinkPlayers +_08051F1C: .4byte gOtherText_Berry +_08051F20: .4byte gLinkPlayers + 0x8 +_08051F24: .4byte gUnknown_082165E9 +_08051F28: .4byte gUnknown_082165EE +_08051F2C: .4byte gOtherText_MaxSpeed +_08051F30: .4byte gOtherText_RPM +_08051F34: .4byte gOtherText_RequiredTime +_08051F38: .4byte gOtherText_Min +_08051F3C: .4byte gOtherText_Sec +_08051F40: + ldr r0, _08051F50 @ =gMain + ldrh r1, [r0, 0x2E] + movs r0, 0x1 + ands r0, r1 + cmp r0, 0 + beq _08052006 + ldr r1, [r2] + b _08051FDE + .align 2, 0 +_08051F50: .4byte gMain +_08051F54: + bl MenuZeroFillScreen + movs r0, 0 + movs r1, 0xE + movs r2, 0x1D + movs r3, 0x13 + bl MenuDrawTextWindow + movs r6, 0 + add r5, sp, 0x28 + ldr r0, _08051FE8 @ =gUnknown_03004854 + ldr r0, [r0] + adds r3, r0, 0 + adds r3, 0x80 + add r2, sp, 0x20 +_08051F72: + lsls r1, r6, 1 + adds r0, r3, r1 + ldrh r0, [r0] + cmp r0, 0 + beq _08051F82 + adds r1, r2, r1 + subs r0, 0x85 + strh r0, [r1] +_08051F82: + adds r0, r6, 0x1 + lsls r0, 16 + lsrs r6, r0, 16 + cmp r6, 0x3 + bls _08051F72 + bl sub_8050760 + ldr r4, _08051FE8 @ =gUnknown_03004854 + ldr r3, [r4] + movs r1, 0xBE + lsls r1, 1 + adds r0, r3, r1 + adds r1, r3, 0 + adds r1, 0x88 + ldrb r2, [r1] + subs r1, 0x2E + ldrh r1, [r1] + str r1, [sp] + adds r1, r5, 0 + add r3, sp, 0x4 + bl sub_8050520 + ldr r1, [r4] + adds r1, 0xAB + adds r0, r5, 0 + bl sub_805201C + ldr r0, _08051FEC @ =sub_8052BD0 + movs r1, 0x6 + bl CreateTask + ldr r0, [r4] + adds r0, 0xAB + movs r1, 0x1 + movs r2, 0xF + bl MenuPrintMessage + ldr r0, _08051FF0 @ =gScriptItemId + ldrh r0, [r0] + movs r1, 0x1 + bl RemoveBagItem + adds r0, r5, 0 + bl sub_810CA34 + ldr r1, [r4] +_08051FDE: + ldrb r0, [r1] + adds r0, 0x1 + strb r0, [r1] + b _08052006 + .align 2, 0 +_08051FE8: .4byte gUnknown_03004854 +_08051FEC: .4byte sub_8052BD0 +_08051FF0: .4byte gScriptItemId +_08051FF4: + bl MenuUpdateWindowText + lsls r0, 24 + cmp r0, 0 + beq _08052006 + bl sub_8051C24 + movs r0, 0x1 + b _08052008 +_08052006: + movs r0, 0 +_08052008: + add sp, 0x34 + pop {r3-r5} + mov r8, r3 + mov r9, r4 + mov r10, r5 + pop {r4-r7} + pop {r1} + bx r1 + thumb_func_end sub_8051C58 + + thumb_func_start sub_805201C +sub_805201C: @ 805201C + push {r4-r6,lr} + sub sp, 0xC + adds r5, r0, 0 + adds r6, r1, 0 + movs r0, 0xFF + strb r0, [r6] + ldr r1, _080520B0 @ =gPokeblockNames + ldrb r0, [r5] + lsls r0, 2 + adds r0, r1 + ldr r1, [r0] + adds r0, r6, 0 + bl StringCopy + ldr r1, _080520B4 @ =gOtherText_PokeBlockMade + adds r0, r6, 0 + bl de_sub_8073174 + ldr r1, _080520B8 @ =gUnknown_082162C8 + adds r0, r6, 0 + bl StringAppend + adds r0, r5, 0 + bl sub_810C9B0 + adds r4, r0, 0 + lsls r4, 24 + lsrs r4, 24 + adds r0, r5, 0 + bl sub_810C9E8 + adds r5, r0, 0 + lsls r5, 24 + lsrs r5, 24 + ldr r1, _080520BC @ =gOtherText_BlockLevelIs + adds r0, r6, 0 + bl StringAppend + mov r0, sp + adds r1, r4, 0 + movs r2, 0 + movs r3, 0x3 + bl ConvertIntToDecimalStringN + adds r0, r6, 0 + mov r1, sp + bl StringAppend + ldr r1, _080520C0 @ =gOtherText_BlockFeelIs + adds r0, r6, 0 + bl StringAppend + mov r0, sp + adds r1, r5, 0 + movs r2, 0 + movs r3, 0x3 + bl ConvertIntToDecimalStringN + adds r0, r6, 0 + mov r1, sp + bl StringAppend + ldr r1, _080520C4 @ =gOtherText_Period + adds r0, r6, 0 + bl StringAppend + ldr r1, _080520C8 @ =gUnknown_08216249 + adds r0, r6, 0 + bl StringAppend + add sp, 0xC + pop {r4-r6} + pop {r0} + bx r0 + .align 2, 0 +_080520B0: .4byte gPokeblockNames +_080520B4: .4byte gOtherText_PokeBlockMade +_080520B8: .4byte gUnknown_082162C8 +_080520BC: .4byte gOtherText_BlockLevelIs +_080520C0: .4byte gOtherText_BlockFeelIs +_080520C4: .4byte gOtherText_Period +_080520C8: .4byte gUnknown_08216249 + thumb_func_end sub_805201C + + thumb_func_start sub_80520CC +sub_80520CC: @ 80520CC + push {r4-r7,lr} + mov r7, r9 + mov r6, r8 + push {r6,r7} + mov r9, r0 + mov r12, r2 + lsls r1, 24 + lsrs r7, r1, 24 + movs r0, 0 + cmp r0, r7 + bge _08052118 +_080520E2: + movs r5, 0 + adds r1, r0, 0x1 + mov r8, r1 + cmp r5, r7 + bge _08052112 + mov r1, r9 + adds r6, r1, r0 +_080520F0: + ldrb r4, [r6] + lsls r1, r4, 2 + add r1, r12 + mov r0, r9 + adds r2, r0, r5 + ldrb r3, [r2] + lsls r0, r3, 2 + add r0, r12 + ldr r1, [r1] + ldr r0, [r0] + cmp r1, r0 + bls _0805210C + strb r3, [r6] + strb r4, [r2] +_0805210C: + adds r5, 0x1 + cmp r5, r7 + blt _080520F0 +_08052112: + mov r0, r8 + cmp r0, r7 + blt _080520E2 +_08052118: + pop {r3,r4} + mov r8, r3 + mov r9, r4 + pop {r4-r7} + pop {r0} + bx r0 + thumb_func_end sub_80520CC + + thumb_func_start sub_8052124 +sub_8052124: @ 8052124 + push {r4-r7,lr} + mov r7, r10 + mov r6, r9 + mov r5, r8 + push {r5-r7} + sub sp, 0x18 + movs r5, 0 + ldr r1, _08052144 @ =gUnknown_03004854 + ldr r0, [r1] + adds r0, 0x88 + mov r10, r1 + mov r2, sp + adds r2, 0x4 + str r2, [sp, 0x14] + b _08052158 + .align 2, 0 +_08052144: .4byte gUnknown_03004854 +_08052148: + mov r4, sp + adds r0, r4, r5 + strb r5, [r0] + adds r0, r5, 0x1 + lsls r0, 24 + lsrs r5, r0, 24 + ldr r0, [r1] + adds r0, 0x88 +_08052158: + ldrb r0, [r0] + cmp r5, r0 + bcc _08052148 + movs r5, 0 + mov r1, r10 + ldr r0, [r1] + adds r1, r0, 0 + adds r1, 0x88 + ldrb r2, [r1] + cmp r5, r2 + bcs _080521D6 + ldr r4, [sp, 0x14] + mov r9, r4 + movs r2, 0xA6 + lsls r2, 1 + adds r2, r0 + mov r8, r2 + mov r12, r1 + movs r4, 0xA7 + lsls r4, 1 + adds r7, r0, r4 + movs r1, 0xA8 + lsls r1, 1 + adds r6, r0, r1 +_08052188: + lsls r4, r5, 2 + add r4, r9 + lsls r3, r5, 1 + adds r3, r5 + lsls r3, 1 + mov r2, r8 + adds r0, r2, r3 + ldrh r2, [r0] + lsls r0, r2, 5 + subs r0, r2 + lsls r1, r0, 6 + subs r1, r0 + lsls r1, 3 + adds r1, r2 + lsls r1, 6 + str r1, [r4] + adds r0, r7, r3 + ldrh r2, [r0] + lsls r0, r2, 5 + subs r0, r2 + lsls r0, 2 + adds r0, r2 + lsls r0, 3 + adds r1, r0 + str r1, [r4] + movs r0, 0xFA + lsls r0, 2 + adds r1, r0 + adds r3, r6, r3 + ldrh r0, [r3] + subs r1, r0 + str r1, [r4] + adds r0, r5, 0x1 + lsls r0, 24 + lsrs r5, r0, 24 + mov r1, r12 + ldrb r1, [r1] + cmp r5, r1 + bcc _08052188 +_080521D6: + mov r2, r10 + ldr r0, [r2] + adds r0, 0x88 + ldrb r1, [r0] + mov r0, sp + ldr r2, [sp, 0x14] + bl sub_80520CC + movs r5, 0 + mov r4, r10 + ldr r0, [r4] + adds r0, 0x88 + ldrb r0, [r0] + cmp r5, r0 + bcs _08052218 + mov r2, r10 + movs r3, 0xB2 + lsls r3, 1 +_080521FA: + ldr r1, [r2] + adds r1, r3 + adds r1, r5 + mov r4, sp + adds r0, r4, r5 + ldrb r0, [r0] + strb r0, [r1] + adds r0, r5, 0x1 + lsls r0, 24 + lsrs r5, r0, 24 + ldr r0, [r2] + adds r0, 0x88 + ldrb r0, [r0] + cmp r5, r0 + bcc _080521FA +_08052218: + add sp, 0x18 + pop {r3-r5} + mov r8, r3 + mov r9, r4 + mov r10, r5 + pop {r4-r7} + pop {r0} + bx r0 + thumb_func_end sub_8052124 + + thumb_func_start sub_8052228 +sub_8052228: @ 8052228 + push {r4-r7,lr} + mov r7, r8 + push {r7} + ldr r1, _08052248 @ =gUnknown_03004854 + ldr r0, [r1] + ldrb r0, [r0] + adds r2, r1, 0 + cmp r0, 0x6 + bls _0805223C + b _080524AE +_0805223C: + lsls r0, 2 + ldr r1, _0805224C @ =_08052250 + adds r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_08052248: .4byte gUnknown_03004854 +_0805224C: .4byte _08052250 + .align 2, 0 +_08052250: + .4byte _0805226C + .4byte _08052282 + .4byte _0805229C + .4byte _080522B6 + .4byte _08052464 + .4byte _0805247E + .4byte _080524A4 +_0805226C: + ldr r1, [r2] + ldrb r0, [r1] + adds r0, 0x1 + strb r0, [r1] + ldr r0, [r2] + movs r1, 0x98 + lsls r1, 1 + adds r0, r1 + movs r1, 0xFF + str r1, [r0] + b _080524AE +_08052282: + ldr r1, [r2] + movs r0, 0x98 + lsls r0, 1 + adds r2, r1, r0 + ldr r0, [r2] + subs r0, 0xA + str r0, [r2] + cmp r0, 0 + blt _08052296 + b _080524AE +_08052296: + movs r0, 0 + str r0, [r2] + b _08052494 +_0805229C: + ldr r1, [r2] + movs r0, 0x98 + lsls r0, 1 + adds r2, r1, r0 + ldr r0, [r2] + adds r0, 0x1 + str r0, [r2] + cmp r0, 0x14 + bgt _080522B0 + b _080524AE +_080522B0: + movs r0, 0 + str r0, [r2] + b _08052494 +_080522B6: + movs r0, 0x4 + movs r1, 0x2 + movs r2, 0x19 + movs r3, 0x11 + bl MenuDrawTextWindow + ldr r0, _0805236C @ =gOtherText_Ranking + movs r1, 0x5 + movs r2, 0x3 + movs r3, 0xA0 + bl sub_8072BD8 + ldr r6, _08052370 @ =gSpriteTemplate_821645C + adds r0, r6, 0 + movs r1, 0x8C + movs r2, 0x34 + movs r3, 0 + bl CreateSprite + ldr r7, _08052374 @ =gUnknown_03004854 + ldr r1, [r7] + adds r1, 0x50 + strb r0, [r1] + ldr r1, _08052378 @ =gSprites + mov r8, r1 + ldr r2, [r7] + adds r2, 0x50 + ldrb r1, [r2] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + mov r5, r8 + adds r5, 0x1C + adds r0, r5 + ldr r4, _0805237C @ =SpriteCallbackDummy + str r4, [r0] + ldrb r1, [r2] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + add r0, r8 + movs r1, 0x3 + bl StartSpriteAnim + adds r0, r6, 0 + movs r1, 0xA4 + movs r2, 0x34 + movs r3, 0 + bl CreateSprite + ldr r1, [r7] + adds r1, 0x51 + strb r0, [r1] + ldr r0, [r7] + adds r0, 0x51 + ldrb r1, [r0] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r5 + str r4, [r0] + adds r0, r6, 0 + movs r1, 0xBC + movs r2, 0x34 + movs r3, 0 + bl CreateSprite + ldr r1, [r7] + adds r1, 0x52 + strb r0, [r1] + ldr r2, [r7] + adds r2, 0x52 + ldrb r1, [r2] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r5 + str r4, [r0] + ldrb r1, [r2] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + add r0, r8 + movs r1, 0x1 + bl StartSpriteAnim + bl sub_8052124 + movs r2, 0 + mov r8, r2 + b _0805243C + .align 2, 0 +_0805236C: .4byte gOtherText_Ranking +_08052370: .4byte gSpriteTemplate_821645C +_08052374: .4byte gUnknown_03004854 +_08052378: .4byte gSprites +_0805237C: .4byte SpriteCallbackDummy +_08052380: + ldr r1, [r7] + movs r2, 0xB2 + lsls r2, 1 + adds r0, r1, r2 + add r0, r8 + ldrb r5, [r0] + adds r2, r1, 0 + adds r2, 0xAB + movs r0, 0xFC + strb r0, [r2] + movs r0, 0x13 + strb r0, [r2, 0x1] + movs r0, 0x4 + strb r0, [r2, 0x2] + adds r2, 0x3 + mov r6, r8 + adds r6, 0x1 + adds r0, r2, 0 + adds r1, r6, 0 + bl ConvertIntToDecimalString + adds r2, r0, 0 + movs r1, 0 + strb r1, [r2] + movs r0, 0xAD + strb r0, [r2, 0x1] + strb r1, [r2, 0x2] + adds r2, 0x3 + lsls r1, r5, 3 + subs r1, r5 + lsls r1, 2 + ldr r0, _08052458 @ =gLinkPlayers + 0x8 + adds r1, r0 + adds r0, r2, 0 + bl StringCopy + adds r2, r0, 0 + ldr r0, [r7] + lsls r4, r5, 1 + adds r4, r5 + lsls r4, 1 + movs r1, 0xA6 + lsls r1, 1 + adds r0, r1 + adds r0, r4 + ldrh r1, [r0] + adds r0, r2, 0 + movs r2, 0x6C + movs r3, 0x1 + bl sub_8072C14 + adds r2, r0, 0 + ldr r0, [r7] + movs r1, 0xA7 + lsls r1, 1 + adds r0, r1 + adds r0, r4 + ldrh r1, [r0] + adds r0, r2, 0 + movs r2, 0x84 + movs r3, 0x1 + bl sub_8072C14 + adds r2, r0, 0 + ldr r0, [r7] + movs r1, 0xA8 + lsls r1, 1 + adds r0, r1 + adds r0, r4 + ldrh r1, [r0] + adds r0, r2, 0 + movs r2, 0x9C + movs r3, 0x1 + bl sub_8072C14 + ldr r1, [r7] + adds r0, r1, 0 + adds r0, 0xAB + ldr r2, _0805245C @ =gUnknown_082165F3 + adds r1, 0x88 + ldrb r1, [r1] + adds r1, r2 + ldrb r1, [r1] + mov r2, r8 + muls r2, r1 + adds r2, 0x8 + lsls r2, 24 + lsrs r2, 24 + movs r1, 0x5 + bl MenuPrint + lsls r6, 16 + lsrs r6, 16 + mov r8, r6 +_0805243C: + ldr r0, [r7] + adds r0, 0x88 + ldrb r0, [r0] + cmp r8, r0 + bcc _08052380 + ldr r0, _08052460 @ =gUnknown_03004854 + ldr r1, [r0] + movs r0, 0x98 + lsls r0, 1 + adds r2, r1, r0 + movs r0, 0 + str r0, [r2] + b _08052494 + .align 2, 0 +_08052458: .4byte gLinkPlayers + 0x8 +_0805245C: .4byte gUnknown_082165F3 +_08052460: .4byte gUnknown_03004854 +_08052464: + ldr r2, [r2] + movs r0, 0x98 + lsls r0, 1 + adds r1, r2, r0 + ldr r0, [r1] + adds r0, 0x1 + str r0, [r1] + cmp r0, 0x14 + ble _080524AE + ldrb r0, [r2] + adds r0, 0x1 + strb r0, [r2] + b _080524AE +_0805247E: + ldr r0, _0805249C @ =gMain + ldrh r1, [r0, 0x2E] + movs r0, 0x1 + ands r0, r1 + cmp r0, 0 + beq _080524AE + movs r0, 0x5 + bl PlaySE + ldr r0, _080524A0 @ =gUnknown_03004854 + ldr r1, [r0] +_08052494: + ldrb r0, [r1] + adds r0, 0x1 + strb r0, [r1] + b _080524AE + .align 2, 0 +_0805249C: .4byte gMain +_080524A0: .4byte gUnknown_03004854 +_080524A4: + ldr r1, [r2] + movs r0, 0 + strb r0, [r1] + movs r0, 0x1 + b _080524B0 +_080524AE: + movs r0, 0 +_080524B0: + pop {r3} + mov r8, r3 + pop {r4-r7} + pop {r1} + bx r1 + thumb_func_end sub_8052228 + + thumb_func_start unref_sub_80524BC +unref_sub_80524BC: @ 80524BC + push {r4,lr} + bl ResetSpriteData + bl FreeAllSpritePalettes + bl ResetTasks + ldr r0, _0805251C @ =sub_804E2D8 + bl SetVBlankCallback + ldr r4, _08052520 @ =gWindowConfig_81E6CE4 + adds r0, r4, 0 + bl SetUpWindowConfig + adds r0, r4, 0 + bl InitMenuWindow + ldr r0, _08052524 @ =gMain + ldrh r0, [r0, 0x20] + bl SeedRng + movs r1, 0x80 + lsls r1, 19 + movs r2, 0xAA + lsls r2, 5 + adds r0, r2, 0 + strh r0, [r1] + bl RunTasks + bl AnimateSprites + bl BuildOamBuffer + bl UpdatePaletteFade + ldr r1, _08052528 @ =gUnknown_03000560 + movs r0, 0xFA + lsls r0, 5 + strh r0, [r1, 0x1A] + ldrb r0, [r1, 0x10] + adds r0, 0x1 + strb r0, [r1, 0x10] + ldr r0, _0805252C @ =sub_8052AF8 + bl SetMainCallback2 + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_0805251C: .4byte sub_804E2D8 +_08052520: .4byte gWindowConfig_81E6CE4 +_08052524: .4byte gMain +_08052528: .4byte gUnknown_03000560 +_0805252C: .4byte sub_8052AF8 + thumb_func_end unref_sub_80524BC + + thumb_func_start sub_8052530 +sub_8052530: @ 8052530 + push {r4-r7,lr} + mov r7, r10 + mov r6, r9 + mov r5, r8 + push {r5-r7} + sub sp, 0x98 + ldr r1, _080525C8 @ =gOtherText_BPMAndDash + mov r0, sp + bl StringCopy + mov r0, sp + movs r1, 0x2 + movs r2, 0 + bl MenuPrint + ldr r4, _080525CC @ =gUnknown_03000560 + movs r1, 0x1A + ldrsh r0, [r4, r1] + movs r1, 0x64 + bl __divsi3 + adds r1, r0, 0 + lsls r1, 16 + asrs r1, 16 + mov r0, sp + movs r2, 0x2 + movs r3, 0x3 + bl ConvertIntToDecimalStringN + mov r0, sp + movs r1, 0x6 + movs r2, 0 + bl MenuPrint + movs r6, 0 + mov r2, sp + adds r2, 0x3 + str r2, [sp, 0x84] + mov r3, sp + adds r3, 0x6 + str r3, [sp, 0x88] + mov r0, sp + adds r0, 0x9 + str r0, [sp, 0x8C] + mov r1, sp + adds r1, 0xC + str r1, [sp, 0x90] + adds r2, 0xC + str r2, [sp, 0x94] + mov r8, r4 + mov r7, sp + ldr r3, _080525D0 @ =gBerries + mov r9, r3 + ldr r0, _080525D4 @ =gUnknown_082165F8 + mov r10, r0 +_0805259E: + mov r1, r8 + movs r0, 0 + ldrsb r0, [r1, r0] + cmp r0, r6 + bne _080525D8 + movs r0, 0xEF + strb r0, [r7] + mov r0, r8 + adds r0, 0x1 + adds r0, r6, r0 + ldrb r0, [r0] + lsls r0, 24 + asrs r0, 24 + adds r0, 0x85 + lsls r0, 16 + lsrs r0, 16 + mov r1, sp + adds r1, 0x1 + bl CopyItemName + b _080525F8 + .align 2, 0 +_080525C8: .4byte gOtherText_BPMAndDash +_080525CC: .4byte gUnknown_03000560 +_080525D0: .4byte gBerries +_080525D4: .4byte gUnknown_082165F8 +_080525D8: + mov r0, r8 + adds r0, 0x1 + adds r0, r6, r0 + ldrb r0, [r0] + lsls r0, 24 + asrs r0, 24 + adds r0, 0x85 + lsls r0, 16 + lsrs r0, 16 + mov r1, sp + bl CopyItemName + movs r0, 0 + strb r0, [r7, 0x6] + movs r0, 0xFF + strb r0, [r7, 0x7] +_080525F8: + lsls r5, r6, 1 + adds r5, r6 + adds r5, 0x3 + lsls r5, 24 + lsrs r5, 24 + mov r0, sp + movs r1, 0x2 + adds r2, r5, 0 + bl MenuPrint + mov r4, r8 + adds r4, 0x1 + adds r4, r6, r4 + movs r1, 0 + ldrsb r1, [r4, r1] + lsls r0, r1, 3 + subs r0, r1 + lsls r0, 2 + add r0, r9 + ldrb r1, [r0, 0x15] + mov r0, sp + movs r2, 0x2 + movs r3, 0x2 + bl ConvertIntToDecimalStringN + mov r0, sp + mov r1, r10 + bl StringAppend + movs r1, 0 + ldrsb r1, [r4, r1] + lsls r0, r1, 3 + subs r0, r1 + lsls r0, 2 + add r0, r9 + ldrb r1, [r0, 0x16] + ldr r0, [sp, 0x84] + movs r2, 0x2 + movs r3, 0x2 + bl ConvertIntToDecimalStringN + mov r0, sp + mov r1, r10 + bl StringAppend + movs r1, 0 + ldrsb r1, [r4, r1] + lsls r0, r1, 3 + subs r0, r1 + lsls r0, 2 + add r0, r9 + ldrb r1, [r0, 0x17] + ldr r0, [sp, 0x88] + movs r2, 0x2 + movs r3, 0x2 + bl ConvertIntToDecimalStringN + mov r0, sp + mov r1, r10 + bl StringAppend + movs r1, 0 + ldrsb r1, [r4, r1] + lsls r0, r1, 3 + subs r0, r1 + lsls r0, 2 + add r0, r9 + ldrb r1, [r0, 0x18] + ldr r0, [sp, 0x8C] + movs r2, 0x2 + movs r3, 0x2 + bl ConvertIntToDecimalStringN + mov r0, sp + mov r1, r10 + bl StringAppend + movs r1, 0 + ldrsb r1, [r4, r1] + lsls r0, r1, 3 + subs r0, r1 + lsls r0, 2 + add r0, r9 + ldrb r1, [r0, 0x19] + ldr r0, [sp, 0x90] + movs r2, 0x2 + movs r3, 0x2 + bl ConvertIntToDecimalStringN + mov r0, sp + mov r1, r10 + bl StringAppend + movs r1, 0 + ldrsb r1, [r4, r1] + lsls r0, r1, 3 + subs r0, r1 + lsls r0, 2 + add r0, r9 + ldrb r1, [r0, 0x1A] + ldr r0, [sp, 0x94] + movs r2, 0x2 + movs r3, 0x2 + bl ConvertIntToDecimalStringN + movs r2, 0x1 + negs r2, r2 + add r3, sp, 0x80 + strb r2, [r3] + movs r0, 0xFF + strb r0, [r7, 0x11] + mov r0, sp + movs r1, 0x7 + adds r2, r5, 0 + bl MenuPrint + adds r0, r6, 0x1 + lsls r0, 24 + lsrs r6, r0, 24 + cmp r6, 0x3 + bhi _080526EC + b _0805259E +_080526EC: + mov r1, r8 + ldrb r0, [r1, 0x8] + cmp r0, 0 + beq _080527A4 + ldr r1, _080527B4 @ =gPokeblockNames + mov r2, r8 + ldrb r0, [r2, 0x8] + lsls r0, 2 + adds r0, r1 + ldr r1, [r0] + mov r0, sp + bl StringCopy + mov r0, sp + movs r1, 0x2 + movs r2, 0xF + bl MenuPrint + mov r3, r8 + ldrb r1, [r3, 0x11] + mov r0, sp + movs r2, 0x2 + movs r3, 0x2 + bl ConvertIntToHexStringN + ldr r4, _080527B8 @ =gUnknown_082165F8 + mov r0, sp + adds r1, r4, 0 + bl StringAppend + mov r0, r8 + ldrb r1, [r0, 0x12] + ldr r0, [sp, 0x84] + movs r2, 0x2 + movs r3, 0x2 + bl ConvertIntToHexStringN + mov r0, sp + adds r1, r4, 0 + bl StringAppend + mov r2, r8 + ldrb r1, [r2, 0x13] + ldr r0, [sp, 0x88] + movs r2, 0x2 + movs r3, 0x2 + bl ConvertIntToHexStringN + mov r0, sp + adds r1, r4, 0 + bl StringAppend + mov r3, r8 + ldrb r1, [r3, 0x14] + ldr r0, [sp, 0x8C] + movs r2, 0x2 + movs r3, 0x2 + bl ConvertIntToHexStringN + mov r0, sp + adds r1, r4, 0 + bl StringAppend + mov r0, r8 + ldrb r1, [r0, 0x15] + ldr r0, [sp, 0x90] + movs r2, 0x2 + movs r3, 0x2 + bl ConvertIntToHexStringN + mov r0, sp + adds r1, r4, 0 + bl StringAppend + mov r2, r8 + ldrb r1, [r2, 0x16] + ldr r0, [sp, 0x94] + movs r2, 0x2 + movs r3, 0x2 + bl ConvertIntToHexStringN + mov r1, sp + ldrb r0, [r1, 0x11] + add r3, sp, 0x80 + ldrb r3, [r3] + orrs r0, r3 + strb r0, [r1, 0x11] + mov r0, sp + movs r1, 0x7 + movs r2, 0x11 + bl MenuPrint +_080527A4: + add sp, 0x98 + pop {r3-r5} + mov r8, r3 + mov r9, r4 + mov r10, r5 + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_080527B4: .4byte gPokeblockNames +_080527B8: .4byte gUnknown_082165F8 + thumb_func_end sub_8052530 + + thumb_func_start sub_80527BC +sub_80527BC: @ 80527BC + push {r4-r7,lr} + mov r7, r9 + mov r6, r8 + push {r6,r7} + sub sp, 0x58 + ldr r0, _08052844 @ =gUnknown_020297DC + ldrb r0, [r0] + add r6, sp, 0x48 + cmp r0, 0x1 + bne _08052814 + movs r1, 0 + ldr r3, _08052848 @ =gUnknown_03004840 + movs r2, 0 +_080527D6: + lsls r0, r1, 1 + adds r0, r3 + strh r2, [r0] + adds r0, r1, 0x1 + lsls r0, 16 + lsrs r1, r0, 16 + cmp r1, 0x9 + bls _080527D6 + bl Random + ldr r1, _0805284C @ =gUnknown_03004830 + strh r0, [r1] + ldr r1, _08052850 @ =gUnknown_020297E0 + movs r0, 0 + str r0, [r1] + ldr r1, _08052844 @ =gUnknown_020297DC + movs r0, 0x2 + strb r0, [r1] + movs r4, 0 + ldr r2, _08052854 @ =0x02000000 + movs r1, 0 +_08052800: + adds r0, r4, r2 + strb r1, [r0] + adds r0, r4, 0x1 + lsls r0, 16 + lsrs r4, r0, 16 + cmp r4, 0xC7 + bls _08052800 + ldr r1, _08052858 @ =gUnknown_020297E8 + movs r0, 0 + strb r0, [r1] +_08052814: + movs r4, 0 + movs r0, 0x1 + mov r8, r0 + ldr r7, _08052858 @ =gUnknown_020297E8 + ldr r5, _08052850 @ =gUnknown_020297E0 + ldr r1, _08052854 @ =0x02000000 + mov r9, r1 + ldr r3, _0805285C @ =gUnknown_020297E4 +_08052824: + str r3, [sp, 0x54] + bl Random + lsls r0, 16 + lsrs r0, 31 + mov r1, r8 + ands r0, r1 + ldr r3, [sp, 0x54] + ldrb r1, [r7] + cmp r0, r1 + bne _08052860 + ldr r0, [r5] + adds r0, 0x1 + str r0, [r5] + b _0805287A + .align 2, 0 +_08052844: .4byte gUnknown_020297DC +_08052848: .4byte gUnknown_03004840 +_0805284C: .4byte gUnknown_03004830 +_08052850: .4byte gUnknown_020297E0 +_08052854: .4byte 0x02000000 +_08052858: .4byte gUnknown_020297E8 +_0805285C: .4byte gUnknown_020297E4 +_08052860: + ldr r2, [r3] + lsls r0, r2, 1 + add r0, r9 + ldr r1, [r5] + strh r1, [r0] + adds r2, 0x1 + str r2, [r3] + movs r0, 0 + str r0, [r5] + ldrb r0, [r7] + mov r1, r8 + eors r0, r1 + strb r0, [r7] +_0805287A: + adds r0, r4, 0x1 + lsls r0, 16 + lsrs r4, r0, 16 + cmp r4, 0x63 + bls _08052824 + mov r1, sp + movs r0, 0xFF + strb r0, [r1] + ldr r0, _08052900 @ =gUnknown_03004830 + ldrh r1, [r0] + adds r0, r6, 0 + movs r2, 0x2 + movs r3, 0x8 + bl ConvertIntToHexStringN + mov r0, sp + adds r1, r6, 0 + bl StringAppend + ldr r1, _08052904 @ =gUnknown_082165F8 + mov r0, sp + bl StringAppend + ldr r0, _08052908 @ =gUnknown_020297E0 + ldr r1, [r0] + adds r0, r6, 0 + movs r2, 0x2 + movs r3, 0x8 + bl ConvertIntToHexStringN + mov r0, sp + adds r1, r6, 0 + bl StringAppend + ldr r1, _0805290C @ =gUnknown_08216600 + mov r0, sp + bl StringAppend + ldr r4, _08052910 @ =gUnknown_020297DC + ldrb r0, [r4] + cmp r0, 0x3 + bne _080528E8 + ldr r0, _08052914 @ =gUnknown_020297E4 + ldr r1, [r0] + adds r0, r6, 0 + movs r2, 0x2 + movs r3, 0x10 + bl ConvertIntToHexStringN + mov r0, sp + adds r1, r6, 0 + bl StringAppend + movs r0, 0 + strb r0, [r4] +_080528E8: + mov r0, sp + movs r1, 0x2 + movs r2, 0xF + bl MenuPrint + add sp, 0x58 + pop {r3,r4} + mov r8, r3 + mov r9, r4 + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_08052900: .4byte gUnknown_03004830 +_08052904: .4byte gUnknown_082165F8 +_08052908: .4byte gUnknown_020297E0 +_0805290C: .4byte gUnknown_08216600 +_08052910: .4byte gUnknown_020297DC +_08052914: .4byte gUnknown_020297E4 + thumb_func_end sub_80527BC + + thumb_func_start sub_8052918 +sub_8052918: @ 8052918 + push {r4-r6,lr} + sub sp, 0x4C + ldr r2, _08052A88 @ =gMain + ldrh r1, [r2, 0x2E] + movs r0, 0x80 + lsls r0, 1 + ands r0, r1 + ldr r4, _08052A8C @ =gUnknown_03000560 + cmp r0, 0 + beq _0805294C + movs r1, 0xFA + lsls r1, 2 + adds r0, r1, 0 + ldrh r1, [r4, 0x1A] + adds r0, r1 + strh r0, [r4, 0x1A] + lsls r0, 16 + ldr r1, _08052A90 @ =0x75300000 + cmp r0, r1 + ble _08052946 + movs r0, 0xFA + lsls r0, 2 + strh r0, [r4, 0x1A] +_08052946: + ldrb r0, [r4, 0x10] + adds r0, 0x1 + strb r0, [r4, 0x10] +_0805294C: + ldrh r1, [r2, 0x2E] + movs r0, 0x80 + lsls r0, 2 + ands r0, r1 + cmp r0, 0 + beq _08052972 + ldr r1, _08052A94 @ =0xfffffc18 + adds r0, r1, 0 + ldrh r1, [r4, 0x1A] + adds r0, r1 + strh r0, [r4, 0x1A] + lsls r0, 16 + cmp r0, 0 + bge _0805296C + ldr r0, _08052A98 @ =0x00007530 + strh r0, [r4, 0x1A] +_0805296C: + ldrb r0, [r4, 0x10] + adds r0, 0x1 + strb r0, [r4, 0x10] +_08052972: + ldrh r1, [r2, 0x2E] + movs r0, 0x40 + ands r0, r1 + cmp r0, 0 + beq _08052992 + ldrb r0, [r4] + subs r0, 0x1 + strb r0, [r4] + lsls r0, 24 + cmp r0, 0 + bge _0805298C + movs r0, 0x3 + strb r0, [r4] +_0805298C: + ldrb r0, [r4, 0x10] + adds r0, 0x1 + strb r0, [r4, 0x10] +_08052992: + ldrh r1, [r2, 0x2E] + movs r0, 0x80 + ands r0, r1 + cmp r0, 0 + beq _080529B4 + ldrb r0, [r4] + adds r0, 0x1 + strb r0, [r4] + lsls r0, 24 + asrs r0, 24 + cmp r0, 0x3 + ble _080529AE + movs r0, 0 + strb r0, [r4] +_080529AE: + ldrb r0, [r4, 0x10] + adds r0, 0x1 + strb r0, [r4, 0x10] +_080529B4: + ldrh r1, [r2, 0x2E] + movs r0, 0x20 + ands r0, r1 + cmp r0, 0 + beq _080529E4 + adds r3, r4, 0 + movs r1, 0 + ldrsb r1, [r3, r1] + adds r5, r3, 0x1 + adds r1, r5 + ldrb r0, [r1] + subs r0, 0x1 + strb r0, [r1] + lsls r0, 24 + cmp r0, 0 + bge _080529DE + movs r0, 0 + ldrsb r0, [r3, r0] + adds r0, r5 + movs r1, 0x2A + strb r1, [r0] +_080529DE: + ldrb r0, [r4, 0x10] + adds r0, 0x1 + strb r0, [r4, 0x10] +_080529E4: + ldrh r1, [r2, 0x2E] + movs r0, 0x10 + ands r0, r1 + cmp r0, 0 + beq _08052A16 + ldr r3, _08052A8C @ =gUnknown_03000560 + movs r1, 0 + ldrsb r1, [r3, r1] + adds r4, r3, 0x1 + adds r1, r4 + ldrb r0, [r1] + adds r0, 0x1 + strb r0, [r1] + lsls r0, 24 + asrs r0, 24 + cmp r0, 0x2A + ble _08052A10 + movs r0, 0 + ldrsb r0, [r3, r0] + adds r0, r4 + movs r1, 0 + strb r1, [r0] +_08052A10: + ldrb r0, [r3, 0x10] + adds r0, 0x1 + strb r0, [r3, 0x10] +_08052A16: + ldrh r1, [r2, 0x2E] + movs r0, 0x1 + ands r0, r1 + cmp r0, 0 + beq _08052AA0 + movs r6, 0 + movs r4, 0 + ldr r5, _08052A8C @ =gUnknown_03000560 +_08052A26: + adds r0, r5, 0x1 + adds r2, r4, r0 + movs r0, 0 + ldrsb r0, [r2, r0] + cmp r0, 0x2A + beq _08052A64 + adds r0, r6, 0x1 + lsls r0, 16 + lsrs r6, r0, 16 + lsls r0, r4, 1 + mov r1, sp + adds r1, r0 + adds r1, 0x4 + movs r0, 0 + ldrsb r0, [r2, r0] + strh r0, [r1] + add r0, sp, 0xC + lsls r1, r4, 4 + adds r0, r1 + movs r1, 0 + ldrsb r1, [r2, r1] + adds r1, 0x85 + lsls r1, 16 + lsrs r1, 16 + bl sub_804E844 + adds r0, r4, 0x1 + lsls r0, 16 + lsrs r4, r0, 16 + cmp r4, 0x3 + bls _08052A26 +_08052A64: + cmp r6, 0x1 + bls _08052A9C + add r0, sp, 0xC + adds r1, r5, 0 + adds r1, 0x8 + lsls r2, r6, 24 + lsrs r2, 24 + adds r3, r5, 0 + adds r3, 0x11 + ldrh r4, [r5, 0x1A] + str r4, [sp] + bl sub_8050744 + ldrb r0, [r5, 0x10] + adds r0, 0x1 + strb r0, [r5, 0x10] + b _08052AA0 + .align 2, 0 +_08052A88: .4byte gMain +_08052A8C: .4byte gUnknown_03000560 +_08052A90: .4byte 0x75300000 +_08052A94: .4byte 0xfffffc18 +_08052A98: .4byte 0x00007530 +_08052A9C: + movs r0, 0xFF + strb r0, [r5, 0x8] +_08052AA0: + ldr r4, _08052AE8 @ =gUnknown_03000560 + ldrb r0, [r4, 0x10] + cmp r0, 0 + beq _08052AB0 + bl sub_8052530 + movs r0, 0 + strb r0, [r4, 0x10] +_08052AB0: + ldr r3, _08052AEC @ =gMain + ldrh r1, [r3, 0x2E] + movs r0, 0x4 + ands r0, r1 + cmp r0, 0 + beq _08052AD4 + ldr r2, _08052AF0 @ =gUnknown_020297DC + ldrb r0, [r2] + adds r1, r0, 0 + cmp r1, 0 + bne _08052ADC + adds r0, 0x1 + strb r0, [r2] + ldr r0, _08052AF4 @ =gUnknown_020297E0 + str r1, [r0] + ldrh r0, [r3, 0x20] + bl SeedRng +_08052AD4: + ldr r0, _08052AF0 @ =gUnknown_020297DC + ldrb r0, [r0] + cmp r0, 0 + beq _08052AE0 +_08052ADC: + bl sub_80527BC +_08052AE0: + add sp, 0x4C + pop {r4-r6} + pop {r0} + bx r0 + .align 2, 0 +_08052AE8: .4byte gUnknown_03000560 +_08052AEC: .4byte gMain +_08052AF0: .4byte gUnknown_020297DC +_08052AF4: .4byte gUnknown_020297E0 + thumb_func_end sub_8052918 + + thumb_func_start sub_8052AF8 +sub_8052AF8: @ 8052AF8 + push {lr} + bl sub_8052918 + bl RunTasks + bl AnimateSprites + bl BuildOamBuffer + bl UpdatePaletteFade + pop {r0} + bx r0 + thumb_func_end sub_8052AF8 + + thumb_func_start ShowBerryBlenderRecordWindow +ShowBerryBlenderRecordWindow: @ 8052B14 + push {r4-r7,lr} + mov r7, r8 + push {r7} + sub sp, 0x20 + movs r0, 0x6 + movs r1, 0x3 + movs r2, 0x17 + movs r3, 0x10 + bl MenuDrawTextWindow + ldr r0, _08052BAC @ =gMultiText_BerryBlenderMaxSpeedRecord + movs r1, 0x8 + movs r2, 0x4 + bl MenuPrint + ldr r0, _08052BB0 @ =gMultiText_2P3P4P + movs r1, 0x8 + movs r2, 0x9 + bl MenuPrint + movs r0, 0 + mov r8, r0 + ldr r0, _08052BB4 @ =gSaveBlock1 + movs r7, 0x90 + lsls r7, 20 + ldr r1, _08052BB8 @ =0x0000096c + adds r6, r0, r1 +_08052B4A: + ldrh r4, [r6] + adds r0, r4, 0 + movs r1, 0x64 + bl __udivsi3 + adds r1, r0, 0 + mov r0, sp + movs r2, 0x12 + movs r3, 0x1 + bl sub_8072C14 + adds r5, r0, 0 + movs r0, 0xB8 + strb r0, [r5] + adds r5, 0x1 + adds r0, r4, 0 + movs r1, 0x64 + bl __umodsi3 + adds r1, r0, 0 + adds r0, r5, 0 + movs r2, 0x2 + movs r3, 0x2 + bl ConvertIntToDecimalStringN + adds r5, r0, 0 + ldr r1, _08052BBC @ =gOtherText_RPM + bl StringAppend + lsrs r2, r7, 24 + mov r0, sp + movs r1, 0xF + bl MenuPrint + movs r0, 0x80 + lsls r0, 18 + adds r7, r0 + adds r6, 0x2 + movs r1, 0x1 + add r8, r1 + mov r0, r8 + cmp r0, 0x2 + ble _08052B4A + add sp, 0x20 + pop {r3} + mov r8, r3 + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_08052BAC: .4byte gMultiText_BerryBlenderMaxSpeedRecord +_08052BB0: .4byte gMultiText_2P3P4P +_08052BB4: .4byte gSaveBlock1 +_08052BB8: .4byte 0x0000096c +_08052BBC: .4byte gOtherText_RPM + thumb_func_end ShowBerryBlenderRecordWindow + + thumb_func_start sub_8052BD0 +sub_8052BD0: @ 8052BD0 + push {r4,r5,lr} + lsls r0, 24 + lsrs r0, 24 + adds r5, r0, 0 + ldr r1, _08052C1C @ =gTasks + lsls r0, r5, 2 + adds r0, r5 + lsls r0, 3 + adds r4, r0, r1 + movs r1, 0x8 + ldrsh r0, [r4, r1] + cmp r0, 0 + bne _08052BF6 + ldr r0, _08052C20 @ =0x0000016f + bl PlayFanfare + ldrh r0, [r4, 0x8] + adds r0, 0x1 + strh r0, [r4, 0x8] +_08052BF6: + bl IsFanfareTaskInactive + lsls r0, 24 + cmp r0, 0 + beq _08052C16 + ldr r0, _08052C24 @ =gUnknown_03004854 + ldr r0, [r0] + movs r1, 0xBC + lsls r1, 1 + adds r0, r1 + ldrh r0, [r0] + bl PlayBGM + adds r0, r5, 0 + bl DestroyTask +_08052C16: + pop {r4,r5} + pop {r0} + bx r0 + .align 2, 0 +_08052C1C: .4byte gTasks +_08052C20: .4byte 0x0000016f +_08052C24: .4byte gUnknown_03004854 + thumb_func_end sub_8052BD0 diff --git a/asm-de/contest_link_80C2020.s b/asm-de/contest_link_80C2020.s new file mode 100644 index 000000000..646851c2d --- /dev/null +++ b/asm-de/contest_link_80C2020.s @@ -0,0 +1,5639 @@ + .include "constants/gba_constants.inc" + .include "constants/species_constants.inc" + .include "asm/macros.inc" + + .syntax unified + + .text + + thumb_func_start sub_80C2020 +sub_80C2020: @ 80C2020 + push {r4,r5,lr} + movs r5, 0x80 + lsls r5, 19 + movs r0, 0x40 + strh r0, [r5] + ldr r4, _080C20F0 @ =gWindowConfig_81E6FA0 + adds r0, r4, 0 + bl SetUpWindowConfig + ldr r0, _080C20F4 @ =gMenuWindow + adds r1, r4, 0 + bl InitWindowFromConfig + ldr r1, _080C20F8 @ =REG_BG0CNT + movs r2, 0xF8 + lsls r2, 6 + adds r0, r2, 0 + strh r0, [r1] + adds r1, 0x2 + ldr r3, _080C20FC @ =0x00001803 + adds r0, r3, 0 + strh r0, [r1] + adds r1, 0x2 + ldr r2, _080C2100 @ =0x00001c03 + adds r0, r2, 0 + strh r0, [r1] + adds r1, 0x2 + ldr r3, _080C2104 @ =0x00003a03 + adds r0, r3, 0 + strh r0, [r1] + ldr r0, _080C2108 @ =REG_MOSAIC + movs r2, 0 + strh r2, [r0] + adds r1, 0x3A + ldr r3, _080C210C @ =0x00003f3f + adds r0, r3, 0 + strh r0, [r1] + adds r1, 0x2 + subs r3, 0x11 + adds r0, r3, 0 + strh r0, [r1] + ldr r0, _080C2110 @ =REG_WIN0H + strh r2, [r0] + adds r0, 0x4 + strh r2, [r0] + subs r0, 0x2 + strh r2, [r0] + adds r0, 0x4 + strh r2, [r0] + adds r0, 0xA + strh r2, [r0] + adds r0, 0x2 + strh r2, [r0] + adds r0, 0x2 + strh r2, [r0] + subs r0, 0x44 + strh r2, [r0] + adds r0, 0x2 + strh r2, [r0] + adds r0, 0x2 + strh r2, [r0] + adds r0, 0x2 + strh r2, [r0] + adds r0, 0x2 + strh r2, [r0] + adds r0, 0x2 + strh r2, [r0] + adds r0, 0x2 + strh r2, [r0] + adds r0, 0x2 + strh r2, [r0] + ldrh r0, [r5] + movs r3, 0xFE + lsls r3, 7 + adds r1, r3, 0 + orrs r0, r1 + strh r0, [r5] + ldr r0, _080C2114 @ =gUnknown_030042A4 + strh r2, [r0] + ldr r0, _080C2118 @ =gUnknown_030042A0 + strh r2, [r0] + ldr r0, _080C211C @ =gUnknown_030042C0 + strh r2, [r0] + ldr r0, _080C2120 @ =gUnknown_030041B4 + strh r2, [r0] + ldr r0, _080C2124 @ =gUnknown_03004288 + strh r2, [r0] + ldr r0, _080C2128 @ =gUnknown_03004280 + strh r2, [r0] + ldr r0, _080C212C @ =gUnknown_030041B0 + strh r2, [r0] + ldr r0, _080C2130 @ =gUnknown_030041B8 + strh r2, [r0] + ldr r0, _080C2134 @ =gUnknown_030042C4 + strh r2, [r0] + ldr r0, _080C2138 @ =gUnknown_03004240 + strh r2, [r0] + ldr r0, _080C213C @ =gUnknown_03004200 + strh r2, [r0] + ldr r0, _080C2140 @ =gUnknown_03004244 + strh r2, [r0] + pop {r4,r5} + pop {r0} + bx r0 + .align 2, 0 +_080C20F0: .4byte gWindowConfig_81E6FA0 +_080C20F4: .4byte gMenuWindow +_080C20F8: .4byte REG_BG0CNT +_080C20FC: .4byte 0x00001803 +_080C2100: .4byte 0x00001c03 +_080C2104: .4byte 0x00003a03 +_080C2108: .4byte REG_MOSAIC +_080C210C: .4byte 0x00003f3f +_080C2110: .4byte REG_WIN0H +_080C2114: .4byte gUnknown_030042A4 +_080C2118: .4byte gUnknown_030042A0 +_080C211C: .4byte gUnknown_030042C0 +_080C2120: .4byte gUnknown_030041B4 +_080C2124: .4byte gUnknown_03004288 +_080C2128: .4byte gUnknown_03004280 +_080C212C: .4byte gUnknown_030041B0 +_080C2130: .4byte gUnknown_030041B8 +_080C2134: .4byte gUnknown_030042C4 +_080C2138: .4byte gUnknown_03004240 +_080C213C: .4byte gUnknown_03004200 +_080C2140: .4byte gUnknown_03004244 + thumb_func_end sub_80C2020 + + thumb_func_start sub_80C2144 +sub_80C2144: @ 80C2144 + push {r4-r7,lr} + sub sp, 0x4 + movs r2, 0xC0 + lsls r2, 19 + movs r3, 0xC0 + lsls r3, 9 + ldr r0, _080C220C @ =gUnknown_08D1977C + mov r12, r0 + movs r5, 0 + ldr r1, _080C2210 @ =0x040000d4 + movs r4, 0x80 + lsls r4, 5 + ldr r6, _080C2214 @ =0x85000400 + movs r7, 0x85 + lsls r7, 24 +_080C2162: + str r5, [sp] + mov r0, sp + str r0, [r1] + str r2, [r1, 0x4] + str r6, [r1, 0x8] + ldr r0, [r1, 0x8] + adds r2, r4 + subs r3, r4 + cmp r3, r4 + bhi _080C2162 + str r5, [sp] + mov r0, sp + str r0, [r1] + str r2, [r1, 0x4] + lsrs r0, r3, 2 + orrs r0, r7 + str r0, [r1, 0x8] + ldr r0, [r1, 0x8] + movs r1, 0xC0 + lsls r1, 19 + mov r0, r12 + bl LZDecompressVram + ldr r0, _080C2218 @ =gUnknown_08D1A490 + ldr r1, _080C221C @ =0x0600d000 + bl LZDecompressVram + ldr r0, _080C2220 @ =gUnknown_08D1A364 + ldr r1, _080C2224 @ =0x0600e000 + bl LZDecompressVram + ldr r0, _080C2228 @ =gUnknown_08D1A250 + ldr r1, _080C222C @ =0x0600f000 + bl LZDecompressVram + bl sub_80C37E4 + ldr r0, _080C2230 @ =gUnknown_08D1A618 + movs r2, 0x80 + lsls r2, 2 + movs r1, 0 + bl LoadCompressedPalette + ldr r0, _080C2234 @ =gWindowConfig_81E6FA0 + bl LoadFontDefaultPalette + movs r6, 0 +_080C21C0: + lsls r5, r6, 24 + lsrs r5, 24 + adds r0, r5, 0 + movs r1, 0x1 + bl sub_80C3990 + adds r4, r0, 0 + lsls r4, 24 + lsrs r4, 24 + adds r0, r5, 0 + movs r1, 0x1 + bl sub_80C39E4 + movs r5, 0 + lsls r1, r6, 1 + adds r2, r6, 0x1 + mov r12, r2 + lsls r4, 24 + asrs r7, r4, 24 + adds r1, r6 + lsls r1, 6 + lsls r4, r0, 24 +_080C21EC: + ldr r6, _080C2238 @ =0x000060b2 + cmp r5, r7 + bge _080C21F4 + adds r6, 0x2 +_080C21F4: + asrs r2, r4, 24 + adds r0, r2, 0 + cmp r2, 0 + bge _080C21FE + negs r0, r2 +_080C21FE: + cmp r5, r0 + bge _080C2240 + ldr r3, _080C223C @ =0x000060a4 + cmp r2, 0 + bge _080C2242 + adds r3, 0x2 + b _080C2242 + .align 2, 0 +_080C220C: .4byte gUnknown_08D1977C +_080C2210: .4byte 0x040000d4 +_080C2214: .4byte 0x85000400 +_080C2218: .4byte gUnknown_08D1A490 +_080C221C: .4byte 0x0600d000 +_080C2220: .4byte gUnknown_08D1A364 +_080C2224: .4byte 0x0600e000 +_080C2228: .4byte gUnknown_08D1A250 +_080C222C: .4byte 0x0600f000 +_080C2230: .4byte gUnknown_08D1A618 +_080C2234: .4byte gWindowConfig_81E6FA0 +_080C2238: .4byte 0x000060b2 +_080C223C: .4byte 0x000060a4 +_080C2240: + ldr r3, _080C2264 @ =0x000060a2 +_080C2242: + ldr r2, _080C2268 @ =0x0600c166 + adds r0, r1, r2 + strh r6, [r0] + adds r2, 0x40 + adds r0, r1, r2 + strh r3, [r0] + adds r1, 0x2 + adds r5, 0x1 + cmp r5, 0x9 + ble _080C21EC + mov r6, r12 + cmp r6, 0x3 + ble _080C21C0 + add sp, 0x4 + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_080C2264: .4byte 0x000060a2 +_080C2268: .4byte 0x0600c166 + thumb_func_end sub_80C2144 + + thumb_func_start sub_80C226C +sub_80C226C: @ 80C226C + push {r4-r7,lr} + sub sp, 0x4 + lsls r0, 24 + lsrs r5, r0, 24 + ldr r0, _080C2288 @ =gContestPlayerMonIndex + ldrb r0, [r0] + cmp r5, r0 + bne _080C2294 + ldr r0, _080C228C @ =gDisplayedStringBattle + ldr r1, _080C2290 @ =gUnknown_083D17DC + bl StringCopy + adds r2, r0, 0 + b _080C2296 + .align 2, 0 +_080C2288: .4byte gContestPlayerMonIndex +_080C228C: .4byte gDisplayedStringBattle +_080C2290: .4byte gUnknown_083D17DC +_080C2294: + ldr r2, _080C22E8 @ =gDisplayedStringBattle +_080C2296: + movs r4, 0xFC + strb r4, [r2] + movs r0, 0x6 + strb r0, [r2, 0x1] + movs r0, 0x4 + strb r0, [r2, 0x2] + adds r2, 0x3 + lsls r6, r5, 6 + ldr r7, _080C22EC @ =gContestMons + 0x2 + adds r1, r6, r7 + adds r0, r2, 0 + bl StringCopy + adds r2, r0, 0 + strb r4, [r2] + movs r0, 0x13 + strb r0, [r2, 0x1] + movs r0, 0x32 + strb r0, [r2, 0x2] + adds r2, 0x3 + ldr r1, _080C22F0 @ =gUnknown_083D17E0 + adds r0, r2, 0 + bl StringCopy + adds r2, r0, 0 + ldr r0, _080C22F4 @ =gIsLinkContest + ldrb r1, [r0] + movs r0, 0x1 + ands r0, r1 + cmp r0, 0 + beq _080C22FC + lsls r4, r5, 3 + subs r1, r4, r5 + lsls r1, 2 + ldr r0, _080C22F8 @ =gLinkPlayers + 0x8 + adds r1, r0 + adds r0, r2, 0 + bl StringCopy + b _080C230A + .align 2, 0 +_080C22E8: .4byte gDisplayedStringBattle +_080C22EC: .4byte gContestMons + 0x2 +_080C22F0: .4byte gUnknown_083D17E0 +_080C22F4: .4byte gIsLinkContest +_080C22F8: .4byte gLinkPlayers + 0x8 +_080C22FC: + adds r1, r7, 0 + adds r1, 0xB + adds r1, r6, r1 + adds r0, r2, 0 + bl StringCopy + lsls r4, r5, 3 +_080C230A: + ldr r0, _080C2334 @ =gMenuWindow + ldr r1, _080C2338 @ =gDisplayedStringBattle + adds r2, r4, r5 + lsls r2, 18 + ldr r3, _080C233C @ =0x03020000 + adds r2, r3 + lsrs r2, 16 + lsls r3, r5, 1 + adds r3, r5 + adds r3, 0x4 + lsls r3, 24 + lsrs r3, 24 + str r3, [sp] + movs r3, 0x7 + bl sub_8003460 + add sp, 0x4 + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_080C2334: .4byte gMenuWindow +_080C2338: .4byte gDisplayedStringBattle +_080C233C: .4byte 0x03020000 + thumb_func_end sub_80C226C + + thumb_func_start sub_80C2340 +sub_80C2340: @ 80C2340 + push {r4,lr} + movs r4, 0 +_080C2344: + lsls r0, r4, 24 + lsrs r0, 24 + bl sub_80C226C + adds r4, 0x1 + cmp r4, 0x3 + ble _080C2344 + pop {r4} + pop {r0} + bx r0 + thumb_func_end sub_80C2340 + + thumb_func_start sub_80C2358 +sub_80C2358: @ 80C2358 + push {r4,r5,lr} + sub sp, 0x4 + ldr r5, _080C240C @ =gPaletteFade + ldrb r0, [r5, 0x8] + movs r1, 0x80 + orrs r0, r1 + strb r0, [r5, 0x8] + movs r0, 0 + bl SetVBlankCallback + bl sub_80C2020 + bl dp12_8087EA4 + bl ResetPaletteFade + bl ResetSpriteData + bl ResetTasks + bl FreeAllSpritePalettes + bl sub_80C2144 + bl sub_80C310C + movs r0, 0 + movs r1, 0x1 + bl sub_80C30D4 + bl sub_80C2340 + ldr r4, _080C2410 @ =0x02018000 + adds r0, r4, 0 + movs r1, 0 + movs r2, 0x18 + bl memset + adds r0, r4, 0 + adds r0, 0x18 + movs r1, 0 + movs r2, 0x50 + bl memset + bl sub_80C33DC + movs r0, 0x1 + negs r0, r0 + movs r1, 0 + str r1, [sp] + movs r2, 0x10 + movs r3, 0 + bl BeginNormalPaletteFade + ldrb r1, [r5, 0x8] + movs r0, 0x7F + ands r0, r1 + strb r0, [r5, 0x8] + ldr r0, _080C2414 @ =sub_80C24F4 + movs r1, 0x5 + bl CreateTask + strb r0, [r4, 0x2] + ldr r0, _080C2418 @ =sub_80C2430 + bl SetMainCallback2 + ldr r1, _080C241C @ =gUnknown_03004200 + movs r0, 0xF0 + strh r0, [r1] + ldr r1, _080C2420 @ =gUnknown_03004244 + ldr r2, _080C2424 @ =0x000080a0 + adds r0, r2, 0 + strh r0, [r1] + ldr r0, _080C2428 @ =sub_80C2F28 + movs r1, 0x14 + bl CreateTask + bl sub_80C3F00 + movs r0, 0xDF + lsls r0, 1 + bl PlayBGM + ldr r0, _080C242C @ =sub_80C2448 + bl SetVBlankCallback + add sp, 0x4 + pop {r4,r5} + pop {r0} + bx r0 + .align 2, 0 +_080C240C: .4byte gPaletteFade +_080C2410: .4byte 0x02018000 +_080C2414: .4byte sub_80C24F4 +_080C2418: .4byte sub_80C2430 +_080C241C: .4byte gUnknown_03004200 +_080C2420: .4byte gUnknown_03004244 +_080C2424: .4byte 0x000080a0 +_080C2428: .4byte sub_80C2F28 +_080C242C: .4byte sub_80C2448 + thumb_func_end sub_80C2358 + + thumb_func_start sub_80C2430 +sub_80C2430: @ 80C2430 + push {lr} + bl AnimateSprites + bl BuildOamBuffer + bl RunTasks + bl UpdatePaletteFade + pop {r0} + bx r0 + thumb_func_end sub_80C2430 + + thumb_func_start sub_80C2448 +sub_80C2448: @ 80C2448 + push {lr} + ldr r1, _080C24C0 @ =REG_BG0HOFS + ldr r0, _080C24C4 @ =gUnknown_030042A4 + ldrh r0, [r0] + strh r0, [r1] + adds r1, 0x2 + ldr r0, _080C24C8 @ =gUnknown_030042A0 + ldrh r0, [r0] + strh r0, [r1] + adds r1, 0x2 + ldr r0, _080C24CC @ =gUnknown_030042C0 + ldrh r0, [r0] + strh r0, [r1] + adds r1, 0x2 + ldr r0, _080C24D0 @ =gUnknown_030041B4 + ldrh r0, [r0] + strh r0, [r1] + adds r1, 0x2 + ldr r0, _080C24D4 @ =gUnknown_03004288 + ldrh r0, [r0] + strh r0, [r1] + adds r1, 0x2 + ldr r0, _080C24D8 @ =gUnknown_03004280 + ldrh r0, [r0] + strh r0, [r1] + adds r1, 0x2 + ldr r0, _080C24DC @ =gUnknown_030041B0 + ldrh r0, [r0] + strh r0, [r1] + adds r1, 0x2 + ldr r0, _080C24E0 @ =gUnknown_030041B8 + ldrh r0, [r0] + strh r0, [r1] + adds r1, 0x22 + ldr r0, _080C24E4 @ =gUnknown_030042C4 + ldrh r0, [r0] + strh r0, [r1] + adds r1, 0x4 + ldr r0, _080C24E8 @ =gUnknown_03004240 + ldrh r0, [r0] + strh r0, [r1] + subs r1, 0x2 + ldr r0, _080C24EC @ =gUnknown_03004200 + ldrh r0, [r0] + strh r0, [r1] + adds r1, 0x4 + ldr r0, _080C24F0 @ =gUnknown_03004244 + ldrh r0, [r0] + strh r0, [r1] + bl LoadOam + bl ProcessSpriteCopyRequests + bl TransferPlttBuffer + bl sub_8089668 + pop {r0} + bx r0 + .align 2, 0 +_080C24C0: .4byte REG_BG0HOFS +_080C24C4: .4byte gUnknown_030042A4 +_080C24C8: .4byte gUnknown_030042A0 +_080C24CC: .4byte gUnknown_030042C0 +_080C24D0: .4byte gUnknown_030041B4 +_080C24D4: .4byte gUnknown_03004288 +_080C24D8: .4byte gUnknown_03004280 +_080C24DC: .4byte gUnknown_030041B0 +_080C24E0: .4byte gUnknown_030041B8 +_080C24E4: .4byte gUnknown_030042C4 +_080C24E8: .4byte gUnknown_03004240 +_080C24EC: .4byte gUnknown_03004200 +_080C24F0: .4byte gUnknown_03004244 + thumb_func_end sub_80C2448 + + thumb_func_start sub_80C24F4 +sub_80C24F4: @ 80C24F4 + push {r4,lr} + lsls r0, 24 + lsrs r4, r0, 24 + adds r2, r4, 0 + ldr r0, _080C252C @ =gPaletteFade + ldrb r1, [r0, 0x7] + movs r0, 0x80 + ands r0, r1 + cmp r0, 0 + bne _080C254E + ldr r0, _080C2530 @ =gIsLinkContest + ldrb r1, [r0] + movs r0, 0x1 + ands r0, r1 + cmp r0, 0 + beq _080C2540 + ldr r0, _080C2534 @ =gOtherText_LinkStandby + bl sub_80C3698 + ldr r1, _080C2538 @ =gTasks + lsls r0, r4, 2 + adds r0, r4 + lsls r0, 3 + adds r0, r1 + ldr r1, _080C253C @ =sub_80C255C + str r1, [r0] + b _080C254E + .align 2, 0 +_080C252C: .4byte gPaletteFade +_080C2530: .4byte gIsLinkContest +_080C2534: .4byte gOtherText_LinkStandby +_080C2538: .4byte gTasks +_080C253C: .4byte sub_80C255C +_080C2540: + ldr r0, _080C2554 @ =gTasks + lsls r1, r2, 2 + adds r1, r2 + lsls r1, 3 + adds r1, r0 + ldr r0, _080C2558 @ =sub_80C2600 + str r0, [r1] +_080C254E: + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_080C2554: .4byte gTasks +_080C2558: .4byte sub_80C2600 + thumb_func_end sub_80C24F4 + + thumb_func_start sub_80C255C +sub_80C255C: @ 80C255C + push {r4,lr} + lsls r0, 24 + lsrs r4, r0, 24 + ldr r0, _080C2594 @ =gReceivedRemoteLinkPlayers + ldrb r0, [r0] + cmp r0, 0 + beq _080C258C + bl GetLinkPlayerCount + lsls r0, 24 + lsrs r0, 24 + cmp r0, 0x4 + bne _080C258C + ldr r0, _080C2598 @ =sub_80C25A4 + movs r1, 0 + bl CreateTask + ldr r1, _080C259C @ =gTasks + lsls r0, r4, 2 + adds r0, r4 + lsls r0, 3 + adds r0, r1 + ldr r1, _080C25A0 @ =TaskDummy + str r1, [r0] +_080C258C: + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_080C2594: .4byte gReceivedRemoteLinkPlayers +_080C2598: .4byte sub_80C25A4 +_080C259C: .4byte gTasks +_080C25A0: .4byte TaskDummy + thumb_func_end sub_80C255C + + thumb_func_start sub_80C25A4 +sub_80C25A4: @ 80C25A4 + push {lr} + lsls r0, 24 + lsrs r0, 24 + ldr r1, _080C25B8 @ =sub_80C89DC + ldr r2, _080C25BC @ =sub_80C25C0 + bl SetTaskFuncWithFollowupFunc + pop {r0} + bx r0 + .align 2, 0 +_080C25B8: .4byte sub_80C89DC +_080C25BC: .4byte sub_80C25C0 + thumb_func_end sub_80C25A4 + + thumb_func_start sub_80C25C0 +sub_80C25C0: @ 80C25C0 + push {r4,lr} + lsls r0, 24 + lsrs r4, r0, 24 + bl sub_8007ECC + lsls r0, 24 + cmp r0, 0 + beq _080C25EC + adds r0, r4, 0 + bl DestroyTask + ldr r2, _080C25F4 @ =gTasks + ldr r0, _080C25F8 @ =0x02018000 + ldrb r1, [r0, 0x2] + lsls r0, r1, 2 + adds r0, r1 + lsls r0, 3 + adds r0, r2 + ldr r1, _080C25FC @ =sub_80C2600 + str r1, [r0] + bl sub_80C3764 +_080C25EC: + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_080C25F4: .4byte gTasks +_080C25F8: .4byte 0x02018000 +_080C25FC: .4byte sub_80C2600 + thumb_func_end sub_80C25C0 + + thumb_func_start sub_80C2600 +sub_80C2600: @ 80C2600 + push {r4,r5,lr} + lsls r0, 24 + lsrs r0, 24 + ldr r2, _080C2644 @ =gTasks + lsls r1, r0, 2 + adds r1, r0 + lsls r1, 3 + adds r5, r1, r2 + ldrh r1, [r5, 0x8] + movs r2, 0x8 + ldrsh r0, [r5, r2] + cmp r0, 0 + bne _080C2654 + ldr r0, _080C2648 @ =sub_80C2F64 + movs r1, 0x14 + bl CreateTask + ldr r4, _080C264C @ =gContestText_AnnounceResults + ldr r0, _080C2650 @ =0x02018000 + ldrb r1, [r0] + adds r0, r4, 0 + bl sub_80C3158 + adds r0, r4, 0 + bl sub_80C34AC + lsls r0, 16 + asrs r0, 16 + movs r3, 0x88 + lsls r3, 3 + movs r1, 0x90 + movs r2, 0x78 + b _080C26A6 + .align 2, 0 +_080C2644: .4byte gTasks +_080C2648: .4byte sub_80C2F64 +_080C264C: .4byte gContestText_AnnounceResults +_080C2650: .4byte 0x02018000 +_080C2654: + cmp r0, 0x1 + bne _080C2668 + ldr r0, _080C2664 @ =0x02018000 + ldrb r0, [r0, 0x4] + cmp r0, 0 + bne _080C26D4 + b _080C267C + .align 2, 0 +_080C2664: .4byte 0x02018000 +_080C2668: + cmp r0, 0x2 + bne _080C2684 + ldrh r0, [r5, 0xA] + adds r0, 0x1 + strh r0, [r5, 0xA] + lsls r0, 16 + asrs r0, 16 + cmp r0, 0x15 + bne _080C26D4 + movs r0, 0 +_080C267C: + strh r0, [r5, 0xA] + adds r0, r1, 0x1 + strh r0, [r5, 0x8] + b _080C26D4 +_080C2684: + cmp r0, 0x3 + bne _080C26C0 + ldr r4, _080C26B4 @ =gContestText_PreliminaryResults + ldr r0, _080C26B8 @ =0x02018000 + ldrb r1, [r0] + adds r0, r4, 0 + bl sub_80C3158 + adds r0, r4, 0 + bl sub_80C34AC + lsls r0, 16 + asrs r0, 16 + ldr r2, _080C26BC @ =0x0000ffff + movs r3, 0x88 + lsls r3, 3 + movs r1, 0x90 +_080C26A6: + bl sub_80C34CC + ldrh r0, [r5, 0x8] + adds r0, 0x1 + strh r0, [r5, 0x8] + b _080C26D4 + .align 2, 0 +_080C26B4: .4byte gContestText_PreliminaryResults +_080C26B8: .4byte 0x02018000 +_080C26BC: .4byte 0x0000ffff +_080C26C0: + cmp r0, 0x4 + bne _080C26D4 + ldr r0, _080C26DC @ =0x02018000 + ldrb r0, [r0, 0x4] + cmp r0, 0x2 + bne _080C26D4 + movs r0, 0 + strh r0, [r5, 0x8] + ldr r0, _080C26E0 @ =sub_80C26E4 + str r0, [r5] +_080C26D4: + pop {r4,r5} + pop {r0} + bx r0 + .align 2, 0 +_080C26DC: .4byte 0x02018000 +_080C26E0: .4byte sub_80C26E4 + thumb_func_end sub_80C2600 + + thumb_func_start sub_80C26E4 +sub_80C26E4: @ 80C26E4 + push {r4,r5,lr} + lsls r0, 24 + lsrs r0, 24 + ldr r2, _080C2708 @ =gTasks + lsls r1, r0, 2 + adds r1, r0 + lsls r1, 3 + adds r4, r1, r2 + movs r1, 0x8 + ldrsh r0, [r4, r1] + cmp r0, 0x1 + beq _080C2744 + cmp r0, 0x1 + bgt _080C270C + cmp r0, 0 + beq _080C2712 + b _080C2766 + .align 2, 0 +_080C2708: .4byte gTasks +_080C270C: + cmp r0, 0x2 + beq _080C2754 + b _080C2766 +_080C2712: + ldr r5, _080C2738 @ =0x02018000 + ldrb r0, [r5, 0xA] + cmp r0, 0 + bne _080C2766 + ldrh r1, [r4, 0xC] + adds r0, r1, 0x1 + strh r0, [r4, 0xC] + lsls r1, 24 + lsrs r1, 24 + movs r0, 0 + bl sub_80C40D4 + ldrb r0, [r5, 0x14] + cmp r0, 0 + bne _080C273C + movs r0, 0x2 + strh r0, [r4, 0x8] + b _080C2766 + .align 2, 0 +_080C2738: .4byte 0x02018000 +_080C273C: + ldrh r0, [r4, 0x8] + adds r0, 0x1 + strh r0, [r4, 0x8] + b _080C2766 +_080C2744: + ldr r0, _080C2750 @ =0x02018000 + ldrb r0, [r0, 0x14] + cmp r0, 0 + bne _080C2766 + strh r0, [r4, 0x8] + b _080C2766 + .align 2, 0 +_080C2750: .4byte 0x02018000 +_080C2754: + movs r0, 0x88 + lsls r0, 3 + bl sub_80C3520 + movs r0, 0 + strh r0, [r4, 0x8] + strh r0, [r4, 0xC] + ldr r0, _080C276C @ =sub_80C2770 + str r0, [r4] +_080C2766: + pop {r4,r5} + pop {r0} + bx r0 + .align 2, 0 +_080C276C: .4byte sub_80C2770 + thumb_func_end sub_80C26E4 + + thumb_func_start sub_80C2770 +sub_80C2770: @ 80C2770 + push {r4,r5,lr} + lsls r0, 24 + lsrs r2, r0, 24 + adds r4, r2, 0 + ldr r5, _080C27BC @ =0x02018000 + ldrb r3, [r5, 0x4] + cmp r3, 0 + bne _080C27CC + ldr r1, _080C27C0 @ =gTasks + lsls r0, r2, 2 + adds r0, r2 + lsls r0, 3 + adds r1, r0, r1 + ldrh r0, [r1, 0xA] + adds r0, 0x1 + strh r0, [r1, 0xA] + lsls r0, 16 + asrs r0, 16 + cmp r0, 0x15 + bne _080C27DE + strh r3, [r1, 0xA] + ldr r4, _080C27C4 @ =gContestText_Round2Results + ldrb r1, [r5] + adds r0, r4, 0 + bl sub_80C3158 + adds r0, r4, 0 + bl sub_80C34AC + lsls r0, 16 + asrs r0, 16 + ldr r2, _080C27C8 @ =0x0000ffff + movs r3, 0x88 + lsls r3, 3 + movs r1, 0x90 + bl sub_80C34CC + b _080C27DE + .align 2, 0 +_080C27BC: .4byte 0x02018000 +_080C27C0: .4byte gTasks +_080C27C4: .4byte gContestText_Round2Results +_080C27C8: .4byte 0x0000ffff +_080C27CC: + cmp r3, 0x2 + bne _080C27DE + ldr r0, _080C27E4 @ =gTasks + lsls r1, r4, 2 + adds r1, r4 + lsls r1, 3 + adds r1, r0 + ldr r0, _080C27E8 @ =sub_80C27EC + str r0, [r1] +_080C27DE: + pop {r4,r5} + pop {r0} + bx r0 + .align 2, 0 +_080C27E4: .4byte gTasks +_080C27E8: .4byte sub_80C27EC + thumb_func_end sub_80C2770 + + thumb_func_start sub_80C27EC +sub_80C27EC: @ 80C27EC + push {r4,r5,lr} + lsls r0, 24 + lsrs r0, 24 + ldr r2, _080C2810 @ =gTasks + lsls r1, r0, 2 + adds r1, r0 + lsls r1, 3 + adds r4, r1, r2 + movs r1, 0x8 + ldrsh r0, [r4, r1] + cmp r0, 0x1 + beq _080C284C + cmp r0, 0x1 + bgt _080C2814 + cmp r0, 0 + beq _080C281A + b _080C286C + .align 2, 0 +_080C2810: .4byte gTasks +_080C2814: + cmp r0, 0x2 + beq _080C285C + b _080C286C +_080C281A: + ldr r5, _080C2840 @ =0x02018000 + ldrb r0, [r5, 0xA] + cmp r0, 0 + bne _080C286C + ldrh r1, [r4, 0xC] + adds r0, r1, 0x1 + strh r0, [r4, 0xC] + lsls r1, 24 + lsrs r1, 24 + movs r0, 0x1 + bl sub_80C40D4 + ldrb r0, [r5, 0x14] + cmp r0, 0 + bne _080C2844 + movs r0, 0x2 + strh r0, [r4, 0x8] + b _080C286C + .align 2, 0 +_080C2840: .4byte 0x02018000 +_080C2844: + ldrh r0, [r4, 0x8] + adds r0, 0x1 + strh r0, [r4, 0x8] + b _080C286C +_080C284C: + ldr r0, _080C2858 @ =0x02018000 + ldrb r0, [r0, 0x14] + cmp r0, 0 + bne _080C286C + strh r0, [r4, 0x8] + b _080C286C + .align 2, 0 +_080C2858: .4byte 0x02018000 +_080C285C: + movs r0, 0x88 + lsls r0, 3 + bl sub_80C3520 + movs r0, 0 + strh r0, [r4, 0x8] + ldr r0, _080C2874 @ =sub_80C2878 + str r0, [r4] +_080C286C: + pop {r4,r5} + pop {r0} + bx r0 + .align 2, 0 +_080C2874: .4byte sub_80C2878 + thumb_func_end sub_80C27EC + + thumb_func_start sub_80C2878 +sub_80C2878: @ 80C2878 + push {r4-r7,lr} + sub sp, 0x64 + lsls r0, 24 + lsrs r5, r0, 24 + ldr r1, _080C28A0 @ =gTasks + lsls r0, r5, 2 + adds r0, r5 + lsls r0, 3 + adds r0, r1 + movs r2, 0x8 + ldrsh r0, [r0, r2] + adds r2, r1, 0 + cmp r0, 0x5 + bls _080C2896 + b _080C2A80 +_080C2896: + lsls r0, 2 + ldr r1, _080C28A4 @ =_080C28A8 + adds r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_080C28A0: .4byte gTasks +_080C28A4: .4byte _080C28A8 + .align 2, 0 +_080C28A8: + .4byte _080C28C0 + .4byte _080C28E0 + .4byte _080C28FE + .4byte _080C2938 + .4byte _080C299C + .4byte _080C2A70 +_080C28C0: + ldr r0, _080C28DC @ =0x02018000 + ldrb r0, [r0, 0x4] + cmp r0, 0 + beq _080C28CA + b _080C2A80 +_080C28CA: + lsls r0, r5, 2 + adds r0, r5 + lsls r0, 3 + adds r0, r2 + ldrh r1, [r0, 0x8] + adds r1, 0x1 + strh r1, [r0, 0x8] + b _080C2A80 + .align 2, 0 +_080C28DC: .4byte 0x02018000 +_080C28E0: + lsls r0, r5, 2 + adds r0, r5 + lsls r0, 3 + adds r1, r0, r2 + ldrh r0, [r1, 0xA] + adds r0, 0x1 + strh r0, [r1, 0xA] + lsls r0, 16 + asrs r0, 16 + cmp r0, 0x1F + beq _080C28F8 + b _080C2A80 +_080C28F8: + movs r0, 0 + strh r0, [r1, 0xA] + b _080C2A4A +_080C28FE: + movs r4, 0 + lsls r6, r5, 2 + ldr r7, _080C292C @ =gTasks +_080C2904: + ldr r0, _080C2930 @ =sub_80C3A5C + movs r1, 0xA + bl CreateTask + lsls r0, 24 + lsrs r0, 24 + lsls r1, r0, 2 + adds r1, r0 + lsls r1, 3 + adds r1, r7 + ldr r0, _080C2934 @ =gUnknown_02038690 + adds r0, r4, r0 + ldrb r0, [r0] + strh r0, [r1, 0x8] + strh r4, [r1, 0xA] + adds r4, 0x1 + cmp r4, 0x3 + ble _080C2904 + b _080C2A42 + .align 2, 0 +_080C292C: .4byte gTasks +_080C2930: .4byte sub_80C3A5C +_080C2934: .4byte gUnknown_02038690 +_080C2938: + ldr r0, _080C2990 @ =0x02018000 + ldrb r0, [r0, 0x5] + cmp r0, 0x4 + beq _080C2942 + b _080C2A80 +_080C2942: + lsls r0, r5, 2 + adds r0, r5 + lsls r0, 3 + adds r4, r0, r2 + ldrh r0, [r4, 0xA] + adds r0, 0x1 + strh r0, [r4, 0xA] + lsls r0, 16 + asrs r0, 16 + cmp r0, 0x1F + beq _080C295A + b _080C2A80 +_080C295A: + movs r0, 0 + strh r0, [r4, 0xA] + ldr r0, _080C2994 @ =sub_80C3B30 + movs r1, 0xA + bl CreateTask + ldrh r0, [r4, 0x8] + adds r0, 0x1 + strh r0, [r4, 0x8] + movs r4, 0 + ldr r1, _080C2998 @ =gUnknown_02038690 + ldrb r0, [r1] + cmp r0, 0 + beq _080C2984 +_080C2976: + adds r4, 0x1 + cmp r4, 0x3 + bgt _080C2984 + adds r0, r4, r1 + ldrb r0, [r0] + cmp r0, 0 + bne _080C2976 +_080C2984: + lsls r0, r4, 24 + lsrs r0, 24 + movs r1, 0xE + bl sub_80C3E60 + b _080C2A80 + .align 2, 0 +_080C2990: .4byte 0x02018000 +_080C2994: .4byte sub_80C3B30 +_080C2998: .4byte gUnknown_02038690 +_080C299C: + lsls r1, r5, 2 + adds r0, r1, r5 + lsls r0, 3 + adds r2, r0, r2 + ldrh r0, [r2, 0xA] + adds r0, 0x1 + strh r0, [r2, 0xA] + lsls r0, 16 + asrs r0, 16 + adds r6, r1, 0 + cmp r0, 0x15 + bne _080C2A80 + movs r0, 0 + strh r0, [r2, 0xA] + movs r4, 0 + ldr r2, _080C29F4 @ =gUnknown_02038690 + ldrb r0, [r2] + ldr r1, _080C29F8 @ =gIsLinkContest + ldr r3, _080C29FC @ =gStringVar1 + cmp r0, 0 + beq _080C29D4 +_080C29C6: + adds r4, 0x1 + cmp r4, 0x3 + bgt _080C29D4 + adds r0, r4, r2 + ldrb r0, [r0] + cmp r0, 0 + bne _080C29C6 +_080C29D4: + ldrb r1, [r1] + movs r0, 0x1 + ands r0, r1 + cmp r0, 0 + beq _080C2A04 + lsls r1, r4, 3 + subs r1, r4 + lsls r1, 2 + ldr r0, _080C2A00 @ =gLinkPlayers + 0x8 + adds r1, r0 + adds r0, r3, 0 + bl StringCopy + lsls r4, 6 + b _080C2A10 + .align 2, 0 +_080C29F4: .4byte gUnknown_02038690 +_080C29F8: .4byte gIsLinkContest +_080C29FC: .4byte gStringVar1 +_080C2A00: .4byte gLinkPlayers + 0x8 +_080C2A04: + lsls r4, 6 + ldr r1, _080C2A54 @ =gUnknown_0203857D + adds r1, r4, r1 + adds r0, r3, 0 + bl StringCopy +_080C2A10: + ldr r0, _080C2A58 @ =gStringVar2 + ldr r1, _080C2A5C @ =gContestMons + 0x2 + adds r1, r4, r1 + bl StringCopy + ldr r1, _080C2A60 @ =gContestText_PokeWon + mov r0, sp + bl StringExpandPlaceholders + ldr r0, _080C2A64 @ =0x02018000 + ldrb r1, [r0] + mov r0, sp + bl sub_80C3158 + mov r0, sp + bl sub_80C34AC + lsls r0, 16 + asrs r0, 16 + ldr r2, _080C2A68 @ =0x0000ffff + movs r3, 0x88 + lsls r3, 3 + movs r1, 0x90 + bl sub_80C34CC +_080C2A42: + ldr r0, _080C2A6C @ =gTasks + adds r1, r6, r5 + lsls r1, 3 + adds r1, r0 +_080C2A4A: + ldrh r0, [r1, 0x8] + adds r0, 0x1 + strh r0, [r1, 0x8] + b _080C2A80 + .align 2, 0 +_080C2A54: .4byte gUnknown_0203857D +_080C2A58: .4byte gStringVar2 +_080C2A5C: .4byte gContestMons + 0x2 +_080C2A60: .4byte gContestText_PokeWon +_080C2A64: .4byte 0x02018000 +_080C2A68: .4byte 0x0000ffff +_080C2A6C: .4byte gTasks +_080C2A70: + lsls r0, r5, 2 + adds r0, r5 + lsls r0, 3 + adds r0, r2 + movs r1, 0 + strh r1, [r0, 0x8] + ldr r1, _080C2A88 @ =sub_80C2A8C + str r1, [r0] +_080C2A80: + add sp, 0x64 + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_080C2A88: .4byte sub_80C2A8C + thumb_func_end sub_80C2878 + + thumb_func_start sub_80C2A8C +sub_80C2A8C: @ 80C2A8C + push {r4-r7,lr} + mov r7, r10 + mov r6, r9 + mov r5, r8 + push {r5-r7} + sub sp, 0x10 + lsls r0, 24 + lsrs r7, r0, 24 + ldr r1, _080C2ABC @ =gTasks + lsls r0, r7, 2 + adds r0, r7 + lsls r0, 3 + adds r0, r1 + movs r2, 0x8 + ldrsh r0, [r0, r2] + adds r4, r1, 0 + cmp r0, 0x5 + bls _080C2AB2 + b _080C2D04 +_080C2AB2: + lsls r0, 2 + ldr r1, _080C2AC0 @ =_080C2AC4 + adds r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_080C2ABC: .4byte gTasks +_080C2AC0: .4byte _080C2AC4 + .align 2, 0 +_080C2AC4: + .4byte _080C2ADC + .4byte _080C2C04 + .4byte _080C2C54 + .4byte _080C2C64 + .4byte _080C2CA8 + .4byte _080C2CE8 +_080C2ADC: + ldr r1, _080C2BC4 @ =gUnknown_030042C4 + movs r0, 0xF0 + strh r0, [r1] + ldr r1, _080C2BC8 @ =gUnknown_03004240 + ldr r3, _080C2BCC @ =0x00005050 + adds r0, r3, 0 + strh r0, [r1] + movs r1, 0 + ldr r3, _080C2BD0 @ =gUnknown_02038690 + ldrb r0, [r3] + lsls r4, r7, 2 + mov r10, r4 + ldr r2, _080C2BD4 @ =gContestMons + ldr r5, _080C2BD8 @ =gMonFrontPicTable + mov r12, r5 + ldr r4, _080C2BDC @ =gMonFrontPicCoords + mov r8, r4 + ldr r5, _080C2BE0 @ =gUnknown_081FAF4C + mov r9, r5 + cmp r0, 0 + beq _080C2B14 +_080C2B06: + adds r1, 0x1 + cmp r1, 0x3 + bgt _080C2B14 + adds r0, r1, r3 + ldrb r0, [r0] + cmp r0, 0 + bne _080C2B06 +_080C2B14: + lsls r1, 6 + adds r0, r1, r2 + ldrh r6, [r0] + adds r0, r2, 0 + adds r0, 0x38 + adds r0, r1, r0 + ldr r4, [r0] + adds r0, r2, 0 + adds r0, 0x3C + adds r1, r0 + ldr r1, [r1] + str r1, [sp, 0xC] + lsls r0, r6, 3 + add r0, r12 + lsls r2, r6, 2 + add r2, r8 + ldrb r1, [r2] + ldrb r2, [r2, 0x1] + mov r5, r9 + ldr r3, [r5, 0x4] + str r3, [sp] + str r6, [sp, 0x4] + str r4, [sp, 0x8] + ldr r3, _080C2BE4 @ =0x02000000 + bl HandleLoadSpecialPokePic + adds r0, r6, 0 + ldr r1, [sp, 0xC] + adds r2, r4, 0 + bl sub_80409C8 + adds r4, r0, 0 + bl LoadCompressedObjectPalette + adds r0, r6, 0 + movs r1, 0x1 + bl GetMonSpriteTemplate_803C56C + ldr r0, _080C2BE8 @ =gUnknown_02024E8C + ldrh r1, [r4, 0x4] + strh r1, [r0, 0x2] + movs r1, 0x88 + lsls r1, 1 + movs r2, 0x50 + movs r3, 0xA + bl CreateSprite + lsls r0, 24 + lsrs r0, 24 + ldr r5, _080C2BEC @ =gSprites + lsls r2, r0, 4 + adds r2, r0 + lsls r2, 2 + adds r3, r2, r5 + strh r6, [r3, 0x30] + ldrb r4, [r3, 0x5] + movs r1, 0xD + negs r1, r1 + ands r1, r4 + strb r1, [r3, 0x5] + adds r5, 0x1C + adds r2, r5 + ldr r1, _080C2BF0 @ =sub_80C3C44 + str r1, [r2] + ldr r2, _080C2BE4 @ =0x02000000 + movs r3, 0xC0 + lsls r3, 9 + adds r1, r2, r3 + strb r0, [r1, 0x8] + ldr r0, _080C2BF4 @ =gUnknown_083D17CC + bl LoadCompressedObjectPic + ldr r0, _080C2BF8 @ =gUnknown_083D17D4 + bl LoadCompressedObjectPalette + ldr r0, _080C2BFC @ =sub_80C3D04 + movs r1, 0xA + bl CreateTask + ldr r0, _080C2C00 @ =gTasks + mov r4, r10 + adds r1, r4, r7 + lsls r1, 3 + adds r1, r0 + ldrh r0, [r1, 0x8] + adds r0, 0x1 + strh r0, [r1, 0x8] + b _080C2D04 + .align 2, 0 +_080C2BC4: .4byte gUnknown_030042C4 +_080C2BC8: .4byte gUnknown_03004240 +_080C2BCC: .4byte 0x00005050 +_080C2BD0: .4byte gUnknown_02038690 +_080C2BD4: .4byte gContestMons +_080C2BD8: .4byte gMonFrontPicTable +_080C2BDC: .4byte gMonFrontPicCoords +_080C2BE0: .4byte gUnknown_081FAF4C +_080C2BE4: .4byte 0x02000000 +_080C2BE8: .4byte gUnknown_02024E8C +_080C2BEC: .4byte gSprites +_080C2BF0: .4byte sub_80C3C44 +_080C2BF4: .4byte gUnknown_083D17CC +_080C2BF8: .4byte gUnknown_083D17D4 +_080C2BFC: .4byte sub_80C3D04 +_080C2C00: .4byte gTasks +_080C2C04: + lsls r0, r7, 2 + adds r0, r7 + lsls r0, 3 + adds r4, r0, r4 + ldrh r0, [r4, 0xE] + adds r0, 0x1 + strh r0, [r4, 0xE] + lsls r0, 16 + asrs r0, 16 + cmp r0, 0x1 + bne _080C2D04 + movs r0, 0 + strh r0, [r4, 0xE] + ldrh r0, [r4, 0xC] + adds r0, 0x2 + strh r0, [r4, 0xC] + lsls r0, 16 + asrs r0, 16 + cmp r0, 0x20 + ble _080C2C30 + movs r0, 0x20 + strh r0, [r4, 0xC] +_080C2C30: + ldrb r2, [r4, 0xC] + ldr r3, _080C2C50 @ =gUnknown_03004240 + movs r0, 0x50 + subs r0, r2 + lsls r0, 8 + adds r1, r2, 0 + adds r1, 0x50 + orrs r0, r1 + strh r0, [r3] + cmp r2, 0x20 + bne _080C2D04 + ldrh r0, [r4, 0x8] + adds r0, 0x1 + strh r0, [r4, 0x8] + b _080C2D04 + .align 2, 0 +_080C2C50: .4byte gUnknown_03004240 +_080C2C54: + ldr r0, _080C2C60 @ =0x02018000 + ldrb r0, [r0, 0x6] + cmp r0, 0x1 + bne _080C2D04 + b _080C2CD0 + .align 2, 0 +_080C2C60: .4byte 0x02018000 +_080C2C64: + lsls r0, r7, 2 + adds r0, r7 + lsls r0, 3 + adds r3, r0, r4 + ldrh r0, [r3, 0xA] + adds r0, 0x1 + strh r0, [r3, 0xA] + lsls r0, 16 + asrs r0, 16 + cmp r0, 0x79 + bne _080C2D04 + movs r0, 0 + strh r0, [r3, 0xA] + ldr r2, _080C2C9C @ =gSprites + ldr r0, _080C2CA0 @ =0x02018000 + ldrb r1, [r0, 0x8] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r2, 0x1C + adds r0, r2 + ldr r1, _080C2CA4 @ =sub_80C3CB8 + str r1, [r0] + ldrh r0, [r3, 0x8] + adds r0, 0x1 + strh r0, [r3, 0x8] + b _080C2D04 + .align 2, 0 +_080C2C9C: .4byte gSprites +_080C2CA0: .4byte 0x02018000 +_080C2CA4: .4byte sub_80C3CB8 +_080C2CA8: + ldr r0, _080C2CE0 @ =0x02018000 + ldrb r0, [r0, 0x6] + cmp r0, 0x2 + bne _080C2D04 + ldr r3, _080C2CE4 @ =gUnknown_03004240 + ldrh r0, [r3] + lsrs r2, r0, 8 + adds r0, r2, 0x2 + lsls r0, 24 + lsrs r2, r0, 24 + cmp r2, 0x50 + bls _080C2CC2 + movs r2, 0x50 +_080C2CC2: + lsls r1, r2, 8 + movs r0, 0xA0 + subs r0, r2 + orrs r1, r0 + strh r1, [r3] + cmp r2, 0x50 + bne _080C2D04 +_080C2CD0: + lsls r0, r7, 2 + adds r0, r7 + lsls r0, 3 + adds r0, r4 + ldrh r1, [r0, 0x8] + adds r1, 0x1 + strh r1, [r0, 0x8] + b _080C2D04 + .align 2, 0 +_080C2CE0: .4byte 0x02018000 +_080C2CE4: .4byte gUnknown_03004240 +_080C2CE8: + ldr r2, _080C2D14 @ =0x02018000 + ldrb r0, [r2, 0x6] + cmp r0, 0x2 + bne _080C2D04 + movs r1, 0 + movs r0, 0x1 + strb r0, [r2, 0x9] + lsls r0, r7, 2 + adds r0, r7 + lsls r0, 3 + adds r0, r4 + strh r1, [r0, 0x8] + ldr r1, _080C2D18 @ =sub_80C2D1C + str r1, [r0] +_080C2D04: + add sp, 0x10 + pop {r3-r5} + mov r8, r3 + mov r9, r4 + mov r10, r5 + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_080C2D14: .4byte 0x02018000 +_080C2D18: .4byte sub_80C2D1C + thumb_func_end sub_80C2A8C + + thumb_func_start sub_80C2D1C +sub_80C2D1C: @ 80C2D1C + push {r4-r7,lr} + lsls r0, 24 + lsrs r7, r0, 24 + ldr r0, _080C2D6C @ =gMain + ldrh r1, [r0, 0x2E] + movs r2, 0x1 + adds r0, r2, 0 + ands r0, r1 + cmp r0, 0 + beq _080C2D66 + ldr r0, _080C2D70 @ =gIsLinkContest + ldrb r1, [r0] + adds r0, r2, 0 + ands r0, r1 + lsls r6, r7, 2 + cmp r0, 0 + bne _080C2D5A + ldr r5, _080C2D74 @ =gContestMons + movs r4, 0x3 +_080C2D42: + ldrh r0, [r5] + bl SpeciesToNationalPokedexNum + lsls r0, 16 + lsrs r0, 16 + movs r1, 0x2 + bl GetNationalPokedexFlag + adds r5, 0x40 + subs r4, 0x1 + cmp r4, 0 + bge _080C2D42 +_080C2D5A: + ldr r0, _080C2D78 @ =gTasks + adds r1, r6, r7 + lsls r1, 3 + adds r1, r0 + ldr r0, _080C2D7C @ =sub_80C2D80 + str r0, [r1] +_080C2D66: + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_080C2D6C: .4byte gMain +_080C2D70: .4byte gIsLinkContest +_080C2D74: .4byte gContestMons +_080C2D78: .4byte gTasks +_080C2D7C: .4byte sub_80C2D80 + thumb_func_end sub_80C2D1C + + thumb_func_start sub_80C2D80 +sub_80C2D80: @ 80C2D80 + push {r4,lr} + lsls r0, 24 + lsrs r4, r0, 24 + ldr r0, _080C2DAC @ =gIsLinkContest + ldrb r1, [r0] + movs r0, 0x1 + ands r0, r1 + cmp r0, 0 + beq _080C2DBC + ldr r0, _080C2DB0 @ =gOtherText_LinkStandby + bl sub_80C3698 + bl sub_800832C + ldr r1, _080C2DB4 @ =gTasks + lsls r0, r4, 2 + adds r0, r4 + lsls r0, 3 + adds r0, r1 + ldr r1, _080C2DB8 @ =sub_80C2DD8 + str r1, [r0] + b _080C2DCA + .align 2, 0 +_080C2DAC: .4byte gIsLinkContest +_080C2DB0: .4byte gOtherText_LinkStandby +_080C2DB4: .4byte gTasks +_080C2DB8: .4byte sub_80C2DD8 +_080C2DBC: + ldr r0, _080C2DD0 @ =gTasks + lsls r1, r4, 2 + adds r1, r4 + lsls r1, 3 + adds r1, r0 + ldr r0, _080C2DD4 @ =sub_80C2E14 + str r0, [r1] +_080C2DCA: + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_080C2DD0: .4byte gTasks +_080C2DD4: .4byte sub_80C2E14 + thumb_func_end sub_80C2D80 + + thumb_func_start sub_80C2DD8 +sub_80C2DD8: @ 80C2DD8 + push {r4,lr} + lsls r0, 24 + lsrs r4, r0, 24 + ldr r0, _080C2E04 @ =gReceivedRemoteLinkPlayers + ldrb r1, [r0] + cmp r1, 0 + bne _080C2DFC + ldr r0, _080C2E08 @ =gIsLinkContest + strb r1, [r0] + bl sub_80C3764 + ldr r1, _080C2E0C @ =gTasks + lsls r0, r4, 2 + adds r0, r4 + lsls r0, 3 + adds r0, r1 + ldr r1, _080C2E10 @ =sub_80C2E14 + str r1, [r0] +_080C2DFC: + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_080C2E04: .4byte gReceivedRemoteLinkPlayers +_080C2E08: .4byte gIsLinkContest +_080C2E0C: .4byte gTasks +_080C2E10: .4byte sub_80C2E14 + thumb_func_end sub_80C2DD8 + + thumb_func_start sub_80C2E14 +sub_80C2E14: @ 80C2E14 + push {r4-r6,lr} + sub sp, 0x4 + adds r5, r0, 0 + lsls r5, 24 + lsrs r5, 24 + ldr r1, _080C2E80 @ =gUnknown_02038690 + ldr r0, _080C2E84 @ =gContestPlayerMonIndex + ldrb r0, [r0] + adds r0, r1 + ldrb r0, [r0] + bl sub_80BE284 + movs r0, 0x2 + bl sub_810FB10 + ldr r0, _080C2E88 @ =gScriptContestRank + ldrb r0, [r0] + bl sub_80B2A7C + movs r0, 0xFE + bl sub_80B2A7C + ldr r4, _080C2E8C @ =0x02000000 + ldr r0, _080C2E90 @ =0x00015ddf + adds r1, r4, r0 + movs r6, 0 + movs r0, 0x1 + strb r0, [r1] + movs r0, 0xFE + movs r1, 0 + bl sub_80B2C4C + ldr r1, _080C2E94 @ =0x00015dde + adds r4, r1 + strb r0, [r4] + str r6, [sp] + movs r0, 0xFF + movs r1, 0 + movs r2, 0 + movs r3, 0x10 + bl BeginHardwarePaletteFade + ldr r1, _080C2E98 @ =gTasks + lsls r0, r5, 2 + adds r0, r5 + lsls r0, 3 + adds r0, r1 + ldr r1, _080C2E9C @ =sub_80C2EA0 + str r1, [r0] + add sp, 0x4 + pop {r4-r6} + pop {r0} + bx r0 + .align 2, 0 +_080C2E80: .4byte gUnknown_02038690 +_080C2E84: .4byte gContestPlayerMonIndex +_080C2E88: .4byte gScriptContestRank +_080C2E8C: .4byte 0x02000000 +_080C2E90: .4byte 0x00015ddf +_080C2E94: .4byte 0x00015dde +_080C2E98: .4byte gTasks +_080C2E9C: .4byte sub_80C2EA0 + thumb_func_end sub_80C2E14 + + thumb_func_start sub_80C2EA0 +sub_80C2EA0: @ 80C2EA0 + push {r4,r5,lr} + lsls r0, 24 + lsrs r2, r0, 24 + adds r5, r2, 0 + ldr r0, _080C2ED8 @ =gPaletteFade + ldrb r1, [r0, 0x7] + movs r0, 0x80 + ands r0, r1 + lsls r0, 24 + lsrs r3, r0, 24 + cmp r3, 0 + bne _080C2F18 + ldr r1, _080C2EDC @ =gTasks + lsls r0, r2, 2 + adds r0, r2 + lsls r0, 3 + adds r4, r0, r1 + movs r1, 0xA + ldrsh r0, [r4, r1] + cmp r0, 0 + bne _080C2EE8 + ldr r0, _080C2EE0 @ =0x02018000 + ldrb r0, [r0, 0x3] + bl DestroyTask + ldr r0, _080C2EE4 @ =0x0000ffff + b _080C2EEE + .align 2, 0 +_080C2ED8: .4byte gPaletteFade +_080C2EDC: .4byte gTasks +_080C2EE0: .4byte 0x02018000 +_080C2EE4: .4byte 0x0000ffff +_080C2EE8: + cmp r0, 0x1 + bne _080C2F04 + ldr r0, _080C2F00 @ =0xffff0000 +_080C2EEE: + movs r1, 0x10 + movs r2, 0 + bl BlendPalettes + ldrh r0, [r4, 0xA] + adds r0, 0x1 + strh r0, [r4, 0xA] + b _080C2F18 + .align 2, 0 +_080C2F00: .4byte 0xffff0000 +_080C2F04: + ldr r0, _080C2F20 @ =REG_BLDCNT + strh r3, [r0] + adds r0, 0x4 + strh r3, [r0] + adds r0, r5, 0 + bl DestroyTask + ldr r0, _080C2F24 @ =c2_exit_to_overworld_1_continue_scripts_restart_music + bl SetMainCallback2 +_080C2F18: + pop {r4,r5} + pop {r0} + bx r0 + .align 2, 0 +_080C2F20: .4byte REG_BLDCNT +_080C2F24: .4byte c2_exit_to_overworld_1_continue_scripts_restart_music + thumb_func_end sub_80C2EA0 + + thumb_func_start sub_80C2F28 +sub_80C2F28: @ 80C2F28 + push {r4,r5,lr} + ldr r2, _080C2F5C @ =gUnknown_030041B0 + ldrh r3, [r2] + adds r0, r3, 0x2 + strh r0, [r2] + ldr r4, _080C2F60 @ =gUnknown_030041B8 + ldrh r5, [r4] + adds r1, r5, 0x1 + strh r1, [r4] + lsls r0, 16 + lsrs r0, 16 + cmp r0, 0xFF + bls _080C2F48 + adds r0, r3, 0 + subs r0, 0xFD + strh r0, [r2] +_080C2F48: + lsls r0, r1, 16 + lsrs r0, 16 + cmp r0, 0xFF + bls _080C2F56 + adds r0, r5, 0 + subs r0, 0xFE + strh r0, [r4] +_080C2F56: + pop {r4,r5} + pop {r0} + bx r0 + .align 2, 0 +_080C2F5C: .4byte gUnknown_030041B0 +_080C2F60: .4byte gUnknown_030041B8 + thumb_func_end sub_80C2F28 + + thumb_func_start sub_80C2F64 +sub_80C2F64: @ 80C2F64 + push {r4,r5,lr} + lsls r0, 24 + lsrs r5, r0, 24 + ldr r1, _080C2F94 @ =gTasks + lsls r0, r5, 2 + adds r0, r5 + lsls r0, 3 + adds r2, r0, r1 + ldrh r0, [r2, 0x8] + adds r0, 0x1 + strh r0, [r2, 0x8] + lsls r0, 16 + asrs r0, 16 + cmp r0, 0x2 + bne _080C2FE6 + movs r0, 0 + strh r0, [r2, 0x8] + movs r3, 0xC + ldrsh r0, [r2, r3] + cmp r0, 0 + bne _080C2F98 + ldrh r0, [r2, 0xA] + adds r0, 0x1 + b _080C2F9C + .align 2, 0 +_080C2F94: .4byte gTasks +_080C2F98: + ldrh r0, [r2, 0xA] + subs r0, 0x1 +_080C2F9C: + strh r0, [r2, 0xA] + lsls r0, r5, 2 + adds r0, r5 + lsls r0, 3 + adds r1, r0, r1 + movs r2, 0xA + ldrsh r0, [r1, r2] + cmp r0, 0x10 + bne _080C2FB2 + movs r0, 0x1 + b _080C2FB6 +_080C2FB2: + cmp r0, 0 + bne _080C2FB8 +_080C2FB6: + strh r0, [r1, 0xC] +_080C2FB8: + ldr r0, _080C3000 @ =gTasks + lsls r4, r5, 2 + adds r4, r5 + lsls r4, 3 + adds r4, r0 + ldrb r2, [r4, 0xA] + ldr r3, _080C3004 @ =0x00002ede + movs r0, 0x6B + movs r1, 0x1 + bl BlendPalette + ldrb r2, [r4, 0xA] + ldr r3, _080C3008 @ =0x00007fff + movs r0, 0x68 + movs r1, 0x1 + bl BlendPalette + ldrb r2, [r4, 0xA] + ldr r3, _080C300C @ =0x000077be + movs r0, 0x6E + movs r1, 0x1 + bl BlendPalette +_080C2FE6: + ldr r1, _080C3000 @ =gTasks + lsls r0, r5, 2 + adds r0, r5 + lsls r0, 3 + adds r0, r1 + movs r3, 0xA + ldrsh r4, [r0, r3] + cmp r4, 0 + bne _080C3014 + ldr r0, _080C3010 @ =0x02018000 + strb r4, [r0, 0xA] + b _080C301A + .align 2, 0 +_080C3000: .4byte gTasks +_080C3004: .4byte 0x00002ede +_080C3008: .4byte 0x00007fff +_080C300C: .4byte 0x000077be +_080C3010: .4byte 0x02018000 +_080C3014: + ldr r1, _080C3020 @ =0x02018000 + movs r0, 0x1 + strb r0, [r1, 0xA] +_080C301A: + pop {r4,r5} + pop {r0} + bx r0 + .align 2, 0 +_080C3020: .4byte 0x02018000 + thumb_func_end sub_80C2F64 + + thumb_func_start sub_80C3024 +sub_80C3024: @ 80C3024 + push {r4-r6,lr} + ldr r6, [sp, 0x10] + lsls r0, 16 + lsrs r0, 16 + lsls r1, 24 + lsrs r4, r1, 24 + lsls r2, 24 + lsrs r5, r2, 24 + lsls r3, 24 + cmp r3, 0 + beq _080C30B0 + adds r1, r6, 0 + bl GetMonIconPtr + lsls r1, r5, 9 + adds r0, r1 + adds r0, 0x80 + lsls r1, r4, 9 + ldr r2, _080C30A0 @ =0x06004000 + adds r1, r2 + ldr r2, _080C30A4 @ =0x040000d4 + str r0, [r2] + str r1, [r2, 0x4] + ldr r0, _080C30A8 @ =0x84000060 + str r0, [r2, 0x8] + ldr r0, [r2, 0x8] + adds r1, r4, 0 + adds r1, 0xA + lsls r1, 28 + lsls r0, r4, 20 + movs r2, 0x80 + lsls r2, 18 + adds r0, r2 + orrs r0, r1 + lsrs r1, r0, 16 + lsls r0, r4, 1 + adds r0, r4 + lsls r0, 21 + movs r2, 0x83 + lsls r2, 16 + adds r0, r2 + lsrs r5, r0, 16 + movs r2, 0 + ldr r6, _080C30AC @ =0x0600c000 +_080C307C: + lsls r0, r2, 5 + adds r4, r2, 0x1 + adds r0, r5 + movs r3, 0x3 + lsls r0, 1 + adds r2, r0, r6 +_080C3088: + strh r1, [r2] + adds r0, r1, 0x1 + lsls r0, 16 + lsrs r1, r0, 16 + adds r2, 0x2 + subs r3, 0x1 + cmp r3, 0 + bge _080C3088 + adds r2, r4, 0 + cmp r2, 0x2 + ble _080C307C + b _080C30CA + .align 2, 0 +_080C30A0: .4byte 0x06004000 +_080C30A4: .4byte 0x040000d4 +_080C30A8: .4byte 0x84000060 +_080C30AC: .4byte 0x0600c000 +_080C30B0: + adds r1, r6, 0 + bl GetMonIconPtr + lsls r1, r5, 9 + adds r0, r1 + adds r0, 0x80 + lsls r1, r4, 9 + ldr r2, _080C30D0 @ =0x06004000 + adds r1, r2 + movs r2, 0xC0 + lsls r2, 1 + bl RequestSpriteCopy +_080C30CA: + pop {r4-r6} + pop {r0} + bx r0 + .align 2, 0 +_080C30D0: .4byte 0x06004000 + thumb_func_end sub_80C3024 + + thumb_func_start sub_80C30D4 +sub_80C30D4: @ 80C30D4 + push {r4-r7,lr} + sub sp, 0x4 + lsls r0, 24 + lsrs r7, r0, 24 + lsls r1, 24 + lsrs r6, r1, 24 + movs r5, 0 + ldr r4, _080C3108 @ =gContestMons +_080C30E4: + ldrh r0, [r4] + lsls r1, r5, 24 + lsrs r1, 24 + ldr r2, [r4, 0x38] + str r2, [sp] + adds r2, r7, 0 + adds r3, r6, 0 + bl sub_80C3024 + adds r4, 0x40 + adds r5, 0x1 + cmp r5, 0x3 + ble _080C30E4 + add sp, 0x4 + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_080C3108: .4byte gContestMons + thumb_func_end sub_80C30D4 + + thumb_func_start sub_80C310C +sub_80C310C: @ 80C310C + push {r4-r6,lr} + movs r4, 0 + ldr r6, _080C314C @ =gMonIconPaletteIndices + movs r5, 0xA0 + lsls r5, 16 +_080C3116: + ldr r1, _080C3150 @ =gContestMons + lsls r0, r4, 6 + adds r0, r1 + ldrh r0, [r0] + movs r1, 0 + bl mon_icon_convert_unown_species_id + lsls r0, 16 + lsrs r0, 16 + adds r0, r6 + ldrb r0, [r0] + lsls r0, 5 + ldr r1, _080C3154 @ =gMonIconPalettes + adds r0, r1 + lsrs r1, r5, 16 + movs r2, 0x20 + bl LoadPalette + movs r0, 0x80 + lsls r0, 13 + adds r5, r0 + adds r4, 0x1 + cmp r4, 0x3 + ble _080C3116 + pop {r4-r6} + pop {r0} + bx r0 + .align 2, 0 +_080C314C: .4byte gMonIconPaletteIndices +_080C3150: .4byte gContestMons +_080C3154: .4byte gMonIconPalettes + thumb_func_end sub_80C310C + + thumb_func_start sub_80C3158 +sub_80C3158: @ 80C3158 + push {r4-r7,lr} + mov r7, r10 + mov r6, r9 + mov r5, r8 + push {r5-r7} + sub sp, 0x1C + mov r9, r0 + lsls r1, 24 + lsrs r1, 24 + lsls r2, r1, 4 + adds r2, r1 + lsls r2, 2 + ldr r3, _080C32C0 @ =gSprites + adds r2, r3 + mov r1, sp + ldrh r0, [r2, 0x4] + lsls r0, 22 + lsrs r0, 22 + strh r0, [r1] + mov r4, sp + movs r0, 0x2E + ldrsh r1, [r2, r0] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r3 + ldrh r0, [r0, 0x4] + lsls r0, 22 + lsrs r0, 22 + strh r0, [r4, 0x2] + movs r0, 0x30 + ldrsh r1, [r2, r0] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r3 + ldrh r0, [r0, 0x4] + lsls r0, 22 + lsrs r0, 22 + strh r0, [r4, 0x4] + movs r0, 0x32 + ldrsh r1, [r2, r0] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r3 + ldrh r0, [r0, 0x4] + lsls r0, 22 + lsrs r0, 22 + strh r0, [r4, 0x6] + ldr r1, _080C32C4 @ =gWindowConfig_81E7278 + mov r8, r1 + ldr r7, _080C32C8 @ =0x06010000 + ldr r2, _080C32CC @ =0x040000d4 + ldr r6, _080C32D0 @ =0x85000100 + mov r1, sp + movs r5, 0 + add r3, sp, 0x8 + movs r4, 0x3 +_080C31CE: + ldrh r0, [r1] + lsls r0, 5 + adds r0, r7 + str r5, [sp, 0x8] + str r3, [r2] + str r0, [r2, 0x4] + str r6, [r2, 0x8] + ldr r0, [r2, 0x8] + adds r1, 0x2 + subs r4, 0x1 + cmp r4, 0 + bge _080C31CE + mov r0, r8 + mov r1, r9 + bl GetStringWidthGivenWindowConfig + lsls r0, 24 + lsrs r5, r0, 24 + ldr r2, _080C32D4 @ =gDisplayedStringBattle + ldr r1, _080C32D8 @ =gUnknown_083D17E2 + adds r0, r2, 0 + bl StringCopy + adds r2, r0, 0 + mvns r0, r5 + adds r1, r0, 0x1 + movs r0, 0x7 + ands r1, r0 + cmp r1, 0 + beq _080C3218 + movs r0, 0xFC + strb r0, [r2] + movs r0, 0x11 + strb r0, [r2, 0x1] + lsrs r0, r1, 1 + strb r0, [r2, 0x2] + adds r2, 0x3 +_080C3218: + adds r6, r5, 0x7 + movs r1, 0x8 + negs r1, r1 + adds r0, r1, 0 + ands r6, r0 + lsls r6, 24 + lsrs r5, r6, 24 + adds r0, r2, 0 + mov r1, r9 + bl StringCopy + adds r2, r0, 0 + movs r0, 0xFC + strb r0, [r2] + movs r0, 0x13 + strb r0, [r2, 0x1] + strb r5, [r2, 0x2] + movs r0, 0xFF + strb r0, [r2, 0x3] + ldr r0, _080C32DC @ =0x02018068 + mov r10, r0 + ldr r1, _080C32D4 @ =gDisplayedStringBattle + bl sub_80034D4 + mov r0, sp + ldrh r4, [r0] + lsls r4, 5 + ldr r1, _080C32C8 @ =0x06010000 + adds r7, r4, r1 + ldr r0, _080C32E0 @ =gUnknown_083D1624 + mov r9, r0 + ldr r1, _080C32E4 @ =REG_BG0CNT + mov r8, r1 + adds r1, r7, 0 + mov r2, r8 + bl CpuSet + mov r5, r9 + adds r5, 0x80 + ldr r0, _080C32E8 @ =0x06010100 + adds r1, r4, r0 + adds r0, r5, 0 + mov r2, r8 + bl CpuSet + ldr r0, _080C32EC @ =0x06010200 + adds r1, r4, r0 + adds r0, r5, 0 + mov r2, r8 + bl CpuSet + mov r0, r9 + adds r0, 0x40 + ldr r1, _080C32F0 @ =0x06010300 + adds r4, r1 + adds r1, r4, 0 + mov r2, r8 + bl CpuSet + lsrs r5, r6, 27 + movs r4, 0 + cmp r4, r5 + bgt _080C3382 + mov r6, sp + mov r0, r10 + adds r0, 0x20 + str r0, [sp, 0xC] + mov r1, r10 + str r1, [sp, 0x10] + ldr r0, _080C32F4 @ =0x0600fd20 + str r0, [sp, 0x14] + ldr r1, _080C32F8 @ =0x0600fe20 + str r1, [sp, 0x18] + ldr r0, _080C32FC @ =0x0600ff20 + mov r10, r0 + ldr r1, _080C3300 @ =0x06010020 + mov r9, r1 +_080C32B2: + cmp r4, 0x6 + bgt _080C3304 + ldrh r0, [r6] + lsls r0, 5 + mov r1, r9 + b _080C3322 + .align 2, 0 +_080C32C0: .4byte gSprites +_080C32C4: .4byte gWindowConfig_81E7278 +_080C32C8: .4byte 0x06010000 +_080C32CC: .4byte 0x040000d4 +_080C32D0: .4byte 0x85000100 +_080C32D4: .4byte gDisplayedStringBattle +_080C32D8: .4byte gUnknown_083D17E2 +_080C32DC: .4byte 0x02018068 +_080C32E0: .4byte gUnknown_083D1624 +_080C32E4: .4byte REG_BG0CNT +_080C32E8: .4byte 0x06010100 +_080C32EC: .4byte 0x06010200 +_080C32F0: .4byte 0x06010300 +_080C32F4: .4byte 0x0600fd20 +_080C32F8: .4byte 0x0600fe20 +_080C32FC: .4byte 0x0600ff20 +_080C3300: .4byte 0x06010020 +_080C3304: + cmp r4, 0xE + bgt _080C3310 + ldrh r0, [r6, 0x2] + lsls r0, 5 + mov r1, r10 + b _080C3322 +_080C3310: + cmp r4, 0x16 + bgt _080C331C + ldrh r0, [r6, 0x4] + lsls r0, 5 + ldr r1, [sp, 0x18] + b _080C3322 +_080C331C: + ldrh r0, [r6, 0x6] + lsls r0, 5 + ldr r1, [sp, 0x14] +_080C3322: + adds r7, r0, r1 + cmp r4, r5 + beq _080C3382 + ldr r0, _080C33D0 @ =gUnknown_083D16E4 + adds r1, r7, 0 + mov r2, r8 + bl CpuSet + movs r0, 0xC0 + lsls r0, 2 + adds r1, r7, r0 + ldr r0, _080C33D0 @ =gUnknown_083D16E4 + adds r0, 0x20 + mov r2, r8 + bl CpuSet + movs r0, 0x80 + lsls r0, 1 + adds r1, r7, r0 + ldr r0, [sp, 0x10] + mov r2, r8 + bl CpuSet + movs r0, 0x80 + lsls r0, 2 + adds r1, r7, r0 + ldr r0, [sp, 0xC] + mov r2, r8 + bl CpuSet + ldr r1, [sp, 0xC] + adds r1, 0x40 + str r1, [sp, 0xC] + ldr r0, [sp, 0x10] + adds r0, 0x40 + str r0, [sp, 0x10] + ldr r1, [sp, 0x14] + adds r1, 0x20 + str r1, [sp, 0x14] + ldr r0, [sp, 0x18] + adds r0, 0x20 + str r0, [sp, 0x18] + movs r1, 0x20 + add r10, r1 + add r9, r1 + adds r4, 0x1 + cmp r4, r5 + ble _080C32B2 +_080C3382: + ldr r4, _080C33D4 @ =gUnknown_083D1644 + ldr r5, _080C33D8 @ =REG_BG0CNT + adds r0, r4, 0 + adds r1, r7, 0 + adds r2, r5, 0 + bl CpuSet + adds r6, r4, 0 + adds r6, 0x80 + movs r0, 0x80 + lsls r0, 1 + adds r1, r7, r0 + adds r0, r6, 0 + adds r2, r5, 0 + bl CpuSet + movs r0, 0x80 + lsls r0, 2 + adds r1, r7, r0 + adds r0, r6, 0 + adds r2, r5, 0 + bl CpuSet + adds r4, 0x40 + movs r0, 0xC0 + lsls r0, 2 + adds r1, r7, r0 + adds r0, r4, 0 + adds r2, r5, 0 + bl CpuSet + add sp, 0x1C + pop {r3-r5} + mov r8, r3 + mov r9, r4 + mov r10, r5 + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_080C33D0: .4byte gUnknown_083D16E4 +_080C33D4: .4byte gUnknown_083D1644 +_080C33D8: .4byte REG_BG0CNT + thumb_func_end sub_80C3158 + + thumb_func_start sub_80C33DC +sub_80C33DC: @ 80C33DC + push {r4-r6,lr} + sub sp, 0x20 + mov r1, sp + ldr r0, _080C3498 @ =gSpriteTemplate_83D174C + ldm r0!, {r2-r4} + stm r1!, {r2-r4} + ldm r0!, {r2-r4} + stm r1!, {r2-r4} + add r5, sp, 0x18 + ldr r6, _080C349C @ =gUnknown_083D1764 + movs r4, 0x7 +_080C33F2: + adds r0, r6, 0 + bl LoadSpriteSheet + adds r6, 0x8 + subs r4, 0x1 + cmp r4, 0 + bge _080C33F2 + ldr r0, _080C34A0 @ =gUnknown_083D17A4 + bl LoadSpritePalette + movs r4, 0 + mov r6, sp +_080C340A: + mov r0, sp + movs r1, 0x88 + lsls r1, 1 + movs r2, 0x90 + movs r3, 0xA + bl CreateSprite + adds r1, r5, r4 + strb r0, [r1] + ldrh r0, [r6] + adds r0, 0x1 + strh r0, [r6] + adds r4, 0x1 + cmp r4, 0x7 + ble _080C340A + ldr r2, _080C34A4 @ =gSprites + ldrb r1, [r5] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r2 + ldrb r1, [r5, 0x1] + movs r3, 0 + strh r1, [r0, 0x2E] + ldrb r1, [r5] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r2 + ldrb r1, [r5, 0x2] + strh r1, [r0, 0x30] + ldrb r1, [r5] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r2 + ldrb r1, [r5, 0x3] + strh r1, [r0, 0x32] + ldrb r1, [r5, 0x4] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r2 + ldrb r1, [r5, 0x5] + strh r1, [r0, 0x2E] + ldrb r1, [r5, 0x4] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r2 + ldrb r1, [r5, 0x6] + strh r1, [r0, 0x30] + ldrb r1, [r5, 0x4] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r2 + ldrb r1, [r5, 0x7] + strh r1, [r0, 0x32] + ldr r1, _080C34A8 @ =0x02018000 + ldrb r0, [r5] + strb r0, [r1] + strb r3, [r1, 0x4] + ldrb r0, [r5, 0x4] + strb r0, [r1, 0x1] + bl sub_80C3764 + add sp, 0x20 + pop {r4-r6} + pop {r0} + bx r0 + .align 2, 0 +_080C3498: .4byte gSpriteTemplate_83D174C +_080C349C: .4byte gUnknown_083D1764 +_080C34A0: .4byte gUnknown_083D17A4 +_080C34A4: .4byte gSprites +_080C34A8: .4byte 0x02018000 + thumb_func_end sub_80C33DC + + thumb_func_start sub_80C34AC +sub_80C34AC: @ 80C34AC + push {lr} + bl StringLength + lsls r0, 16 + lsrs r0, 16 + lsls r1, r0, 1 + adds r1, r0 + lsls r1, 25 + lsrs r1, 25 + movs r0, 0x70 + subs r0, r1 + lsls r0, 16 + lsrs r0, 16 + pop {r1} + bx r1 + thumb_func_end sub_80C34AC + + thumb_func_start sub_80C34CC +sub_80C34CC: @ 80C34CC + push {r4-r6,lr} + mov r6, r8 + push {r6} + ldr r4, _080C3514 @ =0x02018000 + mov r8, r4 + ldrb r5, [r4] + lsls r4, r5, 4 + adds r4, r5 + lsls r4, 2 + ldr r5, _080C3518 @ =gSprites + adds r4, r5 + movs r6, 0 + movs r5, 0x88 + lsls r5, 1 + strh r5, [r4, 0x20] + strh r1, [r4, 0x22] + strh r6, [r4, 0x24] + strh r6, [r4, 0x26] + lsls r0, 16 + asrs r0, 16 + adds r0, 0x20 + strh r0, [r4, 0x36] + strh r2, [r4, 0x38] + strh r3, [r4, 0x3A] + strh r6, [r4, 0x3C] + ldr r0, _080C351C @ =sub_80C3588 + str r0, [r4, 0x1C] + movs r0, 0x1 + mov r1, r8 + strb r0, [r1, 0x4] + pop {r3} + mov r8, r3 + pop {r4-r6} + pop {r0} + bx r0 + .align 2, 0 +_080C3514: .4byte 0x02018000 +_080C3518: .4byte gSprites +_080C351C: .4byte sub_80C3588 + thumb_func_end sub_80C34CC + + thumb_func_start sub_80C3520 +sub_80C3520: @ 80C3520 + push {r4,r5,lr} + ldr r4, _080C3558 @ =0x02018000 + ldrb r2, [r4] + lsls r1, r2, 4 + adds r1, r2 + lsls r1, 2 + ldr r2, _080C355C @ =gSprites + adds r1, r2 + ldrh r2, [r1, 0x24] + ldrh r3, [r1, 0x20] + adds r2, r3 + movs r3, 0 + strh r2, [r1, 0x20] + ldrh r2, [r1, 0x26] + ldrh r5, [r1, 0x22] + adds r2, r5 + strh r2, [r1, 0x22] + strh r3, [r1, 0x26] + strh r3, [r1, 0x24] + strh r0, [r1, 0x3A] + strh r3, [r1, 0x3C] + ldr r0, _080C3560 @ =sub_80C3630 + str r0, [r1, 0x1C] + movs r0, 0x3 + strb r0, [r4, 0x4] + pop {r4,r5} + pop {r0} + bx r0 + .align 2, 0 +_080C3558: .4byte 0x02018000 +_080C355C: .4byte gSprites +_080C3560: .4byte sub_80C3630 + thumb_func_end sub_80C3520 + + thumb_func_start sub_80C3564 +sub_80C3564: @ 80C3564 + movs r3, 0 + movs r2, 0 + movs r1, 0x88 + lsls r1, 1 + strh r1, [r0, 0x20] + movs r1, 0x90 + strh r1, [r0, 0x22] + strh r2, [r0, 0x26] + strh r2, [r0, 0x24] + ldr r1, _080C3580 @ =SpriteCallbackDummy + str r1, [r0, 0x1C] + ldr r0, _080C3584 @ =0x02018000 + strb r3, [r0, 0x4] + bx lr + .align 2, 0 +_080C3580: .4byte SpriteCallbackDummy +_080C3584: .4byte 0x02018000 + thumb_func_end sub_80C3564 + + thumb_func_start sub_80C3588 +sub_80C3588: @ 80C3588 + push {r4-r7,lr} + adds r3, r0, 0 + ldrh r2, [r3, 0x3A] + ldrh r0, [r3, 0x3C] + adds r2, r0 + lsls r1, r2, 16 + asrs r1, 24 + ldrh r0, [r3, 0x20] + subs r0, r1 + strh r0, [r3, 0x20] + movs r1, 0xFF + ands r2, r1 + strh r2, [r3, 0x3C] + lsls r0, 16 + asrs r0, 16 + ldrh r2, [r3, 0x36] + movs r4, 0x36 + ldrsh r1, [r3, r4] + cmp r0, r1 + bge _080C35B2 + strh r2, [r3, 0x20] +_080C35B2: + movs r4, 0 + ldr r6, _080C35F4 @ =gSprites + movs r5, 0x40 + adds r2, r3, 0 + adds r2, 0x2E +_080C35BC: + movs r7, 0 + ldrsh r0, [r2, r7] + lsls r1, r0, 4 + adds r1, r0 + lsls r1, 2 + adds r1, r6 + ldrh r0, [r3, 0x24] + ldrh r7, [r3, 0x20] + adds r0, r7 + adds r0, r5 + strh r0, [r1, 0x20] + adds r5, 0x40 + adds r2, 0x2 + adds r4, 0x1 + cmp r4, 0x2 + ble _080C35BC + movs r0, 0x20 + ldrsh r1, [r3, r0] + movs r2, 0x36 + ldrsh r0, [r3, r2] + cmp r1, r0 + bne _080C35EC + ldr r0, _080C35F8 @ =sub_80C35FC + str r0, [r3, 0x1C] +_080C35EC: + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_080C35F4: .4byte gSprites +_080C35F8: .4byte sub_80C35FC + thumb_func_end sub_80C3588 + + thumb_func_start sub_80C35FC +sub_80C35FC: @ 80C35FC + push {lr} + adds r2, r0, 0 + ldr r0, _080C3628 @ =0x02018000 + movs r1, 0x2 + strb r1, [r0, 0x4] + ldrh r3, [r2, 0x38] + ldr r1, _080C362C @ =0xffff0000 + lsrs r0, r1, 16 + cmp r3, r0 + beq _080C3624 + subs r0, r3, 0x1 + strh r0, [r2, 0x38] + lsls r0, 16 + asrs r0, 16 + asrs r1, 16 + cmp r0, r1 + bne _080C3624 + ldrh r0, [r2, 0x3A] + bl sub_80C3520 +_080C3624: + pop {r0} + bx r0 + .align 2, 0 +_080C3628: .4byte 0x02018000 +_080C362C: .4byte 0xffff0000 + thumb_func_end sub_80C35FC + + thumb_func_start sub_80C3630 +sub_80C3630: @ 80C3630 + push {r4-r7,lr} + adds r3, r0, 0 + ldrh r2, [r3, 0x3A] + ldrh r0, [r3, 0x3C] + adds r2, r0 + lsls r1, r2, 16 + asrs r1, 24 + ldrh r0, [r3, 0x20] + subs r0, r1 + strh r0, [r3, 0x20] + movs r0, 0xFF + ands r2, r0 + strh r2, [r3, 0x3C] + movs r4, 0 + ldr r6, _080C3694 @ =gSprites + movs r5, 0x40 + adds r2, r3, 0 + adds r2, 0x2E +_080C3654: + movs r1, 0 + ldrsh r0, [r2, r1] + lsls r1, r0, 4 + adds r1, r0 + lsls r1, 2 + adds r1, r6 + ldrh r0, [r3, 0x24] + ldrh r7, [r3, 0x20] + adds r0, r7 + adds r0, r5 + strh r0, [r1, 0x20] + adds r5, 0x40 + adds r2, 0x2 + adds r4, 0x1 + cmp r4, 0x2 + ble _080C3654 + movs r1, 0x20 + ldrsh r0, [r3, r1] + movs r2, 0x24 + ldrsh r1, [r3, r2] + adds r0, r1 + movs r1, 0xE0 + negs r1, r1 + cmp r0, r1 + bge _080C368C + adds r0, r3, 0 + bl sub_80C3564 +_080C368C: + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_080C3694: .4byte gSprites + thumb_func_end sub_80C3630 + + thumb_func_start sub_80C3698 +sub_80C3698: @ 80C3698 + push {r4-r7,lr} + adds r4, r0, 0 + ldr r5, _080C374C @ =0x02018000 + ldrb r1, [r5, 0x1] + bl sub_80C3158 + adds r0, r4, 0 + bl sub_80C34AC + lsls r0, 16 + lsrs r0, 16 + ldrb r2, [r5, 0x1] + lsls r1, r2, 4 + adds r1, r2 + lsls r1, 2 + ldr r3, _080C3750 @ =gSprites + adds r4, r1, r3 + adds r0, 0x20 + strh r0, [r4, 0x20] + movs r0, 0x50 + strh r0, [r4, 0x22] + adds r5, r4, 0 + adds r5, 0x3E + ldrb r1, [r5] + movs r2, 0x5 + negs r2, r2 + adds r0, r2, 0 + ands r0, r1 + strb r0, [r5] + movs r5, 0 + adds r6, r3, 0 + mov r12, r2 + movs r3, 0x40 +_080C36DA: + lsls r0, r5, 1 + adds r2, r4, 0 + adds r2, 0x2E + adds r2, r0 + movs r1, 0 + ldrsh r0, [r2, r1] + lsls r1, r0, 4 + adds r1, r0 + lsls r1, 2 + adds r1, r6 + ldrh r0, [r4, 0x24] + ldrh r7, [r4, 0x20] + adds r0, r7 + adds r0, r3 + strh r0, [r1, 0x20] + movs r0, 0 + ldrsh r1, [r2, r0] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r6 + ldrh r1, [r4, 0x22] + strh r1, [r0, 0x22] + movs r1, 0 + ldrsh r0, [r2, r1] + lsls r1, r0, 4 + adds r1, r0 + lsls r1, 2 + adds r1, r6 + adds r1, 0x3E + ldrb r2, [r1] + mov r0, r12 + ands r0, r2 + strb r0, [r1] + adds r3, 0x40 + adds r5, 0x1 + cmp r5, 0x2 + ble _080C36DA + ldr r1, _080C3754 @ =gUnknown_030042C4 + movs r0, 0xF0 + strh r0, [r1] + ldr r2, _080C3758 @ =gUnknown_03004240 + ldrh r1, [r4, 0x22] + adds r0, r1, 0 + subs r0, 0x10 + lsls r0, 8 + adds r1, 0x10 + orrs r0, r1 + strh r0, [r2] + ldr r1, _080C375C @ =REG_WININ + ldr r2, _080C3760 @ =0x00003f3e + adds r0, r2, 0 + strh r0, [r1] + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_080C374C: .4byte 0x02018000 +_080C3750: .4byte gSprites +_080C3754: .4byte gUnknown_030042C4 +_080C3758: .4byte gUnknown_03004240 +_080C375C: .4byte REG_WININ +_080C3760: .4byte 0x00003f3e + thumb_func_end sub_80C3698 + + thumb_func_start sub_80C3764 +sub_80C3764: @ 80C3764 + push {r4-r7,lr} + ldr r0, _080C37C8 @ =0x02018000 + ldrb r0, [r0, 0x1] + lsls r2, r0, 4 + adds r2, r0 + lsls r2, 2 + ldr r3, _080C37CC @ =gSprites + adds r2, r3 + movs r0, 0x3E + adds r0, r2 + mov r12, r0 + ldrb r0, [r0] + movs r1, 0x4 + orrs r0, r1 + mov r1, r12 + strb r0, [r1] + ldr r7, _080C37D0 @ =gUnknown_030042C4 + ldr r6, _080C37D4 @ =gUnknown_03004240 + adds r5, r3, 0 + movs r4, 0x4 + adds r2, 0x2E + movs r3, 0x2 +_080C3790: + movs r1, 0 + ldrsh r0, [r2, r1] + lsls r1, r0, 4 + adds r1, r0 + lsls r1, 2 + adds r1, r5 + adds r1, 0x3E + ldrb r0, [r1] + orrs r0, r4 + strb r0, [r1] + adds r2, 0x2 + subs r3, 0x1 + cmp r3, 0 + bge _080C3790 + movs r1, 0 + strh r1, [r7] + strh r1, [r6] + ldr r0, _080C37D8 @ =REG_WIN0H + strh r1, [r0] + adds r0, 0x4 + strh r1, [r0] + ldr r1, _080C37DC @ =REG_WININ + ldr r2, _080C37E0 @ =0x00003f3f + adds r0, r2, 0 + strh r0, [r1] + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_080C37C8: .4byte 0x02018000 +_080C37CC: .4byte gSprites +_080C37D0: .4byte gUnknown_030042C4 +_080C37D4: .4byte gUnknown_03004240 +_080C37D8: .4byte REG_WIN0H +_080C37DC: .4byte REG_WININ +_080C37E0: .4byte 0x00003f3f + thumb_func_end sub_80C3764 + + thumb_func_start de_sub_80C39A8 +de_sub_80C39A8: @ 80C39A8 + push {r4,lr} + sub sp, 0x10 + adds r1, r0, 0 + ldr r0, _de_080C39DC @ =gIsLinkContest + ldrb r0, [r0] + movs r4, 0x1 + ands r4, r0 + cmp r4, 0 + beq _de_080C39E8 + ldr r0, _de_080C39E0 @ =0x0600e000 + lsls r1, 16 + lsrs r1, 16 + ldr r3, _de_080C39E4 @ =gUnknown_08E964B8 + movs r2, 0xB + str r2, [sp] + movs r4, 0x3 + str r4, [sp, 0x4] + movs r2, 0x8 + str r2, [sp, 0x8] + str r4, [sp, 0xC] + movs r2, 0 + bl sub_809D104 + movs r0, 0x8 + b _de_080C3A74 + .align 2, 0 +_de_080C39DC: .4byte gIsLinkContest +_de_080C39E0: .4byte 0x0600e000 +_de_080C39E4: .4byte gUnknown_08E964B8 +_de_080C39E8: + ldr r0, _de_080C3A08 @ =gScriptContestRank + ldrh r0, [r0] + cmp r0, 0 + bne _de_080C3A14 + ldr r0, _de_080C3A0C @ =0x0600e000 + lsls r1, 16 + lsrs r1, 16 + ldr r3, _de_080C3A10 @ =gUnknown_08E964B8 + str r4, [sp] + str r4, [sp, 0x4] + movs r2, 0xB + str r2, [sp, 0x8] + movs r2, 0x3 + str r2, [sp, 0xC] + b _de_080C3A6C + .align 2, 0 +_de_080C3A08: .4byte gScriptContestRank +_de_080C3A0C: .4byte 0x0600e000 +_de_080C3A10: .4byte gUnknown_08E964B8 +_de_080C3A14: + cmp r0, 0x1 + bne _de_080C3A2C + ldr r0, _de_080C3A24 @ =0x0600e000 + lsls r1, 16 + lsrs r1, 16 + ldr r3, _de_080C3A28 @ =gUnknown_08E964B8 + movs r2, 0xB + b _de_080C3A3A + .align 2, 0 +_de_080C3A24: .4byte 0x0600e000 +_de_080C3A28: .4byte gUnknown_08E964B8 +_de_080C3A2C: + cmp r0, 0x2 + bne _de_080C3A58 + ldr r0, _de_080C3A50 @ =0x0600e000 + lsls r1, 16 + lsrs r1, 16 + ldr r3, _de_080C3A54 @ =gUnknown_08E964B8 + movs r2, 0x15 +_de_080C3A3A: + str r2, [sp] + str r4, [sp, 0x4] + movs r2, 0xA + str r2, [sp, 0x8] + movs r2, 0x3 + str r2, [sp, 0xC] + movs r2, 0 + bl sub_809D104 + movs r0, 0xA + b _de_080C3A74 + .align 2, 0 +_de_080C3A50: .4byte 0x0600e000 +_de_080C3A54: .4byte gUnknown_08E964B8 +_de_080C3A58: + ldr r0, _de_080C3A7C @ =0x0600e000 + lsls r1, 16 + lsrs r1, 16 + ldr r3, _de_080C3A80 @ =gUnknown_08E964B8 + str r4, [sp] + movs r4, 0x3 + str r4, [sp, 0x4] + movs r2, 0xB + str r2, [sp, 0x8] + str r4, [sp, 0xC] +_de_080C3A6C: + movs r2, 0 + bl sub_809D104 + movs r0, 0xB +_de_080C3A74: + add sp, 0x10 + pop {r4} + pop {r1} + bx r1 + .align 2, 0 +_de_080C3A7C: .4byte 0x0600e000 +_de_080C3A80: .4byte gUnknown_08E964B8 + thumb_func_end de_sub_80C39A8 + + thumb_func_start de_sub_80C3A84 +de_sub_80C3A84: @ 80C3A84 + push {r4,lr} + sub sp, 0x10 + adds r2, r0, 0 + ldr r0, _de_080C3AAC @ =gScriptContestCategory + ldrh r4, [r0] + cmp r4, 0 + bne _de_080C3AB8 + str r4, [r1] + ldr r0, _de_080C3AB0 @ =0x0600e000 + lsls r1, r2, 16 + lsrs r1, 16 + ldr r3, _de_080C3AB4 @ =gUnknown_08E964B8 + movs r2, 0x13 + str r2, [sp] + movs r4, 0x3 + str r4, [sp, 0x4] + movs r2, 0x7 + str r2, [sp, 0x8] + str r4, [sp, 0xC] + b _de_080C3AD6 + .align 2, 0 +_de_080C3AAC: .4byte gScriptContestCategory +_de_080C3AB0: .4byte 0x0600e000 +_de_080C3AB4: .4byte gUnknown_08E964B8 +_de_080C3AB8: + cmp r4, 0x1 + bne _de_080C3AE8 + str r4, [r1] + ldr r0, _de_080C3AE0 @ =0x0600e000 + lsls r1, r2, 16 + lsrs r1, 16 + ldr r3, _de_080C3AE4 @ =gUnknown_08E964B8 + movs r2, 0 + str r2, [sp] + movs r2, 0x6 + str r2, [sp, 0x4] + movs r2, 0x7 + str r2, [sp, 0x8] + movs r2, 0x3 + str r2, [sp, 0xC] +_de_080C3AD6: + movs r2, 0 + bl sub_809D104 + movs r0, 0x7 + b _de_080C3B68 + .align 2, 0 +_de_080C3AE0: .4byte 0x0600e000 +_de_080C3AE4: .4byte gUnknown_08E964B8 +_de_080C3AE8: + cmp r4, 0x2 + bne _de_080C3B18 + str r4, [r1] + ldr r0, _de_080C3B10 @ =0x0600e000 + lsls r1, r2, 16 + lsrs r1, 16 + ldr r3, _de_080C3B14 @ =gUnknown_08E964B8 + movs r2, 0x7 + str r2, [sp] + movs r2, 0x6 + str r2, [sp, 0x4] + movs r2, 0x4 + str r2, [sp, 0x8] + movs r2, 0x3 + str r2, [sp, 0xC] + movs r2, 0 + bl sub_809D104 + movs r0, 0x4 + b _de_080C3B68 + .align 2, 0 +_de_080C3B10: .4byte 0x0600e000 +_de_080C3B14: .4byte gUnknown_08E964B8 +_de_080C3B18: + cmp r4, 0x3 + bne _de_080C3B44 + str r4, [r1] + ldr r0, _de_080C3B3C @ =0x0600e000 + lsls r1, r2, 16 + lsrs r1, 16 + ldr r3, _de_080C3B40 @ =gUnknown_08E964B8 + movs r2, 0xB + str r2, [sp] + movs r2, 0x6 + str r2, [sp, 0x4] + str r2, [sp, 0x8] + str r4, [sp, 0xC] + movs r2, 0 + bl sub_809D104 + movs r0, 0x6 + b _de_080C3B68 + .align 2, 0 +_de_080C3B3C: .4byte 0x0600e000 +_de_080C3B40: .4byte gUnknown_08E964B8 +_de_080C3B44: + movs r0, 0x4 + str r0, [r1] + ldr r0, _de_080C3B70 @ =0x0600e000 + lsls r1, r2, 16 + lsrs r1, 16 + ldr r3, _de_080C3B74 @ =gUnknown_08E964B8 + movs r2, 0x11 + str r2, [sp] + movs r2, 0x6 + str r2, [sp, 0x4] + movs r2, 0x5 + str r2, [sp, 0x8] + movs r2, 0x3 + str r2, [sp, 0xC] + movs r2, 0 + bl sub_809D104 + movs r0, 0x5 +_de_080C3B68: + add sp, 0x10 + pop {r4} + pop {r1} + bx r1 + .align 2, 0 +_de_080C3B70: .4byte 0x0600e000 +_de_080C3B74: .4byte gUnknown_08E964B8 + thumb_func_end de_sub_80C3A84 + + thumb_func_start sub_80C37E4 +sub_80C37E4: @ 80C37E4 + push {r4,r5,lr} + sub sp, 0x4 + movs r0, 0x6 + bl de_sub_80C39A8 + lsls r0, 16 + asrs r0, 16 + adds r0, 0x6 + mov r1, sp + bl de_sub_80C3A84 + ldr r5, _080C3824 @ =0x00000fff + ldr r0, [sp] + lsls r4, r0, 12 + ldr r2, _080C3828 @ =0x0600e000 + movs r3, 0x7F +_080C3804: + ldrh r1, [r2] + adds r0, r5, 0 + ands r0, r1 + strh r0, [r2] + ldrh r1, [r2] + adds r0, r4, 0 + orrs r0, r1 + strh r0, [r2] + adds r2, 0x2 + subs r3, 0x1 + cmp r3, 0 + bge _080C3804 + add sp, 0x4 + pop {r4,r5} + pop {r0} + bx r0 + .align 2, 0 +_080C3824: .4byte 0x00000fff +_080C3828: .4byte 0x0600e000 + thumb_func_end sub_80C37E4 + + thumb_func_start sub_80C3990 +sub_80C3990: @ 80C3990 + push {r4,r5,lr} + lsls r0, 24 + lsls r1, 24 + lsrs r5, r1, 24 + ldr r1, _080C39DC @ =gUnknown_02038670 + lsrs r0, 23 + adds r0, r1 + movs r1, 0 + ldrsh r0, [r0, r1] + lsls r4, r0, 16 + adds r0, r4, 0 + movs r1, 0x3F + bl __udivsi3 + adds r1, r0, 0 + ldr r0, _080C39E0 @ =0x0000ffff + ands r0, r1 + cmp r0, 0 + beq _080C39BC + movs r0, 0x80 + lsls r0, 9 + adds r1, r0 +_080C39BC: + lsrs r1, 16 + cmp r1, 0 + bne _080C39C8 + cmp r4, 0 + beq _080C39C8 + movs r1, 0x1 +_080C39C8: + cmp r5, 0 + beq _080C39D2 + cmp r1, 0xA + bls _080C39D2 + movs r1, 0xA +_080C39D2: + lsls r0, r1, 24 + lsrs r0, 24 + pop {r4,r5} + pop {r1} + bx r1 + .align 2, 0 +_080C39DC: .4byte gUnknown_02038670 +_080C39E0: .4byte 0x0000ffff + thumb_func_end sub_80C3990 + + thumb_func_start sub_80C39E4 +sub_80C39E4: @ 80C39E4 + push {r4-r7,lr} + lsls r0, 24 + lsrs r5, r0, 24 + lsls r1, 24 + lsrs r6, r1, 24 + ldr r1, _080C3A44 @ =gUnknown_02038688 + lsls r0, r5, 1 + adds r0, r1 + movs r2, 0 + ldrsh r0, [r0, r2] + adds r7, r1, 0 + cmp r0, 0 + bge _080C3A00 + negs r0, r0 +_080C3A00: + lsls r4, r0, 16 + adds r0, r4, 0 + movs r1, 0x50 + bl __udivsi3 + adds r2, r0, 0 + ldr r0, _080C3A48 @ =0x0000ffff + ands r0, r2 + cmp r0, 0 + beq _080C3A1A + movs r0, 0x80 + lsls r0, 9 + adds r2, r0 +_080C3A1A: + lsrs r2, 16 + cmp r2, 0 + bne _080C3A26 + cmp r4, 0 + beq _080C3A26 + movs r2, 0x1 +_080C3A26: + cmp r6, 0 + beq _080C3A30 + cmp r2, 0xA + bls _080C3A30 + movs r2, 0xA +_080C3A30: + lsls r0, r5, 1 + adds r0, r7 + movs r1, 0 + ldrsh r0, [r0, r1] + cmp r0, 0 + bge _080C3A4C + negs r0, r2 + lsls r0, 24 + b _080C3A4E + .align 2, 0 +_080C3A44: .4byte gUnknown_02038688 +_080C3A48: .4byte 0x0000ffff +_080C3A4C: + lsls r0, r2, 24 +_080C3A4E: + lsrs r0, 24 + lsls r0, 24 + asrs r0, 24 + pop {r4-r7} + pop {r1} + bx r1 + thumb_func_end sub_80C39E4 + + thumb_func_start sub_80C3A5C +sub_80C3A5C: @ 80C3A5C + push {r4,lr} + lsls r0, 24 + lsrs r0, 24 + adds r4, r0, 0 + ldr r1, _080C3A90 @ =gTasks + lsls r0, r4, 2 + adds r0, r4 + lsls r0, 3 + adds r3, r0, r1 + ldrh r2, [r3, 0x1C] + movs r1, 0x1C + ldrsh r0, [r3, r1] + cmp r0, 0 + bne _080C3A94 + movs r1, 0x8 + ldrsh r0, [r3, r1] + movs r1, 0x3 + subs r1, r0 + lsls r0, r1, 2 + adds r0, r1 + lsls r0, 3 + strh r0, [r3, 0x1E] + adds r0, r2, 0x1 + strh r0, [r3, 0x1C] + b _080C3B12 + .align 2, 0 +_080C3A90: .4byte gTasks +_080C3A94: + cmp r0, 0x1 + bne _080C3B12 + ldrh r0, [r3, 0x1E] + subs r0, 0x1 + strh r0, [r3, 0x1E] + lsls r0, 16 + asrs r0, 16 + movs r1, 0x1 + negs r1, r1 + cmp r0, r1 + bne _080C3B12 + movs r0, 0x8 + ldrsh r2, [r3, r0] + lsls r2, 17 + ldr r1, _080C3B18 @ =0x50430000 + adds r2, r1 + lsrs r2, 16 + movs r0, 0xA + ldrsh r1, [r3, r0] + lsls r0, r1, 1 + adds r0, r1 + lsls r0, 6 + ldr r1, _080C3B1C @ =0x0600e142 + adds r0, r1 + strh r2, [r0] + movs r0, 0xA + ldrsh r1, [r3, r0] + lsls r0, r1, 1 + adds r0, r1 + lsls r0, 6 + ldr r1, _080C3B20 @ =0x0600e144 + adds r0, r1 + adds r1, r2, 0x1 + strh r1, [r0] + movs r0, 0xA + ldrsh r1, [r3, r0] + lsls r0, r1, 1 + adds r0, r1 + lsls r0, 6 + ldr r1, _080C3B24 @ =0x0600e182 + adds r0, r1 + adds r1, r2, 0 + adds r1, 0x10 + strh r1, [r0] + movs r0, 0xA + ldrsh r1, [r3, r0] + lsls r0, r1, 1 + adds r0, r1 + lsls r0, 6 + ldr r1, _080C3B28 @ =0x0600e184 + adds r0, r1 + adds r2, 0x11 + strh r2, [r0] + ldr r1, _080C3B2C @ =0x02018000 + ldrb r0, [r1, 0x5] + adds r0, 0x1 + strb r0, [r1, 0x5] + adds r0, r4, 0 + bl DestroyTask + movs r0, 0x18 + bl PlaySE +_080C3B12: + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_080C3B18: .4byte 0x50430000 +_080C3B1C: .4byte 0x0600e142 +_080C3B20: .4byte 0x0600e144 +_080C3B24: .4byte 0x0600e182 +_080C3B28: .4byte 0x0600e184 +_080C3B2C: .4byte 0x02018000 + thumb_func_end sub_80C3A5C + + thumb_func_start sub_80C3B30 +sub_80C3B30: @ 80C3B30 + push {r4-r7,lr} + mov r7, r10 + mov r6, r9 + mov r5, r8 + push {r5-r7} + lsls r0, 24 + lsrs r0, 24 + mov r12, r0 + movs r5, 0 + ldr r1, _080C3BC0 @ =gUnknown_02038690 + ldrb r0, [r1] + ldr r2, _080C3BC4 @ =gTasks + mov r10, r2 + cmp r0, 0 + beq _080C3B5C +_080C3B4E: + adds r5, 0x1 + cmp r5, 0x3 + bgt _080C3B5C + adds r0, r5, r1 + ldrb r0, [r0] + cmp r0, 0 + bne _080C3B4E +_080C3B5C: + movs r1, 0 + lsls r0, r5, 1 + mov r2, r12 + lsls r2, 2 + mov r9, r2 + adds r0, r5 + lsls r0, 5 + mov r8, r0 + ldr r7, _080C3BC8 @ =0x00000fff + movs r0, 0x90 + lsls r0, 8 + adds r6, r0, 0 +_080C3B74: + lsls r0, r1, 5 + adds r4, r1, 0x1 + add r0, r8 + movs r3, 0x1D + lsls r0, 1 + ldr r1, _080C3BCC @ =0x0600e100 + adds r2, r0, r1 +_080C3B82: + ldrh r1, [r2] + adds r0, r7, 0 + ands r0, r1 + orrs r0, r6 + strh r0, [r2] + adds r2, 0x2 + subs r3, 0x1 + cmp r3, 0 + bge _080C3B82 + adds r1, r4, 0 + cmp r1, 0x2 + ble _080C3B74 + mov r0, r9 + add r0, r12 + lsls r0, 3 + add r0, r10 + strh r5, [r0, 0x1C] + movs r1, 0x1 + strh r1, [r0, 0x20] + ldr r2, _080C3BD0 @ =sub_80C3BD8 + str r2, [r0] + mov r1, r12 + ldr r0, _080C3BD4 @ =0x02018000 + strb r1, [r0, 0x3] + pop {r3-r5} + mov r8, r3 + mov r9, r4 + mov r10, r5 + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_080C3BC0: .4byte gUnknown_02038690 +_080C3BC4: .4byte gTasks +_080C3BC8: .4byte 0x00000fff +_080C3BCC: .4byte 0x0600e100 +_080C3BD0: .4byte sub_80C3BD8 +_080C3BD4: .4byte 0x02018000 + thumb_func_end sub_80C3B30 + + thumb_func_start sub_80C3BD8 +sub_80C3BD8: @ 80C3BD8 + push {r4,r5,lr} + lsls r0, 24 + lsrs r0, 24 + ldr r2, _080C3C24 @ =gTasks + lsls r1, r0, 2 + adds r1, r0 + lsls r1, 3 + adds r4, r1, r2 + ldrh r0, [r4, 0x1E] + adds r0, 0x1 + strh r0, [r4, 0x1E] + lsls r0, 16 + asrs r5, r0, 16 + cmp r5, 0x1 + bne _080C3C3C + movs r0, 0 + strh r0, [r4, 0x1E] + ldrh r2, [r4, 0x20] + lsls r2, 24 + lsrs r2, 24 + ldr r3, _080C3C28 @ =0x00006f8d + movs r0, 0x91 + movs r1, 0x1 + bl BlendPalette + movs r1, 0x22 + ldrsh r0, [r4, r1] + cmp r0, 0 + bne _080C3C2C + ldrh r0, [r4, 0x20] + adds r0, 0x1 + strh r0, [r4, 0x20] + lsls r0, 16 + asrs r0, 16 + cmp r0, 0x10 + bne _080C3C3C + strh r5, [r4, 0x22] + b _080C3C3C + .align 2, 0 +_080C3C24: .4byte gTasks +_080C3C28: .4byte 0x00006f8d +_080C3C2C: + ldrh r0, [r4, 0x20] + subs r0, 0x1 + strh r0, [r4, 0x20] + lsls r0, 16 + asrs r0, 16 + cmp r0, 0 + bne _080C3C3C + strh r0, [r4, 0x22] +_080C3C3C: + pop {r4,r5} + pop {r0} + bx r0 + thumb_func_end sub_80C3BD8 + + thumb_func_start sub_80C3C44 +sub_80C3C44: @ 80C3C44 + push {r4,lr} + adds r4, r0, 0 + ldrh r1, [r4, 0x2E] + movs r2, 0x2E + ldrsh r0, [r4, r2] + cmp r0, 0x9 + bgt _080C3C6C + adds r0, r1, 0x1 + strh r0, [r4, 0x2E] + lsls r0, 16 + asrs r0, 16 + cmp r0, 0xA + bne _080C3CA8 + ldrh r0, [r4, 0x30] + movs r1, 0 + bl PlayCry1 + movs r0, 0 + strh r0, [r4, 0x30] + b _080C3CA8 +_080C3C6C: + movs r0, 0xC0 + lsls r0, 3 + adds r2, r0, 0 + ldrh r1, [r4, 0x30] + adds r2, r1 + lsls r1, r2, 16 + asrs r1, 24 + ldrh r0, [r4, 0x20] + subs r0, r1 + strh r0, [r4, 0x20] + movs r1, 0xFF + ands r2, r1 + strh r2, [r4, 0x30] + lsls r0, 16 + asrs r0, 16 + cmp r0, 0x77 + bgt _080C3C92 + movs r0, 0x78 + strh r0, [r4, 0x20] +_080C3C92: + movs r2, 0x20 + ldrsh r0, [r4, r2] + cmp r0, 0x78 + bne _080C3CA8 + ldr r0, _080C3CB0 @ =SpriteCallbackDummy + str r0, [r4, 0x1C] + movs r0, 0 + strh r0, [r4, 0x30] + ldr r1, _080C3CB4 @ =0x02018000 + movs r0, 0x1 + strb r0, [r1, 0x6] +_080C3CA8: + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_080C3CB0: .4byte SpriteCallbackDummy +_080C3CB4: .4byte 0x02018000 + thumb_func_end sub_80C3C44 + + thumb_func_start sub_80C3CB8 +sub_80C3CB8: @ 80C3CB8 + push {lr} + adds r3, r0, 0 + movs r0, 0xC0 + lsls r0, 3 + adds r2, r0, 0 + ldrh r0, [r3, 0x30] + adds r2, r0 + lsls r1, r2, 16 + asrs r1, 24 + ldrh r0, [r3, 0x20] + subs r0, r1 + strh r0, [r3, 0x20] + movs r1, 0xFF + ands r2, r1 + strh r2, [r3, 0x30] + lsls r0, 16 + asrs r0, 16 + movs r1, 0x20 + negs r1, r1 + cmp r0, r1 + bge _080C3CF8 + ldr r0, _080C3CFC @ =SpriteCallbackDummy + str r0, [r3, 0x1C] + adds r2, r3, 0 + adds r2, 0x3E + ldrb r0, [r2] + movs r1, 0x4 + orrs r0, r1 + strb r0, [r2] + ldr r1, _080C3D00 @ =0x02018000 + movs r0, 0x2 + strb r0, [r1, 0x6] +_080C3CF8: + pop {r0} + bx r0 + .align 2, 0 +_080C3CFC: .4byte SpriteCallbackDummy +_080C3D00: .4byte 0x02018000 + thumb_func_end sub_80C3CB8 + + thumb_func_start sub_80C3D04 +sub_80C3D04: @ 80C3D04 + push {r4-r7,lr} + mov r7, r8 + push {r7} + lsls r0, 24 + lsrs r7, r0, 24 + ldr r1, _080C3DD8 @ =gTasks + lsls r0, r7, 2 + adds r0, r7 + lsls r0, 3 + adds r1, r0, r1 + ldrh r0, [r1, 0x8] + adds r0, 0x1 + strh r0, [r1, 0x8] + lsls r0, 16 + asrs r0, 16 + cmp r0, 0x5 + bne _080C3DBE + movs r0, 0 + strh r0, [r1, 0x8] + ldr r0, _080C3DDC @ =0x02018000 + mov r8, r0 + ldrb r0, [r0, 0x7] + cmp r0, 0x27 + bhi _080C3DBE + ldr r4, _080C3DE0 @ =gSpriteTemplate_83D17B4 + bl Random + lsls r0, 16 + lsrs r0, 16 + movs r1, 0xF0 + bl __umodsi3 + adds r1, r0, 0 + subs r1, 0x14 + lsls r1, 16 + asrs r1, 16 + adds r0, r4, 0 + movs r2, 0x2C + movs r3, 0x5 + bl CreateSprite + adds r4, r0, 0 + lsls r4, 24 + lsrs r4, 24 + bl Random + ldr r1, _080C3DE4 @ =gSprites + lsls r5, r4, 4 + adds r5, r4 + lsls r5, 2 + adds r5, r1 + lsls r0, 23 + lsrs r0, 23 + strh r0, [r5, 0x2E] + bl Random + lsls r0, 16 + lsrs r0, 16 + movs r1, 0x18 + bl __umodsi3 + adds r0, 0x10 + strh r0, [r5, 0x30] + bl Random + lsls r0, 16 + lsrs r0, 16 + movs r1, 0xFF + ands r0, r1 + adds r0, 0x30 + strh r0, [r5, 0x32] + bl Random + ldrh r6, [r5, 0x4] + lsls r4, r6, 22 + lsrs r4, 22 + lsls r0, 16 + lsrs r0, 16 + movs r1, 0x11 + bl __umodsi3 + adds r4, r0 + ldr r1, _080C3DE8 @ =0x000003ff + adds r0, r1, 0 + ands r4, r0 + ldr r0, _080C3DEC @ =0xfffffc00 + ands r0, r6 + orrs r0, r4 + strh r0, [r5, 0x4] + mov r1, r8 + ldrb r0, [r1, 0x7] + adds r0, 0x1 + strb r0, [r1, 0x7] +_080C3DBE: + ldr r0, _080C3DDC @ =0x02018000 + ldrb r0, [r0, 0x9] + cmp r0, 0 + beq _080C3DCC + adds r0, r7, 0 + bl DestroyTask +_080C3DCC: + pop {r3} + mov r8, r3 + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_080C3DD8: .4byte gTasks +_080C3DDC: .4byte 0x02018000 +_080C3DE0: .4byte gSpriteTemplate_83D17B4 +_080C3DE4: .4byte gSprites +_080C3DE8: .4byte 0x000003ff +_080C3DEC: .4byte 0xfffffc00 + thumb_func_end sub_80C3D04 + + thumb_func_start sub_80C3DF0 +sub_80C3DF0: @ 80C3DF0 + push {r4,r5,lr} + adds r4, r0, 0 + ldrh r0, [r4, 0x2E] + ldrh r1, [r4, 0x34] + adds r0, r1 + strh r0, [r4, 0x34] + lsls r0, 16 + asrs r0, 24 + movs r2, 0x30 + ldrsh r1, [r4, r2] + bl Sin + strh r0, [r4, 0x24] + ldrh r1, [r4, 0x32] + ldrh r0, [r4, 0x36] + adds r1, r0 + lsls r0, r1, 16 + asrs r0, 24 + ldrh r2, [r4, 0x20] + adds r0, r2 + strh r0, [r4, 0x20] + movs r0, 0xFF + ands r1, r0 + strh r1, [r4, 0x36] + ldrh r0, [r4, 0x22] + adds r0, 0x1 + strh r0, [r4, 0x22] + ldr r5, _080C3E5C @ =0x02018000 + ldrb r0, [r5, 0x9] + cmp r0, 0 + beq _080C3E3A + adds r2, r4, 0 + adds r2, 0x3E + ldrb r0, [r2] + movs r1, 0x4 + orrs r0, r1 + strb r0, [r2] +_080C3E3A: + movs r1, 0x20 + ldrsh r0, [r4, r1] + cmp r0, 0xF8 + bgt _080C3E4A + movs r2, 0x22 + ldrsh r0, [r4, r2] + cmp r0, 0x74 + ble _080C3E56 +_080C3E4A: + adds r0, r4, 0 + bl DestroySprite + ldrb r0, [r5, 0x7] + subs r0, 0x1 + strb r0, [r5, 0x7] +_080C3E56: + pop {r4,r5} + pop {r0} + bx r0 + .align 2, 0 +_080C3E5C: .4byte 0x02018000 + thumb_func_end sub_80C3DF0 + + thumb_func_start sub_80C3E60 +sub_80C3E60: @ 80C3E60 + push {r4,r5,lr} + adds r4, r0, 0 + adds r5, r1, 0 + lsls r4, 24 + lsrs r4, 24 + lsls r5, 24 + lsrs r5, 24 + ldr r0, _080C3E98 @ =sub_80C3EA4 + movs r1, 0x8 + bl CreateTask + lsls r0, 24 + lsrs r0, 24 + ldr r2, _080C3E9C @ =gTasks + lsls r1, r0, 2 + adds r1, r0 + lsls r1, 3 + adds r1, r2 + strh r4, [r1, 0x8] + strh r5, [r1, 0xA] + ldr r0, _080C3EA0 @ =gContestMons + lsls r4, 6 + adds r4, r0 + ldrh r0, [r4] + strh r0, [r1, 0xC] + pop {r4,r5} + pop {r0} + bx r0 + .align 2, 0 +_080C3E98: .4byte sub_80C3EA4 +_080C3E9C: .4byte gTasks +_080C3EA0: .4byte gContestMons + thumb_func_end sub_80C3E60 + + thumb_func_start sub_80C3EA4 +sub_80C3EA4: @ 80C3EA4 + push {r4,r5,lr} + sub sp, 0x4 + lsls r0, 24 + lsrs r0, 24 + ldr r2, _080C3EF8 @ =gTasks + lsls r1, r0, 2 + adds r1, r0 + lsls r1, 3 + adds r4, r1, r2 + ldrb r5, [r4, 0x8] + ldrh r0, [r4, 0x1C] + adds r1, r0, 0x1 + strh r1, [r4, 0x1C] + lsls r0, 16 + asrs r0, 16 + movs r2, 0xA + ldrsh r1, [r4, r2] + cmp r0, r1 + bne _080C3EEE + movs r0, 0 + strh r0, [r4, 0x1C] + ldrh r0, [r4, 0xC] + ldrb r2, [r4, 0x1E] + ldr r1, _080C3EFC @ =gContestMons + lsls r3, r5, 6 + adds r1, 0x38 + adds r3, r1 + ldr r1, [r3] + str r1, [sp] + adds r1, r5, 0 + movs r3, 0 + bl sub_80C3024 + ldrh r0, [r4, 0x1E] + movs r1, 0x1 + eors r0, r1 + strh r0, [r4, 0x1E] +_080C3EEE: + add sp, 0x4 + pop {r4,r5} + pop {r0} + bx r0 + .align 2, 0 +_080C3EF8: .4byte gTasks +_080C3EFC: .4byte gContestMons + thumb_func_end sub_80C3EA4 + + thumb_func_start sub_80C3F00 +sub_80C3F00: @ 80C3F00 + push {r4-r7,lr} + mov r7, r10 + mov r6, r9 + mov r5, r8 + push {r5-r7} + ldr r0, _080C4098 @ =gUnknown_02038678 + ldrh r2, [r0] + adds r4, r0, 0 + adds r3, r4, 0x2 + movs r0, 0x2 + mov r8, r0 +_080C3F16: + lsls r0, r2, 16 + asrs r0, 16 + movs r5, 0 + ldrsh r1, [r3, r5] + cmp r0, r1 + bge _080C3F24 + ldrh r2, [r3] +_080C3F24: + adds r3, 0x2 + movs r0, 0x1 + negs r0, r0 + add r8, r0 + mov r1, r8 + cmp r1, 0 + bge _080C3F16 + lsls r0, r2, 16 + mov r9, r0 + cmp r0, 0 + bge _080C3F62 + ldrh r2, [r4] + adds r3, r4, 0x2 + movs r4, 0x2 + mov r8, r4 +_080C3F42: + lsls r0, r2, 16 + asrs r0, 16 + movs r5, 0 + ldrsh r1, [r3, r5] + cmp r0, r1 + ble _080C3F50 + ldrh r2, [r3] +_080C3F50: + adds r3, 0x2 + movs r0, 0x1 + negs r0, r0 + add r8, r0 + lsls r1, r2, 16 + mov r9, r1 + mov r4, r8 + cmp r4, 0 + bge _080C3F42 +_080C3F62: + movs r5, 0 + mov r8, r5 + mov r10, r5 +_080C3F68: + ldr r0, _080C409C @ =gUnknown_02038670 + mov r1, r8 + lsls r7, r1, 1 + adds r0, r7, r0 + movs r2, 0 + ldrsh r1, [r0, r2] + lsls r0, r1, 5 + subs r0, r1 + lsls r0, 2 + adds r0, r1 + lsls r0, 3 + mov r4, r9 + asrs r6, r4, 16 + adds r1, r6, 0 + cmp r6, 0 + bge _080C3F8A + negs r1, r6 +_080C3F8A: + bl __divsi3 + adds r4, r0, 0 + movs r1, 0xA + bl __modsi3 + cmp r0, 0x4 + ble _080C3F9C + adds r4, 0xA +_080C3F9C: + ldr r0, _080C40A0 @ =0x02018018 + mov r1, r10 + adds r5, r1, r0 + adds r0, r4, 0 + movs r1, 0xA + bl __divsi3 + str r0, [r5] + ldr r0, _080C40A4 @ =gUnknown_02038688 + adds r7, r0 + movs r2, 0 + ldrsh r1, [r7, r2] + cmp r1, 0 + bge _080C3FBA + negs r1, r1 +_080C3FBA: + lsls r0, r1, 5 + subs r0, r1 + lsls r0, 2 + adds r0, r1 + lsls r0, 3 + adds r1, r6, 0 + cmp r1, 0 + bge _080C3FCC + negs r1, r1 +_080C3FCC: + bl __divsi3 + adds r4, r0, 0 + movs r1, 0xA + bl __modsi3 + cmp r0, 0x4 + ble _080C3FDE + adds r4, 0xA +_080C3FDE: + adds r0, r4, 0 + movs r1, 0xA + bl __divsi3 + str r0, [r5, 0x4] + movs r4, 0 + ldrsh r0, [r7, r4] + cmp r0, 0 + bge _080C3FF4 + movs r0, 0x1 + strb r0, [r5, 0x10] +_080C3FF4: + ldr r1, [r5] + lsls r0, r1, 1 + adds r0, r1 + lsls r0, 2 + subs r0, r1 + lsls r0, 11 + movs r1, 0x64 + bl __divsi3 + adds r1, r0, 0 + movs r4, 0xFF + ands r0, r4 + cmp r0, 0x7F + bls _080C4016 + movs r0, 0x80 + lsls r0, 1 + adds r1, r0 +_080C4016: + lsrs r0, r1, 8 + str r0, [r5, 0x8] + ldr r1, [r5, 0x4] + lsls r0, r1, 1 + adds r0, r1 + lsls r0, 2 + subs r0, r1 + lsls r0, 11 + movs r1, 0x64 + bl __divsi3 + adds r1, r0, 0 + ands r0, r4 + cmp r0, 0x7F + bls _080C403A + movs r2, 0x80 + lsls r2, 1 + adds r1, r2 +_080C403A: + lsrs r0, r1, 8 + str r0, [r5, 0xC] + mov r0, r8 + lsls r4, r0, 24 + lsrs r4, 24 + adds r0, r4, 0 + movs r1, 0x1 + bl sub_80C3990 + strb r0, [r5, 0x11] + adds r0, r4, 0 + movs r1, 0x1 + bl sub_80C39E4 + lsls r0, 24 + asrs r0, 24 + cmp r0, 0 + bge _080C4060 + negs r0, r0 +_080C4060: + strb r0, [r5, 0x12] + ldr r0, _080C40A8 @ =gUnknown_02038690 + add r0, r8 + ldrb r0, [r0] + cmp r0, 0 + beq _080C40B4 + ldr r4, [r5, 0x8] + ldrh r2, [r5, 0x8] + ldr r3, [r5, 0xC] + ldrh r1, [r5, 0xC] + ldrb r0, [r5, 0x10] + cmp r0, 0 + beq _080C4080 + lsls r0, r1, 16 + negs r0, r0 + lsrs r1, r0, 16 +_080C4080: + lsls r0, r2, 16 + asrs r2, r0, 16 + lsls r0, r1, 16 + asrs r1, r0, 16 + adds r0, r2, r1 + cmp r0, 0x58 + bne _080C40B4 + cmp r1, 0 + ble _080C40AC + subs r0, r3, 0x1 + str r0, [r5, 0xC] + b _080C40B4 + .align 2, 0 +_080C4098: .4byte gUnknown_02038678 +_080C409C: .4byte gUnknown_02038670 +_080C40A0: .4byte 0x02018018 +_080C40A4: .4byte gUnknown_02038688 +_080C40A8: .4byte gUnknown_02038690 +_080C40AC: + cmp r2, 0 + ble _080C40B4 + subs r0, r4, 0x1 + str r0, [r5, 0x8] +_080C40B4: + movs r1, 0x14 + add r10, r1 + movs r2, 0x1 + add r8, r2 + mov r4, r8 + cmp r4, 0x3 + bgt _080C40C4 + b _080C3F68 +_080C40C4: + pop {r3-r5} + mov r8, r3 + mov r9, r4 + mov r10, r5 + pop {r4-r7} + pop {r0} + bx r0 + thumb_func_end sub_80C3F00 + + thumb_func_start sub_80C40D4 +sub_80C40D4: @ 80C40D4 + push {r4-r7,lr} + mov r7, r10 + mov r6, r9 + mov r5, r8 + push {r5-r7} + sub sp, 0x8 + lsls r0, 24 + lsls r1, 24 + lsrs r7, r1, 24 + movs r1, 0 + mov r10, r1 + movs r2, 0 + str r2, [sp] + cmp r0, 0 + bne _080C4198 + mov r8, r2 + ldr r0, _080C417C @ =0x02018018 + subs r1, 0x18 + adds r1, r0 + mov r9, r1 + adds r4, r0, 0 + adds r4, 0x8 + movs r6, 0xA0 +_080C4102: + ldrb r0, [r4, 0x9] + cmp r7, r0 + bcs _080C416A + adds r0, 0x13 + adds r0, r6, r0 + subs r0, r7 + lsls r0, 1 + ldr r2, _080C4180 @ =0x0600bffe + adds r0, r2 + ldr r2, _080C4184 @ =0x000060b3 + adds r1, r2, 0 + strh r1, [r0] + ldr r0, _080C4188 @ =sub_80C42C0 + movs r1, 0xA + bl CreateTask + lsls r0, 24 + lsrs r5, r0, 24 + ldr r0, [r4] + lsls r0, 16 + ldrb r1, [r4, 0x9] + bl __udivsi3 + adds r1, r7, 0x1 + adds r3, r0, 0 + muls r3, r1 + ldr r0, _080C418C @ =0x0000ffff + ands r0, r3 + ldr r1, _080C4190 @ =0x00007fff + cmp r0, r1 + bls _080C4146 + movs r0, 0x80 + lsls r0, 9 + adds r3, r0 +_080C4146: + ldr r1, _080C4194 @ =gTasks + lsls r0, r5, 2 + adds r0, r5 + lsls r0, 3 + adds r0, r1 + mov r1, r8 + strh r1, [r0, 0x8] + lsrs r1, r3, 16 + strh r1, [r0, 0xA] + mov r2, r9 + ldrb r0, [r2, 0x14] + adds r0, 0x1 + strb r0, [r2, 0x14] + mov r0, r10 + adds r0, 0x1 + lsls r0, 24 + lsrs r0, 24 + mov r10, r0 +_080C416A: + adds r4, 0x14 + adds r6, 0x60 + movs r0, 0x1 + add r8, r0 + mov r1, r8 + cmp r1, 0x3 + ble _080C4102 + b _080C4292 + .align 2, 0 +_080C417C: .4byte 0x02018018 +_080C4180: .4byte 0x0600bffe +_080C4184: .4byte 0x000060b3 +_080C4188: .4byte sub_80C42C0 +_080C418C: .4byte 0x0000ffff +_080C4190: .4byte 0x00007fff +_080C4194: .4byte gTasks +_080C4198: + movs r2, 0 + mov r8, r2 + ldr r0, _080C4220 @ =0x02018018 + mov r12, r0 + mov r9, r2 + movs r1, 0xC0 + str r1, [sp, 0x4] +_080C41A6: + mov r6, r9 + add r6, r12 + ldrb r1, [r6, 0x12] + ldrb r0, [r6, 0x10] + ldr r2, _080C4224 @ =0x000060a3 + cmp r0, 0 + beq _080C41B6 + adds r2, 0x2 +_080C41B6: + lsls r0, r1, 24 + asrs r0, 24 + cmp r7, r0 + bge _080C427E + adds r0, 0x13 + ldr r1, [sp, 0x4] + adds r0, r1, r0 + subs r0, r7 + lsls r0, 1 + ldr r1, _080C4228 @ =0x0600bffe + adds r0, r1 + strh r2, [r0] + ldr r0, _080C422C @ =sub_80C42C0 + movs r1, 0xA + bl CreateTask + lsls r0, 24 + lsrs r5, r0, 24 + ldr r0, [r6, 0xC] + lsls r0, 16 + ldrb r1, [r6, 0x12] + bl __udivsi3 + adds r1, r7, 0x1 + adds r3, r0, 0 + muls r3, r1 + ldr r0, _080C4230 @ =0x0000ffff + ands r0, r3 + ldr r1, _080C4234 @ =0x00007fff + cmp r0, r1 + bls _080C41FA + movs r2, 0x80 + lsls r2, 9 + adds r3, r2 +_080C41FA: + ldr r1, _080C4238 @ =gTasks + lsls r2, r5, 2 + adds r0, r2, r5 + lsls r0, 3 + adds r4, r0, r1 + mov r0, r8 + strh r0, [r4, 0x8] + ldrb r0, [r6, 0x10] + adds r6, r1, 0 + cmp r0, 0 + beq _080C423C + movs r0, 0x1 + strh r0, [r4, 0xC] + ldr r0, [sp] + adds r0, 0x1 + lsls r0, 24 + lsrs r0, 24 + str r0, [sp] + b _080C4246 + .align 2, 0 +_080C4220: .4byte 0x02018018 +_080C4224: .4byte 0x000060a3 +_080C4228: .4byte 0x0600bffe +_080C422C: .4byte sub_80C42C0 +_080C4230: .4byte 0x0000ffff +_080C4234: .4byte 0x00007fff +_080C4238: .4byte gTasks +_080C423C: + mov r0, r10 + adds r0, 0x1 + lsls r0, 24 + lsrs r0, 24 + mov r10, r0 +_080C4246: + ldr r0, _080C4264 @ =0x02018018 + mov r1, r9 + adds r4, r1, r0 + ldrb r1, [r4, 0x10] + mov r12, r0 + cmp r1, 0 + beq _080C4268 + adds r0, r2, r5 + lsls r0, 3 + adds r0, r6 + lsrs r2, r3, 16 + ldr r1, [r4, 0x8] + subs r1, r2 + b _080C4274 + .align 2, 0 +_080C4264: .4byte 0x02018018 +_080C4268: + adds r0, r2, r5 + lsls r0, 3 + adds r0, r6 + lsrs r2, r3, 16 + ldr r1, [r4, 0x8] + adds r1, r2 +_080C4274: + strh r1, [r0, 0xA] + ldr r1, _080C42BC @ =0x02018000 + ldrb r0, [r1, 0x14] + adds r0, 0x1 + strb r0, [r1, 0x14] +_080C427E: + movs r2, 0x14 + add r9, r2 + ldr r0, [sp, 0x4] + adds r0, 0x60 + str r0, [sp, 0x4] + movs r1, 0x1 + add r8, r1 + mov r2, r8 + cmp r2, 0x3 + ble _080C41A6 +_080C4292: + ldr r0, [sp] + cmp r0, 0 + beq _080C429E + movs r0, 0x16 + bl PlaySE +_080C429E: + mov r1, r10 + cmp r1, 0 + beq _080C42AA + movs r0, 0x15 + bl PlaySE +_080C42AA: + add sp, 0x8 + pop {r3-r5} + mov r8, r3 + mov r9, r4 + mov r10, r5 + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_080C42BC: .4byte 0x02018000 + thumb_func_end sub_80C40D4 + + thumb_func_start sub_80C42C0 +sub_80C42C0: @ 80C42C0 + push {r4-r7,lr} + mov r7, r10 + mov r6, r9 + mov r5, r8 + push {r5-r7} + lsls r0, 24 + lsrs r0, 24 + mov r12, r0 + movs r6, 0 + mov r9, r6 + ldr r1, _080C4308 @ =gTasks + lsls r0, 2 + add r0, r12 + lsls r0, 3 + adds r0, r1 + ldrb r5, [r0, 0x8] + ldrh r7, [r0, 0xA] + ldrh r1, [r0, 0xC] + mov r8, r1 + movs r2, 0xC + ldrsh r0, [r0, r2] + cmp r0, 0 + beq _080C4310 + ldr r1, _080C430C @ =0x02018000 + lsls r2, r5, 1 + adds r0, r1, 0 + adds r0, 0xC + adds r0, r2, r0 + movs r3, 0 + ldrsh r0, [r0, r3] + mov r10, r1 + adds r4, r2, 0 + cmp r0, 0 + bgt _080C4328 + b _080C4326 + .align 2, 0 +_080C4308: .4byte gTasks +_080C430C: .4byte 0x02018000 +_080C4310: + ldr r1, _080C4350 @ =0x02018000 + lsls r2, r5, 1 + adds r0, r1, 0 + adds r0, 0xC + adds r0, r2, r0 + movs r3, 0 + ldrsh r0, [r0, r3] + mov r10, r1 + adds r4, r2, 0 + cmp r0, 0x57 + ble _080C4328 +_080C4326: + movs r6, 0x1 +_080C4328: + mov r0, r10 + adds r0, 0xC + adds r3, r4, r0 + ldrh r2, [r3] + movs r0, 0 + ldrsh r1, [r3, r0] + lsls r0, r7, 16 + asrs r0, 16 + cmp r1, r0 + bne _080C4340 + movs r1, 0x1 + mov r9, r1 +_080C4340: + mov r0, r9 + cmp r0, 0 + bne _080C4362 + cmp r6, 0 + beq _080C4354 + strh r7, [r3] + b _080C4362 + .align 2, 0 +_080C4350: .4byte 0x02018000 +_080C4354: + mov r1, r8 + cmp r1, 0 + beq _080C435E + subs r0, r2, 0x1 + b _080C4360 +_080C435E: + adds r0, r2, 0x1 +_080C4360: + strh r0, [r3] +_080C4362: + cmp r6, 0 + bne _080C43C8 + mov r2, r9 + cmp r2, 0 + bne _080C43CE + movs r2, 0 + ldr r0, _080C4388 @ =0x0201800c + adds r6, r4, r0 + adds r0, r4, r5 + lsls r5, r0, 5 +_080C4376: + movs r0, 0 + ldrsh r3, [r6, r0] + adds r0, r2, 0x1 + lsls r1, r0, 3 + adds r4, r0, 0 + cmp r3, r1 + blt _080C438C + movs r0, 0x8 + b _080C43A8 + .align 2, 0 +_080C4388: .4byte 0x0201800c +_080C438C: + lsls r0, r2, 3 + cmp r3, r0 + blt _080C43A6 + adds r0, r3, 0 + cmp r3, 0 + bge _080C439A + adds r0, r3, 0x7 +_080C439A: + asrs r0, 3 + lsls r0, 3 + subs r0, r3, r0 + lsls r0, 24 + lsrs r0, 24 + b _080C43A8 +_080C43A6: + movs r0, 0 +_080C43A8: + cmp r0, 0x3 + bhi _080C43B4 + ldr r3, _080C43B0 @ =0x0000504c + b _080C43B6 + .align 2, 0 +_080C43B0: .4byte 0x0000504c +_080C43B4: + ldr r3, _080C43EC @ =0x00005057 +_080C43B6: + adds r1, r0, r3 + adds r0, r5, r2 + lsls r0, 1 + ldr r2, _080C43F0 @ =0x0600e18e + adds r0, r2 + strh r1, [r0] + adds r2, r4, 0 + cmp r2, 0xA + ble _080C4376 +_080C43C8: + mov r3, r9 + cmp r3, 0 + beq _080C43DC +_080C43CE: + mov r1, r10 + ldrb r0, [r1, 0x14] + subs r0, 0x1 + strb r0, [r1, 0x14] + mov r0, r12 + bl DestroyTask +_080C43DC: + pop {r3-r5} + mov r8, r3 + mov r9, r4 + mov r10, r5 + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_080C43EC: .4byte 0x00005057 +_080C43F0: .4byte 0x0600e18e + thumb_func_end sub_80C42C0 + + thumb_func_start sub_80C43F4 +sub_80C43F4: @ 80C43F4 + push {r4,r5,lr} + ldr r0, _080C442C @ =gUnknown_02038694 + ldrb r1, [r0] + movs r0, 0x64 + muls r0, r1 + ldr r1, _080C4430 @ =gPlayerParty + adds r0, r1 + bl sub_80AE47C + lsls r0, 24 + lsrs r0, 24 + adds r5, r0, 0 + cmp r5, 0 + beq _080C4422 + ldr r4, _080C4434 @ =gScriptContestCategory + ldrb r0, [r4] + ldr r1, _080C4438 @ =gScriptContestRank + ldrb r1, [r1] + bl sub_80AE398 + ldrb r0, [r4] + bl sub_80AE82C +_080C4422: + ldr r0, _080C443C @ =gScriptResult + strh r5, [r0] + pop {r4,r5} + pop {r0} + bx r0 + .align 2, 0 +_080C442C: .4byte gUnknown_02038694 +_080C4430: .4byte gPlayerParty +_080C4434: .4byte gScriptContestCategory +_080C4438: .4byte gScriptContestRank +_080C443C: .4byte gScriptResult + thumb_func_end sub_80C43F4 + + thumb_func_start sub_80C4440 +sub_80C4440: @ 80C4440 + push {r4,lr} + movs r4, 0 + ldr r0, _080C4464 @ =gUnknown_02038694 + ldrb r1, [r0] + movs r0, 0x64 + muls r1, r0 + ldr r0, _080C4468 @ =gPlayerParty + adds r2, r1, r0 + ldr r0, _080C446C @ =gScriptContestCategory + ldrh r0, [r0] + cmp r0, 0x4 + bhi _080C44B2 + lsls r0, 2 + ldr r1, _080C4470 @ =_080C4474 + adds r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_080C4464: .4byte gUnknown_02038694 +_080C4468: .4byte gPlayerParty +_080C446C: .4byte gScriptContestCategory +_080C4470: .4byte _080C4474 + .align 2, 0 +_080C4474: + .4byte _080C4488 + .4byte _080C448E + .4byte _080C4494 + .4byte _080C449A + .4byte _080C44A0 +_080C4488: + adds r0, r2, 0 + movs r1, 0x32 + b _080C44A4 +_080C448E: + adds r0, r2, 0 + movs r1, 0x33 + b _080C44A4 +_080C4494: + adds r0, r2, 0 + movs r1, 0x34 + b _080C44A4 +_080C449A: + adds r0, r2, 0 + movs r1, 0x35 + b _080C44A4 +_080C44A0: + adds r0, r2, 0 + movs r1, 0x36 +_080C44A4: + bl GetMonData + ldr r1, _080C44BC @ =gScriptContestRank + ldrh r1, [r1] + cmp r0, r1 + bls _080C44B2 + movs r4, 0x1 +_080C44B2: + adds r0, r4, 0 + pop {r4} + pop {r1} + bx r1 + .align 2, 0 +_080C44BC: .4byte gScriptContestRank + thumb_func_end sub_80C4440 + + thumb_func_start sub_80C44C0 +sub_80C44C0: @ 80C44C0 + push {r4-r7,lr} + sub sp, 0x4 + ldr r1, _080C44E8 @ =gUnknown_02038690 + ldr r0, _080C44EC @ =gContestPlayerMonIndex + ldrb r0, [r0] + adds r0, r1 + ldrb r0, [r0] + cmp r0, 0 + beq _080C44D4 + b _080C465E +_080C44D4: + ldr r0, _080C44F0 @ =gScriptContestCategory + ldrh r0, [r0] + cmp r0, 0x4 + bls _080C44DE + b _080C465E +_080C44DE: + lsls r0, 2 + ldr r1, _080C44F4 @ =_080C44F8 + adds r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_080C44E8: .4byte gUnknown_02038690 +_080C44EC: .4byte gContestPlayerMonIndex +_080C44F0: .4byte gScriptContestCategory +_080C44F4: .4byte _080C44F8 + .align 2, 0 +_080C44F8: + .4byte _080C450C + .4byte _080C4554 + .4byte _080C4598 + .4byte _080C45DC + .4byte _080C4624 +_080C450C: + ldr r6, _080C4548 @ =gUnknown_02038694 + ldrb r0, [r6] + movs r5, 0x64 + muls r0, r5 + ldr r4, _080C454C @ =gPlayerParty + adds r0, r4 + movs r1, 0x32 + bl GetMonData + lsls r0, 24 + lsrs r1, r0, 24 + mov r0, sp + strb r1, [r0] + ldr r0, _080C4550 @ =gScriptContestRank + ldrh r0, [r0] + cmp r1, r0 + bls _080C4530 + b _080C465E +_080C4530: + adds r0, r1, 0 + cmp r0, 0x3 + bls _080C4538 + b _080C465E +_080C4538: + adds r1, r0, 0x1 + mov r0, sp + strb r1, [r0] + ldrb r0, [r6] + muls r0, r5 + adds r0, r4 + movs r1, 0x32 + b _080C4610 + .align 2, 0 +_080C4548: .4byte gUnknown_02038694 +_080C454C: .4byte gPlayerParty +_080C4550: .4byte gScriptContestRank +_080C4554: + mov r4, sp + ldr r7, _080C458C @ =gUnknown_02038694 + ldrb r0, [r7] + movs r6, 0x64 + muls r0, r6 + ldr r5, _080C4590 @ =gPlayerParty + adds r0, r5 + movs r1, 0x33 + bl GetMonData + strb r0, [r4] + mov r0, sp + ldrb r2, [r0] + ldr r0, _080C4594 @ =gScriptContestRank + ldrh r0, [r0] + cmp r2, r0 + bhi _080C465E + cmp r2, 0x3 + bhi _080C465E + mov r1, sp + adds r0, r2, 0x1 + strb r0, [r1] + ldrb r0, [r7] + muls r0, r6 + adds r0, r5 + movs r1, 0x33 + b _080C4610 + .align 2, 0 +_080C458C: .4byte gUnknown_02038694 +_080C4590: .4byte gPlayerParty +_080C4594: .4byte gScriptContestRank +_080C4598: + mov r4, sp + ldr r7, _080C45D0 @ =gUnknown_02038694 + ldrb r0, [r7] + movs r6, 0x64 + muls r0, r6 + ldr r5, _080C45D4 @ =gPlayerParty + adds r0, r5 + movs r1, 0x34 + bl GetMonData + strb r0, [r4] + mov r0, sp + ldrb r2, [r0] + ldr r0, _080C45D8 @ =gScriptContestRank + ldrh r0, [r0] + cmp r2, r0 + bhi _080C465E + cmp r2, 0x3 + bhi _080C465E + mov r1, sp + adds r0, r2, 0x1 + strb r0, [r1] + ldrb r0, [r7] + muls r0, r6 + adds r0, r5 + movs r1, 0x34 + b _080C4610 + .align 2, 0 +_080C45D0: .4byte gUnknown_02038694 +_080C45D4: .4byte gPlayerParty +_080C45D8: .4byte gScriptContestRank +_080C45DC: + mov r4, sp + ldr r7, _080C4618 @ =gUnknown_02038694 + ldrb r0, [r7] + movs r6, 0x64 + muls r0, r6 + ldr r5, _080C461C @ =gPlayerParty + adds r0, r5 + movs r1, 0x35 + bl GetMonData + strb r0, [r4] + mov r0, sp + ldrb r2, [r0] + ldr r0, _080C4620 @ =gScriptContestRank + ldrh r0, [r0] + cmp r2, r0 + bhi _080C465E + cmp r2, 0x3 + bhi _080C465E + mov r1, sp + adds r0, r2, 0x1 + strb r0, [r1] + ldrb r0, [r7] + muls r0, r6 + adds r0, r5 + movs r1, 0x35 +_080C4610: + mov r2, sp + bl SetMonData + b _080C465E + .align 2, 0 +_080C4618: .4byte gUnknown_02038694 +_080C461C: .4byte gPlayerParty +_080C4620: .4byte gScriptContestRank +_080C4624: + mov r4, sp + ldr r7, _080C4668 @ =gUnknown_02038694 + ldrb r0, [r7] + movs r6, 0x64 + muls r0, r6 + ldr r5, _080C466C @ =gPlayerParty + adds r0, r5 + movs r1, 0x36 + bl GetMonData + strb r0, [r4] + mov r0, sp + ldrb r2, [r0] + ldr r0, _080C4670 @ =gScriptContestRank + ldrh r0, [r0] + cmp r2, r0 + bhi _080C465E + cmp r2, 0x3 + bhi _080C465E + mov r1, sp + adds r0, r2, 0x1 + strb r0, [r1] + ldrb r0, [r7] + muls r0, r6 + adds r0, r5 + movs r1, 0x36 + mov r2, sp + bl SetMonData +_080C465E: + add sp, 0x4 + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_080C4668: .4byte gUnknown_02038694 +_080C466C: .4byte gPlayerParty +_080C4670: .4byte gScriptContestRank + thumb_func_end sub_80C44C0 + + thumb_func_start sub_80C4674 +sub_80C4674: @ 80C4674 + push {r4,lr} + adds r4, r0, 0 + bl StringCopy + ldrb r0, [r4] + cmp r0, 0xFC + bne _080C4690 + ldrb r0, [r4, 0x1] + cmp r0, 0x15 + bne _080C4690 + adds r0, r4, 0 + movs r1, 0x1 + bl ConvertInternationalString +_080C4690: + pop {r4} + pop {r0} + bx r0 + thumb_func_end sub_80C4674 + + thumb_func_start sub_80C4698 +sub_80C4698: @ 80C4698 + push {r4,r5,lr} + adds r5, r0, 0 + lsls r1, 24 + lsrs r4, r1, 24 + lsls r1, r4, 6 + ldr r0, _080C46E0 @ =gContestMons + 0x2 + adds r1, r0 + adds r0, r5, 0 + bl StringCopy + ldr r0, _080C46E4 @ =gIsLinkContest + ldrb r1, [r0] + movs r0, 0x1 + ands r0, r1 + cmp r0, 0 + beq _080C46DA + ldr r0, _080C46E8 @ =gLinkPlayers + lsls r1, r4, 3 + subs r1, r4 + lsls r1, 2 + adds r1, r0 + ldrh r0, [r1, 0x1A] + cmp r0, 0x1 + bne _080C46DA + adds r0, r5, 0 + bl sub_80C86A0 + adds r1, r0, 0 + lsls r1, 24 + lsrs r1, 24 + adds r0, r5, 0 + bl ConvertInternationalString +_080C46DA: + pop {r4,r5} + pop {r0} + bx r0 + .align 2, 0 +_080C46E0: .4byte gContestMons + 0x2 +_080C46E4: .4byte gIsLinkContest +_080C46E8: .4byte gLinkPlayers + thumb_func_end sub_80C4698 + + thumb_func_start sub_80C46EC +sub_80C46EC: @ 80C46EC + push {lr} + ldr r0, _080C4710 @ =gIsLinkContest + ldrb r1, [r0] + movs r0, 0x1 + ands r0, r1 + cmp r0, 0 + beq _080C4720 + ldr r0, _080C4714 @ =gStringVar1 + ldr r1, _080C4718 @ =gSpecialVar_0x8006 + ldrh r2, [r1] + lsls r1, r2, 3 + subs r1, r2 + lsls r1, 2 + ldr r2, _080C471C @ =gLinkPlayers + 0x8 + adds r1, r2 + bl sub_80C4674 + b _080C4730 + .align 2, 0 +_080C4710: .4byte gIsLinkContest +_080C4714: .4byte gStringVar1 +_080C4718: .4byte gSpecialVar_0x8006 +_080C471C: .4byte gLinkPlayers + 0x8 +_080C4720: + ldr r0, _080C4734 @ =gStringVar1 + ldr r1, _080C4738 @ =gSpecialVar_0x8006 + ldrh r1, [r1] + lsls r1, 6 + ldr r2, _080C473C @ =gUnknown_0203857D + adds r1, r2 + bl sub_80C4674 +_080C4730: + pop {r0} + bx r0 + .align 2, 0 +_080C4734: .4byte gStringVar1 +_080C4738: .4byte gSpecialVar_0x8006 +_080C473C: .4byte gUnknown_0203857D + thumb_func_end sub_80C46EC + + thumb_func_start sub_80C4740 +sub_80C4740: @ 80C4740 + push {lr} + ldr r0, _080C4750 @ =gStringVar3 + ldr r1, _080C4754 @ =gSpecialVar_0x8006 + ldrb r1, [r1] + bl sub_80C4698 + pop {r0} + bx r0 + .align 2, 0 +_080C4750: .4byte gStringVar3 +_080C4754: .4byte gSpecialVar_0x8006 + thumb_func_end sub_80C4740 + + thumb_func_start sub_80C4758 +sub_80C4758: @ 80C4758 + push {r4-r6,lr} + movs r1, 0 + movs r2, 0 + ldr r5, _080C4794 @ =gSpecialVar_0x8004 + ldr r4, _080C4798 @ =gUnknown_02038670 + ldr r0, _080C479C @ =gSpecialVar_0x8006 + ldrh r0, [r0] + lsls r0, 1 + adds r0, r4 + movs r6, 0 + ldrsh r3, [r0, r6] +_080C476E: + lsls r0, r1, 1 + adds r0, r4 + movs r6, 0 + ldrsh r0, [r0, r6] + cmp r3, r0 + bge _080C4780 + adds r0, r2, 0x1 + lsls r0, 24 + lsrs r2, r0, 24 +_080C4780: + adds r0, r1, 0x1 + lsls r0, 24 + lsrs r1, r0, 24 + cmp r1, 0x3 + bls _080C476E + strh r2, [r5] + pop {r4-r6} + pop {r0} + bx r0 + .align 2, 0 +_080C4794: .4byte gSpecialVar_0x8004 +_080C4798: .4byte gUnknown_02038670 +_080C479C: .4byte gSpecialVar_0x8006 + thumb_func_end sub_80C4758 + + thumb_func_start sub_80C47A0 +sub_80C47A0: @ 80C47A0 + ldr r2, _080C47B4 @ =gSpecialVar_0x8004 + ldr r1, _080C47B8 @ =gUnknown_02038670 + ldr r0, _080C47BC @ =gSpecialVar_0x8006 + ldrh r0, [r0] + lsls r0, 1 + adds r0, r1 + ldrh r0, [r0] + strh r0, [r2] + bx lr + .align 2, 0 +_080C47B4: .4byte gSpecialVar_0x8004 +_080C47B8: .4byte gUnknown_02038670 +_080C47BC: .4byte gSpecialVar_0x8006 + thumb_func_end sub_80C47A0 + + thumb_func_start sub_80C47C0 +sub_80C47C0: @ 80C47C0 + push {lr} + movs r1, 0 + ldr r2, _080C47E8 @ =gUnknown_02038690 + ldrb r0, [r2] + ldr r3, _080C47EC @ =gSpecialVar_0x8005 + cmp r0, 0 + beq _080C47E0 +_080C47CE: + adds r0, r1, 0x1 + lsls r0, 24 + lsrs r1, r0, 24 + cmp r1, 0x3 + bhi _080C47E0 + adds r0, r1, r2 + ldrb r0, [r0] + cmp r0, 0 + bne _080C47CE +_080C47E0: + strh r1, [r3] + pop {r0} + bx r0 + .align 2, 0 +_080C47E8: .4byte gUnknown_02038690 +_080C47EC: .4byte gSpecialVar_0x8005 + thumb_func_end sub_80C47C0 + + thumb_func_start sub_80C47F0 +sub_80C47F0: @ 80C47F0 + push {r4,lr} + movs r2, 0 + ldr r3, _080C4830 @ =gUnknown_02038690 + ldrb r0, [r3] + ldr r1, _080C4834 @ =gIsLinkContest + ldr r4, _080C4838 @ =gStringVar3 + cmp r0, 0 + beq _080C4812 +_080C4800: + adds r0, r2, 0x1 + lsls r0, 24 + lsrs r2, r0, 24 + cmp r2, 0x3 + bhi _080C4812 + adds r0, r2, r3 + ldrb r0, [r0] + cmp r0, 0 + bne _080C4800 +_080C4812: + ldrb r1, [r1] + movs r0, 0x1 + ands r0, r1 + cmp r0, 0 + beq _080C4840 + lsls r1, r2, 3 + subs r1, r2 + lsls r1, 2 + ldr r0, _080C483C @ =gLinkPlayers + 0x8 + adds r1, r0 + adds r0, r4, 0 + bl sub_80C4674 + b _080C484C + .align 2, 0 +_080C4830: .4byte gUnknown_02038690 +_080C4834: .4byte gIsLinkContest +_080C4838: .4byte gStringVar3 +_080C483C: .4byte gLinkPlayers + 0x8 +_080C4840: + lsls r1, r2, 6 + ldr r0, _080C4854 @ =gUnknown_0203857D + adds r1, r0 + adds r0, r4, 0 + bl sub_80C4674 +_080C484C: + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_080C4854: .4byte gUnknown_0203857D + thumb_func_end sub_80C47F0 + + thumb_func_start sub_80C4858 +sub_80C4858: @ 80C4858 + push {lr} + movs r1, 0 + ldr r2, _080C4884 @ =gUnknown_02038690 + ldrb r0, [r2] + ldr r3, _080C4888 @ =gStringVar1 + cmp r0, 0 + beq _080C4878 +_080C4866: + adds r0, r1, 0x1 + lsls r0, 24 + lsrs r1, r0, 24 + cmp r1, 0x3 + bhi _080C4878 + adds r0, r1, r2 + ldrb r0, [r0] + cmp r0, 0 + bne _080C4866 +_080C4878: + adds r0, r3, 0 + bl sub_80C4698 + pop {r0} + bx r0 + .align 2, 0 +_080C4884: .4byte gUnknown_02038690 +_080C4888: .4byte gStringVar1 + thumb_func_end sub_80C4858 + + thumb_func_start sub_80C488C +sub_80C488C: @ 80C488C + push {lr} + ldr r0, _080C4898 @ =sub_80AB47C + bl SetMainCallback2 + pop {r0} + bx r0 + .align 2, 0 +_080C4898: .4byte sub_80AB47C + thumb_func_end sub_80C488C + + thumb_func_start sub_80C489C +sub_80C489C: @ 80C489C + push {lr} + lsls r0, 24 + lsrs r2, r0, 24 + ldr r0, _080C48C0 @ =gPaletteFade + ldrb r1, [r0, 0x7] + movs r0, 0x80 + ands r0, r1 + cmp r0, 0 + bne _080C48BA + adds r0, r2, 0 + bl DestroyTask + ldr r0, _080C48C4 @ =sub_80C488C + bl SetMainCallback2 +_080C48BA: + pop {r0} + bx r0 + .align 2, 0 +_080C48C0: .4byte gPaletteFade +_080C48C4: .4byte sub_80C488C + thumb_func_end sub_80C489C + + thumb_func_start sub_80C48C8 +sub_80C48C8: @ 80C48C8 + push {lr} + sub sp, 0x4 + bl ScriptContext2_Enable + ldr r0, _080C48F0 @ =sub_80C489C + movs r1, 0xA + bl CreateTask + movs r0, 0x1 + negs r0, r0 + movs r1, 0 + str r1, [sp] + movs r2, 0 + movs r3, 0x10 + bl BeginNormalPaletteFade + add sp, 0x4 + pop {r0} + bx r0 + .align 2, 0 +_080C48F0: .4byte sub_80C489C + thumb_func_end sub_80C48C8 + + thumb_func_start sub_80C48F4 +sub_80C48F4: @ 80C48F4 + ldr r2, _080C4908 @ =gSpecialVar_0x8004 + ldr r1, _080C490C @ =gContestMons + ldr r0, _080C4910 @ =gSpecialVar_0x8006 + ldrh r0, [r0] + lsls r0, 6 + adds r0, r1 + ldrh r0, [r0] + strh r0, [r2] + bx lr + .align 2, 0 +_080C4908: .4byte gSpecialVar_0x8004 +_080C490C: .4byte gContestMons +_080C4910: .4byte gSpecialVar_0x8006 + thumb_func_end sub_80C48F4 + + thumb_func_start sub_80C4914 +sub_80C4914: @ 80C4914 + push {lr} + lsls r0, 24 + lsrs r2, r0, 24 + ldr r0, _080C4938 @ =gPaletteFade + ldrb r1, [r0, 0x7] + movs r0, 0x80 + ands r0, r1 + cmp r0, 0 + bne _080C4932 + adds r0, r2, 0 + bl DestroyTask + ldr r0, _080C493C @ =sub_80C2358 + bl SetMainCallback2 +_080C4932: + pop {r0} + bx r0 + .align 2, 0 +_080C4938: .4byte gPaletteFade +_080C493C: .4byte sub_80C2358 + thumb_func_end sub_80C4914 + + thumb_func_start sub_80C4940 +sub_80C4940: @ 80C4940 + push {lr} + sub sp, 0x4 + bl ScriptContext2_Enable + ldr r0, _080C4968 @ =sub_80C4914 + movs r1, 0xA + bl CreateTask + movs r0, 0x1 + negs r0, r0 + movs r1, 0 + str r1, [sp] + movs r2, 0 + movs r3, 0x10 + bl BeginNormalPaletteFade + add sp, 0x4 + pop {r0} + bx r0 + .align 2, 0 +_080C4968: .4byte sub_80C4914 + thumb_func_end sub_80C4940 + + thumb_func_start sub_80C496C +sub_80C496C: @ 80C496C + ldr r0, _080C4978 @ =gSpecialVar_0x8004 + ldr r1, _080C497C @ =gContestPlayerMonIndex + ldrb r1, [r1] + strh r1, [r0] + bx lr + .align 2, 0 +_080C4978: .4byte gSpecialVar_0x8004 +_080C497C: .4byte gContestPlayerMonIndex + thumb_func_end sub_80C496C + + thumb_func_start sub_80C4980 +sub_80C4980: @ 80C4980 + push {r4-r6,lr} + adds r5, r0, 0 + lsls r5, 24 + lsrs r5, 24 + bl ScriptContext2_Enable + ldr r6, _080C49B8 @ =sub_80C8604 + adds r0, r6, 0 + movs r1, 0 + bl CreateTask + adds r4, r0, 0 + lsls r4, 24 + lsrs r4, 24 + ldr r2, _080C49BC @ =sub_80C49C4 + adds r0, r4, 0 + adds r1, r6, 0 + bl SetTaskFuncWithFollowupFunc + ldr r1, _080C49C0 @ =gTasks + lsls r0, r4, 2 + adds r0, r4 + lsls r0, 3 + adds r0, r1 + strh r5, [r0, 0x1A] + pop {r4-r6} + pop {r0} + bx r0 + .align 2, 0 +_080C49B8: .4byte sub_80C8604 +_080C49BC: .4byte sub_80C49C4 +_080C49C0: .4byte gTasks + thumb_func_end sub_80C4980 + + thumb_func_start sub_80C49C4 +sub_80C49C4: @ 80C49C4 + push {r4,lr} + adds r4, r0, 0 + lsls r4, 24 + lsrs r4, 24 + ldr r0, _080C49E4 @ =gUnknown_02038694 + ldrb r0, [r0] + bl sub_80AE098 + ldr r1, _080C49E8 @ =sub_80C8734 + ldr r2, _080C49EC @ =sub_80C49F0 + adds r0, r4, 0 + bl SetTaskFuncWithFollowupFunc + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_080C49E4: .4byte gUnknown_02038694 +_080C49E8: .4byte sub_80C8734 +_080C49EC: .4byte sub_80C49F0 + thumb_func_end sub_80C49C4 + + thumb_func_start sub_80C49F0 +sub_80C49F0: @ 80C49F0 + push {lr} + lsls r0, 24 + lsrs r0, 24 + ldr r1, _080C4A04 @ =sub_80C88AC + ldr r2, _080C4A08 @ =sub_80C4A0C + bl SetTaskFuncWithFollowupFunc + pop {r0} + bx r0 + .align 2, 0 +_080C4A04: .4byte sub_80C88AC +_080C4A08: .4byte sub_80C4A0C + thumb_func_end sub_80C49F0 + + thumb_func_start sub_80C4A0C +sub_80C4A0C: @ 80C4A0C + push {lr} + lsls r0, 24 + lsrs r0, 24 + ldr r1, _080C4A20 @ =sub_80C8E1C + ldr r2, _080C4A24 @ =sub_80C4A28 + bl SetTaskFuncWithFollowupFunc + pop {r0} + bx r0 + .align 2, 0 +_080C4A20: .4byte sub_80C8E1C +_080C4A24: .4byte sub_80C4A28 + thumb_func_end sub_80C4A0C + + thumb_func_start sub_80C4A28 +sub_80C4A28: @ 80C4A28 + push {lr} + lsls r0, 24 + lsrs r0, 24 + ldr r1, _080C4A3C @ =sub_80C8938 + ldr r2, _080C4A40 @ =sub_80C4A44 + bl SetTaskFuncWithFollowupFunc + pop {r0} + bx r0 + .align 2, 0 +_080C4A3C: .4byte sub_80C8938 +_080C4A40: .4byte sub_80C4A44 + thumb_func_end sub_80C4A28 + + thumb_func_start sub_80C4A44 +sub_80C4A44: @ 80C4A44 + push {r4-r7,lr} + mov r7, r8 + push {r7} + sub sp, 0x8 + lsls r0, 24 + lsrs r5, r0, 24 + movs r3, 0 + ldr r0, _080C4AA0 @ =gSpecialVar_0x8004 + mov r8, r0 + add r1, sp, 0x4 + mov r12, r1 + lsls r1, r5, 2 + adds r0, r1, r5 + lsls r4, r0, 3 + ldr r6, _080C4AA4 @ =gTasks + 0x8 + adds r7, r1, 0 +_080C4A64: + mov r0, sp + adds r2, r0, r3 + adds r1, r3, 0x1 + lsls r0, r1, 1 + adds r0, r4 + adds r0, r6 + ldrh r0, [r0] + strb r0, [r2] + lsls r1, 24 + lsrs r3, r1, 24 + cmp r3, 0x3 + bls _080C4A64 + movs r3, 0 + mov r2, sp +_080C4A80: + adds r0, r3, 0x1 + lsls r0, 24 + lsrs r3, r0, 24 + cmp r3, 0x3 + bhi _080C4A96 + mov r0, sp + adds r1, r0, r3 + ldrb r0, [r2] + ldrb r1, [r1] + cmp r0, r1 + beq _080C4A80 +_080C4A96: + cmp r3, 0x4 + bne _080C4AA8 + movs r0, 0 + b _080C4AAA + .align 2, 0 +_080C4AA0: .4byte gSpecialVar_0x8004 +_080C4AA4: .4byte gTasks + 0x8 +_080C4AA8: + movs r0, 0x1 +_080C4AAA: + mov r1, r8 + strh r0, [r1] + movs r3, 0 + mov r4, r12 + adds r0, r7, r5 + lsls r2, r0, 3 + ldr r6, _080C4AF8 @ =gTasks + 0x8 +_080C4AB8: + adds r1, r4, r3 + adds r0, r3, 0x5 + lsls r0, 1 + adds r0, r2 + adds r0, r6 + ldrh r0, [r0] + strb r0, [r1] + adds r0, r3, 0x1 + lsls r0, 24 + lsrs r3, r0, 24 + cmp r3, 0x3 + bls _080C4AB8 + mov r0, r12 + bl sub_80C4B34 + ldr r1, _080C4AFC @ =gUnknown_0203869B + strb r0, [r1] + ldr r0, _080C4B00 @ =gScriptContestCategory + ldrb r0, [r0] + bl sub_80AE82C + ldr r1, _080C4B04 @ =sub_80C8EBC + ldr r2, _080C4B08 @ =sub_80C4B0C + adds r0, r5, 0 + bl SetTaskFuncWithFollowupFunc + add sp, 0x8 + pop {r3} + mov r8, r3 + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_080C4AF8: .4byte gTasks + 0x8 +_080C4AFC: .4byte gUnknown_0203869B +_080C4B00: .4byte gScriptContestCategory +_080C4B04: .4byte sub_80C8EBC +_080C4B08: .4byte sub_80C4B0C + thumb_func_end sub_80C4A44 + + thumb_func_start sub_80C4B0C +sub_80C4B0C: @ 80C4B0C + push {r4,lr} + adds r4, r0, 0 + lsls r4, 24 + lsrs r4, 24 + movs r0, 0 + bl sub_80B0F28 + ldr r1, _080C4B2C @ =sub_80C8F34 + ldr r2, _080C4B30 @ =sub_80C4B5C + adds r0, r4, 0 + bl SetTaskFuncWithFollowupFunc + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_080C4B2C: .4byte sub_80C8F34 +_080C4B30: .4byte sub_80C4B5C + thumb_func_end sub_80C4B0C + + thumb_func_start sub_80C4B34 +sub_80C4B34: @ 80C4B34 + push {r4,lr} + adds r3, r0, 0 + movs r4, 0 + movs r2, 0x1 +_080C4B3C: + adds r0, r3, r4 + adds r1, r3, r2 + ldrb r0, [r0] + ldrb r1, [r1] + cmp r0, r1 + bcs _080C4B4C + lsls r0, r2, 24 + lsrs r4, r0, 24 +_080C4B4C: + adds r2, 0x1 + cmp r2, 0x3 + ble _080C4B3C + adds r0, r4, 0 + pop {r4} + pop {r1} + bx r1 + thumb_func_end sub_80C4B34 + + thumb_func_start sub_80C4B5C +sub_80C4B5C: @ 80C4B5C + push {r4,lr} + lsls r0, 24 + lsrs r4, r0, 24 + ldr r0, _080C4B84 @ =gSpecialVar_0x8004 + ldrh r0, [r0] + cmp r0, 0x1 + bne _080C4B90 + bl sub_8007ECC + lsls r0, 24 + cmp r0, 0 + beq _080C4B9E + ldr r0, _080C4B88 @ =gTasks + lsls r1, r4, 2 + adds r1, r4 + lsls r1, 3 + adds r1, r0 + ldr r0, _080C4B8C @ =sub_80C4BA4 + str r0, [r1] + b _080C4B9E + .align 2, 0 +_080C4B84: .4byte gSpecialVar_0x8004 +_080C4B88: .4byte gTasks +_080C4B8C: .4byte sub_80C4BA4 +_080C4B90: + adds r0, r4, 0 + bl DestroyTask + bl ScriptContext2_Disable + bl EnableBothScriptContexts +_080C4B9E: + pop {r4} + pop {r0} + bx r0 + thumb_func_end sub_80C4B5C + + thumb_func_start sub_80C4BA4 +sub_80C4BA4: @ 80C4BA4 + push {r4,lr} + adds r4, r0, 0 + lsls r4, 24 + lsrs r4, 24 + bl sub_800832C + ldr r1, _080C4BC4 @ =gTasks + lsls r0, r4, 2 + adds r0, r4 + lsls r0, 3 + adds r0, r1 + ldr r1, _080C4BC8 @ =sub_80C4BCC + str r1, [r0] + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_080C4BC4: .4byte gTasks +_080C4BC8: .4byte sub_80C4BCC + thumb_func_end sub_80C4BA4 + + thumb_func_start sub_80C4BCC +sub_80C4BCC: @ 80C4BCC + push {lr} + lsls r0, 24 + lsrs r1, r0, 24 + ldr r0, _080C4BEC @ =gReceivedRemoteLinkPlayers + ldrb r0, [r0] + cmp r0, 0 + bne _080C4BE8 + adds r0, r1, 0 + bl DestroyTask + bl ScriptContext2_Disable + bl EnableBothScriptContexts +_080C4BE8: + pop {r0} + bx r0 + .align 2, 0 +_080C4BEC: .4byte gReceivedRemoteLinkPlayers + thumb_func_end sub_80C4BCC + + .align 2, 0 @ Don't pad with nop. diff --git a/asm-de/contest_link_80C857C.s b/asm-de/contest_link_80C857C.s new file mode 100644 index 000000000..f898f177f --- /dev/null +++ b/asm-de/contest_link_80C857C.s @@ -0,0 +1,1409 @@ + .include "constants/gba_constants.inc" + .include "constants/species_constants.inc" + .include "asm/macros.inc" + + .syntax unified + + .text + + thumb_func_start sub_80C857C +sub_80C857C: @ 80C857C + push {r4,r5,lr} + adds r2, r0, 0 + lsls r4, r1, 16 + lsrs r4, 16 + ldr r5, _080C85A8 @ =0x0201e000 + adds r0, r5, 0 + adds r1, r2, 0 + adds r2, r4, 0 + bl memcpy + bl bitmask_all_link_players_but_self + lsls r0, 24 + lsrs r0, 24 + adds r1, r5, 0 + adds r2, r4, 0 + bl SendBlock + pop {r4,r5} + pop {r0} + bx r0 + .align 2, 0 +_080C85A8: .4byte 0x0201e000 + thumb_func_end sub_80C857C + + thumb_func_start sub_80C85AC +sub_80C85AC: @ 80C85AC + push {r4,lr} + lsls r0, 24 + lsrs r0, 24 + movs r1, 0x80 + lsls r1, 17 + lsls r1, r0 + lsrs r4, r1, 24 + bl GetBlockReceivedStatus + adds r1, r4, 0 + ands r1, r0 + cmp r1, 0 + beq _080C85D0 + adds r0, r4, 0 + bl ResetBlockReceivedFlag + movs r0, 0x1 + b _080C85D2 +_080C85D0: + movs r0, 0 +_080C85D2: + pop {r4} + pop {r1} + bx r1 + thumb_func_end sub_80C85AC + + thumb_func_start sub_80C85D8 +sub_80C85D8: @ 80C85D8 + push {r4,lr} + movs r4, 0 +_080C85DC: + bl GetBlockReceivedStatus + lsls r0, 24 + lsrs r0, 24 + asrs r0, r4 + movs r1, 0x1 + ands r0, r1 + cmp r0, 0 + bne _080C85F2 + movs r0, 0 + b _080C85FE +_080C85F2: + adds r4, 0x1 + cmp r4, 0x3 + ble _080C85DC + bl ResetBlockReceivedFlags + movs r0, 0x1 +_080C85FE: + pop {r4} + pop {r1} + bx r1 + thumb_func_end sub_80C85D8 + + thumb_func_start sub_80C8604 +sub_80C8604: @ 80C8604 + lsls r0, 24 + lsrs r0, 24 + ldr r2, _080C861C @ =gTasks + lsls r1, r0, 2 + adds r1, r0 + lsls r1, 3 + adds r1, r2 + movs r0, 0 + strh r0, [r1, 0x8] + ldr r0, _080C8620 @ =sub_80C8644 + str r0, [r1] + bx lr + .align 2, 0 +_080C861C: .4byte gTasks +_080C8620: .4byte sub_80C8644 + thumb_func_end sub_80C8604 + + thumb_func_start sub_80C8644 +sub_80C8644: @ 80C8644 + lsls r0, 24 + lsrs r0, 24 + ldr r2, _080C8658 @ =gTasks + lsls r1, r0, 2 + adds r1, r0 + lsls r1, 3 + adds r1, r2 + ldr r0, _080C865C @ =sub_80C8660 + str r0, [r1] + bx lr + .align 2, 0 +_080C8658: .4byte gTasks +_080C865C: .4byte sub_80C8660 + thumb_func_end sub_80C8644 + + thumb_func_start sub_80C8660 +sub_80C8660: @ 80C8660 + push {r4,lr} + lsls r0, 24 + lsrs r4, r0, 24 + ldr r0, _080C8694 @ =gReceivedRemoteLinkPlayers + ldrb r0, [r0] + cmp r0, 0 + beq _080C868E + bl GetMultiplayerId + ldr r1, _080C8698 @ =gContestPlayerMonIndex + strb r0, [r1] + bl GetLinkPlayerCount + lsls r0, 24 + lsrs r0, 24 + cmp r0, 0x4 + bne _080C868E + ldr r1, _080C869C @ =gIsLinkContest + movs r0, 0x1 + strb r0, [r1] + adds r0, r4, 0 + bl SwitchTaskToFollowupFunc +_080C868E: + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_080C8694: .4byte gReceivedRemoteLinkPlayers +_080C8698: .4byte gContestPlayerMonIndex +_080C869C: .4byte gIsLinkContest + thumb_func_end sub_80C8660 + + thumb_func_start sub_80C86A0 +sub_80C86A0: @ 80C86A0 + push {r4,r5,lr} + adds r4, r0, 0 + movs r5, 0x5 + ldrb r0, [r4] + cmp r0, 0xFC + bne _080C86B6 + ldrb r0, [r4, 0x1] + cmp r0, 0x15 + bne _080C86B6 + movs r0, 0x5 + b _080C872C +_080C86B6: + adds r0, r4, 0 + bl StringLength + lsls r0, 16 + lsrs r0, 16 + cmp r0, 0x5 + bhi _080C872A + ldrb r0, [r4] + cmp r0, 0xFF + beq _080C872A +_080C86CA: + ldrb r1, [r4] + adds r0, r1, 0 + adds r0, 0x45 + lsls r0, 24 + lsrs r0, 24 + cmp r0, 0x33 + bls _080C871E + adds r0, r1, 0 + adds r0, 0x5F + lsls r0, 24 + lsrs r0, 24 + cmp r0, 0x9 + bls _080C871E + adds r0, r1, 0 + cmp r0, 0 + beq _080C871E + cmp r0, 0xAD + beq _080C871E + cmp r0, 0xB8 + beq _080C871E + cmp r0, 0xAB + beq _080C871E + cmp r0, 0xAC + beq _080C871E + cmp r0, 0xB5 + beq _080C871E + cmp r0, 0xB6 + beq _080C871E + cmp r0, 0xBA + beq _080C871E + cmp r0, 0xAE + beq _080C871E + cmp r0, 0xB0 + beq _080C871E + cmp r0, 0xB1 + beq _080C871E + cmp r0, 0xB2 + beq _080C871E + cmp r0, 0xB3 + beq _080C871E + cmp r0, 0xB1 + bne _080C8728 +_080C871E: + adds r4, 0x1 + ldrb r0, [r4] + cmp r0, 0xFF + bne _080C86CA + b _080C872A +_080C8728: + movs r5, 0x1 +_080C872A: + adds r0, r5, 0 +_080C872C: + pop {r4,r5} + pop {r1} + bx r1 + thumb_func_end sub_80C86A0 + + thumb_func_start sub_80C8734 +sub_80C8734: @ 80C8734 + push {r4-r7,lr} + mov r7, r10 + mov r6, r9 + mov r5, r8 + push {r5-r7} + sub sp, 0x4 + lsls r0, 24 + lsrs r5, r0, 24 + ldr r1, _080C8760 @ =gTasks + lsls r4, r5, 2 + adds r0, r4, r5 + lsls r0, 3 + adds r2, r0, r1 + movs r3, 0x8 + ldrsh r0, [r2, r3] + cmp r0, 0x1 + beq _080C8800 + cmp r0, 0x1 + bgt _080C8764 + cmp r0, 0 + beq _080C8770 + b _080C88E0 + .align 2, 0 +_080C8760: .4byte gTasks +_080C8764: + cmp r0, 0x2 + bne _080C876A + b _080C88D4_B +_080C876A: + cmp r0, 0x8 + beq _080C8770 + b _080C88E0 +_080C8770: + bl GetMultiplayerId + lsls r0, 24 + cmp r0, 0 + bne _080C87D4 + bl sub_8007ECC + lsls r0, 24 + cmp r0, 0 + bne _080C8786 + b _080C88EE +_080C8786: + ldr r0, _080C87A0 @ =gTasks + lsls r1, r5, 2 + adds r1, r5 + lsls r1, 3 + adds r4, r1, r0 + movs r1, 0x8 + ldrsh r0, [r4, r1] + cmp r0, 0 + bne _080C87A4 + movs r0, 0x3 + strh r0, [r4, 0x8] + b _080C88EE + .align 2, 0 +_080C87A0: .4byte gTasks +_080C87A4: + ldr r0, _080C87C8 @ =gBlockSendBuffer + ldr r1, _080C87CC @ =gContestPlayerMonIndex + ldrb r1, [r1] + lsls r1, 6 + ldr r2, _080C87D0 @ =gContestMons + adds r1, r2 + movs r2, 0x40 + bl memcpy + movs r0, 0 + bl de_sub_80C9274 + movs r0, 0x2 + bl sub_8007E9C + movs r0, 0x1 + strh r0, [r4, 0x8] + b _080C88EE + .align 2, 0 +_080C87C8: .4byte gBlockSendBuffer +_080C87CC: .4byte gContestPlayerMonIndex +_080C87D0: .4byte gContestMons +_080C87D4: + ldr r0, _080C87F0 @ =gBlockSendBuffer + ldr r1, _080C87F4 @ =gContestPlayerMonIndex + ldrb r1, [r1] + lsls r1, 6 + ldr r2, _080C87F8 @ =gContestMons + adds r1, r2 + movs r2, 0x40 + bl memcpy + movs r0, 0 + bl de_sub_80C9294 + ldr r1, _080C87FC @ =gTasks + b _080C88E0 + .align 2, 0 +_080C87F0: .4byte gBlockSendBuffer +_080C87F4: .4byte gContestPlayerMonIndex +_080C87F8: .4byte gContestMons +_080C87FC: .4byte gTasks +_080C8800: + bl sub_80C85D8 + lsls r0, 24 + cmp r0, 0 + beq _080C88EE + movs r2, 0 + mov r8, r2 + str r4, [sp] + ldr r0, _080C884C @ =gContestMons + ldr r7, _080C8850 @ =gLinkPlayers + movs r6, 0 + mov r10, r0 + movs r3, 0xFF + mov r9, r3 +_080C881C: + mov r0, r8 + lsls r1, r0, 8 + ldr r0, _080C8854 @ =gBlockRecvBuffer + adds r1, r0 + mov r0, r10 + movs r2, 0x40 + bl memcpy + ldr r1, _080C8858 @ =0x02038572 + adds r4, r6, r1 + ldrh r0, [r7, 0x1A] + cmp r0, 0x1 + bne _080C885C + adds r0, r4, 0 + bl sub_80C86A0 + adds r1, r0, 0 + lsls r1, 24 + lsrs r1, 24 + adds r0, r4, 0 + bl ConvertInternationalString + b _080C8872 + .align 2, 0 +_080C884C: .4byte gContestMons +_080C8850: .4byte gLinkPlayers +_080C8854: .4byte gBlockRecvBuffer +_080C8858: .4byte 0x02038572 +_080C885C: + ldrb r0, [r4, 0xA] + cmp r0, 0xFC + bne _080C886C + adds r0, r4, 0 + movs r1, 0x1 + bl ConvertInternationalString + b _080C8872 +_080C886C: + strb r0, [r4, 0x5] + mov r2, r9 + strb r2, [r4, 0xA] +_080C8872: + ldr r0, _080C88A0 @ =gUnknown_0203857D + adds r4, r6, r0 + ldrh r0, [r7, 0x1A] + cmp r0, 0x1 + bne _080C88A4 + mov r3, r9 + strb r3, [r4, 0x7] + ldrb r0, [r4, 0x4] + strb r0, [r4, 0x6] + ldrb r0, [r4, 0x3] + strb r0, [r4, 0x5] + ldrb r0, [r4, 0x2] + strb r0, [r4, 0x4] + ldrb r0, [r4, 0x1] + strb r0, [r4, 0x3] + ldrb r0, [r4] + strb r0, [r4, 0x2] + movs r0, 0x15 + strb r0, [r4, 0x1] + movs r0, 0xFC + strb r0, [r4] + b _080C88AC + .align 2, 0 +_080C88A0: .4byte gUnknown_0203857D +_080C88A4: + ldrb r0, [r4, 0x7] + strb r0, [r4, 0x5] + mov r0, r9 + strb r0, [r4, 0x7] +_080C88AC: + adds r7, 0x1C + adds r6, 0x40 + movs r1, 0x40 + add r10, r1 + movs r2, 0x1 + add r8, r2 + mov r3, r8 + cmp r3, 0x3 + ble _080C881C + ldr r0, _080C88D0 @ =gTasks + ldr r2, [sp] + adds r1, r2, r5 + lsls r1, 3 + adds r1, r0 + ldrh r0, [r1, 0x8] + adds r0, 0x1 + strh r0, [r1, 0x8] + b _080C88EE + .align 2, 0 +_080C88D0: .4byte gTasks +_080C88D4_B: + movs r0, 0 + strh r0, [r2, 0x8] + adds r0, r5, 0 + bl SwitchTaskToFollowupFunc + b _080C88EE +_080C88E0: + lsls r0, r5, 2 + adds r0, r5 + lsls r0, 3 + adds r0, r1 + ldrh r1, [r0, 0x8] + adds r1, 0x1 + strh r1, [r0, 0x8] +_080C88EE: + add sp, 0x4 + pop {r3-r5} + mov r8, r3 + mov r9, r4 + mov r10, r5 + pop {r4-r7} + pop {r0} + bx r0 + thumb_func_end sub_80C8734 + + thumb_func_start sub_80C88AC +sub_80C88AC: @ 80C88AC + push {r4,r5,lr} + lsls r0, 24 + lsrs r2, r0, 24 + ldr r1, _080C88D4 @ =gTasks + lsls r0, r2, 2 + adds r0, r2 + lsls r0, 3 + adds r5, r0, r1 + movs r1, 0x8 + ldrsh r0, [r5, r1] + cmp r0, 0 + beq _080C88D8 + cmp r0, 0x1 + beq _080C88FC + movs r0, 0 + strh r0, [r5, 0x8] + adds r0, r2, 0 + bl SwitchTaskToFollowupFunc + b _080C8924 + .align 2, 0 +_080C88D4: .4byte gTasks +_080C88D8: + bl GetMultiplayerId + lsls r0, 24 + cmp r0, 0 + bne _080C891E + bl sub_8007ECC + lsls r0, 24 + cmp r0, 0 + beq _080C8924 + ldr r0, _080C88F8 @ =gRngValue + movs r1, 0x4 + bl sub_80C857C + b _080C891E + .align 2, 0 +_080C88F8: .4byte gRngValue +_080C88FC: + movs r0, 0 + bl sub_80C85AC + lsls r0, 24 + cmp r0, 0 + beq _080C8924 + ldr r0, _080C892C @ =gRngValue + ldr r4, _080C8930 @ =gBlockRecvBuffer + adds r1, r4, 0 + movs r2, 0x4 + bl memcpy + ldr r0, _080C8934 @ =gUnknown_03005D28 + adds r1, r4, 0 + movs r2, 0x4 + bl memcpy +_080C891E: + ldrh r0, [r5, 0x8] + adds r0, 0x1 + strh r0, [r5, 0x8] +_080C8924: + pop {r4,r5} + pop {r0} + bx r0 + .align 2, 0 +_080C892C: .4byte gRngValue +_080C8930: .4byte gBlockRecvBuffer +_080C8934: .4byte gUnknown_03005D28 + thumb_func_end sub_80C88AC + + thumb_func_start sub_80C8938 +sub_80C8938: @ 80C8938 + push {r4-r7,lr} + mov r7, r8 + push {r7} + lsls r0, 24 + lsrs r4, r0, 24 + ldr r1, _080C8960 @ =gTasks + lsls r5, r4, 2 + adds r0, r5, r4 + lsls r6, r0, 3 + adds r2, r6, r1 + movs r3, 0x8 + ldrsh r0, [r2, r3] + mov r8, r1 + cmp r0, 0x1 + beq _080C89C4 + cmp r0, 0x1 + bgt _080C8964 + cmp r0, 0 + beq _080C896C + b _080C8A0C + .align 2, 0 +_080C8960: .4byte gTasks +_080C8964: + cmp r0, 0x2 + beq _080C8A00 + cmp r0, 0x8 + bne _080C8A0C +_080C896C: + ldr r1, _080C89A0 @ =gBlockSendBuffer + lsls r0, r4, 2 + adds r0, r4 + lsls r0, 3 + mov r2, r8 + adds r4, r0, r2 + ldrh r0, [r4, 0x1A] + strb r0, [r1] + bl GetMultiplayerId + lsls r0, 24 + cmp r0, 0 + bne _080C89B6 + bl sub_8007ECC + lsls r0, 24 + cmp r0, 0 + beq _080C8A1A + movs r3, 0x8 + ldrsh r0, [r4, r3] + cmp r0, 0 + bne _080C89A4 + movs r0, 0x3 + strh r0, [r4, 0x8] + b _080C8A1A + .align 2, 0 +_080C89A0: .4byte gBlockSendBuffer +_080C89A4: + movs r0, 0x1 + bl de_sub_80C9274 + movs r0, 0x2 + bl sub_8007E9C + movs r0, 0x1 + strh r0, [r4, 0x8] + b _080C8A1A +_080C89B6: + movs r0, 0x1 + bl de_sub_80C9294 + ldrh r0, [r4, 0x8] + adds r0, 0x1 + strh r0, [r4, 0x8] + b _080C8A1A +_080C89C4: + bl sub_80C85D8 + lsls r0, 24 + cmp r0, 0 + beq _080C8A1A + movs r3, 0 + adds r7, r5, 0 + ldr r1, _080C89FC @ =gBlockRecvBuffer + mov r0, r8 + adds r0, 0xA + adds r2, r6, r0 + movs r5, 0x80 + lsls r5, 1 +_080C89DE: + ldrh r0, [r1] + strh r0, [r2] + adds r1, r5 + adds r2, 0x2 + adds r3, 0x1 + cmp r3, 0x3 + ble _080C89DE + adds r1, r7, r4 + lsls r1, 3 + add r1, r8 + ldrh r0, [r1, 0x8] + adds r0, 0x1 + strh r0, [r1, 0x8] + b _080C8A1A + .align 2, 0 +_080C89FC: .4byte gBlockRecvBuffer +_080C8A00: + movs r0, 0 + strh r0, [r2, 0x8] + adds r0, r4, 0 + bl SwitchTaskToFollowupFunc + b _080C8A1A +_080C8A0C: + lsls r0, r4, 2 + adds r0, r4 + lsls r0, 3 + add r0, r8 + ldrh r1, [r0, 0x8] + adds r1, 0x1 + strh r1, [r0, 0x8] +_080C8A1A: + pop {r3} + mov r8, r3 + pop {r4-r7} + pop {r0} + bx r0 + thumb_func_end sub_80C8938 + + thumb_func_start sub_80C89DC +sub_80C89DC: @ 80C89DC + push {r4,lr} + lsls r0, 24 + lsrs r2, r0, 24 + ldr r1, _080C8A04 @ =gTasks + lsls r0, r2, 2 + adds r0, r2 + lsls r0, 3 + adds r4, r0, r1 + movs r1, 0x8 + ldrsh r0, [r4, r1] + cmp r0, 0 + beq _080C8A08 + cmp r0, 0x1 + beq _080C8A20 + movs r0, 0 + strh r0, [r4, 0x8] + adds r0, r2, 0 + bl SwitchTaskToFollowupFunc + b _080C8A30 + .align 2, 0 +_080C8A04: .4byte gTasks +_080C8A08: + bl sub_8007ECC + lsls r0, 24 + cmp r0, 0 + beq _080C8A30 + ldr r0, _080C8A1C @ =gContestPlayerMonIndex + movs r1, 0x1 + bl sub_80C857C + b _080C8A2A + .align 2, 0 +_080C8A1C: .4byte gContestPlayerMonIndex +_080C8A20: + bl sub_80C85D8 + lsls r0, 24 + cmp r0, 0 + beq _080C8A30 +_080C8A2A: + ldrh r0, [r4, 0x8] + adds r0, 0x1 + strh r0, [r4, 0x8] +_080C8A30: + pop {r4} + pop {r0} + bx r0 + thumb_func_end sub_80C89DC + + thumb_func_start sub_80C8A38 +sub_80C8A38: @ 80C8A38 + push {r4-r7,lr} + lsls r0, 24 + lsrs r5, r0, 24 + ldr r7, _080C8A60 @ =gTasks + lsls r6, r5, 2 + adds r0, r6, r5 + lsls r0, 3 + adds r4, r0, r7 + movs r1, 0x8 + ldrsh r0, [r4, r1] + cmp r0, 0 + beq _080C8A64 + cmp r0, 0x1 + beq _080C8A94 + movs r0, 0 + strh r0, [r4, 0x8] + adds r0, r5, 0 + bl SwitchTaskToFollowupFunc + b _080C8AC2 + .align 2, 0 +_080C8A60: .4byte gTasks +_080C8A64: + bl sub_8007ECC + lsls r0, 24 + cmp r0, 0 + beq _080C8AC2 + ldr r0, _080C8A8C @ =gContestPlayerMonIndex + ldrb r1, [r0] + lsls r0, r1, 3 + subs r0, r1 + lsls r0, 2 + ldr r1, _080C8A90 @ =0x02019266 + adds r0, r1 + movs r1, 0x2 + bl sub_80C857C + ldrh r0, [r4, 0x8] + adds r0, 0x1 + strh r0, [r4, 0x8] + b _080C8AC2 + .align 2, 0 +_080C8A8C: .4byte gContestPlayerMonIndex +_080C8A90: .4byte 0x02019266 +_080C8A94: + bl sub_80C85D8 + lsls r0, 24 + cmp r0, 0 + beq _080C8AC2 + ldr r1, _080C8AC8 @ =gBlockRecvBuffer + ldr r3, _080C8ACC @ =0x02019266 + movs r4, 0x80 + lsls r4, 1 + movs r2, 0x3 +_080C8AA8: + ldrh r0, [r1] + strh r0, [r3] + adds r1, r4 + adds r3, 0x1C + subs r2, 0x1 + cmp r2, 0 + bge _080C8AA8 + adds r1, r6, r5 + lsls r1, 3 + adds r1, r7 + ldrh r0, [r1, 0x8] + adds r0, 0x1 + strh r0, [r1, 0x8] +_080C8AC2: + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_080C8AC8: .4byte gBlockRecvBuffer +_080C8ACC: .4byte 0x02019266 + thumb_func_end sub_80C8A38 + + thumb_func_start sub_80C8AD0 +sub_80C8AD0: @ 80C8AD0 + push {r4,lr} + lsls r0, 24 + lsrs r4, r0, 24 + ldr r1, _080C8AF8 @ =gTasks + lsls r0, r4, 2 + adds r0, r4 + lsls r0, 3 + adds r2, r0, r1 + movs r3, 0x8 + ldrsh r0, [r2, r3] + adds r3, r1, 0 + cmp r0, 0xB + bls _080C8AEC + b _080C8C70 +_080C8AEC: + lsls r0, 2 + ldr r1, _080C8AFC @ =_080C8B00 + adds r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_080C8AF8: .4byte gTasks +_080C8AFC: .4byte _080C8B00 + .align 2, 0 +_080C8B00: + .4byte _080C8B30 + .4byte _080C8B4C + .4byte _080C8B74 + .4byte _080C8B98 + .4byte _080C8BB0 + .4byte _080C8B74 + .4byte _080C8BD8 + .4byte _080C8BF0 + .4byte _080C8B74 + .4byte _080C8C18 + .4byte _080C8C30 + .4byte _080C8B74 +_080C8B30: + bl sub_8007ECC + lsls r0, 24 + cmp r0, 0 + bne _080C8B3C + b _080C8C7A +_080C8B3C: + ldr r0, _080C8B48 @ =gUnknown_02038678 + movs r1, 0x8 + bl sub_80C857C + b _080C8C4C + .align 2, 0 +_080C8B48: .4byte gUnknown_02038678 +_080C8B4C: + bl sub_80C85D8 + lsls r0, 24 + cmp r0, 0 + bne _080C8B58 + b _080C8C7A +_080C8B58: + ldr r0, _080C8B68 @ =gUnknown_02038678 + ldr r1, _080C8B6C @ =gUnknown_0203869B + ldrb r1, [r1] + lsls r1, 8 + ldr r2, _080C8B70 @ =gBlockRecvBuffer + adds r1, r2 + movs r2, 0x8 + b _080C8C48 + .align 2, 0 +_080C8B68: .4byte gUnknown_02038678 +_080C8B6C: .4byte gUnknown_0203869B +_080C8B70: .4byte gBlockRecvBuffer +_080C8B74: + lsls r0, r4, 2 + adds r0, r4 + lsls r0, 3 + adds r2, r0, r3 + ldrh r0, [r2, 0xA] + adds r1, r0, 0x1 + strh r1, [r2, 0xA] + lsls r0, 16 + asrs r0, 16 + cmp r0, 0xA + bgt _080C8B8C + b _080C8C7A +_080C8B8C: + movs r0, 0 + strh r0, [r2, 0xA] + ldrh r0, [r2, 0x8] + adds r0, 0x1 + strh r0, [r2, 0x8] + b _080C8C7A +_080C8B98: + bl sub_8007ECC + lsls r0, 24 + cmp r0, 0 + beq _080C8C7A + ldr r0, _080C8BAC @ =gUnknown_02038680 + movs r1, 0x8 + bl sub_80C857C + b _080C8C4C + .align 2, 0 +_080C8BAC: .4byte gUnknown_02038680 +_080C8BB0: + bl sub_80C85D8 + lsls r0, 24 + cmp r0, 0 + beq _080C8C7A + ldr r0, _080C8BCC @ =gUnknown_02038680 + ldr r1, _080C8BD0 @ =gUnknown_0203869B + ldrb r1, [r1] + lsls r1, 8 + ldr r2, _080C8BD4 @ =gBlockRecvBuffer + adds r1, r2 + movs r2, 0x8 + b _080C8C48 + .align 2, 0 +_080C8BCC: .4byte gUnknown_02038680 +_080C8BD0: .4byte gUnknown_0203869B +_080C8BD4: .4byte gBlockRecvBuffer +_080C8BD8: + bl sub_8007ECC + lsls r0, 24 + cmp r0, 0 + beq _080C8C7A + ldr r0, _080C8BEC @ =gUnknown_02038688 + movs r1, 0x8 + bl sub_80C857C + b _080C8C4C + .align 2, 0 +_080C8BEC: .4byte gUnknown_02038688 +_080C8BF0: + bl sub_80C85D8 + lsls r0, 24 + cmp r0, 0 + beq _080C8C7A + ldr r0, _080C8C0C @ =gUnknown_02038688 + ldr r1, _080C8C10 @ =gUnknown_0203869B + ldrb r1, [r1] + lsls r1, 8 + ldr r2, _080C8C14 @ =gBlockRecvBuffer + adds r1, r2 + movs r2, 0x8 + b _080C8C48 + .align 2, 0 +_080C8C0C: .4byte gUnknown_02038688 +_080C8C10: .4byte gUnknown_0203869B +_080C8C14: .4byte gBlockRecvBuffer +_080C8C18: + bl sub_8007ECC + lsls r0, 24 + cmp r0, 0 + beq _080C8C7A + ldr r0, _080C8C2C @ =gUnknown_02038690 + movs r1, 0x4 + bl sub_80C857C + b _080C8C4C + .align 2, 0 +_080C8C2C: .4byte gUnknown_02038690 +_080C8C30: + bl sub_80C85D8 + lsls r0, 24 + cmp r0, 0 + beq _080C8C7A + ldr r0, _080C8C60 @ =gUnknown_02038690 + ldr r1, _080C8C64 @ =gUnknown_0203869B + ldrb r1, [r1] + lsls r1, 8 + ldr r2, _080C8C68 @ =gBlockRecvBuffer + adds r1, r2 + movs r2, 0x4 +_080C8C48: + bl memcpy +_080C8C4C: + ldr r1, _080C8C6C @ =gTasks + lsls r0, r4, 2 + adds r0, r4 + lsls r0, 3 + adds r0, r1 + ldrh r1, [r0, 0x8] + adds r1, 0x1 + strh r1, [r0, 0x8] + b _080C8C7A + .align 2, 0 +_080C8C60: .4byte gUnknown_02038690 +_080C8C64: .4byte gUnknown_0203869B +_080C8C68: .4byte gBlockRecvBuffer +_080C8C6C: .4byte gTasks +_080C8C70: + movs r0, 0 + strh r0, [r2, 0x8] + adds r0, r4, 0 + bl SwitchTaskToFollowupFunc +_080C8C7A: + pop {r4} + pop {r0} + bx r0 + thumb_func_end sub_80C8AD0 + + thumb_func_start sub_80C8C80 +sub_80C8C80: @ 80C8C80 + push {r4,lr} + lsls r0, 24 + lsrs r4, r0, 24 + ldr r1, _080C8CA8 @ =gTasks + lsls r0, r4, 2 + adds r0, r4 + lsls r0, 3 + adds r2, r0, r1 + movs r3, 0x8 + ldrsh r0, [r2, r3] + adds r3, r1, 0 + cmp r0, 0xB + bls _080C8C9C + b _080C8E0C +_080C8C9C: + lsls r0, 2 + ldr r1, _080C8CAC @ =_080C8CB0 + adds r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_080C8CA8: .4byte gTasks +_080C8CAC: .4byte _080C8CB0 + .align 2, 0 +_080C8CB0: + .4byte _080C8CE0 + .4byte _080C8CFC + .4byte _080C8D24 + .4byte _080C8D46 + .4byte _080C8D60 + .4byte _080C8D24 + .4byte _080C8D88 + .4byte _080C8DA0 + .4byte _080C8D24 + .4byte _080C8DB4 + .4byte _080C8DCC + .4byte _080C8D24 +_080C8CE0: + bl sub_8007ECC + lsls r0, 24 + cmp r0, 0 + bne _080C8CEC + b _080C8E16 +_080C8CEC: + ldr r0, _080C8CF8 @ =0x02019260 + movs r1, 0x70 + bl sub_80C857C + b _080C8DE8 + .align 2, 0 +_080C8CF8: .4byte 0x02019260 +_080C8CFC: + bl sub_80C85D8 + lsls r0, 24 + cmp r0, 0 + bne _080C8D08 + b _080C8E16 +_080C8D08: + ldr r0, _080C8D18 @ =0x02019260 + ldr r1, _080C8D1C @ =gUnknown_0203869B + ldrb r1, [r1] + lsls r1, 8 + ldr r2, _080C8D20 @ =gBlockRecvBuffer + adds r1, r2 + movs r2, 0x70 + b _080C8DE4 + .align 2, 0 +_080C8D18: .4byte 0x02019260 +_080C8D1C: .4byte gUnknown_0203869B +_080C8D20: .4byte gBlockRecvBuffer +_080C8D24: + lsls r0, r4, 2 + adds r0, r4 + lsls r0, 3 + adds r2, r0, r3 + ldrh r0, [r2, 0xA] + adds r1, r0, 0x1 + strh r1, [r2, 0xA] + lsls r0, 16 + asrs r0, 16 + cmp r0, 0xA + ble _080C8E16 + movs r0, 0 + strh r0, [r2, 0xA] + ldrh r0, [r2, 0x8] + adds r0, 0x1 + strh r0, [r2, 0x8] + b _080C8E16 +_080C8D46: + bl sub_8007ECC + lsls r0, 24 + cmp r0, 0 + beq _080C8E16 + ldr r0, _080C8D5C @ =0x020192d0 + movs r1, 0x14 + bl sub_80C857C + b _080C8DE8 + .align 2, 0 +_080C8D5C: .4byte 0x020192d0 +_080C8D60: + bl sub_80C85D8 + lsls r0, 24 + cmp r0, 0 + beq _080C8E16 + ldr r0, _080C8D7C @ =0x020192d0 + ldr r1, _080C8D80 @ =gUnknown_0203869B + ldrb r1, [r1] + lsls r1, 8 + ldr r2, _080C8D84 @ =gBlockRecvBuffer + adds r1, r2 + movs r2, 0x14 + b _080C8DE4 + .align 2, 0 +_080C8D7C: .4byte 0x020192d0 +_080C8D80: .4byte gUnknown_0203869B +_080C8D84: .4byte gBlockRecvBuffer +_080C8D88: + bl sub_8007ECC + lsls r0, 24 + cmp r0, 0 + beq _080C8E16 + ldr r0, _080C8D9C @ =0x02019328 + movs r1, 0x4 + bl sub_80C857C + b _080C8DE8 + .align 2, 0 +_080C8D9C: .4byte 0x02019328 +_080C8DA0: + bl sub_80C85D8 + lsls r0, 24 + cmp r0, 0 + beq _080C8E16 + ldr r0, _080C8DB0 @ =0x02019328 + b _080C8DD8 + .align 2, 0 +_080C8DB0: .4byte 0x02019328 +_080C8DB4: + bl sub_8007ECC + lsls r0, 24 + cmp r0, 0 + beq _080C8E16 + ldr r0, _080C8DC8 @ =gUnknown_02038696 + movs r1, 0x4 + bl sub_80C857C + b _080C8DE8 + .align 2, 0 +_080C8DC8: .4byte gUnknown_02038696 +_080C8DCC: + bl sub_80C85D8 + lsls r0, 24 + cmp r0, 0 + beq _080C8E16 + ldr r0, _080C8DFC @ =gUnknown_02038696 +_080C8DD8: + ldr r1, _080C8E00 @ =gUnknown_0203869B + ldrb r1, [r1] + lsls r1, 8 + ldr r2, _080C8E04 @ =gBlockRecvBuffer + adds r1, r2 + movs r2, 0x4 +_080C8DE4: + bl memcpy +_080C8DE8: + ldr r1, _080C8E08 @ =gTasks + lsls r0, r4, 2 + adds r0, r4 + lsls r0, 3 + adds r0, r1 + ldrh r1, [r0, 0x8] + adds r1, 0x1 + strh r1, [r0, 0x8] + b _080C8E16 + .align 2, 0 +_080C8DFC: .4byte gUnknown_02038696 +_080C8E00: .4byte gUnknown_0203869B +_080C8E04: .4byte gBlockRecvBuffer +_080C8E08: .4byte gTasks +_080C8E0C: + movs r0, 0 + strh r0, [r2, 0x8] + adds r0, r4, 0 + bl SwitchTaskToFollowupFunc +_080C8E16: + pop {r4} + pop {r0} + bx r0 + thumb_func_end sub_80C8C80 + + thumb_func_start sub_80C8E1C +sub_80C8E1C: @ 80C8E1C + push {r4-r7,lr} + lsls r0, 24 + lsrs r5, r0, 24 + ldr r1, _080C8E40 @ =gTasks + lsls r4, r5, 2 + adds r0, r4, r5 + lsls r6, r0, 3 + adds r2, r6, r1 + movs r3, 0x8 + ldrsh r0, [r2, r3] + adds r7, r1, 0 + cmp r0, 0x1 + beq _080C8EB0 + cmp r0, 0x1 + bgt _080C8E44 + cmp r0, 0 + beq _080C8E4C + b _080C8EF8 + .align 2, 0 +_080C8E40: .4byte gTasks +_080C8E44: + cmp r0, 0x2 + beq _080C8EEC + cmp r0, 0x8 + bne _080C8EF8 +_080C8E4C: + ldr r1, _080C8E80 @ =gBlockSendBuffer + movs r0, 0x64 + strb r0, [r1] + bl GetMultiplayerId + lsls r0, 24 + cmp r0, 0 + bne _080C8E9A + bl sub_8007ECC + lsls r0, 24 + cmp r0, 0 + beq _080C8F06 + ldr r0, _080C8E84 @ =gTasks + lsls r1, r5, 2 + adds r1, r5 + lsls r1, 3 + adds r4, r1, r0 + movs r1, 0x8 + ldrsh r0, [r4, r1] + cmp r0, 0 + bne _080C8E88 + movs r0, 0x3 + strh r0, [r4, 0x8] + b _080C8F06 + .align 2, 0 +_080C8E80: .4byte gBlockSendBuffer +_080C8E84: .4byte gTasks +_080C8E88: + movs r0, 0 + bl de_sub_80C9274 + movs r0, 0x2 + bl sub_8007E9C + movs r0, 0x1 + strh r0, [r4, 0x8] + b _080C8F06 +_080C8E9A: + movs r0, 0 + bl de_sub_80C9294 + ldr r0, _080C8EAC @ =gTasks + lsls r1, r5, 2 + adds r1, r5 + lsls r1, 3 + adds r1, r0 + b _080C8EDE + .align 2, 0 +_080C8EAC: .4byte gTasks +_080C8EB0: + bl sub_80C85D8 + lsls r0, 24 + cmp r0, 0 + beq _080C8F06 + adds r1, r4, 0 + ldr r4, _080C8EE8 @ =gBlockRecvBuffer + adds r0, r7, 0 + adds r0, 0x12 + adds r2, r6, r0 + movs r6, 0x80 + lsls r6, 1 + movs r3, 0x3 +_080C8ECA: + ldrh r0, [r4] + strh r0, [r2] + adds r4, r6 + adds r2, 0x2 + subs r3, 0x1 + cmp r3, 0 + bge _080C8ECA + adds r1, r5 + lsls r1, 3 + adds r1, r7 +_080C8EDE: + ldrh r0, [r1, 0x8] + adds r0, 0x1 + strh r0, [r1, 0x8] + b _080C8F06 + .align 2, 0 +_080C8EE8: .4byte gBlockRecvBuffer +_080C8EEC: + movs r0, 0 + strh r0, [r2, 0x8] + adds r0, r5, 0 + bl SwitchTaskToFollowupFunc + b _080C8F06 +_080C8EF8: + lsls r0, r5, 2 + adds r0, r5 + lsls r0, 3 + adds r0, r7 + ldrh r1, [r0, 0x8] + adds r1, 0x1 + strh r1, [r0, 0x8] +_080C8F06: + pop {r4-r7} + pop {r0} + bx r0 + thumb_func_end sub_80C8E1C + + thumb_func_start sub_80C8EBC +sub_80C8EBC: @ 80C8EBC + push {r4,lr} + lsls r0, 24 + lsrs r2, r0, 24 + ldr r1, _080C8EE4 @ =gTasks + lsls r0, r2, 2 + adds r0, r2 + lsls r0, 3 + adds r4, r0, r1 + movs r1, 0x8 + ldrsh r0, [r4, r1] + cmp r0, 0 + beq _080C8EE8_B + cmp r0, 0x1 + beq _080C8F00 + movs r0, 0 + strh r0, [r4, 0x8] + adds r0, r2, 0 + bl SwitchTaskToFollowupFunc + b _080C8F22 + .align 2, 0 +_080C8EE4: .4byte gTasks +_080C8EE8_B: + bl sub_8007ECC + lsls r0, 24 + cmp r0, 0 + beq _080C8F22 + ldr r0, _080C8EFC @ =gUnknown_02038670 + movs r1, 0x8 + bl sub_80C857C + b _080C8F1C + .align 2, 0 +_080C8EFC: .4byte gUnknown_02038670 +_080C8F00: + bl sub_80C85D8 + lsls r0, 24 + cmp r0, 0 + beq _080C8F22 + ldr r0, _080C8F28 @ =gUnknown_02038670 + ldr r1, _080C8F2C @ =gUnknown_0203869B + ldrb r1, [r1] + lsls r1, 8 + ldr r2, _080C8F30 @ =gBlockRecvBuffer + adds r1, r2 + movs r2, 0x8 + bl memcpy +_080C8F1C: + ldrh r0, [r4, 0x8] + adds r0, 0x1 + strh r0, [r4, 0x8] +_080C8F22: + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_080C8F28: .4byte gUnknown_02038670 +_080C8F2C: .4byte gUnknown_0203869B +_080C8F30: .4byte gBlockRecvBuffer + thumb_func_end sub_80C8EBC + + thumb_func_start sub_80C8F34 +sub_80C8F34: @ 80C8F34 + push {r4,lr} + lsls r0, 24 + lsrs r2, r0, 24 + ldr r1, _080C8F5C @ =gTasks + lsls r0, r2, 2 + adds r0, r2 + lsls r0, 3 + adds r4, r0, r1 + movs r1, 0x8 + ldrsh r0, [r4, r1] + cmp r0, 0 + beq _080C8F60 + cmp r0, 0x1 + beq _080C8F78 + movs r0, 0 + strh r0, [r4, 0x8] + adds r0, r2, 0 + bl SwitchTaskToFollowupFunc + b _080C8F9A + .align 2, 0 +_080C8F5C: .4byte gTasks +_080C8F60: + bl sub_8007ECC + lsls r0, 24 + cmp r0, 0 + beq _080C8F9A + ldr r0, _080C8F74 @ =gUnknown_02038696 + movs r1, 0x4 + bl sub_80C857C + b _080C8F94 + .align 2, 0 +_080C8F74: .4byte gUnknown_02038696 +_080C8F78: + bl sub_80C85D8 + lsls r0, 24 + cmp r0, 0 + beq _080C8F9A + ldr r0, _080C8FA0 @ =gUnknown_02038696 + ldr r1, _080C8FA4 @ =gUnknown_0203869B + ldrb r1, [r1] + lsls r1, 8 + ldr r2, _080C8FA8 @ =gBlockRecvBuffer + adds r1, r2 + movs r2, 0x4 + bl memcpy +_080C8F94: + ldrh r0, [r4, 0x8] + adds r0, 0x1 + strh r0, [r4, 0x8] +_080C8F9A: + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_080C8FA0: .4byte gUnknown_02038696 +_080C8FA4: .4byte gUnknown_0203869B +_080C8FA8: .4byte gBlockRecvBuffer + thumb_func_end sub_80C8F34 + + .align 2, 0 @ Don't pad with nop. diff --git a/asm-de/easy_chat.s b/asm-de/easy_chat.s new file mode 100644 index 000000000..54cf8808c --- /dev/null +++ b/asm-de/easy_chat.s @@ -0,0 +1,10905 @@ + .include "constants/gba_constants.inc" + .include "constants/species_constants.inc" + .include "asm/macros.inc" + + .syntax unified + + .text + + thumb_func_start sub_80E60D8 +sub_80E60D8: @ 80E60D8 + push {r4-r7,lr} + movs r4, 0x3 + ldr r0, _080E60F4 @ =gSpecialVar_0x8004 + ldrh r1, [r0] + adds r7, r0, 0 + cmp r1, 0xD + bls _080E60E8 + b _080E6284 +_080E60E8: + lsls r0, r1, 2 + ldr r1, _080E60F8 @ =_080E60FC + adds r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_080E60F4: .4byte gSpecialVar_0x8004 +_080E60F8: .4byte _080E60FC + .align 2, 0 +_080E60FC: + .4byte _080E6134 + .4byte _080E613C + .4byte _080E6144 + .4byte _080E614C + .4byte _080E6154 + .4byte _080E619C + .4byte _080E616C + .4byte _080E61BC + .4byte _080E61E0 + .4byte _080E61FC + .4byte _080E6200 + .4byte _080E6214 + .4byte _080E623C + .4byte _080E6260 +_080E6134: + ldr r1, _080E6138 @ =gSaveBlock1 + 0x2B1C + b _080E624C + .align 2, 0 +_080E6138: .4byte gSaveBlock1 + 0x2B1C +_080E613C: + ldr r1, _080E6140 @ =gSaveBlock1 + 0x2B28 + b _080E6276 + .align 2, 0 +_080E6140: .4byte gSaveBlock1 + 0x2B28 +_080E6144: + ldr r1, _080E6148 @ =gSaveBlock1 + 0x2B34 + b _080E624C + .align 2, 0 +_080E6148: .4byte gSaveBlock1 + 0x2B34 +_080E614C: + ldr r1, _080E6150 @ =gSaveBlock1 + 0x2B40 + b _080E6276 + .align 2, 0 +_080E6150: .4byte gSaveBlock1 + 0x2B40 +_080E6154: + ldr r0, _080E6164 @ =gSpecialVar_0x8005 + ldrh r1, [r0] + lsls r0, r1, 3 + adds r0, r1 + lsls r0, 2 + ldr r1, _080E6168 @ =gSaveBlock1 + 0x2B4C + adds r1, r0, r1 + b _080E624C + .align 2, 0 +_080E6164: .4byte gSpecialVar_0x8005 +_080E6168: .4byte gSaveBlock1 + 0x2B4C +_080E616C: + ldr r0, _080E6194 @ =gSaveBlock1 + 0x2D94 + movs r2, 0 + ldr r1, _080E6198 @ =sub_80546B8 + mov r12, r1 + adds r3, r0, 0 + adds r3, 0xE + adds r5, r0, 0x2 + adds r6, r3, 0 +_080E617C: + lsls r0, r2, 1 + adds r1, r3, r0 + adds r0, r5, r0 + ldrh r0, [r0] + strh r0, [r1] + adds r0, r2, 0x1 + lsls r0, 16 + lsrs r2, r0, 16 + cmp r2, 0x5 + bls _080E617C + adds r1, r6, 0 + b _080E627A + .align 2, 0 +_080E6194: .4byte gSaveBlock1 + 0x2D94 +_080E6198: .4byte sub_80546B8 +_080E619C: + ldr r0, _080E61B0 @ =gSpecialVar_0x8005 + ldrh r1, [r0] + lsls r0, r1, 3 + adds r0, r1 + lsls r0, 2 + ldr r1, _080E61B4 @ =gSaveBlock1 + 0x273C + adds r1, r0, r1 + ldr r0, _080E61B8 @ =gSpecialVar_0x8006 + ldrb r4, [r0] + b _080E6276 + .align 2, 0 +_080E61B0: .4byte gSpecialVar_0x8005 +_080E61B4: .4byte gSaveBlock1 + 0x273C +_080E61B8: .4byte gSpecialVar_0x8006 +_080E61BC: + ldr r0, _080E61D4 @ =gSpecialVar_0x8005 + ldrh r0, [r0] + lsls r1, r0, 3 + adds r1, r0 + lsls r1, 2 + ldr r0, _080E61D8 @ =gSaveBlock1 + 0x2754 + adds r1, r0 + ldr r0, _080E61DC @ =gSpecialVar_0x8006 + ldrh r0, [r0] + lsls r0, 1 + adds r1, r0 + b _080E624A + .align 2, 0 +_080E61D4: .4byte gSpecialVar_0x8005 +_080E61D8: .4byte gSaveBlock1 + 0x2754 +_080E61DC: .4byte gSpecialVar_0x8006 +_080E61E0: + ldr r0, _080E61F4 @ =gSpecialVar_0x8005 + ldrh r1, [r0] + lsls r0, r1, 3 + adds r0, r1 + lsls r0, 2 + ldr r1, _080E61F8 @ =gSaveBlock1 + 0x273A + adds r1, r0, r1 + movs r4, 0 + b _080E6276 + .align 2, 0 +_080E61F4: .4byte gSpecialVar_0x8005 +_080E61F8: .4byte gSaveBlock1 + 0x273A +_080E61FC: + movs r1, 0 + b _080E624C +_080E6200: + ldr r1, _080E620C @ =gSaveBlock1 + 0x2B16 + ldr r2, _080E6210 @ =0x0000ffff + adds r0, r2, 0 + strh r0, [r1] + b _080E624A + .align 2, 0 +_080E620C: .4byte gSaveBlock1 + 0x2B16 +_080E6210: .4byte 0x0000ffff +_080E6214: + ldr r0, _080E6230 @ =gSpecialVar_0x8005 + ldrh r0, [r0] + lsls r1, r0, 3 + adds r1, r0 + lsls r1, 2 + ldr r0, _080E6234 @ =gSaveBlock1 + 0x273C + adds r1, r0 + ldr r0, _080E6238 @ =gSpecialVar_0x8006 + ldrh r0, [r0] + lsls r0, 1 + adds r1, r0 + movs r4, 0 + b _080E6276 + .align 2, 0 +_080E6230: .4byte gSpecialVar_0x8005 +_080E6234: .4byte gSaveBlock1 + 0x273C +_080E6238: .4byte gSpecialVar_0x8006 +_080E623C: + ldr r0, _080E6254 @ =gSpecialVar_0x8005 + ldrh r1, [r0] + lsls r0, r1, 3 + adds r0, r1 + lsls r0, 2 + ldr r1, _080E6258 @ =gSaveBlock1 + 0x2750 + adds r1, r0, r1 +_080E624A: + movs r4, 0x1 +_080E624C: + ldr r0, _080E625C @ =sub_80546B8 + mov r12, r0 + b _080E627A + .align 2, 0 +_080E6254: .4byte gSpecialVar_0x8005 +_080E6258: .4byte gSaveBlock1 + 0x2750 +_080E625C: .4byte sub_80546B8 +_080E6260: + ldr r1, _080E628C @ =0x02001000 + ldr r0, _080E6290 @ =0x00009fa8 + adds r2, r1, r0 + ldr r0, _080E6294 @ =0x0000ffff + strh r0, [r2] + ldr r0, _080E6298 @ =0x00009faa + adds r1, r0 + movs r0, 0x1 + negs r0, r0 + strh r0, [r1] + adds r1, r2, 0 +_080E6276: + ldr r2, _080E629C @ =sub_80546B8 + mov r12, r2 +_080E627A: + ldrb r0, [r7] + mov r2, r12 + adds r3, r4, 0 + bl sub_80E62A0 +_080E6284: + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_080E628C: .4byte 0x02001000 +_080E6290: .4byte 0x00009fa8 +_080E6294: .4byte 0x0000ffff +_080E6298: .4byte 0x00009faa +_080E629C: .4byte sub_80546B8 + thumb_func_end sub_80E60D8 + + thumb_func_start sub_80E62A0 +sub_80E62A0: @ 80E62A0 + push {r4,lr} + lsls r0, 24 + lsrs r0, 24 + ldr r4, _080E62DC @ =0x02001000 + str r2, [r4] + str r1, [r4, 0x4] + strb r0, [r4, 0x8] + strb r3, [r4, 0xB] + cmp r0, 0x9 + bne _080E62D0 + ldr r0, _080E62E0 @ =0x00009fa8 + adds r2, r4, r0 + str r2, [r4, 0x4] + ldr r0, _080E62E4 @ =gSaveBlock1 + ldr r3, _080E62E8 @ =0x00002dd8 + adds r1, r0, r3 + ldrh r1, [r1] + strh r1, [r2] + ldr r1, _080E62EC @ =0x00002dda + adds r0, r1 + ldrh r1, [r0] + ldr r2, _080E62F0 @ =0x00009faa + adds r0, r4, r2 + strh r1, [r0] +_080E62D0: + ldr r0, _080E62F4 @ =sub_80E62F8 + bl SetMainCallback2 + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_080E62DC: .4byte 0x02001000 +_080E62E0: .4byte 0x00009fa8 +_080E62E4: .4byte gSaveBlock1 +_080E62E8: .4byte 0x00002dd8 +_080E62EC: .4byte 0x00002dda +_080E62F0: .4byte 0x00009faa +_080E62F4: .4byte sub_80E62F8 + thumb_func_end sub_80E62A0 + + thumb_func_start sub_80E62F8 +sub_80E62F8: @ 80E62F8 + push {lr} + sub sp, 0x4 + ldr r0, _080E6314 @ =gMain + ldr r1, _080E6318 @ =0x0000043c + adds r0, r1 + ldrb r0, [r0] + cmp r0, 0x8 + bhi _080E6344 + lsls r0, 2 + ldr r1, _080E631C @ =_080E6320 + adds r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_080E6314: .4byte gMain +_080E6318: .4byte 0x0000043c +_080E631C: .4byte _080E6320 + .align 2, 0 +_080E6320: + .4byte _080E6344 + .4byte _080E6380 + .4byte _080E638C + .4byte _080E63A8 + .4byte _080E63AE + .4byte _080E63B4 + .4byte _080E63BE + .4byte _080E63D8 + .4byte _080E63EA +_080E6344: + movs r1, 0x80 + lsls r1, 19 + movs r0, 0 + strh r0, [r1] + movs r0, 0 + bl SetVBlankCallback + bl ResetPaletteFade + bl ResetSpriteData + bl dp12_8087EA4 + bl remove_some_task + bl sub_80EAD08 + ldr r2, _080E637C @ =gUnknown_083DB698 + ldr r0, [r2] + ldr r1, [r2, 0x4] + ldr r2, [r2, 0x8] + bl sub_80895F8 + bl FreeSpriteTileRanges + bl FreeAllSpritePalettes + b _080E6402 + .align 2, 0 +_080E637C: .4byte gUnknown_083DB698 +_080E6380: + ldr r0, _080E6388 @ =gWindowConfig_81E6DA8 + bl SetUpWindowConfig + b _080E6402 + .align 2, 0 +_080E6388: .4byte gWindowConfig_81E6DA8 +_080E638C: + ldr r0, _080E63A0 @ =gWindowConfig_81E6D54 + bl InitMenuWindow + ldr r0, _080E63A4 @ =gWindowConfig_81E6DA8 + bl InitMenuWindow + bl MenuZeroFillScreen + b _080E6402 + .align 2, 0 +_080E63A0: .4byte gWindowConfig_81E6D54 +_080E63A4: .4byte gWindowConfig_81E6DA8 +_080E63A8: + bl sub_80E6424 + b _080E6402 +_080E63AE: + bl sub_80E8DD8 + b _080E6402 +_080E63B4: + bl sub_80E8218 + bl sub_80E8CEC + b _080E6402 +_080E63BE: + bl sub_80E69F8 + ldr r0, _080E63D0 @ =sub_80E6AA8 + bl sub_80E682C + ldr r0, _080E63D4 @ =sub_80E6A6C + bl SetVBlankCallback + b _080E6402 + .align 2, 0 +_080E63D0: .4byte sub_80E6AA8 +_080E63D4: .4byte sub_80E6A6C +_080E63D8: + movs r0, 0x1 + negs r0, r0 + movs r1, 0 + str r1, [sp] + movs r2, 0x10 + movs r3, 0 + bl BeginNormalPaletteFade + b _080E6402 +_080E63EA: + movs r1, 0x80 + lsls r1, 19 + movs r2, 0xFA + lsls r2, 5 + adds r0, r2, 0 + strh r0, [r1] + ldr r0, _080E6414 @ =sub_80E6A88 + bl SetMainCallback2 + ldr r0, _080E6418 @ =0x00000805 + bl FlagSet +_080E6402: + ldr r1, _080E641C @ =gMain + ldr r0, _080E6420 @ =0x0000043c + adds r1, r0 + ldrb r0, [r1] + adds r0, 0x1 + strb r0, [r1] + add sp, 0x4 + pop {r0} + bx r0 + .align 2, 0 +_080E6414: .4byte sub_80E6A88 +_080E6418: .4byte 0x00000805 +_080E641C: .4byte gMain +_080E6420: .4byte 0x0000043c + thumb_func_end sub_80E62F8 + + thumb_func_start sub_80E6424 +sub_80E6424: @ 80E6424 + push {lr} + ldr r2, _080E6444 @ =0x02001000 + ldr r0, _080E6448 @ =gUnknown_083DB6A4 + ldrb r1, [r2, 0x8] + adds r1, r0 + ldrb r0, [r1] + strb r0, [r2, 0x9] + ldrb r0, [r2, 0x9] + adds r3, r2, 0 + cmp r0, 0x5 + bhi _080E6512 + lsls r0, 2 + ldr r1, _080E644C @ =_080E6450 + adds r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_080E6444: .4byte 0x02001000 +_080E6448: .4byte gUnknown_083DB6A4 +_080E644C: .4byte _080E6450 + .align 2, 0 +_080E6450: + .4byte _080E64A0 + .4byte _080E64B8 + .4byte _080E64DA + .4byte _080E64F6 + .4byte _080E6468 + .4byte _080E6480 +_080E6468: + movs r2, 0x4 + strb r2, [r3, 0xA] + adds r0, r3, 0 + adds r0, 0x83 + movs r1, 0x2 + strb r1, [r0] + adds r0, 0x1 + strb r1, [r0] + adds r1, r3, 0 + adds r1, 0x88 + movs r0, 0x5 + b _080E64D0 +_080E6480: + movs r1, 0x4 + strb r1, [r3, 0xA] + adds r2, r3, 0 + adds r2, 0x83 + movs r0, 0x1 + strb r0, [r2] + adds r0, r3, 0 + adds r0, 0x84 + strb r1, [r0] + adds r1, r3, 0 + adds r1, 0x88 + movs r0, 0x10 + strh r0, [r1] + adds r1, 0x2 + movs r0, 0x2 + b _080E6510 +_080E64A0: + movs r0, 0x6 + strb r0, [r3, 0xA] + adds r1, r3, 0 + adds r1, 0x83 + movs r0, 0x2 + strb r0, [r1] + adds r0, r3, 0 + adds r0, 0x84 + movs r2, 0x3 + strb r2, [r0] + adds r1, 0x5 + b _080E64CE +_080E64B8: + movs r2, 0 + movs r0, 0x9 + strb r0, [r3, 0xA] + adds r1, r3, 0 + adds r1, 0x83 + movs r0, 0x2 + strb r0, [r1] + adds r1, 0x1 + movs r0, 0x5 + strb r0, [r1] + adds r1, 0x4 +_080E64CE: + movs r0, 0x4 +_080E64D0: + strh r0, [r1] + adds r0, r3, 0 + adds r0, 0x8A + strh r2, [r0] + b _080E6512 +_080E64DA: + movs r1, 0x1 + strb r1, [r3, 0xA] + adds r0, r3, 0 + adds r0, 0x83 + strb r1, [r0] + adds r0, 0x1 + strb r1, [r0] + adds r1, r3, 0 + adds r1, 0x88 + movs r0, 0x10 + strh r0, [r1] + adds r1, 0x2 + movs r0, 0x4 + b _080E6510 +_080E64F6: + movs r0, 0x2 + strb r0, [r3, 0xA] + adds r1, r3, 0 + adds r1, 0x83 + strb r0, [r1] + adds r1, 0x1 + movs r0, 0x1 + strb r0, [r1] + adds r1, 0x4 + movs r0, 0x5 + strh r0, [r1] + adds r1, 0x2 + movs r0, 0x3 +_080E6510: + strh r0, [r1] +_080E6512: + adds r1, r3, 0 + adds r1, 0x86 + movs r0, 0 + strb r0, [r1] + subs r1, 0x1 + strb r0, [r1] + adds r1, 0x2 + strb r0, [r1] + subs r1, 0x61 + strb r0, [r1] + movs r2, 0xDD + lsls r2, 1 + adds r1, r3, r2 + strh r0, [r1] + movs r0, 0xDF + lsls r0, 1 + adds r1, r3, r0 + movs r0, 0x2 + strb r0, [r1] + bl sub_80E6554 + bl sub_80EAECC + bl sub_80EB040 + bl sub_80E7E50 + bl sub_80E6630 + bl sub_80E6690 + pop {r0} + bx r0 + thumb_func_end sub_80E6424 + + thumb_func_start sub_80E6554 +sub_80E6554: @ 80E6554 + push {r4-r7,lr} + sub sp, 0x4 + movs r4, 0 + movs r7, 0 + ldr r0, _080E6564 @ =0x02001000 + mov r12, r0 + b _080E656E + .align 2, 0 +_080E6564: .4byte 0x02001000 +_080E6568: + adds r0, r7, 0x1 + lsls r0, 16 + lsrs r7, r0, 16 +_080E656E: + movs r5, 0 + lsls r3, r7, 1 + mov r6, r12 + adds r6, 0x2A + adds r2, r3, r6 + adds r1, r4, 0 + adds r0, r1, 0x1 + lsls r0, 16 + lsrs r4, r0, 16 + strb r1, [r2] + cmp r4, 0x11 + beq _080E65A6 +_080E6586: + adds r0, r5, 0x1 + lsls r0, 16 + lsrs r5, r0, 16 + cmp r5, 0x1 + bhi _080E65A2 + adds r2, r5, r3 + adds r2, r6 + adds r1, r4, 0 + adds r0, r1, 0x1 + lsls r0, 16 + lsrs r4, r0, 16 + strb r1, [r2] + cmp r4, 0x11 + bne _080E6586 +_080E65A2: + cmp r4, 0x11 + bne _080E6568 +_080E65A6: + movs r0, 0x11 + mov r1, r12 + strh r0, [r1, 0x28] + cmp r4, 0x15 + bhi _080E6612 + mov r6, r12 + adds r2, r6, 0 + adds r2, 0x78 +_080E65B6: + lsls r0, r4, 24 + lsrs r0, 24 + str r2, [sp] + bl sub_80EAD7C + lsls r0, 24 + lsrs r1, r0, 24 + ldr r2, [sp] + cmp r1, 0 + beq _080E65FC + adds r0, r5, 0x1 + lsls r0, 16 + lsrs r5, r0, 16 + cmp r5, 0x1 + bls _080E65DC + adds r0, r7, 0x1 + lsls r0, 16 + lsrs r7, r0, 16 + movs r5, 0 +_080E65DC: + lsls r0, r7, 1 + adds r0, r5, r0 + adds r1, r6, 0 + adds r1, 0x2A + adds r0, r1 + strb r4, [r0] + adds r0, r4, 0 + subs r0, 0x11 + adds r0, r2 + movs r1, 0x1 + strb r1, [r0] + ldrh r0, [r6, 0x28] + adds r0, 0x1 + strh r0, [r6, 0x28] + mov r12, r6 + b _080E6608 +_080E65FC: + adds r0, r4, 0 + subs r0, 0x11 + adds r0, r2 + strb r1, [r0] + ldr r0, _080E662C @ =0x02001000 + mov r12, r0 +_080E6608: + adds r0, r4, 0x1 + lsls r0, 16 + lsrs r4, r0, 16 + cmp r4, 0x15 + bls _080E65B6 +_080E6612: + mov r1, r12 + ldrh r0, [r1, 0x28] + adds r0, 0x1 + asrs r0, 1 + movs r1, 0xDB + lsls r1, 1 + add r1, r12 + strb r0, [r1] + add sp, 0x4 + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_080E662C: .4byte 0x02001000 + thumb_func_end sub_80E6554 + + thumb_func_start sub_80E6630 +sub_80E6630: @ 80E6630 + push {r4-r7,lr} + movs r1, 0 + ldr r0, _080E6664 @ =gUnknown_083DB6B2 + mov r12, r0 +_080E6638: + lsls r0, r1, 4 + mov r2, r12 + adds r5, r0, r2 + movs r3, 0 + ldrb r0, [r5] + adds r7, r1, 0x1 + cmp r0, 0xFF + beq _080E6680 + lsls r0, r1, 3 + subs r0, r1 + lsls r4, r0, 1 + ldr r6, _080E6668 @ =0x02001040 +_080E6650: + adds r0, r5, r3 + ldrb r1, [r0] + adds r2, r1, 0 + cmp r2, 0 + beq _080E666C + adds r0, r3, r4 + adds r0, r6 + adds r1, 0x46 + strb r1, [r0] + b _080E6672 + .align 2, 0 +_080E6664: .4byte gUnknown_083DB6B2 +_080E6668: .4byte 0x02001040 +_080E666C: + adds r0, r3, r4 + adds r0, r6 + strb r2, [r0] +_080E6672: + adds r0, r3, 0x1 + lsls r0, 24 + lsrs r3, r0, 24 + adds r0, r5, r3 + ldrb r0, [r0] + cmp r0, 0xFF + bne _080E6650 +_080E6680: + lsls r0, r7, 24 + lsrs r1, r0, 24 + cmp r1, 0x3 + bls _080E6638 + pop {r4-r7} + pop {r0} + bx r0 + thumb_func_end sub_80E6630 + + thumb_func_start sub_80E6690 +sub_80E6690: @ 80E6690 + push {r4-r6,lr} + sub sp, 0x10 + mov r0, sp + ldr r1, _080E66E0 @ =gUnknown_083DB7DC + ldm r1!, {r2-r4} + stm r0!, {r2-r4} + ldr r1, [r1] + str r1, [r0] + movs r5, 0 + ldr r6, _080E66E4 @ =gUnknown_083DB7C0 +_080E66A4: + ldr r0, _080E66E8 @ =0x02001000 + ldrb r0, [r0, 0x8] + lsls r0, 1 + adds r0, r5, r0 + adds r0, r6 + ldrb r1, [r0] + lsls r0, r1, 1 + adds r0, r1 + lsls r0, 2 + ldr r1, _080E66EC @ =gUnknown_083DB6F4 + adds r4, r0, r1 + lsls r0, r5, 3 + add r0, sp + ldr r0, [r0] + ldr r1, [r4] + bl StringCopy + adds r3, r0, 0 + ldrb r0, [r4, 0x8] + cmp r0, 0 + beq _080E66F0 + lsls r0, r5, 1 + adds r0, 0x1 + lsls r0, 2 + add r0, sp + ldr r0, [r0] + ldr r1, [r4, 0x4] + bl StringCopy + b _080E670A + .align 2, 0 +_080E66E0: .4byte gUnknown_083DB7DC +_080E66E4: .4byte gUnknown_083DB7C0 +_080E66E8: .4byte 0x02001000 +_080E66EC: .4byte gUnknown_083DB6F4 +_080E66F0: + strb r0, [r3] + adds r3, 0x1 + ldr r1, [r4, 0x4] + adds r0, r3, 0 + bl StringCopy + lsls r0, r5, 1 + adds r0, 0x1 + lsls r0, 2 + add r0, sp + ldr r1, [r0] + movs r0, 0xFF + strb r0, [r1] +_080E670A: + adds r0, r5, 0x1 + lsls r0, 16 + lsrs r5, r0, 16 + cmp r5, 0x1 + bls _080E66A4 + movs r5, 0 + ldr r3, _080E6758 @ =0x02001000 + ldr r0, _080E675C @ =0x0000a0d0 + adds r2, r3, r0 + movs r1, 0 +_080E671E: + adds r0, r5, r2 + strb r1, [r0] + adds r0, r5, 0x1 + lsls r0, 16 + lsrs r5, r0, 16 + cmp r5, 0x23 + bls _080E671E + ldr r1, _080E675C @ =0x0000a0d0 + adds r0, r3, r1 + adds r0, r5, r0 + movs r4, 0x1 + negs r4, r4 + adds r2, r4, 0 + movs r1, 0xFF + strb r1, [r0] + ldr r0, _080E6760 @ =0x0000a29a + adds r3, r0 + movs r0, 0xFC + strb r0, [r3] + movs r0, 0x11 + strb r0, [r3, 0x1] + movs r0, 0xE0 + strb r0, [r3, 0x2] + strb r2, [r3, 0x3] + add sp, 0x10 + pop {r4-r6} + pop {r0} + bx r0 + .align 2, 0 +_080E6758: .4byte 0x02001000 +_080E675C: .4byte 0x0000a0d0 +_080E6760: .4byte 0x0000a29a + thumb_func_end sub_80E6690 + + thumb_func_start InitEasyChatPhrases +InitEasyChatPhrases: @ 80E6764 + push {r4-r6,lr} + movs r3, 0 + ldr r4, _080E680C @ =gSaveBlock1 + 0x2B1C + ldr r2, _080E6810 @ =gUnknown_083DB7EC +_080E676C: + lsls r0, r3, 1 + adds r1, r0, r4 + adds r0, r2 + ldrh r0, [r0] + strh r0, [r1] + adds r0, r3, 0x1 + lsls r0, 16 + lsrs r3, r0, 16 + cmp r3, 0x3 + bls _080E676C + movs r3, 0 + ldr r4, _080E6814 @ =gSaveBlock1 + 0x2B28 + ldr r2, _080E6818 @ =gUnknown_083DB7F4 +_080E6786: + lsls r0, r3, 1 + adds r1, r0, r4 + adds r0, r2 + ldrh r0, [r0] + strh r0, [r1] + adds r0, r3, 0x1 + lsls r0, 16 + lsrs r3, r0, 16 + cmp r3, 0x5 + bls _080E6786 + movs r3, 0 + ldr r5, _080E681C @ =gSaveBlock1 + 0x2B34 + ldr r0, _080E6820 @ =0x0000ffff + adds r4, r0, 0 + adds r6, r5, 0 + adds r6, 0xC +_080E67A6: + lsls r1, r3, 1 + adds r2, r1, r5 + ldrh r0, [r2] + orrs r0, r4 + strh r0, [r2] + adds r1, r6 + ldrh r0, [r1] + orrs r0, r4 + strh r0, [r1] + adds r0, r3, 0x1 + lsls r0, 16 + lsrs r3, r0, 16 + cmp r3, 0x5 + bls _080E67A6 + movs r3, 0 + ldr r6, _080E6824 @ =gSaveBlock1 + 0x2B4C + ldr r0, _080E6820 @ =0x0000ffff + adds r5, r0, 0 +_080E67CA: + movs r2, 0 + lsls r0, r3, 3 + adds r0, r3 + lsls r4, r0, 2 +_080E67D2: + lsls r0, r2, 1 + adds r0, r4 + adds r0, r6 + ldrh r1, [r0] + orrs r1, r5 + strh r1, [r0] + adds r0, r2, 0x1 + lsls r0, 16 + lsrs r2, r0, 16 + cmp r2, 0x8 + bls _080E67D2 + adds r0, r3, 0x1 + lsls r0, 16 + lsrs r3, r0, 16 + cmp r3, 0xF + bls _080E67CA + movs r3, 0 + ldr r2, _080E6828 @ =gSaveBlock1 + 0x2D8C + movs r1, 0 +_080E67F8: + adds r0, r3, r2 + strb r1, [r0] + adds r0, r3, 0x1 + lsls r0, 16 + lsrs r3, r0, 16 + cmp r3, 0x3F + bls _080E67F8 + pop {r4-r6} + pop {r0} + bx r0 + .align 2, 0 +_080E680C: .4byte gSaveBlock1 + 0x2B1C +_080E6810: .4byte gUnknown_083DB7EC +_080E6814: .4byte gSaveBlock1 + 0x2B28 +_080E6818: .4byte gUnknown_083DB7F4 +_080E681C: .4byte gSaveBlock1 + 0x2B34 +_080E6820: .4byte 0x0000ffff +_080E6824: .4byte gSaveBlock1 + 0x2B4C +_080E6828: .4byte gSaveBlock1 + 0x2D8C + thumb_func_end InitEasyChatPhrases + + thumb_func_start sub_80E682C +sub_80E682C: @ 80E682C + ldr r1, _080E6838 @ =0x02001000 + str r0, [r1, 0x20] + movs r0, 0 + strh r0, [r1, 0x24] + bx lr + .align 2, 0 +_080E6838: .4byte 0x02001000 + thumb_func_end sub_80E682C + + thumb_func_start sub_80E683C +sub_80E683C: @ 80E683C + push {r4,r5,lr} + ldr r1, _080E6890 @ =0x02001000 + adds r0, r1, 0 + adds r0, 0x26 + ldrb r0, [r0] + adds r2, r1, 0 + cmp r0, 0 + bne _080E6898 + movs r1, 0 + movs r0, 0xDB + lsls r0, 1 + adds r3, r2, r0 + movs r0, 0 + ldrsb r0, [r3, r0] + cmp r1, r0 + bge _080E6876 + movs r0, 0xD5 + lsls r0, 1 + adds r5, r2, r0 + movs r4, 0x2 +_080E6864: + adds r0, r1, r5 + strb r4, [r0] + adds r0, r1, 0x1 + lsls r0, 16 + lsrs r1, r0, 16 + movs r0, 0 + ldrsb r0, [r3, r0] + cmp r1, r0 + blt _080E6864 +_080E6876: + adds r0, r2, r1 + ldr r1, _080E6894 @ =0x000001a9 + adds r3, r0, r1 + ldrh r0, [r2, 0x28] + movs r1, 0x1 + ands r0, r1 + strb r0, [r3] + cmp r0, 0 + bne _080E68B8 + movs r0, 0x2 + strb r0, [r3] + b _080E68B8 + .align 2, 0 +_080E6890: .4byte 0x02001000 +_080E6894: .4byte 0x000001a9 +_080E6898: + movs r3, 0xD5 + lsls r3, 1 + adds r1, r2, r3 + movs r0, 0x7 + strb r0, [r1] + ldr r1, _080E68E0 @ =0x000001ab + adds r3, r2, r1 + movs r1, 0x6 + strb r1, [r3] + movs r3, 0xD6 + lsls r3, 1 + adds r1, r2, r3 + strb r0, [r1] + adds r3, 0x1 + adds r1, r2, r3 + strb r0, [r1] +_080E68B8: + movs r0, 0xD4 + lsls r0, 1 + adds r1, r2, r0 + movs r0, 0 + strb r0, [r1] + ldr r3, _080E68E4 @ =0x000001a9 + adds r1, r2, r3 + strb r0, [r1] + adds r3, 0xC + adds r1, r2, r3 + strb r0, [r1] + adds r3, 0x2 + adds r1, r2, r3 + strb r0, [r1] + bl sub_80E9A4C + pop {r4,r5} + pop {r0} + bx r0 + .align 2, 0 +_080E68E0: .4byte 0x000001ab +_080E68E4: .4byte 0x000001a9 + thumb_func_end sub_80E683C + + thumb_func_start sub_80E68E8 +sub_80E68E8: @ 80E68E8 + push {r4-r6,lr} + bl sub_80EB0B0 + ldr r3, _080E694C @ =0x02001000 + adds r0, r3, 0 + adds r0, 0x26 + ldrb r0, [r0] + cmp r0, 0 + bne _080E695C + movs r1, 0xDC + lsls r1, 1 + adds r0, r3, r1 + ldrb r6, [r0] + lsls r0, r6, 1 + ldr r2, _080E6950 @ =0x000044a2 + adds r1, r3, r2 + adds r0, r1 + ldrh r0, [r0] + adds r0, 0x1 + asrs r0, 1 + ldr r1, _080E6954 @ =0x00009d54 + adds r2, r3, r1 + strb r0, [r2] + movs r1, 0 + movs r0, 0 + ldrsb r0, [r2, r0] + adds r5, r3, 0 + cmp r1, r0 + bge _080E693A + ldr r3, _080E6958 @ =0x00009cd2 + adds r4, r5, r3 + movs r3, 0x2 +_080E6928: + adds r0, r1, r4 + strb r3, [r0] + adds r0, r1, 0x1 + lsls r0, 16 + lsrs r1, r0, 16 + movs r0, 0 + ldrsb r0, [r2, r0] + cmp r1, r0 + blt _080E6928 +_080E693A: + subs r0, r1, 0x1 + lsls r0, 16 + lsrs r1, r0, 16 + ldr r2, _080E6958 @ =0x00009cd2 + adds r0, r5, r2 + adds r2, r1, r0 + lsls r0, r6, 1 + ldr r3, _080E6950 @ =0x000044a2 + b _080E69AC + .align 2, 0 +_080E694C: .4byte 0x02001000 +_080E6950: .4byte 0x000044a2 +_080E6954: .4byte 0x00009d54 +_080E6958: .4byte 0x00009cd2 +_080E695C: + movs r1, 0xDC + lsls r1, 1 + adds r0, r3, r1 + ldrb r6, [r0] + lsls r0, r6, 1 + ldr r2, _080E69E0 @ =0x0000446c + adds r1, r3, r2 + adds r0, r1 + ldrh r0, [r0] + adds r0, 0x1 + asrs r0, 1 + ldr r1, _080E69E4 @ =0x00009d54 + adds r2, r3, r1 + strb r0, [r2] + movs r1, 0 + movs r0, 0 + ldrsb r0, [r2, r0] + adds r5, r3, 0 + cmp r1, r0 + bge _080E699C + ldr r3, _080E69E8 @ =0x00009cd2 + adds r4, r5, r3 + movs r3, 0x2 +_080E698A: + adds r0, r1, r4 + strb r3, [r0] + adds r0, r1, 0x1 + lsls r0, 16 + lsrs r1, r0, 16 + movs r0, 0 + ldrsb r0, [r2, r0] + cmp r1, r0 + blt _080E698A +_080E699C: + subs r0, r1, 0x1 + lsls r0, 16 + lsrs r1, r0, 16 + ldr r2, _080E69E8 @ =0x00009cd2 + adds r0, r5, r2 + adds r2, r1, r0 + lsls r0, r6, 1 + ldr r3, _080E69E0 @ =0x0000446c +_080E69AC: + adds r1, r5, r3 + adds r0, r1 + ldrh r0, [r0] + movs r1, 0x1 + ands r0, r1 + strb r0, [r2] + cmp r0, 0 + bne _080E69C0 + movs r0, 0x2 + strb r0, [r2] +_080E69C0: + ldr r1, _080E69EC @ =0x00009cd0 + adds r0, r5, r1 + movs r1, 0 + strb r1, [r0] + ldr r2, _080E69F0 @ =0x00009cd1 + adds r0, r5, r2 + strb r1, [r0] + ldr r3, _080E69F4 @ =0x00009d55 + adds r0, r5, r3 + strb r1, [r0] + bl sub_80E9A4C + pop {r4-r6} + pop {r0} + bx r0 + .align 2, 0 +_080E69E0: .4byte 0x0000446c +_080E69E4: .4byte 0x00009d54 +_080E69E8: .4byte 0x00009cd2 +_080E69EC: .4byte 0x00009cd0 +_080E69F0: .4byte 0x00009cd1 +_080E69F4: .4byte 0x00009d55 + thumb_func_end sub_80E68E8 + + thumb_func_start sub_80E69F8 +sub_80E69F8: @ 80E69F8 + push {r4,lr} + ldr r0, _080E6A10 @ =0x02001000 + ldrb r1, [r0, 0x8] + adds r4, r0, 0 + cmp r1, 0xD + bhi _080E6A50 + lsls r0, r1, 2 + ldr r1, _080E6A14 @ =_080E6A18 + adds r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_080E6A10: .4byte 0x02001000 +_080E6A14: .4byte _080E6A18 + .align 2, 0 +_080E6A18: + .4byte _080E6A50 + .4byte _080E6A50 + .4byte _080E6A50 + .4byte _080E6A50 + .4byte _080E6A50 + .4byte _080E6A58 + .4byte _080E6A50 + .4byte _080E6A58 + .4byte _080E6A58 + .4byte _080E6A50 + .4byte _080E6A58 + .4byte _080E6A58 + .4byte _080E6A58 + .4byte _080E6A50 +_080E6A50: + ldrb r0, [r4, 0x8] + bl sub_80E9368 + b _080E6A66 +_080E6A58: + ldrb r0, [r4, 0x8] + bl sub_80E9368 + ldrb r0, [r4, 0xB] + ldrb r1, [r4, 0x9] + bl sub_80E8BF4 +_080E6A66: + pop {r4} + pop {r0} + bx r0 + thumb_func_end sub_80E69F8 + + thumb_func_start sub_80E6A6C +sub_80E6A6C: @ 80E6A6C + push {lr} + bl LoadOam + bl ProcessSpriteCopyRequests + bl sub_80EAC5C + bl TransferPlttBuffer + bl sub_8089668 + pop {r0} + bx r0 + thumb_func_end sub_80E6A6C + + thumb_func_start sub_80E6A88 +sub_80E6A88: @ 80E6A88 + push {lr} + ldr r0, _080E6AA4 @ =0x02001000 + ldr r0, [r0, 0x20] + bl _call_via_r0 + bl AnimateSprites + bl BuildOamBuffer + bl sub_80EAD08 + pop {r0} + bx r0 + .align 2, 0 +_080E6AA4: .4byte 0x02001000 + thumb_func_end sub_80E6A88 + + thumb_func_start sub_80E6AA8 +sub_80E6AA8: @ 80E6AA8 + push {lr} + bl UpdatePaletteFade + lsls r0, 24 + cmp r0, 0 + bne _080E6ABA + ldr r0, _080E6AC0 @ =sub_80E6AC4 + bl sub_80E682C +_080E6ABA: + pop {r0} + bx r0 + .align 2, 0 +_080E6AC0: .4byte sub_80E6AC4 + thumb_func_end sub_80E6AA8 + + thumb_func_start sub_80E6AC4 +sub_80E6AC4: @ 80E6AC4 + push {lr} + bl sub_80E88F0 + movs r0, 0 + bl sub_80E8398 + movs r0, 0 + bl sub_80E91D4 + ldr r0, _080E6AE0 @ =sub_80E6AE4 + bl sub_80E682C + pop {r0} + bx r0 + .align 2, 0 +_080E6AE0: .4byte sub_80E6AE4 + thumb_func_end sub_80E6AC4 + + thumb_func_start sub_80E6AE4 +sub_80E6AE4: @ 80E6AE4 + push {r4,r5,lr} + bl sub_80E75D8 + ldr r4, _080E6B44 @ =0x02001000 + adds r1, r4, 0 + adds r1, 0x87 + strb r0, [r1] + lsls r0, 24 + cmp r0, 0 + beq _080E6AFE + movs r0, 0x5 + bl PlaySE +_080E6AFE: + ldr r2, _080E6B48 @ =gMain + ldrh r1, [r2, 0x2E] + movs r0, 0x1 + ands r0, r1 + adds r5, r2, 0 + cmp r0, 0 + beq _080E6BA4 + movs r0, 0x5 + bl PlaySE + adds r1, r4, 0 + adds r1, 0x86 + adds r0, r4, 0 + adds r0, 0x84 + ldrb r2, [r1] + ldrb r1, [r1] + lsls r1, 24 + asrs r1, 24 + ldrb r0, [r0] + lsls r0, 24 + asrs r0, 24 + cmp r1, r0 + bne _080E6B78 + adds r0, r4, 0 + adds r0, 0x85 + ldrb r0, [r0] + lsls r0, 24 + asrs r0, 24 + cmp r0, 0x1 + beq _080E6B60 + cmp r0, 0x1 + bgt _080E6B4C + cmp r0, 0 + beq _080E6B52 + b _080E6BA4 + .align 2, 0 +_080E6B44: .4byte 0x02001000 +_080E6B48: .4byte gMain +_080E6B4C: + cmp r0, 0x2 + beq _080E6B6C + b _080E6BA4 +_080E6B52: + ldr r0, _080E6B5C @ =sub_80E6BC0 + bl sub_80E682C + b _080E6BB4 + .align 2, 0 +_080E6B5C: .4byte sub_80E6BC0 +_080E6B60: + ldr r0, _080E6B68 @ =sub_80E6C84 + bl sub_80E682C + b _080E6BB4 + .align 2, 0 +_080E6B68: .4byte sub_80E6C84 +_080E6B6C: + ldr r0, _080E6B74 @ =sub_80E6D7C + bl sub_80E682C + b _080E6BB4 + .align 2, 0 +_080E6B74: .4byte sub_80E6D7C +_080E6B78: + adds r0, r4, 0 + adds r0, 0x83 + ldrb r0, [r0] + adds r1, r4, 0 + adds r1, 0x85 + adds r3, r0, 0 + muls r3, r2 + adds r0, r3, 0 + ldrb r1, [r1] + adds r0, r1 + adds r1, r4, 0 + adds r1, 0x27 + strb r0, [r1] + bl sub_80E7574 + ldr r0, _080E6BA0 @ =sub_80E6F68 + bl sub_80E682C + b _080E6BB4 + .align 2, 0 +_080E6BA0: .4byte sub_80E6F68 +_080E6BA4: + ldrh r1, [r5, 0x2E] + movs r0, 0x2 + ands r0, r1 + cmp r0, 0 + beq _080E6BB4 + ldr r0, _080E6BBC @ =sub_80E6C84 + bl sub_80E682C +_080E6BB4: + pop {r4,r5} + pop {r0} + bx r0 + .align 2, 0 +_080E6BBC: .4byte sub_80E6C84 + thumb_func_end sub_80E6AE4 + + thumb_func_start sub_80E6BC0 +sub_80E6BC0: @ 80E6BC0 + push {r4,lr} + ldr r4, _080E6BD4 @ =0x02001000 + ldrh r0, [r4, 0x24] + cmp r0, 0x1 + beq _080E6C12 + cmp r0, 0x1 + bgt _080E6BD8 + cmp r0, 0 + beq _080E6BE2 + b _080E6C76 + .align 2, 0 +_080E6BD4: .4byte 0x02001000 +_080E6BD8: + cmp r0, 0x2 + beq _080E6C54 + cmp r0, 0x64 + beq _080E6C64 + b _080E6C76 +_080E6BE2: + movs r0, 0x2 + bl sub_80E8398 + ldrb r0, [r4, 0x8] + cmp r0, 0x6 + bne _080E6BFA + movs r0, 0x6 + bl sub_80E91D4 + movs r0, 0x64 + strh r0, [r4, 0x24] + b _080E6C76 +_080E6BFA: + movs r0, 0x2 + bl sub_80E91D4 + movs r0, 0x17 + movs r1, 0x8 + movs r2, 0x1 + bl DisplayYesNoMenu + movs r0, 0x1 + bl MoveMenuCursor + b _080E6C3E +_080E6C12: + bl ProcessMenuInputNoWrap_ + lsls r0, 24 + asrs r1, r0, 24 + cmp r1, 0 + beq _080E6C32 + cmp r1, 0 + bgt _080E6C2C + movs r0, 0x1 + negs r0, r0 + cmp r1, r0 + beq _080E6C46 + b _080E6C76 +_080E6C2C: + cmp r1, 0x1 + beq _080E6C46 + b _080E6C76 +_080E6C32: + bl sub_80E7D6C + bl sub_80E98C4 + bl sub_80E95A4 +_080E6C3E: + ldrh r0, [r4, 0x24] + adds r0, 0x1 + strh r0, [r4, 0x24] + b _080E6C76 +_080E6C46: + ldr r1, _080E6C50 @ =0x02001000 + ldrh r0, [r1, 0x24] + adds r0, 0x1 + strh r0, [r1, 0x24] + b _080E6C76 + .align 2, 0 +_080E6C50: .4byte 0x02001000 +_080E6C54: + bl sub_80E81FC + ldr r0, _080E6C60 @ =sub_80E6AC4 + bl sub_80E682C + b _080E6C76 + .align 2, 0 +_080E6C60: .4byte sub_80E6AC4 +_080E6C64: + ldr r0, _080E6C7C @ =gMain + ldrh r1, [r0, 0x2E] + movs r0, 0x3 + ands r0, r1 + cmp r0, 0 + beq _080E6C76 + ldr r0, _080E6C80 @ =sub_80E6AC4 + bl sub_80E682C +_080E6C76: + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_080E6C7C: .4byte gMain +_080E6C80: .4byte sub_80E6AC4 + thumb_func_end sub_80E6BC0 + + thumb_func_start sub_80E6C84 +sub_80E6C84: @ 80E6C84 + push {r4,lr} + ldr r4, _080E6C98 @ =0x02001000 + ldrh r0, [r4, 0x24] + cmp r0, 0x1 + beq _080E6CF4 + cmp r0, 0x1 + bgt _080E6C9C + cmp r0, 0 + beq _080E6CA6 + b _080E6D72 + .align 2, 0 +_080E6C98: .4byte 0x02001000 +_080E6C9C: + cmp r0, 0x2 + beq _080E6D24 + cmp r0, 0xFF + beq _080E6D64 + b _080E6D72 +_080E6CA6: + movs r0, 0x2 + bl sub_80E8398 + movs r0, 0x3 + bl sub_80E91D4 + movs r0, 0x17 + movs r1, 0x8 + movs r2, 0 + bl DisplayYesNoMenu + movs r0, 0x1 + bl MoveMenuCursor + ldrb r0, [r4, 0x8] + cmp r0, 0x9 + beq _080E6CE8 + cmp r0, 0x4 + beq _080E6CE8 + cmp r0, 0x7 + beq _080E6CE8 + cmp r0, 0x8 + beq _080E6CE8 + cmp r0, 0xA + beq _080E6CE8 + cmp r0, 0xB + beq _080E6CE8 + cmp r0, 0xC + beq _080E6CE8 + cmp r0, 0x5 + beq _080E6CE8 + cmp r0, 0xD + bne _080E6D1C +_080E6CE8: + ldr r1, _080E6CF0 @ =0x02001000 + movs r0, 0x2 + strh r0, [r1, 0x24] + b _080E6D72 + .align 2, 0 +_080E6CF0: .4byte 0x02001000 +_080E6CF4: + bl ProcessMenuInputNoWrap_ + lsls r0, 24 + asrs r1, r0, 24 + cmp r1, 0 + beq _080E6D06 + cmp r1, 0 + ble _080E6D34 + b _080E6D3E +_080E6D06: + movs r0, 0x4 + bl sub_80E91D4 + movs r0, 0x17 + movs r1, 0x8 + movs r2, 0 + bl DisplayYesNoMenu + movs r0, 0x1 + bl MoveMenuCursor +_080E6D1C: + ldrh r0, [r4, 0x24] + adds r0, 0x1 + strh r0, [r4, 0x24] + b _080E6D72 +_080E6D24: + bl ProcessMenuInputNoWrap_ + lsls r0, 24 + asrs r1, r0, 24 + cmp r1, 0 + beq _080E6D44 + cmp r1, 0 + bgt _080E6D3E +_080E6D34: + movs r0, 0x1 + negs r0, r0 + cmp r1, r0 + beq _080E6D58 + b _080E6D72 +_080E6D3E: + cmp r1, 0x1 + beq _080E6D58 + b _080E6D72 +_080E6D44: + ldr r0, _080E6D50 @ =gScriptResult + strh r1, [r0] + ldr r0, _080E6D54 @ =sub_80E752C + bl sub_80E682C + b _080E6D72 + .align 2, 0 +_080E6D50: .4byte gScriptResult +_080E6D54: .4byte sub_80E752C +_080E6D58: + ldr r1, _080E6D60 @ =0x02001000 + movs r0, 0xFF + strh r0, [r1, 0x24] + b _080E6D72 + .align 2, 0 +_080E6D60: .4byte 0x02001000 +_080E6D64: + bl HandleDestroyMenuCursors + bl sub_80E81FC + ldr r0, _080E6D78 @ =sub_80E6AC4 + bl sub_80E682C +_080E6D72: + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_080E6D78: .4byte sub_80E6AC4 + thumb_func_end sub_80E6C84 + + thumb_func_start sub_80E6D7C +sub_80E6D7C: @ 80E6D7C + push {r4-r7,lr} + ldr r5, _080E6D98 @ =0x02001000 + ldrh r0, [r5, 0x24] + cmp r0, 0xA + bne _080E6D88 + b _080E6F06 +_080E6D88: + cmp r0, 0xA + bgt _080E6D9C + cmp r0, 0 + beq _080E6DB6 + cmp r0, 0x1 + beq _080E6E3C + b _080E6F5E + .align 2, 0 +_080E6D98: .4byte 0x02001000 +_080E6D9C: + cmp r0, 0x65 + bne _080E6DA2 + b _080E6F30 +_080E6DA2: + cmp r0, 0x65 + bgt _080E6DAE + cmp r0, 0x64 + bne _080E6DAC + b _080E6F24 +_080E6DAC: + b _080E6F5E +_080E6DAE: + cmp r0, 0x66 + bne _080E6DB4 + b _080E6F50 +_080E6DB4: + b _080E6F5E +_080E6DB6: + movs r0, 0x2 + bl sub_80E8398 + bl sub_80E8054 + lsls r0, 24 + cmp r0, 0 + beq _080E6DCA + movs r0, 0x5 + b _080E6DEE +_080E6DCA: + ldrb r0, [r5, 0x8] + cmp r0, 0x9 + bne _080E6DFC + bl sub_80E7FA8 + lsls r0, 24 + cmp r0, 0 + bne _080E6DDE + movs r0, 0x8 + b _080E6DEE +_080E6DDE: + ldrh r0, [r5, 0xC] + ldr r1, _080E6DF8 @ =0x0000ffff + cmp r0, r1 + beq _080E6DEC + ldrh r0, [r5, 0xE] + cmp r0, r1 + bne _080E6DFC +_080E6DEC: + movs r0, 0x9 +_080E6DEE: + bl sub_80E91D4 + movs r0, 0xA + strh r0, [r5, 0x24] + b _080E6F5E + .align 2, 0 +_080E6DF8: .4byte 0x0000ffff +_080E6DFC: + ldr r0, _080E6E18 @ =0x02001000 + ldrb r0, [r0, 0x8] + cmp r0, 0x4 + bne _080E6E20 + bl sub_80E7FA8 + lsls r0, 24 + cmp r0, 0 + bne _080E6E20 + ldr r0, _080E6E1C @ =sub_80E6C84 + bl sub_80E682C + b _080E6F5E + .align 2, 0 +_080E6E18: .4byte 0x02001000 +_080E6E1C: .4byte sub_80E6C84 +_080E6E20: + movs r0, 0x1 + bl sub_80E91D4 + bl sub_80E9744 + movs r0, 0x17 + movs r1, 0x8 + movs r2, 0 + bl DisplayYesNoMenu + movs r0, 0 + bl MoveMenuCursor + b _080E6F3C +_080E6E3C: + bl ProcessMenuInputNoWrap_ + lsls r0, 24 + asrs r6, r0, 24 + cmp r6, 0 + beq _080E6E5C + cmp r6, 0 + bgt _080E6E56 + movs r0, 0x1 + negs r0, r0 + cmp r6, r0 + beq _080E6EDC + b _080E6F5E +_080E6E56: + cmp r6, 0x1 + beq _080E6EDC + b _080E6F5E +_080E6E5C: + ldr r7, _080E6EC8 @ =gScriptResult + bl sub_80E7FA8 + lsls r0, 24 + lsrs r0, 24 + negs r0, r0 + lsrs r0, 31 + strh r0, [r7] + bl sub_80E7D9C + ldrb r0, [r5, 0x8] + cmp r0, 0 + bne _080E6E82 + ldr r4, _080E6ECC @ =gSpecialVar_0x8004 + bl sub_80E8094 + lsls r0, 24 + lsrs r0, 24 + strh r0, [r4] +_080E6E82: + ldrb r0, [r5, 0x8] + cmp r0, 0x9 + bne _080E6E9C + bl sub_80E81C0 + ldr r4, _080E6ECC @ =gSpecialVar_0x8004 + ldr r1, _080E6ED0 @ =0x00009fa8 + adds r0, r5, r1 + bl sub_80FA364 + lsls r0, 24 + lsrs r0, 24 + strh r0, [r4] +_080E6E9C: + ldrb r0, [r5, 0x8] + cmp r0, 0xD + bne _080E6EBE + ldrh r0, [r5, 0xC] + ldr r1, _080E6ED4 @ =0x0000ffff + cmp r0, r1 + beq _080E6EB0 + ldrh r0, [r5, 0xE] + cmp r0, r1 + bne _080E6EB2 +_080E6EB0: + strh r6, [r7] +_080E6EB2: + ldr r4, _080E6ECC @ =gSpecialVar_0x8004 + bl sub_80E810C + lsls r0, 24 + lsrs r0, 24 + strh r0, [r4] +_080E6EBE: + ldr r0, _080E6ED8 @ =sub_80E752C + bl sub_80E682C + b _080E6F5E + .align 2, 0 +_080E6EC8: .4byte gScriptResult +_080E6ECC: .4byte gSpecialVar_0x8004 +_080E6ED0: .4byte 0x00009fa8 +_080E6ED4: .4byte 0x0000ffff +_080E6ED8: .4byte sub_80E752C +_080E6EDC: + bl HandleDestroyMenuCursors + bl sub_80E81FC + ldr r4, _080E6EFC @ =0x02001000 + ldrb r0, [r4, 0x8] + cmp r0, 0x6 + bne _080E6F00 + bl sub_80E7FA8 + lsls r0, 24 + cmp r0, 0 + beq _080E6F00 + movs r0, 0x64 + strh r0, [r4, 0x24] + b _080E6F5E + .align 2, 0 +_080E6EFC: .4byte 0x02001000 +_080E6F00: + bl sub_80E95A4 + b _080E6F12 +_080E6F06: + ldr r0, _080E6F1C @ =gMain + ldrh r1, [r0, 0x2E] + movs r0, 0x3 + ands r0, r1 + cmp r0, 0 + beq _080E6F5E +_080E6F12: + ldr r0, _080E6F20 @ =sub_80E6AC4 + bl sub_80E682C + b _080E6F5E + .align 2, 0 +_080E6F1C: .4byte gMain +_080E6F20: .4byte sub_80E6AC4 +_080E6F24: + movs r0, 0x7 + bl sub_80E91D4 + ldrh r0, [r5, 0x24] + adds r0, 0x1 + strh r0, [r5, 0x24] +_080E6F30: + ldr r0, _080E6F48 @ =gMain + ldrh r1, [r0, 0x2E] + movs r0, 0x1 + ands r0, r1 + cmp r0, 0 + beq _080E6F5E +_080E6F3C: + ldr r1, _080E6F4C @ =0x02001000 + ldrh r0, [r1, 0x24] + adds r0, 0x1 + strh r0, [r1, 0x24] + b _080E6F5E + .align 2, 0 +_080E6F48: .4byte gMain +_080E6F4C: .4byte 0x02001000 +_080E6F50: + bl sub_80E7E50 + bl sub_80E95A4 + ldr r0, _080E6F64 @ =sub_80E6AC4 + bl sub_80E682C +_080E6F5E: + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_080E6F64: .4byte sub_80E6AC4 + thumb_func_end sub_80E6D7C + + thumb_func_start sub_80E6F68 +sub_80E6F68: @ 80E6F68 + push {r4,lr} + ldr r4, _080E6F78 @ =0x02001000 + ldrh r0, [r4, 0x24] + cmp r0, 0 + beq _080E6F7C + cmp r0, 0x1 + beq _080E6F9C + b _080E6FBC + .align 2, 0 +_080E6F78: .4byte 0x02001000 +_080E6F7C: + movs r0, 0x1 + bl sub_80E8398 + movs r0, 0xA + bl sub_80E91D4 + bl sub_80E683C + bl sub_80E9974 + bl sub_80E9E98 + ldrh r0, [r4, 0x24] + adds r0, 0x1 + strh r0, [r4, 0x24] + b _080E6FBC +_080E6F9C: + bl sub_80E9EA8 + lsls r0, 24 + cmp r0, 0 + beq _080E6FBC + movs r0, 0x1 + bl sub_80E8D8C + bl sub_80E8420 + movs r0, 0 + bl sub_80E8958 + ldr r0, _080E6FC4 @ =sub_80E6FC8 + bl sub_80E682C +_080E6FBC: + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_080E6FC4: .4byte sub_80E6FC8 + thumb_func_end sub_80E6F68 + + thumb_func_start sub_80E6FC8 +sub_80E6FC8: @ 80E6FC8 + push {r4,lr} + bl sub_80E77C8 + adds r1, r0, 0 + ldr r4, _080E7000 @ =0x02001000 + adds r0, r4, 0 + adds r0, 0x96 + strb r1, [r0] + movs r2, 0xE0 + lsls r2, 1 + adds r0, r4, r2 + ldrb r0, [r0] + lsls r0, 24 + asrs r0, 24 + cmp r0, 0 + beq _080E700C + movs r0, 0x5 + bl PlaySE + movs r1, 0xE2 + lsls r1, 1 + adds r0, r4, r1 + ldr r1, _080E7004 @ =sub_80E6FC8 + str r1, [r0] + ldr r0, _080E7008 @ =sub_80E7458 + bl sub_80E682C + b _080E710A + .align 2, 0 +_080E7000: .4byte 0x02001000 +_080E7004: .4byte sub_80E6FC8 +_080E7008: .4byte sub_80E7458 +_080E700C: + lsls r0, r1, 24 + cmp r0, 0 + beq _080E7018 + movs r0, 0x5 + bl PlaySE +_080E7018: + ldr r0, _080E7054 @ =gMain + ldrh r1, [r0, 0x2E] + movs r0, 0x1 + ands r0, r1 + cmp r0, 0 + beq _080E70E8 + ldr r2, _080E7058 @ =0x000001b7 + adds r0, r4, r2 + ldrb r0, [r0] + lsls r0, 24 + asrs r0, 24 + cmp r0, 0 + beq _080E7090 + movs r0, 0x5 + bl PlaySE + movs r1, 0xD4 + lsls r1, 1 + adds r0, r4, r1 + ldrb r0, [r0] + lsls r0, 24 + asrs r0, 24 + cmp r0, 0x2 + beq _080E7070 + cmp r0, 0x2 + bgt _080E705C + cmp r0, 0x1 + beq _080E7062 + b _080E710A + .align 2, 0 +_080E7054: .4byte gMain +_080E7058: .4byte 0x000001b7 +_080E705C: + cmp r0, 0x3 + beq _080E70F0 + b _080E710A +_080E7062: + ldr r0, _080E706C @ =sub_80E718C + bl sub_80E682C + b _080E710A + .align 2, 0 +_080E706C: .4byte sub_80E718C +_080E7070: + ldrb r0, [r4, 0x8] + cmp r0, 0x6 + beq _080E710A + adds r0, r4, 0 + adds r0, 0x27 + ldrb r0, [r0] + ldr r1, _080E708C @ =0x0000ffff + bl sub_80E7F00 + bl sub_80E7574 + bl sub_80E95A4 + b _080E710A + .align 2, 0 +_080E708C: .4byte 0x0000ffff +_080E7090: + adds r0, r4, 0 + adds r0, 0x26 + ldrb r0, [r0] + cmp r0, 0 + beq _080E70CA + ldr r2, _080E70DC @ =0x000001a9 + adds r0, r4, r2 + movs r2, 0 + ldrsb r2, [r0, r2] + movs r1, 0xD4 + lsls r1, 1 + adds r0, r4, r1 + movs r1, 0 + ldrsb r1, [r0, r1] + lsls r0, r1, 3 + subs r0, r1 + lsls r0, 1 + adds r2, r0 + adds r0, r4, 0 + adds r0, 0x40 + adds r2, r0 + ldrb r0, [r2] + lsls r0, 1 + ldr r2, _080E70E0 @ =0x0000446c + adds r1, r4, r2 + adds r0, r1 + ldrh r0, [r0] + cmp r0, 0 + beq _080E710A +_080E70CA: + movs r0, 0x5 + bl PlaySE + bl sub_80E7AD4 + ldr r0, _080E70E4 @ =sub_80E7218 + bl sub_80E682C + b _080E710A + .align 2, 0 +_080E70DC: .4byte 0x000001a9 +_080E70E0: .4byte 0x0000446c +_080E70E4: .4byte sub_80E7218 +_080E70E8: + movs r0, 0x2 + ands r0, r1 + cmp r0, 0 + beq _080E70FC +_080E70F0: + ldr r0, _080E70F8 @ =sub_80E7114 + bl sub_80E682C + b _080E710A + .align 2, 0 +_080E70F8: .4byte sub_80E7114 +_080E70FC: + movs r0, 0x4 + ands r0, r1 + cmp r0, 0 + beq _080E710A + ldr r0, _080E7110 @ =sub_80E718C + bl sub_80E682C +_080E710A: + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_080E7110: .4byte sub_80E718C + thumb_func_end sub_80E6FC8 + + thumb_func_start sub_80E7114 +sub_80E7114: @ 80E7114 + push {lr} + ldr r0, _080E712C @ =0x02001000 + ldrh r1, [r0, 0x24] + adds r2, r0, 0 + cmp r1, 0x4 + bhi _080E7182 + lsls r0, r1, 2 + ldr r1, _080E7130 @ =_080E7134 + adds r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_080E712C: .4byte 0x02001000 +_080E7130: .4byte _080E7134 + .align 2, 0 +_080E7134: + .4byte _080E7148 + .4byte _080E715C + .4byte _080E715C + .4byte _080E7164 + .4byte _080E717C +_080E7148: + bl sub_80E8504 + bl sub_80E9E98 + bl sub_80E88F0 + movs r0, 0 + bl sub_80E8D8C + b _080E716E +_080E715C: + ldrh r0, [r2, 0x24] + adds r0, 0x1 + strh r0, [r2, 0x24] + b _080E7182 +_080E7164: + bl sub_80E9F50 + lsls r0, 24 + cmp r0, 0 + beq _080E7182 +_080E716E: + ldr r1, _080E7178 @ =0x02001000 + ldrh r0, [r1, 0x24] + adds r0, 0x1 + strh r0, [r1, 0x24] + b _080E7182 + .align 2, 0 +_080E7178: .4byte 0x02001000 +_080E717C: + ldr r0, _080E7188 @ =sub_80E6AC4 + bl sub_80E682C +_080E7182: + pop {r0} + bx r0 + .align 2, 0 +_080E7188: .4byte sub_80E6AC4 + thumb_func_end sub_80E7114 + + thumb_func_start sub_80E718C +sub_80E718C: @ 80E718C + push {r4,lr} + ldr r0, _080E71A4 @ =0x02001000 + ldrh r1, [r0, 0x24] + adds r4, r0, 0 + cmp r1, 0x1 + beq _080E71C6 + cmp r1, 0x1 + bgt _080E71A8 + cmp r1, 0 + beq _080E71AE + b _080E71EC + .align 2, 0 +_080E71A4: .4byte 0x02001000 +_080E71A8: + cmp r1, 0x8 + beq _080E71F4 + b _080E71EC +_080E71AE: + bl sub_80E8504 + bl sub_80E9E98 + bl sub_80E88F0 + ldrh r0, [r4, 0x24] + adds r0, 0x1 + strh r0, [r4, 0x24] + bl sub_80E8D54 + b _080E720E +_080E71C6: + bl sub_80E9FD4 + lsls r0, 24 + cmp r0, 0 + beq _080E720E + movs r2, 0 + adds r1, r4, 0 + adds r1, 0x26 + ldrb r0, [r1] + cmp r0, 0 + bne _080E71DE + movs r2, 0x1 +_080E71DE: + strb r2, [r1] + bl sub_80E683C + bl sub_80E9974 + bl sub_80E9E98 +_080E71EC: + ldrh r0, [r4, 0x24] + adds r0, 0x1 + strh r0, [r4, 0x24] + b _080E720E +_080E71F4: + bl sub_80EA014 + lsls r0, 24 + cmp r0, 0 + beq _080E720E + bl sub_80E8420 + movs r0, 0 + bl sub_80E8958 + ldr r0, _080E7214 @ =sub_80E6FC8 + bl sub_80E682C +_080E720E: + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_080E7214: .4byte sub_80E6FC8 + thumb_func_end sub_80E718C + + thumb_func_start sub_80E7218 +sub_80E7218: @ 80E7218 + push {r4,lr} + ldr r4, _080E7230 @ =0x02001000 + ldrh r0, [r4, 0x24] + adds r1, r4, 0 + cmp r0, 0x9 + beq _080E7260 + cmp r0, 0x9 + bgt _080E7234 + cmp r0, 0x8 + beq _080E7244 + b _080E723C + .align 2, 0 +_080E7230: .4byte 0x02001000 +_080E7234: + cmp r0, 0xA + beq _080E7276 + cmp r0, 0xB + beq _080E7288 +_080E723C: + ldrh r0, [r1, 0x24] + adds r0, 0x1 + strh r0, [r1, 0x24] + b _080E7288 +_080E7244: + movs r0, 0 + bl sub_80E8D8C + bl sub_80E8504 + bl sub_80E9AD4 + bl sub_80E68E8 + bl sub_80E88F0 + bl sub_80E9E98 + b _080E726E +_080E7260: + bl sub_80EA050 + lsls r0, 24 + cmp r0, 0 + beq _080E7288 + bl sub_80E9C94 +_080E726E: + ldrh r0, [r4, 0x24] + adds r0, 0x1 + strh r0, [r4, 0x24] + b _080E7288 +_080E7276: + movs r0, 0x1 + bl sub_80E87CC + movs r0, 0x1 + bl sub_80E8958 + ldr r0, _080E7290 @ =sub_80E7294 + bl sub_80E682C +_080E7288: + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_080E7290: .4byte sub_80E7294 + thumb_func_end sub_80E7218 + + thumb_func_start sub_80E7294 +sub_80E7294: @ 80E7294 + push {r4,lr} + bl sub_80E7B40 + adds r1, r0, 0 + ldr r4, _080E72CC @ =0x02001000 + ldr r2, _080E72D0 @ =0x000001b9 + adds r0, r4, r2 + strb r1, [r0] + adds r2, 0x7 + adds r0, r4, r2 + ldrb r0, [r0] + lsls r0, 24 + asrs r0, 24 + cmp r0, 0 + beq _080E72DC + movs r0, 0x5 + bl PlaySE + movs r1, 0xE2 + lsls r1, 1 + adds r0, r4, r1 + ldr r1, _080E72D4 @ =sub_80E7294 + str r1, [r0] + ldr r0, _080E72D8 @ =sub_80E7458 + bl sub_80E682C + b _080E731A + .align 2, 0 +_080E72CC: .4byte 0x02001000 +_080E72D0: .4byte 0x000001b9 +_080E72D4: .4byte sub_80E7294 +_080E72D8: .4byte sub_80E7458 +_080E72DC: + lsls r0, r1, 24 + cmp r0, 0 + beq _080E72E8 + movs r0, 0x5 + bl PlaySE +_080E72E8: + ldr r0, _080E7304 @ =gMain + ldrh r1, [r0, 0x2E] + movs r0, 0x1 + ands r0, r1 + cmp r0, 0 + beq _080E730C + movs r0, 0x5 + bl PlaySE + ldr r0, _080E7308 @ =sub_80E7324 + bl sub_80E682C + b _080E731A + .align 2, 0 +_080E7304: .4byte gMain +_080E7308: .4byte sub_80E7324 +_080E730C: + movs r0, 0x2 + ands r0, r1 + cmp r0, 0 + beq _080E731A + ldr r0, _080E7320 @ =sub_80E73D0 + bl sub_80E682C +_080E731A: + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_080E7320: .4byte sub_80E73D0 + thumb_func_end sub_80E7294 + + thumb_func_start sub_80E7324 +sub_80E7324: @ 80E7324 + push {lr} + ldr r0, _080E733C @ =0x02001000 + ldrh r1, [r0, 0x24] + adds r2, r0, 0 + cmp r1, 0x4 + bhi _080E73C6 + lsls r0, r1, 2 + ldr r1, _080E7340 @ =_080E7344 + adds r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_080E733C: .4byte 0x02001000 +_080E7340: .4byte _080E7344 + .align 2, 0 +_080E7344: + .4byte _080E7358 + .4byte _080E737C + .4byte _080E7384 + .4byte _080E738A + .4byte _080E73A4 +_080E7358: + bl sub_80E7DD0 + lsls r0, 24 + cmp r0, 0 + bne _080E7370 + ldr r0, _080E736C @ =sub_80E7294 + bl sub_80E682C + b _080E73C6 + .align 2, 0 +_080E736C: .4byte sub_80E7294 +_080E7370: + bl sub_80E88F0 + movs r0, 0 + bl sub_80E87CC + b _080E7394 +_080E737C: + ldrh r0, [r2, 0x24] + adds r0, 0x1 + strh r0, [r2, 0x24] + b _080E73C6 +_080E7384: + bl sub_80E9E98 + b _080E7394 +_080E738A: + bl sub_80EA184 + lsls r0, 24 + cmp r0, 0 + beq _080E73C6 +_080E7394: + ldr r1, _080E73A0 @ =0x02001000 + ldrh r0, [r1, 0x24] + adds r0, 0x1 + strh r0, [r1, 0x24] + b _080E73C6 + .align 2, 0 +_080E73A0: .4byte 0x02001000 +_080E73A4: + ldrb r0, [r2, 0x8] + cmp r0, 0x6 + bne _080E73C0 + bl sub_80E7FA8 + lsls r0, 24 + cmp r0, 0 + beq _080E73C0 + ldr r0, _080E73BC @ =sub_80E6D7C + bl sub_80E682C + b _080E73C6 + .align 2, 0 +_080E73BC: .4byte sub_80E6D7C +_080E73C0: + ldr r0, _080E73CC @ =sub_80E6AC4 + bl sub_80E682C +_080E73C6: + pop {r0} + bx r0 + .align 2, 0 +_080E73CC: .4byte sub_80E6AC4 + thumb_func_end sub_80E7324 + + thumb_func_start sub_80E73D0 +sub_80E73D0: @ 80E73D0 + push {lr} + ldr r0, _080E73E4 @ =0x02001000 + ldrh r0, [r0, 0x24] + cmp r0, 0x4 + bhi _080E744E + lsls r0, 2 + ldr r1, _080E73E8 @ =_080E73EC + adds r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_080E73E4: .4byte 0x02001000 +_080E73E8: .4byte _080E73EC + .align 2, 0 +_080E73EC: + .4byte _080E7400 + .4byte _080E740C + .4byte _080E7416 + .4byte _080E742C + .4byte _080E7444 +_080E7400: + movs r0, 0 + bl sub_80E87CC + bl sub_80E88F0 + b _080E7436 +_080E740C: + bl sub_80E9AD4 + bl sub_80E9E98 + b _080E7436 +_080E7416: + bl sub_80EA0E4 + lsls r0, 24 + cmp r0, 0 + beq _080E744E + movs r0, 0x1 + bl sub_80E8D8C + bl sub_80E9A14 + b _080E7436 +_080E742C: + bl sub_80E8420 + movs r0, 0 + bl sub_80E8958 +_080E7436: + ldr r1, _080E7440 @ =0x02001000 + ldrh r0, [r1, 0x24] + adds r0, 0x1 + strh r0, [r1, 0x24] + b _080E744E + .align 2, 0 +_080E7440: .4byte 0x02001000 +_080E7444: + bl sub_80E9974 + ldr r0, _080E7454 @ =sub_80E6FC8 + bl sub_80E682C +_080E744E: + pop {r0} + bx r0 + .align 2, 0 +_080E7454: .4byte sub_80E6FC8 + thumb_func_end sub_80E73D0 + + thumb_func_start sub_80E7458 +sub_80E7458: @ 80E7458 + push {r4,r5,lr} + ldr r4, _080E7468 @ =0x02001000 + ldrh r5, [r4, 0x24] + cmp r5, 0 + beq _080E746C + cmp r5, 0x1 + beq _080E74A4 + b _080E7518 + .align 2, 0 +_080E7468: .4byte 0x02001000 +_080E746C: + movs r1, 0xE2 + lsls r1, 1 + adds r0, r4, r1 + ldr r1, [r0] + ldr r0, _080E7480 @ =sub_80E6FC8 + cmp r1, r0 + bne _080E7484 + bl sub_80E9D7C + b _080E7488 + .align 2, 0 +_080E7480: .4byte sub_80E6FC8 +_080E7484: + bl sub_80E9D00 +_080E7488: + ldr r4, _080E74A0 @ =0x02001000 + movs r2, 0xDF + lsls r2, 1 + adds r0, r4, r2 + ldrb r0, [r0] + bl sub_80E9E08 + ldrh r0, [r4, 0x24] + adds r0, 0x1 + strh r0, [r4, 0x24] + b _080E7518 + .align 2, 0 +_080E74A0: .4byte 0x02001000 +_080E74A4: + bl sub_80E9E54 + lsls r0, 24 + cmp r0, 0 + beq _080E7518 + movs r1, 0xE2 + lsls r1, 1 + adds r0, r4, r1 + ldr r1, [r0] + ldr r0, _080E74DC @ =sub_80E6FC8 + cmp r1, r0 + bne _080E74E4 + bl sub_80E9D7C + ldr r2, _080E74E0 @ =0x000001b5 + adds r1, r4, r2 + adds r2, 0xB + adds r0, r4, r2 + ldrb r0, [r0] + ldrb r2, [r1] + adds r0, r2 + strb r0, [r1] + bl sub_80E7A98 + adds r0, r4, 0 + adds r0, 0x96 + b _080E74FE + .align 2, 0 +_080E74DC: .4byte sub_80E6FC8 +_080E74E0: .4byte 0x000001b5 +_080E74E4: + ldr r0, _080E7520 @ =0x00009d55 + adds r1, r4, r0 + movs r2, 0xE0 + lsls r2, 1 + adds r0, r4, r2 + ldrb r0, [r0] + ldrb r2, [r1] + adds r0, r2 + strb r0, [r1] + bl sub_80E7D30 + ldr r1, _080E7524 @ =0x000001b9 + adds r0, r4, r1 +_080E74FE: + strb r5, [r0] + ldr r1, _080E7528 @ =0x02001000 + movs r0, 0xDF + lsls r0, 1 + adds r2, r1, r0 + movs r0, 0x2 + strb r0, [r2] + movs r2, 0xE2 + lsls r2, 1 + adds r0, r1, r2 + ldr r0, [r0] + bl sub_80E682C +_080E7518: + pop {r4,r5} + pop {r0} + bx r0 + .align 2, 0 +_080E7520: .4byte 0x00009d55 +_080E7524: .4byte 0x000001b9 +_080E7528: .4byte 0x02001000 + thumb_func_end sub_80E7458 + + thumb_func_start sub_80E752C +sub_80E752C: @ 80E752C + push {r4,lr} + sub sp, 0x4 + ldr r4, _080E7540 @ =0x02001000 + ldrh r1, [r4, 0x24] + cmp r1, 0 + beq _080E7544 + cmp r1, 0x1 + beq _080E755C + b _080E756C + .align 2, 0 +_080E7540: .4byte 0x02001000 +_080E7544: + movs r0, 0x1 + negs r0, r0 + str r1, [sp] + movs r1, 0 + movs r2, 0 + movs r3, 0x10 + bl BeginNormalPaletteFade + ldrh r0, [r4, 0x24] + adds r0, 0x1 + strh r0, [r4, 0x24] + b _080E756C +_080E755C: + bl UpdatePaletteFade + lsls r0, 24 + cmp r0, 0 + bne _080E756C + ldr r0, [r4] + bl SetMainCallback2 +_080E756C: + add sp, 0x4 + pop {r4} + pop {r0} + bx r0 + thumb_func_end sub_80E752C + + thumb_func_start sub_80E7574 +sub_80E7574: @ 80E7574 + push {r4,r5,lr} + ldr r4, _080E75B8 @ =0x02001000 + ldrb r5, [r4, 0x8] + cmp r5, 0x1 + bne _080E75BC + adds r0, r4, 0 + adds r0, 0x86 + ldrb r0, [r0] + lsls r0, 24 + asrs r0, 24 + adds r1, r4, 0 + adds r1, 0x7E + adds r0, r1 + ldrb r0, [r0] + cmp r0, 0x2 + bne _080E75BC + adds r0, r4, 0 + adds r0, 0x27 + ldrb r0, [r0] + lsls r0, 1 + subs r1, 0x72 + adds r0, r1 + ldrh r0, [r0] + bl sub_80EB2D4 + lsls r0, 16 + lsrs r0, 16 + cmp r0, 0x7 + beq _080E75BC + adds r0, r4, 0 + adds r0, 0x7D + strb r5, [r0] + adds r1, r4, 0 + b _080E75C6 + .align 2, 0 +_080E75B8: .4byte 0x02001000 +_080E75BC: + ldr r1, _080E75D4 @ =0x02001000 + adds r2, r1, 0 + adds r2, 0x7D + movs r0, 0 + strb r0, [r2] +_080E75C6: + adds r1, 0x7D + movs r0, 0 + strb r0, [r1] + pop {r4,r5} + pop {r0} + bx r0 + .align 2, 0 +_080E75D4: .4byte 0x02001000 + thumb_func_end sub_80E7574 + + thumb_func_start sub_80E75D8 +sub_80E75D8: @ 80E75D8 + push {r4-r6,lr} + movs r4, 0 + ldr r2, _080E75FC @ =gMain + ldrh r1, [r2, 0x2E] + movs r0, 0x8 + ands r0, r1 + cmp r0, 0 + beq _080E7604 + ldr r1, _080E7600 @ =0x02001000 + adds r0, r1, 0 + adds r0, 0x84 + ldrb r0, [r0] + adds r2, r1, 0 + adds r2, 0x86 + strb r0, [r2] + adds r1, 0x85 + movs r0, 0x2 + b _080E768E + .align 2, 0 +_080E75FC: .4byte gMain +_080E7600: .4byte 0x02001000 +_080E7604: + ldrh r1, [r2, 0x30] + movs r0, 0x40 + ands r0, r1 + cmp r0, 0 + beq _080E7630 + ldr r2, _080E762C @ =0x02001000 + adds r1, r2, 0 + adds r1, 0x86 + ldrb r0, [r1] + subs r0, 0x1 + strb r0, [r1] + lsls r0, 24 + cmp r0, 0 + bge _080E765C + adds r0, r2, 0 + adds r0, 0x84 + ldrb r0, [r0] + strb r0, [r1] + b _080E765C + .align 2, 0 +_080E762C: .4byte 0x02001000 +_080E7630: + movs r0, 0x80 + ands r0, r1 + cmp r0, 0 + beq _080E7658 + ldr r0, _080E7684 @ =0x02001000 + adds r3, r0, 0 + adds r3, 0x86 + ldrb r1, [r3] + adds r1, 0x1 + strb r1, [r3] + adds r0, 0x84 + lsls r1, 24 + asrs r1, 24 + ldrb r0, [r0] + lsls r0, 24 + asrs r0, 24 + cmp r1, r0 + ble _080E7656 + strb r4, [r3] +_080E7656: + movs r4, 0x1 +_080E7658: + cmp r4, 0 + beq _080E76EA +_080E765C: + ldr r2, _080E7684 @ =0x02001000 + ldrb r3, [r2, 0x9] + cmp r3, 0x2 + bne _080E7692 + adds r1, r2, 0 + adds r1, 0x86 + adds r0, r2, 0 + adds r0, 0x84 + ldrb r1, [r1] + lsls r1, 24 + asrs r1, 24 + ldrb r0, [r0] + lsls r0, 24 + asrs r0, 24 + cmp r1, r0 + bne _080E7688 + adds r0, r2, 0 + adds r0, 0x85 + strb r3, [r0] + b _080E77BC + .align 2, 0 +_080E7684: .4byte 0x02001000 +_080E7688: + adds r1, r2, 0 + adds r1, 0x85 + movs r0, 0 +_080E768E: + strb r0, [r1] + b _080E77BC +_080E7692: + movs r0, 0x85 + adds r0, r2 + mov r12, r0 + adds r4, r2, 0 + adds r4, 0x83 + movs r1, 0 + ldrsb r1, [r0, r1] + ldrb r3, [r4] + movs r0, 0 + ldrsb r0, [r4, r0] + cmp r1, r0 + blt _080E76B0 + subs r0, r3, 0x1 + mov r1, r12 + strb r0, [r1] +_080E76B0: + adds r1, r2, 0 + adds r1, 0x86 + adds r0, r2, 0 + adds r0, 0x84 + ldrb r3, [r1] + ldrb r1, [r1] + lsls r1, 24 + asrs r1, 24 + ldrb r0, [r0] + lsls r0, 24 + asrs r0, 24 + cmp r1, r0 + beq _080E77BC + ldrb r0, [r4] + adds r4, r0, 0 + muls r4, r3 + adds r0, r4, 0 + mov r5, r12 + ldrb r5, [r5] + adds r0, r5 + lsls r0, 24 + lsrs r0, 24 + ldrb r1, [r2, 0xA] + cmp r0, r1 + bcc _080E77BC + subs r0, r1 + mov r6, r12 + strb r0, [r6] + b _080E77BC +_080E76EA: + ldrh r2, [r2, 0x30] + movs r0, 0x20 + ands r0, r2 + lsls r0, 16 + lsrs r4, r0, 16 + cmp r4, 0 + beq _080E7744 + ldr r2, _080E7728 @ =0x02001000 + adds r3, r2, 0 + adds r3, 0x85 + ldrb r0, [r3] + subs r0, 0x1 + strb r0, [r3] + lsls r0, 24 + cmp r0, 0 + bge _080E77BC + adds r1, r2, 0 + adds r1, 0x86 + adds r0, r2, 0 + adds r0, 0x84 + ldrb r4, [r1] + ldrb r1, [r1] + lsls r1, 24 + asrs r1, 24 + ldrb r0, [r0] + lsls r0, 24 + asrs r0, 24 + cmp r1, r0 + bne _080E772C + movs r0, 0x2 + b _080E77BA + .align 2, 0 +_080E7728: .4byte 0x02001000 +_080E772C: + adds r0, r2, 0 + adds r0, 0x83 + ldrb r0, [r0] + subs r1, r0, 0x1 + strb r1, [r3] + adds r5, r4, 0 + muls r5, r0 + adds r0, r5, 0 + adds r1, r0 + lsls r1, 24 + lsrs r0, r1, 24 + b _080E77B2 +_080E7744: + movs r0, 0x10 + ands r0, r2 + cmp r0, 0 + beq _080E77C0 + ldr r2, _080E777C @ =0x02001000 + adds r5, r2, 0 + adds r5, 0x86 + adds r0, r2, 0 + adds r0, 0x84 + movs r1, 0 + ldrsb r1, [r5, r1] + ldrb r0, [r0] + lsls r0, 24 + asrs r0, 24 + cmp r1, r0 + bne _080E7780 + adds r1, r2, 0 + adds r1, 0x85 + ldrb r0, [r1] + adds r0, 0x1 + strb r0, [r1] + lsls r0, 24 + asrs r0, 24 + cmp r0, 0x2 + ble _080E77BC + strb r4, [r1] + b _080E77BC + .align 2, 0 +_080E777C: .4byte 0x02001000 +_080E7780: + adds r3, r2, 0 + adds r3, 0x85 + ldrb r0, [r3] + adds r0, 0x1 + strb r0, [r3] + movs r6, 0x83 + adds r6, r2 + mov r12, r6 + lsls r0, 24 + asrs r0, 24 + movs r1, 0 + ldrsb r1, [r6, r1] + cmp r0, r1 + blt _080E779E + strb r4, [r3] +_080E779E: + ldrb r1, [r5] + mov r4, r12 + ldrb r0, [r4] + adds r5, r0, 0 + muls r5, r1 + adds r0, r5, 0 + ldrb r6, [r3] + adds r0, r6 + lsls r0, 24 + lsrs r0, 24 +_080E77B2: + ldrb r1, [r2, 0xA] + cmp r0, r1 + bcc _080E77BC + subs r0, r1 +_080E77BA: + strb r0, [r3] +_080E77BC: + movs r0, 0x1 + b _080E77C2 +_080E77C0: + movs r0, 0 +_080E77C2: + pop {r4-r6} + pop {r1} + bx r1 + thumb_func_end sub_80E75D8 + + thumb_func_start sub_80E77C8 +sub_80E77C8: @ 80E77C8 + push {r4-r7,lr} + mov r7, r9 + mov r6, r8 + push {r6,r7} + movs r7, 0 + ldr r1, _080E780C @ =0x02001000 + ldr r2, _080E7810 @ =0x000001b7 + adds r0, r1, r2 + ldrb r0, [r0] + lsls r0, 24 + asrs r0, 24 + adds r3, r1, 0 + cmp r0, 0 + beq _080E783E + ldr r1, _080E7814 @ =gMain + ldrh r2, [r1, 0x30] + movs r0, 0x40 + ands r0, r2 + adds r6, r1, 0 + cmp r0, 0 + beq _080E7818 + movs r4, 0xD4 + lsls r4, 1 + adds r1, r3, r4 + ldrb r0, [r1] + subs r0, 0x1 + strb r0, [r1] + lsls r0, 24 + cmp r0, 0 + ble _080E7806 + b _080E7948 +_080E7806: + movs r0, 0x3 + strb r0, [r1] + b _080E7948 + .align 2, 0 +_080E780C: .4byte 0x02001000 +_080E7810: .4byte 0x000001b7 +_080E7814: .4byte gMain +_080E7818: + movs r0, 0x80 + ands r0, r2 + cmp r0, 0 + bne _080E7822 + b _080E7950 +_080E7822: + movs r5, 0xD4 + lsls r5, 1 + adds r1, r3, r5 + ldrb r0, [r1] + adds r0, 0x1 + strb r0, [r1] + lsls r0, 24 + asrs r0, 24 + cmp r0, 0x3 + bgt _080E7838 + b _080E7948 +_080E7838: + movs r0, 0x1 + strb r0, [r1] + b _080E7948 +_080E783E: + adds r0, r3, 0 + adds r0, 0x26 + ldrb r0, [r0] + cmp r0, 0x1 + bne _080E789A + movs r4, 0 + ldr r1, _080E7870 @ =gMain + ldrh r2, [r1, 0x30] + movs r0, 0x40 + ands r0, r2 + adds r6, r1, 0 + cmp r0, 0 + beq _080E7874 + movs r6, 0xD4 + lsls r6, 1 + adds r1, r3, r6 + ldrb r0, [r1] + subs r0, 0x1 + strb r0, [r1] + lsls r0, 24 + cmp r0, 0 + bge _080E7944 + movs r0, 0x3 + strb r0, [r1] + b _080E7944 + .align 2, 0 +_080E7870: .4byte gMain +_080E7874: + movs r0, 0x80 + ands r0, r2 + cmp r0, 0 + beq _080E7894 + movs r0, 0xD4 + lsls r0, 1 + adds r1, r3, r0 + ldrb r0, [r1] + adds r0, 0x1 + strb r0, [r1] + lsls r0, 24 + asrs r0, 24 + cmp r0, 0x3 + ble _080E7892 + strb r7, [r1] +_080E7892: + movs r4, 0x1 +_080E7894: + cmp r4, 0 + beq _080E7950 + b _080E7944 +_080E789A: + movs r4, 0 + movs r1, 0xE0 + lsls r1, 1 + adds r5, r3, r1 + strb r7, [r5] + ldr r1, _080E78E0 @ =gMain + ldrh r2, [r1, 0x30] + movs r0, 0x40 + ands r0, r2 + adds r6, r1, 0 + cmp r0, 0 + beq _080E78E8 + movs r2, 0xD4 + lsls r2, 1 + adds r1, r3, r2 + ldrb r2, [r1] + movs r0, 0 + ldrsb r0, [r1, r0] + cmp r0, 0 + bne _080E78C4 + b _080E7A88 +_080E78C4: + subs r0, r2, 0x1 + strb r0, [r1] + ldr r4, _080E78E4 @ =0x000001b5 + adds r1, r3, r4 + lsls r0, 24 + asrs r0, 24 + ldrb r1, [r1] + lsls r1, 24 + asrs r1, 24 + cmp r0, r1 + bge _080E7932 + movs r0, 0xFF + strb r0, [r5] + b _080E7932 + .align 2, 0 +_080E78E0: .4byte gMain +_080E78E4: .4byte 0x000001b5 +_080E78E8: + movs r0, 0x80 + ands r0, r2 + cmp r0, 0 + beq _080E792E + movs r0, 0xD4 + lsls r0, 1 + adds r2, r3, r0 + movs r1, 0 + ldrsb r1, [r2, r1] + movs r4, 0xDB + lsls r4, 1 + adds r0, r3, r4 + ldrb r0, [r0] + lsls r0, 24 + asrs r0, 24 + subs r0, 0x1 + cmp r1, r0 + blt _080E790E + b _080E7A88 +_080E790E: + ldrb r0, [r2] + adds r0, 0x1 + strb r0, [r2] + movs r1, 0 + ldrsb r1, [r2, r1] + ldr r2, _080E794C @ =0x000001b5 + adds r0, r3, r2 + ldrb r0, [r0] + lsls r0, 24 + asrs r0, 24 + adds r0, 0x3 + cmp r1, r0 + ble _080E792C + movs r0, 0x1 + strb r0, [r5] +_080E792C: + movs r4, 0x1 +_080E792E: + cmp r4, 0 + beq _080E7950 +_080E7932: + movs r4, 0xE0 + lsls r4, 1 + adds r0, r3, r4 + ldrb r0, [r0] + lsls r0, 24 + asrs r0, 24 + cmp r0, 0 + beq _080E7944 + b _080E7A88 +_080E7944: + bl sub_80E7A98 +_080E7948: + movs r0, 0x1 + b _080E7A8A + .align 2, 0 +_080E794C: .4byte 0x000001b5 +_080E7950: + ldrh r1, [r6, 0x30] + movs r0, 0x20 + ands r0, r1 + lsls r0, 16 + lsrs r6, r0, 16 + cmp r6, 0 + beq _080E7992 + ldr r5, _080E7974 @ =0x000001a9 + adds r2, r3, r5 + ldrb r1, [r2] + movs r0, 0 + ldrsb r0, [r2, r0] + cmp r0, 0 + beq _080E7978 + subs r0, r1, 0x1 + strb r0, [r2] + b _080E79E6 + .align 2, 0 +_080E7974: .4byte 0x000001a9 +_080E7978: + movs r6, 0xD4 + lsls r6, 1 + adds r0, r3, r6 + ldrb r0, [r0] + lsls r0, 24 + asrs r0, 24 + movs r4, 0xD5 + lsls r4, 1 + adds r1, r3, r4 + adds r0, r1 + ldrb r0, [r0] + strb r0, [r2] + b _080E79E6 +_080E7992: + movs r0, 0x10 + ands r0, r1 + cmp r0, 0 + beq _080E79E2 + ldr r5, _080E79D4 @ =0x000001b7 + adds r0, r3, r5 + ldrb r0, [r0] + lsls r0, 24 + asrs r0, 24 + cmp r0, 0 + bne _080E79CC + ldr r0, _080E79D8 @ =0x000001a9 + adds r4, r3, r0 + movs r1, 0xD4 + lsls r1, 1 + adds r0, r3, r1 + movs r1, 0 + ldrsb r1, [r0, r1] + movs r2, 0xD5 + lsls r2, 1 + adds r0, r3, r2 + adds r1, r0 + ldrb r5, [r4] + movs r2, 0 + ldrsb r2, [r4, r2] + movs r0, 0 + ldrsb r0, [r1, r0] + cmp r2, r0 + bne _080E79DC +_080E79CC: + ldr r4, _080E79D8 @ =0x000001a9 + adds r0, r3, r4 + strb r6, [r0] + b _080E79E0 + .align 2, 0 +_080E79D4: .4byte 0x000001b7 +_080E79D8: .4byte 0x000001a9 +_080E79DC: + adds r0, r5, 0x1 + strb r0, [r4] +_080E79E0: + movs r7, 0x1 +_080E79E2: + cmp r7, 0 + beq _080E7A88 +_080E79E6: + adds r2, r3, 0 + ldr r5, _080E7A48 @ =0x000001b7 + adds r7, r2, r5 + ldrb r6, [r7] + mov r9, r6 + movs r1, 0 + ldr r0, _080E7A4C @ =0x000001a9 + adds r0, r2 + mov r12, r0 + subs r5, 0xF + adds r4, r2, r5 + movs r0, 0 + ldrsb r0, [r4, r0] + movs r6, 0xD5 + lsls r6, 1 + adds r6, r2 + mov r8, r6 + add r0, r8 + mov r6, r12 + movs r5, 0 + ldrsb r5, [r6, r5] + ldrb r0, [r0] + lsls r0, 24 + asrs r0, 24 + cmp r5, r0 + bne _080E7A1C + movs r1, 0x1 +_080E7A1C: + strb r1, [r7] + cmp r1, 0 + beq _080E7A58 + ldr r0, _080E7A50 @ =0x000001b5 + adds r1, r2, r0 + ldrb r0, [r4] + ldrb r1, [r1] + subs r0, r1 + strb r0, [r4] + lsls r0, 24 + cmp r0, 0 + beq _080E7A36 + b _080E7948 +_080E7A36: + movs r0, 0x1 + strb r0, [r4] + ldr r1, _080E7A54 @ =0x000001ab + adds r0, r2, r1 + ldrb r0, [r0] + mov r2, r12 + strb r0, [r2] + b _080E7948 + .align 2, 0 +_080E7A48: .4byte 0x000001b7 +_080E7A4C: .4byte 0x000001a9 +_080E7A50: .4byte 0x000001b5 +_080E7A54: .4byte 0x000001ab +_080E7A58: + mov r6, r9 + cmp r6, 0 + bne _080E7A60 + b _080E7948 +_080E7A60: + ldr r1, _080E7A84 @ =0x000001b5 + adds r0, r3, r1 + ldrb r0, [r0] + ldrb r2, [r4] + adds r0, r2 + strb r0, [r4] + cmp r5, 0 + bne _080E7A72 + b _080E7948 +_080E7A72: + movs r0, 0 + ldrsb r0, [r4, r0] + add r0, r8 + ldrb r0, [r0] + subs r0, 0x1 + mov r4, r12 + strb r0, [r4] + b _080E7948 + .align 2, 0 +_080E7A84: .4byte 0x000001b5 +_080E7A88: + movs r0, 0 +_080E7A8A: + pop {r3,r4} + mov r8, r3 + mov r9, r4 + pop {r4-r7} + pop {r1} + bx r1 + thumb_func_end sub_80E77C8 + + thumb_func_start sub_80E7A98 +sub_80E7A98: @ 80E7A98 + push {lr} + ldr r1, _080E7ACC @ =0x02001000 + ldr r0, _080E7AD0 @ =0x000001a9 + adds r3, r1, r0 + movs r2, 0xD4 + lsls r2, 1 + adds r0, r1, r2 + ldrb r0, [r0] + lsls r0, 24 + asrs r0, 24 + adds r2, 0x2 + adds r1, r2 + adds r0, r1 + movs r1, 0 + ldrsb r1, [r3, r1] + ldrb r2, [r0] + ldrb r0, [r0] + lsls r0, 24 + asrs r0, 24 + cmp r1, r0 + blt _080E7AC6 + subs r0, r2, 0x1 + strb r0, [r3] +_080E7AC6: + pop {r0} + bx r0 + .align 2, 0 +_080E7ACC: .4byte 0x02001000 +_080E7AD0: .4byte 0x000001a9 + thumb_func_end sub_80E7A98 + + thumb_func_start sub_80E7AD4 +sub_80E7AD4: @ 80E7AD4 + push {lr} + ldr r3, _080E7B08 @ =0x02001000 + adds r0, r3, 0 + adds r0, 0x26 + ldrb r0, [r0] + cmp r0, 0 + bne _080E7B10 + ldr r1, _080E7B0C @ =0x000001a9 + adds r0, r3, r1 + movs r1, 0 + ldrsb r1, [r0, r1] + movs r2, 0xD4 + lsls r2, 1 + adds r0, r3, r2 + ldrb r0, [r0] + lsls r0, 24 + asrs r0, 24 + lsls r0, 1 + adds r1, r0 + adds r0, r3, 0 + adds r0, 0x2A + adds r1, r0 + ldrb r1, [r1] + adds r2, 0x10 + b _080E7B34 + .align 2, 0 +_080E7B08: .4byte 0x02001000 +_080E7B0C: .4byte 0x000001a9 +_080E7B10: + ldr r1, _080E7B3C @ =0x000001a9 + adds r0, r3, r1 + movs r2, 0 + ldrsb r2, [r0, r2] + subs r1, 0x1 + adds r0, r3, r1 + movs r1, 0 + ldrsb r1, [r0, r1] + lsls r0, r1, 3 + subs r0, r1 + lsls r0, 1 + adds r2, r0 + adds r0, r3, 0 + adds r0, 0x40 + adds r2, r0 + ldrb r1, [r2] + movs r2, 0xDC + lsls r2, 1 +_080E7B34: + adds r0, r3, r2 + strb r1, [r0] + pop {r0} + bx r0 + .align 2, 0 +_080E7B3C: .4byte 0x000001a9 + thumb_func_end sub_80E7AD4 + + thumb_func_start sub_80E7B40 +sub_80E7B40: @ 80E7B40 + push {r4-r7,lr} + movs r5, 0 + ldr r2, _080E7B8C @ =0x02001000 + movs r0, 0xE0 + lsls r0, 1 + adds r6, r2, r0 + strb r5, [r6] + ldr r1, _080E7B90 @ =gMain + ldrh r4, [r1, 0x30] + movs r0, 0x40 + ands r0, r4 + adds r3, r2, 0 + adds r7, r1, 0 + cmp r0, 0 + beq _080E7B9C + ldr r2, _080E7B94 @ =0x00009cd0 + adds r1, r3, r2 + ldrb r2, [r1] + movs r0, 0 + ldrsb r0, [r1, r0] + cmp r0, 0 + bne _080E7B6E + b _080E7D1A +_080E7B6E: + subs r0, r2, 0x1 + strb r0, [r1] + ldr r4, _080E7B98 @ =0x00009d55 + adds r1, r3, r4 + lsls r0, 24 + asrs r0, 24 + ldrb r1, [r1] + lsls r1, 24 + asrs r1, 24 + cmp r0, r1 + bge _080E7BF2 + movs r0, 0xFF + strb r0, [r6] + b _080E7D1A + .align 2, 0 +_080E7B8C: .4byte 0x02001000 +_080E7B90: .4byte gMain +_080E7B94: .4byte 0x00009cd0 +_080E7B98: .4byte 0x00009d55 +_080E7B9C: + movs r0, 0x80 + ands r0, r4 + cmp r0, 0 + beq _080E7BEE + ldr r0, _080E7BE0 @ =0x00009cd0 + adds r2, r3, r0 + movs r1, 0 + ldrsb r1, [r2, r1] + ldr r4, _080E7BE4 @ =0x00009d54 + adds r0, r3, r4 + ldrb r0, [r0] + lsls r0, 24 + asrs r0, 24 + subs r0, 0x1 + cmp r1, r0 + blt _080E7BBE + b _080E7D1A +_080E7BBE: + ldrb r0, [r2] + adds r0, 0x1 + strb r0, [r2] + movs r1, 0 + ldrsb r1, [r2, r1] + ldr r2, _080E7BE8 @ =0x00009d55 + adds r0, r3, r2 + ldrb r0, [r0] + lsls r0, 24 + asrs r0, 24 + adds r0, 0x4 + cmp r1, r0 + blt _080E7BEC + movs r0, 0x1 + strb r0, [r6] + b _080E7D1A + .align 2, 0 +_080E7BE0: .4byte 0x00009cd0 +_080E7BE4: .4byte 0x00009d54 +_080E7BE8: .4byte 0x00009d55 +_080E7BEC: + movs r5, 0x1 +_080E7BEE: + cmp r5, 0 + beq _080E7BFA +_080E7BF2: + bl sub_80E7D30 +_080E7BF6: + movs r0, 0x1 + b _080E7D1C +_080E7BFA: + ldrh r1, [r7, 0x30] + movs r0, 0x20 + ands r0, r1 + lsls r0, 16 + lsrs r5, r0, 16 + cmp r5, 0 + beq _080E7C38 + ldr r4, _080E7C30 @ =0x00009cd1 + adds r2, r3, r4 + ldrb r0, [r2] + subs r0, 0x1 + strb r0, [r2] + lsls r0, 24 + cmp r0, 0 + bge _080E7BF6 + ldr r6, _080E7C34 @ =0x00009cd0 + adds r0, r3, r6 + ldrb r0, [r0] + lsls r0, 24 + asrs r0, 24 + adds r4, 0x1 + adds r1, r3, r4 + adds r0, r1 + ldrb r0, [r0] + subs r0, 0x1 + strb r0, [r2] + b _080E7BF6 + .align 2, 0 +_080E7C30: .4byte 0x00009cd1 +_080E7C34: .4byte 0x00009cd0 +_080E7C38: + movs r0, 0x10 + ands r0, r1 + cmp r0, 0 + beq _080E7C70 + ldr r6, _080E7C68 @ =0x00009cd1 + adds r4, r3, r6 + ldrb r0, [r4] + adds r0, 0x1 + strb r0, [r4] + ldr r2, _080E7C6C @ =0x00009cd0 + adds r1, r3, r2 + movs r2, 0 + ldrsb r2, [r1, r2] + adds r6, 0x1 + adds r1, r3, r6 + adds r2, r1 + lsls r0, 24 + asrs r0, 24 + movs r1, 0 + ldrsb r1, [r2, r1] + cmp r0, r1 + blt _080E7BF6 + strb r5, [r4] + b _080E7BF6 + .align 2, 0 +_080E7C68: .4byte 0x00009cd1 +_080E7C6C: .4byte 0x00009cd0 +_080E7C70: + ldrh r1, [r7, 0x2E] + movs r0, 0x8 + ands r0, r1 + cmp r0, 0 + beq _080E7CC4 + ldr r1, _080E7CBC @ =0x00009d55 + adds r0, r3, r1 + ldrb r1, [r0] + ldrb r0, [r0] + lsls r0, 24 + asrs r0, 24 + cmp r0, 0 + beq _080E7CA2 + negs r0, r1 + movs r4, 0xE0 + lsls r4, 1 + adds r2, r3, r4 + strb r0, [r2] + lsls r0, 24 + asrs r0, 24 + movs r1, 0x4 + negs r1, r1 + cmp r0, r1 + bge _080E7CA2 + strb r1, [r2] +_080E7CA2: + ldr r6, _080E7CC0 @ =0x00009cd0 + adds r1, r3, r6 + movs r2, 0xE0 + lsls r2, 1 + adds r0, r3, r2 + ldrb r0, [r0] + ldrb r4, [r1] + adds r0, r4 + strb r0, [r1] + movs r6, 0xDF + lsls r6, 1 + adds r1, r3, r6 + b _080E7D16 + .align 2, 0 +_080E7CBC: .4byte 0x00009d55 +_080E7CC0: .4byte 0x00009cd0 +_080E7CC4: + movs r0, 0x4 + ands r0, r1 + cmp r0, 0 + beq _080E7D1A + ldr r0, _080E7D24 @ =0x00009d55 + adds r4, r3, r0 + movs r1, 0 + ldrsb r1, [r4, r1] + ldr r6, _080E7D28 @ =0x00009d54 + adds r2, r3, r6 + movs r0, 0 + ldrsb r0, [r2, r0] + subs r0, 0x4 + cmp r1, r0 + bge _080E7CFE + ldrb r1, [r4] + adds r1, 0x4 + ldrb r0, [r2] + subs r0, r1 + movs r2, 0xE0 + lsls r2, 1 + adds r1, r3, r2 + strb r0, [r1] + lsls r0, 24 + asrs r0, 24 + cmp r0, 0x4 + ble _080E7CFE + movs r0, 0x4 + strb r0, [r1] +_080E7CFE: + ldr r4, _080E7D2C @ =0x00009cd0 + adds r1, r3, r4 + movs r6, 0xE0 + lsls r6, 1 + adds r0, r3, r6 + ldrb r0, [r0] + ldrb r2, [r1] + adds r0, r2 + strb r0, [r1] + movs r4, 0xDF + lsls r4, 1 + adds r1, r3, r4 +_080E7D16: + movs r0, 0x4 + strb r0, [r1] +_080E7D1A: + movs r0, 0 +_080E7D1C: + pop {r4-r7} + pop {r1} + bx r1 + .align 2, 0 +_080E7D24: .4byte 0x00009d55 +_080E7D28: .4byte 0x00009d54 +_080E7D2C: .4byte 0x00009cd0 + thumb_func_end sub_80E7B40 + + thumb_func_start sub_80E7D30 +sub_80E7D30: @ 80E7D30 + push {r4,lr} + ldr r0, _080E7D60 @ =0x02001000 + ldr r1, _080E7D64 @ =0x00009cd1 + adds r4, r0, r1 + ldr r2, _080E7D68 @ =0x00009cd0 + adds r1, r0, r2 + ldrb r1, [r1] + lsls r1, 24 + asrs r1, 24 + adds r2, 0x2 + adds r0, r2 + adds r1, r0 + movs r2, 0 + ldrsb r2, [r4, r2] + ldrb r3, [r1] + movs r0, 0 + ldrsb r0, [r1, r0] + cmp r2, r0 + blt _080E7D5A + subs r0, r3, 0x1 + strb r0, [r4] +_080E7D5A: + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_080E7D60: .4byte 0x02001000 +_080E7D64: .4byte 0x00009cd1 +_080E7D68: .4byte 0x00009cd0 + thumb_func_end sub_80E7D30 + + thumb_func_start sub_80E7D6C +sub_80E7D6C: @ 80E7D6C + push {r4,r5,lr} + movs r4, 0 + ldr r0, _080E7D94 @ =0x02001000 + ldrb r1, [r0, 0xA] + cmp r4, r1 + bcs _080E7D8E + adds r5, r0, 0 +_080E7D7A: + adds r0, r4, 0 + ldr r1, _080E7D98 @ =0x0000ffff + bl sub_80E7F00 + adds r0, r4, 0x1 + lsls r0, 16 + lsrs r4, r0, 16 + ldrb r0, [r5, 0xA] + cmp r4, r0 + bcc _080E7D7A +_080E7D8E: + pop {r4,r5} + pop {r0} + bx r0 + .align 2, 0 +_080E7D94: .4byte 0x02001000 +_080E7D98: .4byte 0x0000ffff + thumb_func_end sub_80E7D6C + + thumb_func_start sub_80E7D9C +sub_80E7D9C: @ 80E7D9C + push {r4,r5,lr} + movs r2, 0 + ldr r0, _080E7DCC @ =0x02001000 + ldrb r1, [r0, 0xA] + cmp r2, r1 + bcs _080E7DC6 + adds r3, r0, 0 + ldr r4, [r3, 0x4] + adds r5, r3, 0 + adds r5, 0xC +_080E7DB0: + lsls r0, r2, 1 + adds r1, r0, r4 + adds r0, r5 + ldrh r0, [r0] + strh r0, [r1] + adds r0, r2, 0x1 + lsls r0, 16 + lsrs r2, r0, 16 + ldrb r0, [r3, 0xA] + cmp r2, r0 + bcc _080E7DB0 +_080E7DC6: + pop {r4,r5} + pop {r0} + bx r0 + .align 2, 0 +_080E7DCC: .4byte 0x02001000 + thumb_func_end sub_80E7D9C + + thumb_func_start sub_80E7DD0 +sub_80E7DD0: @ 80E7DD0 + push {r4,lr} + ldr r2, _080E7E28 @ =0x02001000 + ldr r1, _080E7E2C @ =0x00009cd1 + adds r0, r2, r1 + movs r1, 0 + ldrsb r1, [r0, r1] + lsls r1, 1 + ldr r3, _080E7E30 @ =0x00009cd0 + adds r0, r2, r3 + ldrb r0, [r0] + lsls r0, 24 + asrs r0, 24 + lsls r0, 2 + adds r1, r0 + adds r3, 0x86 + adds r0, r2, r3 + adds r1, r0 + ldrh r4, [r1] + adds r0, r2, 0 + adds r0, 0x7D + ldrb r0, [r0] + cmp r0, 0 + beq _080E7E34 + adds r0, r2, 0 + adds r0, 0x86 + ldrb r0, [r0] + lsls r0, 24 + asrs r0, 24 + adds r1, r2, 0 + adds r1, 0x7E + adds r0, r1 + ldrb r0, [r0] + cmp r0, 0x1 + bls _080E7E34 + adds r0, r4, 0 + bl sub_80EB2D4 + lsls r0, 16 + lsrs r0, 16 + cmp r0, 0x7 + bne _080E7E34 + movs r0, 0 + b _080E7E46 + .align 2, 0 +_080E7E28: .4byte 0x02001000 +_080E7E2C: .4byte 0x00009cd1 +_080E7E30: .4byte 0x00009cd0 +_080E7E34: + ldr r0, _080E7E4C @ =0x02001000 + adds r0, 0x27 + ldrb r0, [r0] + adds r1, r4, 0 + bl sub_80E7F00 + bl sub_80E95A4 + movs r0, 0x1 +_080E7E46: + pop {r4} + pop {r1} + bx r1 + .align 2, 0 +_080E7E4C: .4byte 0x02001000 + thumb_func_end sub_80E7DD0 + + thumb_func_start sub_80E7E50 +sub_80E7E50: @ 80E7E50 + push {r4-r7,lr} + mov r7, r10 + mov r6, r9 + mov r5, r8 + push {r5-r7} + sub sp, 0x8 + movs r5, 0 + movs r2, 0 + ldr r1, _080E7EF0 @ =0x02001000 + adds r3, r1, 0 + adds r3, 0x84 + movs r0, 0 + ldrsb r0, [r3, r0] + cmp r2, r0 + bge _080E7EDE + mov r8, r1 + adds r0, r1, 0 + str r0, [sp] +_080E7E74: + mov r0, r8 + adds r0, 0x7E + adds r0, r2, r0 + movs r1, 0 + strb r1, [r0] + movs r3, 0 + ldr r6, _080E7EF4 @ =0x02001083 + movs r0, 0 + ldrsb r0, [r6, r0] + adds r1, r2, 0x1 + str r1, [sp, 0x4] + cmp r3, r0 + bge _080E7ECE + ldr r6, [sp] + mov r12, r6 + movs r0, 0 + mov r10, r0 + ldr r1, _080E7EF4 @ =0x02001083 + mov r9, r1 + ldr r7, _080E7EF8 @ =0x0200100c + lsls r4, r2, 1 +_080E7E9E: + lsls r1, r5, 1 + adds r2, r1, r7 + mov r6, r12 + ldr r0, [r6, 0x4] + adds r1, r0 + ldrh r0, [r1] + strh r0, [r2] + adds r0, r3, r4 + mov r1, r12 + adds r1, 0x8C + adds r0, r1 + mov r1, r10 + strb r1, [r0] + adds r0, r5, 0x1 + lsls r0, 16 + lsrs r5, r0, 16 + adds r0, r3, 0x1 + lsls r0, 16 + lsrs r3, r0, 16 + mov r6, r9 + movs r0, 0 + ldrsb r0, [r6, r0] + cmp r3, r0 + blt _080E7E9E +_080E7ECE: + ldr r1, [sp, 0x4] + lsls r0, r1, 16 + lsrs r2, r0, 16 + ldr r6, _080E7EFC @ =0x02001084 + movs r0, 0 + ldrsb r0, [r6, r0] + cmp r2, r0 + blt _080E7E74 +_080E7EDE: + add sp, 0x8 + pop {r3-r5} + mov r8, r3 + mov r9, r4 + mov r10, r5 + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_080E7EF0: .4byte 0x02001000 +_080E7EF4: .4byte 0x02001083 +_080E7EF8: .4byte 0x0200100c +_080E7EFC: .4byte 0x02001084 + thumb_func_end sub_80E7E50 + + thumb_func_start sub_80E7F00 +sub_80E7F00: @ 80E7F00 + push {r4-r7,lr} + mov r7, r9 + mov r6, r8 + push {r6,r7} + lsls r0, 16 + lsrs r6, r0, 16 + lsls r1, 16 + lsrs r1, 16 + mov r9, r1 + ldr r7, _080E7F68 @ =0x02001000 + adds r0, r7, 0 + adds r0, 0x83 + movs r4, 0 + ldrsb r4, [r0, r4] + adds r0, r6, 0 + adds r1, r4, 0 + bl __divsi3 + lsls r0, 16 + lsrs r5, r0, 16 + adds r0, r6, 0 + adds r1, r4, 0 + bl __modsi3 + lsls r0, 16 + lsrs r0, 16 + mov r8, r0 + lsls r0, r6, 1 + adds r1, r7, 0 + adds r1, 0xC + adds r0, r1 + ldrh r0, [r0] + bl sub_80EB2D4 + adds r4, r0, 0 + lsls r4, 16 + lsrs r4, 16 + mov r0, r9 + bl sub_80EB2D4 + lsls r0, 16 + lsrs r3, r0, 16 + cmp r4, 0x7 + bne _080E7F6C + cmp r3, 0x7 + beq _080E7F7C + adds r1, r7, 0 + adds r1, 0x7E + adds r1, r5, r1 + ldrb r0, [r1] + subs r0, 0x1 + b _080E7F7A + .align 2, 0 +_080E7F68: .4byte 0x02001000 +_080E7F6C: + cmp r3, 0x7 + bne _080E7F7C + adds r1, r7, 0 + adds r1, 0x7E + adds r1, r5, r1 + ldrb r0, [r1] + adds r0, 0x1 +_080E7F7A: + strb r0, [r1] +_080E7F7C: + movs r3, 0 + ldr r2, _080E7FA4 @ =0x02001000 + lsls r0, r5, 1 + add r0, r8 + adds r1, r2, 0 + adds r1, 0x8C + adds r0, r1 + strb r3, [r0] + lsls r0, r6, 1 + adds r2, 0xC + adds r0, r2 + mov r1, r9 + strh r1, [r0] + pop {r3,r4} + mov r8, r3 + mov r9, r4 + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_080E7FA4: .4byte 0x02001000 + thumb_func_end sub_80E7F00 + + thumb_func_start sub_80E7FA8 +sub_80E7FA8: @ 80E7FA8 + push {r4-r7,lr} + mov r7, r9 + mov r6, r8 + push {r6,r7} + movs r0, 0 + mov r8, r0 + movs r5, 0 + ldr r0, _080E8040 @ =0x02001000 + ldrb r1, [r0, 0xA] + cmp r8, r1 + bcs _080E802E + ldr r3, _080E8044 @ =0x0000a140 + adds r6, r0, r3 + ldr r1, _080E8048 @ =0x0000a16d + adds r1, r0 + mov r9, r1 +_080E7FC8: + ldr r3, _080E804C @ =0xffff5ec0 + adds r7, r6, r3 + ldr r0, [r7, 0x4] + lsls r4, r5, 1 + adds r0, r4, r0 + ldrh r1, [r0] + adds r0, r6, 0 + movs r2, 0 + bl sub_80EB218 + ldr r1, _080E8050 @ =0xffff5ecc + adds r0, r6, r1 + adds r0, r4 + ldrh r1, [r0] + mov r0, r9 + movs r2, 0 + bl sub_80EB218 + adds r1, r6, 0 + mov r2, r9 + ldrb r0, [r1] + adds r4, r5, 0x1 + ldrb r3, [r2] + cmp r0, r3 + bne _080E8018 + adds r3, r7, 0 + cmp r0, 0xFF + beq _080E8010 +_080E8000: + adds r1, 0x1 + adds r2, 0x1 + ldrb r0, [r1] + ldrb r5, [r2] + cmp r0, r5 + bne _080E8018 + cmp r0, 0xFF + bne _080E8000 +_080E8010: + ldrb r0, [r1] + ldrb r2, [r2] + cmp r0, r2 + beq _080E8024 +_080E8018: + mov r0, r8 + adds r0, 0x1 + lsls r0, 16 + lsrs r0, 16 + mov r8, r0 + ldr r3, _080E8040 @ =0x02001000 +_080E8024: + lsls r0, r4, 16 + lsrs r5, r0, 16 + ldrb r3, [r3, 0xA] + cmp r5, r3 + bcc _080E7FC8 +_080E802E: + mov r1, r8 + lsls r0, r1, 24 + lsrs r0, 24 + pop {r3,r4} + mov r8, r3 + mov r9, r4 + pop {r4-r7} + pop {r1} + bx r1 + .align 2, 0 +_080E8040: .4byte 0x02001000 +_080E8044: .4byte 0x0000a140 +_080E8048: .4byte 0x0000a16d +_080E804C: .4byte 0xffff5ec0 +_080E8050: .4byte 0xffff5ecc + thumb_func_end sub_80E7FA8 + + thumb_func_start sub_80E8054 +sub_80E8054: @ 80E8054 + push {r4,lr} + movs r1, 0 + ldr r2, _080E8078 @ =0x02001000 + ldrb r0, [r2, 0xA] + cmp r1, r0 + bcs _080E808A + adds r4, r2, 0 + adds r4, 0xC + ldr r3, _080E807C @ =0x0000ffff + adds r2, r0, 0 +_080E8068: + lsls r0, r1, 1 + adds r0, r4 + ldrh r0, [r0] + cmp r0, r3 + beq _080E8080 + movs r0, 0 + b _080E808C + .align 2, 0 +_080E8078: .4byte 0x02001000 +_080E807C: .4byte 0x0000ffff +_080E8080: + adds r0, r1, 0x1 + lsls r0, 16 + lsrs r1, r0, 16 + cmp r1, r2 + bcc _080E8068 +_080E808A: + movs r0, 0x1 +_080E808C: + pop {r4} + pop {r1} + bx r1 + thumb_func_end sub_80E8054 + + thumb_func_start sub_80E8094 +sub_80E8094: @ 80E8094 + push {r4-r7,lr} + movs r5, 0 + ldr r6, _080E80C4 @ =0x0200b140 + adds r7, r6, 0 + adds r7, 0x2D +_080E809E: + lsls r4, r5, 1 + ldr r1, _080E80C8 @ =0xffff5ecc + adds r0, r6, r1 + adds r0, r4 + ldrh r1, [r0] + adds r0, r6, 0 + movs r2, 0 + bl sub_80EB218 + ldr r0, _080E80CC @ =gMysteryEventPhrase + adds r4, r0 + ldrh r1, [r4] + adds r0, r7, 0 + movs r2, 0 + bl sub_80EB218 + adds r3, r6, 0 + adds r4, r7, 0 + b _080E80D8 + .align 2, 0 +_080E80C4: .4byte 0x0200b140 +_080E80C8: .4byte 0xffff5ecc +_080E80CC: .4byte gMysteryEventPhrase +_080E80D0: + adds r4, 0x1 + adds r3, 0x1 + cmp r2, r1 + bne _080E80F4 +_080E80D8: + ldrb r2, [r3] + adds r0, r2, 0 + cmp r0, 0xFF + beq _080E80EE + ldrb r1, [r4] + adds r0, r1, 0 + cmp r0, 0xFF + bne _080E80D0 + ldrb r0, [r3] + cmp r0, 0xFF + bne _080E80F4 +_080E80EE: + ldrb r0, [r4] + cmp r0, 0xFF + beq _080E80F8 +_080E80F4: + movs r0, 0 + b _080E8104 +_080E80F8: + adds r0, r5, 0x1 + lsls r0, 16 + lsrs r5, r0, 16 + cmp r5, 0x3 + bls _080E809E + movs r0, 0x1 +_080E8104: + pop {r4-r7} + pop {r1} + bx r1 + thumb_func_end sub_80E8094 + + thumb_func_start sub_80E810C +sub_80E810C: @ 80E810C + push {r4-r7,lr} + mov r7, r10 + mov r6, r9 + mov r5, r8 + push {r5-r7} + movs r5, 0 + ldr r6, _080E8198 @ =0x0200b19a + ldr r0, _080E819C @ =0xffff5e66 + adds r0, r6 + mov r9, r0 + movs r1, 0 + mov r8, r1 + adds r7, r6, 0 + adds r7, 0x80 + ldr r2, _080E81A0 @ =gBerryMasterWifePhrases + mov r10, r2 +_080E812C: + mov r0, r9 + ldrh r1, [r0, 0xC] + adds r0, r6, 0 + movs r2, 0 + bl sub_80EB218 + mov r1, r8 + strb r1, [r0] + adds r0, 0x1 + mov r2, r9 + ldrh r1, [r2, 0xE] + movs r2, 0 + bl sub_80EB218 + lsls r4, r5, 2 + mov r1, r10 + adds r0, r4, r1 + ldrh r1, [r0] + adds r0, r7, 0 + movs r2, 0 + bl sub_80EB218 + mov r2, r8 + strb r2, [r0] + adds r0, 0x1 + ldr r1, _080E81A4 @ =0x083e7686 + adds r4, r1 + ldrh r1, [r4] + movs r2, 0 + bl sub_80EB218 + adds r0, r6, 0 + adds r3, r7, 0 + adds r4, r5, 0x1 +_080E8170: + ldrb r2, [r0] + cmp r2, 0xFF + beq _080E818A + ldrb r1, [r3] + cmp r1, 0xFF + beq _080E8184 + adds r3, 0x1 + adds r0, 0x1 + cmp r2, r1 + beq _080E8170 +_080E8184: + ldrb r0, [r0] + cmp r0, 0xFF + bne _080E81A8 +_080E818A: + ldrb r0, [r3] + cmp r0, 0xFF + bne _080E81A8 + lsls r0, r4, 24 + lsrs r0, 24 + b _080E81B2 + .align 2, 0 +_080E8198: .4byte 0x0200b19a +_080E819C: .4byte 0xffff5e66 +_080E81A0: .4byte gBerryMasterWifePhrases +_080E81A4: .4byte 0x083e7686 +_080E81A8: + lsls r0, r4, 16 + lsrs r5, r0, 16 + cmp r5, 0x4 + bls _080E812C + movs r0, 0 +_080E81B2: + pop {r3-r5} + mov r8, r3 + mov r9, r4 + mov r10, r5 + pop {r4-r7} + pop {r1} + bx r1 + thumb_func_end sub_80E810C + + thumb_func_start sub_80E81C0 +sub_80E81C0: @ 80E81C0 + push {r4,lr} + ldr r0, _080E81EC @ =gStringVar2 + ldr r4, _080E81F0 @ =0x02001000 + ldr r2, _080E81F4 @ =0x00009fa8 + adds r1, r4, r2 + ldrh r1, [r1] + movs r2, 0 + bl sub_80EB218 + movs r1, 0 + strb r1, [r0] + adds r0, 0x1 + ldr r1, _080E81F8 @ =0x00009faa + adds r4, r1 + ldrh r1, [r4] + movs r2, 0 + bl sub_80EB218 + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_080E81EC: .4byte gStringVar2 +_080E81F0: .4byte 0x02001000 +_080E81F4: .4byte 0x00009fa8 +_080E81F8: .4byte 0x00009faa + thumb_func_end sub_80E81C0 + + thumb_func_start sub_80E81FC +sub_80E81FC: @ 80E81FC + push {lr} + movs r0, 0x5 + bl PlaySE + bl sub_80E95A4 + movs r0, 0 + movs r1, 0 + movs r2, 0x1D + movs r3, 0xD + bl MenuZeroFillWindowRect + pop {r0} + bx r0 + thumb_func_end sub_80E81FC + + thumb_func_start sub_80E8218 +sub_80E8218: @ 80E8218 + push {r4,r5,lr} + sub sp, 0x40 + mov r1, sp + ldr r0, _080E8260 @ =gSpriteSheets_Interview + ldm r0!, {r2-r4} + stm r1!, {r2-r4} + ldm r0!, {r2,r3,r5} + stm r1!, {r2,r3,r5} + ldm r0!, {r2,r4,r5} + stm r1!, {r2,r4,r5} + ldr r0, [r0] + str r0, [r1] + add r4, sp, 0x28 + adds r1, r4, 0 + ldr r0, _080E8264 @ =gSpritePalettes_Interview + ldm r0!, {r2,r3,r5} + stm r1!, {r2,r3,r5} + ldm r0!, {r2,r3,r5} + stm r1!, {r2,r3,r5} + mov r0, sp + bl LoadSpriteSheets + adds r0, r4, 0 + bl LoadSpritePalettes + bl sub_80E8268 + bl sub_80E8818 + bl sub_80E8A7C + add sp, 0x40 + pop {r4,r5} + pop {r0} + bx r0 + .align 2, 0 +_080E8260: .4byte gSpriteSheets_Interview +_080E8264: .4byte gSpritePalettes_Interview + thumb_func_end sub_80E8218 + + thumb_func_start sub_80E8268 +sub_80E8268: @ 80E8268 + push {lr} + ldr r0, _080E82B0 @ =gSpriteTemplate_83DBBFC + movs r1, 0 + movs r2, 0 + movs r3, 0 + bl CreateSprite + lsls r0, 24 + lsrs r0, 24 + ldr r2, _080E82B4 @ =gSprites + lsls r1, r0, 4 + adds r1, r0 + lsls r1, 2 + adds r1, r2 + ldr r0, _080E82B8 @ =gUnknown_083DB694 + ldr r3, [r0] + adds r0, r3, 0 + adds r0, 0x8A + ldrh r0, [r0] + lsls r0, 3 + adds r0, 0x8 + movs r2, 0 + strh r0, [r1, 0x22] + adds r0, r3, 0 + adds r0, 0x88 + ldrh r0, [r0] + lsls r0, 3 + adds r0, 0x4 + strh r0, [r1, 0x20] + strh r2, [r1, 0x2E] + strh r2, [r1, 0x30] + adds r0, r3, 0 + adds r0, 0x98 + str r1, [r0] + pop {r0} + bx r0 + .align 2, 0 +_080E82B0: .4byte gSpriteTemplate_83DBBFC +_080E82B4: .4byte gSprites +_080E82B8: .4byte gUnknown_083DB694 + thumb_func_end sub_80E8268 + + thumb_func_start sub_80E82BC +sub_80E82BC: @ 80E82BC + push {r4-r7,lr} + adds r3, r0, 0 + movs r1, 0x30 + ldrsh r0, [r3, r1] + cmp r0, 0 + bne _080E838C + ldr r0, _080E8334 @ =gUnknown_083DB694 + ldr r2, [r0] + adds r1, r2, 0 + adds r1, 0x87 + ldrb r1, [r1] + mov r12, r0 + cmp r1, 0 + beq _080E836C + adds r0, r2, 0 + adds r0, 0x86 + ldrb r0, [r0] + lsls r0, 24 + asrs r0, 24 + lsls r0, 16 + lsrs r5, r0, 16 + adds r0, r2, 0 + adds r0, 0x85 + ldrb r0, [r0] + lsls r0, 24 + asrs r0, 24 + lsls r0, 16 + lsrs r4, r0, 16 + movs r7, 0 + movs r1, 0 + cmp r7, r4 + bcs _080E8316 + lsls r6, r5, 1 + adds r2, 0x8C +_080E8300: + adds r0, r1, r6 + adds r0, r2, r0 + ldrb r0, [r0] + adds r0, r7, r0 + lsls r0, 16 + lsrs r7, r0, 16 + adds r0, r1, 0x1 + lsls r0, 16 + lsrs r1, r0, 16 + cmp r1, r4 + bcc _080E8300 +_080E8316: + mov r0, r12 + ldr r2, [r0] + adds r0, r2, 0 + adds r0, 0x84 + ldrb r0, [r0] + lsls r0, 24 + asrs r0, 24 + cmp r5, r0 + bne _080E8338 + movs r0, 0x60 + strh r0, [r3, 0x22] + lsls r0, r4, 3 + subs r0, r4 + adds r0, 0x3 + b _080E8356 + .align 2, 0 +_080E8334: .4byte gUnknown_083DB694 +_080E8338: + adds r1, r2, 0 + adds r1, 0x8A + lsls r0, r5, 1 + ldrh r1, [r1] + adds r0, r1 + lsls r0, 3 + adds r0, 0x8 + strh r0, [r3, 0x22] + adds r0, r2, 0 + adds r0, 0x88 + ldrh r0, [r0] + adds r0, r7 + movs r1, 0xB + muls r1, r4 + adds r0, r1 +_080E8356: + lsls r0, 3 + adds r0, 0x4 + strh r0, [r3, 0x20] + movs r1, 0 + ldr r0, _080E8368 @ =0x0000fffa + strh r0, [r3, 0x24] + strh r1, [r3, 0x2E] + b _080E838C + .align 2, 0 +_080E8368: .4byte 0x0000fffa +_080E836C: + ldrh r0, [r3, 0x2E] + adds r0, 0x1 + strh r0, [r3, 0x2E] + lsls r0, 16 + asrs r0, 16 + cmp r0, 0x2 + ble _080E838C + strh r1, [r3, 0x2E] + ldrh r0, [r3, 0x24] + adds r0, 0x1 + strh r0, [r3, 0x24] + lsls r0, 16 + cmp r0, 0 + ble _080E838C + ldr r0, _080E8394 @ =0x0000fffa + strh r0, [r3, 0x24] +_080E838C: + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_080E8394: .4byte 0x0000fffa + thumb_func_end sub_80E82BC + + thumb_func_start sub_80E8398 +sub_80E8398: @ 80E8398 + push {lr} + lsls r0, 24 + lsrs r3, r0, 24 + cmp r3, 0x1 + beq _080E83D4 + cmp r3, 0x1 + bgt _080E83AC + cmp r3, 0 + beq _080E83B2 + b _080E8416 +_080E83AC: + cmp r3, 0x2 + beq _080E83F8 + b _080E8416 +_080E83B2: + ldr r0, _080E83D0 @ =gUnknown_083DB694 + ldr r0, [r0] + adds r0, 0x98 + ldr r1, [r0] + strh r3, [r1, 0x30] + ldr r1, [r0] + strh r3, [r1, 0x24] + ldr r1, [r0] + adds r1, 0x3E + ldrb r2, [r1] + movs r0, 0x5 + negs r0, r0 + ands r0, r2 + b _080E8414 + .align 2, 0 +_080E83D0: .4byte gUnknown_083DB694 +_080E83D4: + ldr r0, _080E83F4 @ =gUnknown_083DB694 + ldr r1, [r0] + adds r1, 0x98 + ldr r0, [r1] + movs r2, 0 + strh r3, [r0, 0x30] + ldr r0, [r1] + strh r2, [r0, 0x24] + ldr r1, [r1] + adds r1, 0x3E + ldrb r2, [r1] + movs r0, 0x5 + negs r0, r0 + ands r0, r2 + b _080E8414 + .align 2, 0 +_080E83F4: .4byte gUnknown_083DB694 +_080E83F8: + ldr r0, _080E841C @ =gUnknown_083DB694 + ldr r1, [r0] + adds r1, 0x98 + ldr r2, [r1] + movs r3, 0 + movs r0, 0x1 + strh r0, [r2, 0x30] + ldr r0, [r1] + strh r3, [r0, 0x24] + ldr r1, [r1] + adds r1, 0x3E + ldrb r0, [r1] + movs r2, 0x4 + orrs r0, r2 +_080E8414: + strb r0, [r1] +_080E8416: + pop {r0} + bx r0 + .align 2, 0 +_080E841C: .4byte gUnknown_083DB694 + thumb_func_end sub_80E8398 + + thumb_func_start sub_80E8420 +sub_80E8420: @ 80E8420 + push {r4-r7,lr} + sub sp, 0x18 + mov r1, sp + ldr r0, _080E84E0 @ =gSpriteTemplate_83DBCAC + ldm r0!, {r2-r4} + stm r1!, {r2-r4} + ldm r0!, {r2-r4} + stm r1!, {r2-r4} + mov r0, sp + movs r1, 0 + movs r2, 0 + movs r3, 0x3 + bl CreateSprite + lsls r0, 24 + lsrs r0, 24 + ldr r1, _080E84E4 @ =gUnknown_083DB694 + ldr r7, [r1] + adds r5, r7, 0 + adds r5, 0x9C + lsls r1, r0, 4 + adds r1, r0 + lsls r1, 2 + ldr r4, _080E84E8 @ =gSprites + adds r1, r4 + str r1, [r5] + ldr r0, _080E84EC @ =gSpriteAnimTable_83DBC8C + str r0, [sp, 0x8] + ldr r0, _080E84F0 @ =sub_80E872C + str r0, [sp, 0x14] + mov r0, sp + movs r1, 0 + movs r2, 0 + movs r3, 0x4 + bl CreateSprite + lsls r0, 24 + lsrs r0, 24 + adds r6, r7, 0 + adds r6, 0xA0 + lsls r1, r0, 4 + adds r1, r0 + lsls r1, 2 + adds r1, r4 + str r1, [r6] + ldr r0, _080E84F4 @ =gSpriteAnimTable_83DBC9C + str r0, [sp, 0x8] + ldr r0, _080E84F8 @ =sub_80E8760 + str r0, [sp, 0x14] + mov r0, sp + movs r1, 0 + movs r2, 0 + movs r3, 0x5 + bl CreateSprite + lsls r0, 24 + lsrs r0, 24 + adds r2, r7, 0 + adds r2, 0xA4 + lsls r1, r0, 4 + adds r1, r0 + lsls r1, 2 + adds r1, r4 + str r1, [r2] + ldr r0, [r5] + movs r1, 0 + strh r1, [r0, 0x2E] + ldr r0, [r6] + strh r1, [r0, 0x2E] + ldr r0, [r2] + strh r1, [r0, 0x2E] + movs r0, 0x1 + bl IndexOfSpritePaletteTag + ldr r1, [r5] + lsls r0, 24 + lsrs r0, 20 + ldr r2, _080E84FC @ =0x00000101 + adds r0, r2 + strh r0, [r1, 0x34] + bl sub_80E8534 + adds r1, r7, 0 + adds r1, 0x96 + movs r0, 0x1 + strb r0, [r1] + ldr r1, _080E8500 @ =REG_BLDCNT + movs r3, 0xFD + lsls r3, 6 + adds r0, r3, 0 + strh r0, [r1] + add sp, 0x18 + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_080E84E0: .4byte gSpriteTemplate_83DBCAC +_080E84E4: .4byte gUnknown_083DB694 +_080E84E8: .4byte gSprites +_080E84EC: .4byte gSpriteAnimTable_83DBC8C +_080E84F0: .4byte sub_80E872C +_080E84F4: .4byte gSpriteAnimTable_83DBC9C +_080E84F8: .4byte sub_80E8760 +_080E84FC: .4byte 0x00000101 +_080E8500: .4byte REG_BLDCNT + thumb_func_end sub_80E8420 + + thumb_func_start sub_80E8504 +sub_80E8504: @ 80E8504 + push {r4,lr} + ldr r0, _080E8530 @ =gUnknown_083DB694 + ldr r4, [r0] + adds r0, r4, 0 + adds r0, 0x9C + ldr r0, [r0] + bl DestroySprite + adds r0, r4, 0 + adds r0, 0xA0 + ldr r0, [r0] + bl DestroySprite + adds r0, r4, 0 + adds r0, 0xA4 + ldr r0, [r0] + bl DestroySprite + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_080E8530: .4byte gUnknown_083DB694 + thumb_func_end sub_80E8504 + + thumb_func_start sub_80E8534 +sub_80E8534: @ 80E8534 + push {r4-r7,lr} + mov r7, r8 + push {r7} + ldr r1, _080E8554 @ =gUnknown_083DB694 + ldr r3, [r1] + ldr r2, _080E8558 @ =0x000001b7 + adds r0, r3, r2 + ldrb r0, [r0] + lsls r0, 24 + asrs r0, 24 + adds r4, r1, 0 + cmp r0, 0 + beq _080E8560 + ldr r1, _080E855C @ =gUnknown_020388AC + movs r0, 0x1 + b _080E8598 + .align 2, 0 +_080E8554: .4byte gUnknown_083DB694 +_080E8558: .4byte 0x000001b7 +_080E855C: .4byte gUnknown_020388AC +_080E8560: + adds r0, r3, 0 + adds r0, 0x26 + ldrb r2, [r0] + cmp r2, 0 + bne _080E8578 + ldr r0, _080E8574 @ =gUnknown_020388AC + strb r2, [r0] + adds r7, r0, 0 + b _080E859C + .align 2, 0 +_080E8574: .4byte gUnknown_020388AC +_080E8578: + movs r1, 0xD4 + lsls r1, 1 + adds r0, r3, r1 + ldrh r1, [r0] + movs r0, 0xC0 + lsls r0, 3 + cmp r1, r0 + bne _080E8594 + ldr r1, _080E8590 @ =gUnknown_020388AC + movs r0, 0x2 + b _080E8598 + .align 2, 0 +_080E8590: .4byte gUnknown_020388AC +_080E8594: + ldr r1, _080E85F4 @ =gUnknown_020388AC + movs r0, 0x3 +_080E8598: + strb r0, [r1] + adds r7, r1, 0 +_080E859C: + ldr r2, [r4] + adds r4, r2, 0 + adds r4, 0x9C + ldr r1, [r4] + ldrb r0, [r7] + movs r3, 0 + mov r8, r3 + strh r0, [r1, 0x32] + adds r5, r2, 0 + adds r5, 0xA0 + ldr r1, [r5] + ldrb r0, [r7] + strh r0, [r1, 0x32] + adds r6, r2, 0 + adds r6, 0xA4 + ldr r1, [r6] + ldrb r0, [r7] + strh r0, [r1, 0x32] + ldr r0, [r4] + ldrb r1, [r7] + bl StartSpriteAnim + ldr r0, [r5] + ldrb r1, [r7] + bl StartSpriteAnim + ldr r0, [r6] + ldrb r1, [r7] + bl StartSpriteAnim + ldr r0, [r4] + movs r1, 0x8 + strh r1, [r0, 0x38] + ldr r0, [r4] + strh r1, [r0, 0x3A] + ldr r0, [r4] + mov r1, r8 + strh r1, [r0, 0x30] + pop {r3} + mov r8, r3 + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_080E85F4: .4byte gUnknown_020388AC + thumb_func_end sub_80E8534 + + thumb_func_start sub_80E85F8 +sub_80E85F8: @ 80E85F8 + push {r4-r6,lr} + adds r5, r0, 0 + ldrh r0, [r5, 0x2E] + adds r0, 0x1 + strh r0, [r5, 0x2E] + movs r1, 0x1 + ands r0, r1 + cmp r0, 0 + beq _080E8624 + ldr r1, _080E8620 @ =gSineTable + movs r2, 0x30 + ldrsh r0, [r5, r2] + lsls r0, 1 + adds r0, r1 + ldrh r0, [r0] + lsls r0, 16 + asrs r0, 21 + adds r0, 0x8 + strh r0, [r5, 0x38] + b _080E863A + .align 2, 0 +_080E8620: .4byte gSineTable +_080E8624: + ldr r1, _080E8688 @ =gSineTable + movs r2, 0x30 + ldrsh r0, [r5, r2] + lsls r0, 1 + adds r0, r1 + ldrh r1, [r0] + lsls r1, 16 + asrs r1, 21 + movs r0, 0x8 + subs r0, r1 + strh r0, [r5, 0x3A] +_080E863A: + ldrh r0, [r5, 0x30] + adds r0, 0x5 + movs r1, 0xFF + ands r0, r1 + strh r0, [r5, 0x30] + ldr r2, _080E868C @ =REG_BLDALPHA + ldrh r0, [r5, 0x3A] + lsls r0, 8 + ldrh r1, [r5, 0x38] + orrs r0, r1 + strh r0, [r2] + ldr r0, _080E8690 @ =gUnknown_083DB694 + ldr r6, [r0] + adds r0, r6, 0 + adds r0, 0x96 + ldrb r0, [r0] + cmp r0, 0 + beq _080E871A + bl sub_80E8534 + adds r1, r6, 0 + adds r1, 0x9C + ldr r0, [r1] + movs r2, 0x8 + strh r2, [r0, 0x38] + ldr r0, [r1] + strh r2, [r0, 0x3A] + ldr r1, [r1] + movs r0, 0 + strh r0, [r1, 0x30] + movs r1, 0x32 + ldrsh r0, [r5, r1] + cmp r0, 0x1 + beq _080E86C4 + cmp r0, 0x1 + bgt _080E8694 + cmp r0, 0 + beq _080E869E + b _080E871A + .align 2, 0 +_080E8688: .4byte gSineTable +_080E868C: .4byte REG_BLDALPHA +_080E8690: .4byte gUnknown_083DB694 +_080E8694: + cmp r0, 0x2 + beq _080E86D6 + cmp r0, 0x3 + beq _080E86DE + b _080E871A +_080E869E: + ldr r2, _080E86C0 @ =0x000001a9 + adds r0, r6, r2 + movs r1, 0 + ldrsb r1, [r0, r1] + movs r0, 0x58 + muls r0, r1 + adds r0, 0x20 + strh r0, [r5, 0x20] + movs r1, 0xD4 + lsls r1, 1 + adds r0, r6, r1 + ldrb r0, [r0] + lsls r0, 24 + asrs r0, 24 + adds r2, 0xC + b _080E870A + .align 2, 0 +_080E86C0: .4byte 0x000001a9 +_080E86C4: + movs r0, 0xD6 + strh r0, [r5, 0x20] + movs r1, 0xD4 + lsls r1, 1 + adds r0, r6, r1 + ldrb r0, [r0] + lsls r0, 24 + asrs r0, 24 + b _080E8714 +_080E86D6: + movs r0, 0x97 + strh r0, [r5, 0x20] + movs r0, 0x60 + b _080E8718 +_080E86DE: + ldr r4, _080E8720 @ =gUnknown_083DBCC4 + ldr r2, _080E8724 @ =0x000001a9 + adds r0, r6, r2 + movs r1, 0 + ldrsb r1, [r0, r1] + movs r0, 0xD4 + lsls r0, 1 + adds r3, r6, r0 + movs r2, 0 + ldrsb r2, [r3, r2] + lsls r0, r2, 3 + subs r0, r2 + adds r1, r0 + adds r1, r4 + movs r0, 0 + ldrsb r0, [r1, r0] + lsls r0, 3 + adds r0, 0x1F + strh r0, [r5, 0x20] + movs r0, 0 + ldrsb r0, [r3, r0] + ldr r2, _080E8728 @ =0x000001b5 +_080E870A: + adds r1, r6, r2 + ldrb r1, [r1] + lsls r1, 24 + asrs r1, 24 + subs r0, r1 +_080E8714: + lsls r0, 4 + adds r0, 0x60 +_080E8718: + strh r0, [r5, 0x22] +_080E871A: + pop {r4-r6} + pop {r0} + bx r0 + .align 2, 0 +_080E8720: .4byte gUnknown_083DBCC4 +_080E8724: .4byte 0x000001a9 +_080E8728: .4byte 0x000001b5 + thumb_func_end sub_80E85F8 + + thumb_func_start sub_80E872C +sub_80E872C: @ 80E872C + push {lr} + adds r2, r0, 0 + ldr r0, _080E875C @ =gUnknown_083DB694 + ldr r1, [r0] + adds r0, r1, 0 + adds r0, 0x96 + ldrb r0, [r0] + cmp r0, 0 + beq _080E8756 + movs r3, 0x32 + ldrsh r0, [r2, r3] + cmp r0, 0 + bne _080E8756 + adds r1, 0x9C + ldr r0, [r1] + ldrh r0, [r0, 0x20] + adds r0, 0x20 + strh r0, [r2, 0x20] + ldr r0, [r1] + ldrh r0, [r0, 0x22] + strh r0, [r2, 0x22] +_080E8756: + pop {r0} + bx r0 + .align 2, 0 +_080E875C: .4byte gUnknown_083DB694 + thumb_func_end sub_80E872C + + thumb_func_start sub_80E8760 +sub_80E8760: @ 80E8760 + push {lr} + adds r2, r0, 0 + ldr r0, _080E8784 @ =gUnknown_083DB694 + ldr r1, [r0] + adds r0, r1, 0 + adds r0, 0x96 + ldrb r0, [r0] + cmp r0, 0 + beq _080E87B2 + movs r3, 0x32 + ldrsh r0, [r2, r3] + cmp r0, 0x1 + beq _080E8798 + cmp r0, 0x1 + bgt _080E8788 + cmp r0, 0 + beq _080E878E + b _080E87B2 + .align 2, 0 +_080E8784: .4byte gUnknown_083DB694 +_080E8788: + cmp r0, 0x2 + beq _080E87A2 + b _080E87B2 +_080E878E: + adds r1, 0x9C + ldr r0, [r1] + ldrh r0, [r0, 0x20] + adds r0, 0x40 + b _080E87AA +_080E8798: + adds r1, 0x9C + ldr r0, [r1] + ldrh r0, [r0, 0x20] + adds r0, 0x1C + b _080E87AA +_080E87A2: + adds r1, 0x9C + ldr r0, [r1] + ldrh r0, [r0, 0x20] + adds r0, 0x15 +_080E87AA: + strh r0, [r2, 0x20] + ldr r0, [r1] + ldrh r0, [r0, 0x22] + strh r0, [r2, 0x22] +_080E87B2: + pop {r0} + bx r0 + thumb_func_end sub_80E8760 + + thumb_func_start sub_80E87A4 +sub_80E87A4: @ 80E87A4 + push {r4,lr} + lsls r0, 24 + ldr r1, _080E87C8 @ =gUnknown_083DB694 + ldr r1, [r1] + adds r2, r1, 0 + adds r2, 0xA8 + ldr r3, [r2] + movs r4, 0 + cmp r0, 0 + bne _080E87BA + movs r4, 0x1 +_080E87BA: + movs r1, 0 + strh r4, [r3, 0x30] + ldr r0, [r2] + strh r1, [r0, 0x24] + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_080E87C8: .4byte gUnknown_083DB694 + thumb_func_end sub_80E87A4 + + thumb_func_start sub_80E87CC +sub_80E87CC: @ 80E87CC + push {r4,r5,lr} + lsls r0, 24 + lsrs r0, 24 + adds r4, r0, 0 + ldr r0, _080E8810 @ =gUnknown_083DB694 + ldr r5, [r0] + adds r0, r5, 0 + adds r0, 0xA8 + ldr r0, [r0] + movs r3, 0 + cmp r4, 0 + bne _080E87E6 + movs r3, 0x1 +_080E87E6: + adds r2, r0, 0 + adds r2, 0x3E + lsls r3, 2 + ldrb r1, [r2] + movs r0, 0x5 + negs r0, r0 + ands r0, r1 + orrs r0, r3 + strb r0, [r2] + adds r0, r4, 0 + bl sub_80E87A4 + cmp r4, 0 + beq _080E880A + ldr r0, _080E8814 @ =0x000001b9 + adds r1, r5, r0 + movs r0, 0x1 + strb r0, [r1] +_080E880A: + pop {r4,r5} + pop {r0} + bx r0 + .align 2, 0 +_080E8810: .4byte gUnknown_083DB694 +_080E8814: .4byte 0x000001b9 + thumb_func_end sub_80E87CC + + thumb_func_start sub_80E8818 +sub_80E8818: @ 80E8818 + push {lr} + ldr r0, _080E8850 @ =gSpriteTemplate_83DBBFC + movs r1, 0 + movs r2, 0 + movs r3, 0 + bl CreateSprite + lsls r0, 24 + lsrs r0, 24 + ldr r2, _080E8854 @ =gSprites + lsls r1, r0, 4 + adds r1, r0 + lsls r1, 2 + adds r1, r2 + movs r0, 0 + strh r0, [r1, 0x2E] + strh r0, [r1, 0x30] + ldr r0, _080E8858 @ =gUnknown_083DB694 + ldr r0, [r0] + adds r0, 0xA8 + str r1, [r0] + ldr r0, _080E885C @ =sub_80E8860 + str r0, [r1, 0x1C] + movs r0, 0 + bl sub_80E87CC + pop {r0} + bx r0 + .align 2, 0 +_080E8850: .4byte gSpriteTemplate_83DBBFC +_080E8854: .4byte gSprites +_080E8858: .4byte gUnknown_083DB694 +_080E885C: .4byte sub_80E8860 + thumb_func_end sub_80E8818 + + thumb_func_start sub_80E8860 +sub_80E8860: @ 80E8860 + push {r4,r5,lr} + adds r2, r0, 0 + movs r0, 0x30 + ldrsh r4, [r2, r0] + cmp r4, 0 + bne _080E88E4 + ldr r0, _080E88B0 @ =gUnknown_083DB694 + ldr r3, [r0] + ldr r1, _080E88B4 @ =0x000001b9 + adds r0, r3, r1 + ldrb r1, [r0] + cmp r1, 0 + beq _080E88C4 + ldr r5, _080E88B8 @ =0x00009cd1 + adds r0, r3, r5 + movs r1, 0 + ldrsb r1, [r0, r1] + movs r0, 0x58 + muls r0, r1 + adds r0, 0x2C + strh r0, [r2, 0x20] + ldr r1, _080E88BC @ =0x00009cd0 + adds r0, r3, r1 + ldrb r0, [r0] + lsls r0, 24 + asrs r0, 24 + adds r5, 0x84 + adds r1, r3, r5 + ldrb r1, [r1] + lsls r1, 24 + asrs r1, 24 + subs r0, r1 + lsls r0, 4 + adds r0, 0x60 + strh r0, [r2, 0x22] + ldr r0, _080E88C0 @ =0x0000fffa + strh r0, [r2, 0x24] + strh r4, [r2, 0x2E] + b _080E88E4 + .align 2, 0 +_080E88B0: .4byte gUnknown_083DB694 +_080E88B4: .4byte 0x000001b9 +_080E88B8: .4byte 0x00009cd1 +_080E88BC: .4byte 0x00009cd0 +_080E88C0: .4byte 0x0000fffa +_080E88C4: + ldrh r0, [r2, 0x2E] + adds r0, 0x1 + strh r0, [r2, 0x2E] + lsls r0, 16 + asrs r0, 16 + cmp r0, 0x2 + ble _080E88E4 + strh r1, [r2, 0x2E] + ldrh r0, [r2, 0x24] + adds r0, 0x1 + strh r0, [r2, 0x24] + lsls r0, 16 + cmp r0, 0 + ble _080E88E4 + ldr r0, _080E88EC @ =0x0000fffa + strh r0, [r2, 0x24] +_080E88E4: + pop {r4,r5} + pop {r0} + bx r0 + .align 2, 0 +_080E88EC: .4byte 0x0000fffa + thumb_func_end sub_80E8860 + + thumb_func_start sub_80E88F0 +sub_80E88F0: @ 80E88F0 + push {r4-r7,lr} + mov r7, r8 + push {r7} + movs r4, 0 + ldr r0, _080E8950 @ =gUnknown_083DB694 + mov r8, r0 + ldr r0, [r0] + movs r6, 0x4 + movs r5, 0 + movs r1, 0xB4 + adds r1, r0 + mov r12, r1 + adds r7, r0, 0 + adds r7, 0xAC +_080E890C: + lsls r2, r4, 2 + adds r3, r7, r2 + ldr r1, [r3] + adds r1, 0x3E + ldrb r0, [r1] + orrs r0, r6 + strb r0, [r1] + ldr r0, [r3] + strh r5, [r0, 0x30] + add r2, r12 + ldr r1, [r2] + adds r1, 0x3E + ldrb r0, [r1] + orrs r0, r6 + strb r0, [r1] + ldr r0, [r2] + strh r5, [r0, 0x30] + adds r0, r4, 0x1 + lsls r0, 16 + lsrs r4, r0, 16 + cmp r4, 0x1 + bls _080E890C + mov r1, r8 + ldr r0, [r1] + ldr r1, _080E8954 @ =0x00009f9c + adds r0, r1 + movs r1, 0 + strb r1, [r0] + pop {r3} + mov r8, r3 + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_080E8950: .4byte gUnknown_083DB694 +_080E8954: .4byte 0x00009f9c + thumb_func_end sub_80E88F0 + + thumb_func_start sub_80E8958 +sub_80E8958: @ 80E8958 + push {r4-r7,lr} + mov r7, r9 + mov r6, r8 + push {r6,r7} + lsls r0, 24 + lsrs r7, r0, 24 + cmp r7, 0 + bne _080E89B4 + movs r0, 0x64 + mov r9, r0 + ldr r0, _080E8998 @ =gUnknown_083DB694 + ldr r2, [r0] + ldr r3, _080E899C @ =0x00009f98 + adds r1, r2, r3 + ldr r3, _080E89A0 @ =0x000001b5 + adds r0, r2, r3 + str r0, [r1] + adds r0, r2, 0 + adds r0, 0x26 + ldrb r0, [r0] + cmp r0, 0 + bne _080E89A8 + movs r1, 0xDB + lsls r1, 1 + adds r0, r2, r1 + ldrb r0, [r0] + subs r0, 0x4 + ldr r3, _080E89A4 @ =0x00009f9d + adds r1, r2, r3 + strb r0, [r1] + b _080E8A00 + .align 2, 0 +_080E8998: .4byte gUnknown_083DB694 +_080E899C: .4byte 0x00009f98 +_080E89A0: .4byte 0x000001b5 +_080E89A4: .4byte 0x00009f9d +_080E89A8: + ldr r1, _080E89B0 @ =0x00009f9d + adds r0, r2, r1 + strb r7, [r0] + b _080E8A00 + .align 2, 0 +_080E89B0: .4byte 0x00009f9d +_080E89B4: + movs r3, 0x78 + mov r9, r3 + ldr r0, _080E8A64 @ =gUnknown_083DB694 + ldr r2, [r0] + ldr r0, _080E8A68 @ =0x00009f98 + adds r1, r2, r0 + ldr r3, _080E8A6C @ =0x00009d55 + adds r0, r2, r3 + str r0, [r1] + ldr r1, _080E8A70 @ =0x00009d54 + adds r0, r2, r1 + ldrb r0, [r0] + subs r0, 0x4 + ldr r3, _080E8A74 @ =0x00009f9d + adds r1, r2, r3 + strb r0, [r1] + movs r4, 0 + adds r5, r2, 0 + adds r5, 0xB4 + movs r0, 0x5 + negs r0, r0 + mov r12, r0 + movs r6, 0x1 +_080E89E2: + lsls r3, r4, 2 + adds r3, r5, r3 + ldr r1, [r3] + adds r1, 0x3E + ldrb r2, [r1] + mov r0, r12 + ands r0, r2 + strb r0, [r1] + ldr r0, [r3] + strh r6, [r0, 0x30] + adds r0, r4, 0x1 + lsls r0, 16 + lsrs r4, r0, 16 + cmp r4, 0x1 + bls _080E89E2 +_080E8A00: + ldr r0, _080E8A64 @ =gUnknown_083DB694 + ldr r2, [r0] + ldr r3, _080E8A74 @ =0x00009f9d + adds r1, r2, r3 + movs r0, 0 + ldrsb r0, [r1, r0] + cmp r0, 0 + bge _080E8A14 + movs r0, 0 + strb r0, [r1] +_080E8A14: + movs r4, 0 + adds r6, r2, 0 + adds r6, 0xAC + movs r0, 0x5 + negs r0, r0 + mov r8, r0 +_080E8A20: + lsls r2, r4, 2 + adds r2, r6, r2 + ldr r0, [r2] + mov r1, r9 + strh r1, [r0, 0x20] + ldr r1, [r2] + adds r1, 0x3E + ldrb r0, [r1] + mov r3, r8 + ands r0, r3 + strb r0, [r1] + ldr r0, [r2] + movs r5, 0x1 + strh r5, [r0, 0x30] + ldr r0, [r2] + adds r1, r7, 0 + bl StartSpriteAnim + adds r0, r4, 0x1 + lsls r0, 16 + lsrs r4, r0, 16 + cmp r4, 0x1 + bls _080E8A20 + ldr r0, _080E8A64 @ =gUnknown_083DB694 + ldr r0, [r0] + ldr r1, _080E8A78 @ =0x00009f9c + adds r0, r1 + strb r5, [r0] + pop {r3,r4} + mov r8, r3 + mov r9, r4 + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_080E8A64: .4byte gUnknown_083DB694 +_080E8A68: .4byte 0x00009f98 +_080E8A6C: .4byte 0x00009d55 +_080E8A70: .4byte 0x00009d54 +_080E8A74: .4byte 0x00009f9d +_080E8A78: .4byte 0x00009f9c + thumb_func_end sub_80E8958 + + thumb_func_start sub_80E8A7C +sub_80E8A7C: @ 80E8A7C + push {r4-r7,lr} + sub sp, 0x18 + mov r1, sp + ldr r0, _080E8B68 @ =gSpriteTemplate_83DBD18 + ldm r0!, {r2-r4} + stm r1!, {r2-r4} + ldm r0!, {r2-r4} + stm r1!, {r2-r4} + movs r5, 0 +_080E8A8E: + lsls r2, r5, 3 + adds r2, r5 + lsls r2, 19 + movs r0, 0xA8 + lsls r0, 15 + adds r2, r0 + asrs r2, 16 + mov r0, sp + movs r1, 0 + movs r3, 0 + bl CreateSprite + lsls r0, 24 + lsrs r1, r0, 24 + ldr r0, _080E8B6C @ =gUnknown_083DB694 + ldr r2, [r0] + lsls r0, r5, 2 + adds r2, 0xAC + adds r2, r0 + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + ldr r1, _080E8B70 @ =gSprites + adds r0, r1 + str r0, [r2] + strh r5, [r0, 0x2E] + ldr r3, [r2] + adds r3, 0x3F + movs r0, 0x1 + adds r2, r5, 0 + ands r2, r0 + lsls r2, 1 + ldrb r0, [r3] + movs r4, 0x3 + negs r4, r4 + adds r1, r4, 0 + ands r0, r1 + orrs r0, r2 + strb r0, [r3] + adds r0, r5, 0x1 + lsls r0, 16 + lsrs r5, r0, 16 + cmp r5, 0x1 + bls _080E8A8E + mov r0, sp + movs r1, 0x3 + strh r1, [r0] + ldr r0, _080E8B74 @ =gSpriteAnimTable_83DBD10 + str r0, [sp, 0x8] + movs r5, 0 + movs r7, 0x3F + movs r6, 0x40 +_080E8AF6: + lsls r4, r5, 2 + adds r1, r4, r5 + lsls r1, 19 + movs r0, 0x8E + lsls r0, 16 + adds r1, r0 + asrs r1, 16 + mov r0, sp + movs r2, 0x58 + movs r3, 0 + bl CreateSprite + lsls r0, 24 + lsrs r1, r0, 24 + ldr r0, _080E8B6C @ =gUnknown_083DB694 + ldr r2, [r0] + adds r2, 0xB4 + adds r2, r4 + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + ldr r1, _080E8B70 @ =gSprites + adds r0, r1 + str r0, [r2] + strh r5, [r0, 0x2E] + ldr r3, [r2] + ldrb r1, [r3, 0x1] + adds r0, r7, 0 + ands r0, r1 + orrs r0, r6 + strb r0, [r3, 0x1] + ldr r3, [r2] + ldrb r1, [r3, 0x3] + adds r0, r7, 0 + ands r0, r1 + orrs r0, r6 + strb r0, [r3, 0x3] + ldr r0, [r2] + lsls r1, r5, 24 + lsrs r1, 24 + bl StartSpriteAnim + adds r0, r5, 0x1 + lsls r0, 16 + lsrs r5, r0, 16 + cmp r5, 0x1 + bls _080E8AF6 + movs r0, 0 + bl sub_80E8958 + bl sub_80E88F0 + add sp, 0x18 + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_080E8B68: .4byte gSpriteTemplate_83DBD18 +_080E8B6C: .4byte gUnknown_083DB694 +_080E8B70: .4byte gSprites +_080E8B74: .4byte gSpriteAnimTable_83DBD10 + thumb_func_end sub_80E8A7C + + thumb_func_start sub_80E8B78 +sub_80E8B78: @ 80E8B78 + push {r4,lr} + adds r3, r0, 0 + ldr r0, _080E8BB0 @ =gUnknown_083DB694 + ldr r1, [r0] + ldr r2, _080E8BB4 @ =0x00009f9c + adds r0, r1, r2 + ldrb r0, [r0] + cmp r0, 0 + beq _080E8BE8 + movs r2, 0x30 + ldrsh r0, [r3, r2] + cmp r0, 0 + beq _080E8BE8 + movs r2, 0x2E + ldrsh r0, [r3, r2] + cmp r0, 0 + bne _080E8BBC + movs r4, 0 + ldr r2, _080E8BB8 @ =0x00009f98 + adds r0, r1, r2 + ldr r0, [r0] + ldrb r0, [r0] + lsls r0, 24 + asrs r0, 24 + cmp r0, 0 + bne _080E8BD6 + b _080E8BD4 + .align 2, 0 +_080E8BB0: .4byte gUnknown_083DB694 +_080E8BB4: .4byte 0x00009f9c +_080E8BB8: .4byte 0x00009f98 +_080E8BBC: + movs r4, 0 + ldr r2, _080E8BF0 @ =0x00009f98 + adds r0, r1, r2 + ldr r0, [r0] + adds r2, 0x5 + adds r1, r2 + movs r2, 0 + ldrsb r2, [r0, r2] + movs r0, 0 + ldrsb r0, [r1, r0] + cmp r2, r0 + bne _080E8BD6 +_080E8BD4: + movs r4, 0x1 +_080E8BD6: + adds r2, r3, 0 + adds r2, 0x3E + lsls r3, r4, 2 + ldrb r1, [r2] + movs r0, 0x5 + negs r0, r0 + ands r0, r1 + orrs r0, r3 + strb r0, [r2] +_080E8BE8: + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_080E8BF0: .4byte 0x00009f98 + thumb_func_end sub_80E8B78 + + thumb_func_start sub_80E8BF4 +sub_80E8BF4: @ 80E8BF4 + push {r4-r7,lr} + mov r7, r8 + push {r7} + sub sp, 0x14 + lsls r0, 24 + lsrs r3, r0, 24 + lsls r1, 24 + lsrs r2, r1, 24 + ldr r0, _080E8C28 @ =gUnknown_083DBD30 + ldr r1, [r0, 0x4] + ldr r0, [r0] + str r0, [sp, 0x4] + str r1, [sp, 0x8] + ldr r0, _080E8C2C @ =gUnknown_083DBD38 + ldr r1, [r0, 0x4] + ldr r0, [r0] + str r0, [sp, 0xC] + str r1, [sp, 0x10] + cmp r2, 0x2 + beq _080E8C20 + cmp r2, 0x5 + beq _080E8C30 +_080E8C20: + movs r4, 0x40 + movs r5, 0x28 + b _080E8C34 + .align 2, 0 +_080E8C28: .4byte gUnknown_083DBD30 +_080E8C2C: .4byte gUnknown_083DBD38 +_080E8C30: + movs r4, 0x24 + movs r5, 0x30 +_080E8C34: + cmp r3, 0 + beq _080E8C3C + cmp r3, 0x1 + beq _080E8C40 +_080E8C3C: + movs r0, 0x43 + b _080E8C42 +_080E8C40: + movs r0, 0x44 +_080E8C42: + mov r8, r0 + add r0, sp, 0x4 + bl LoadCompressedObjectPic + add r0, sp, 0xC + bl LoadSpritePalette + ldr r0, _080E8CDC @ =gSpriteTemplate_83DBD48 + adds r1, r4, 0 + adds r2, r5, 0 + movs r3, 0x1 + bl CreateSprite + ldr r0, _080E8CE0 @ =gSaveBlock2 + ldrb r0, [r0, 0x8] + movs r1, 0x69 + cmp r0, 0 + bne _080E8C68 + movs r1, 0x64 +_080E8C68: + ldr r7, _080E8CE4 @ =SpriteCallbackDummy + adds r2, r4, 0 + subs r2, 0xC + movs r6, 0 + str r6, [sp] + adds r0, r1, 0 + adds r1, r7, 0 + adds r3, r5, 0 + bl AddPseudoFieldObject + lsls r0, 24 + lsrs r2, r0, 24 + cmp r2, 0x40 + beq _080E8C9E + ldr r1, _080E8CE8 @ =gSprites + lsls r0, r2, 4 + adds r0, r2 + lsls r0, 2 + adds r0, r1 + ldrb r2, [r0, 0x5] + movs r1, 0xD + negs r1, r1 + ands r1, r2 + strb r1, [r0, 0x5] + movs r1, 0x3 + bl StartSpriteAnim +_080E8C9E: + adds r2, r4, 0 + adds r2, 0xC + str r6, [sp] + mov r0, r8 + adds r1, r7, 0 + adds r3, r5, 0 + bl AddPseudoFieldObject + lsls r0, 24 + lsrs r2, r0, 24 + cmp r2, 0x40 + beq _080E8CD0 + ldr r1, _080E8CE8 @ =gSprites + lsls r0, r2, 4 + adds r0, r2 + lsls r0, 2 + adds r0, r1 + ldrb r2, [r0, 0x5] + movs r1, 0xD + negs r1, r1 + ands r1, r2 + strb r1, [r0, 0x5] + movs r1, 0x2 + bl StartSpriteAnim +_080E8CD0: + add sp, 0x14 + pop {r3} + mov r8, r3 + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_080E8CDC: .4byte gSpriteTemplate_83DBD48 +_080E8CE0: .4byte gSaveBlock2 +_080E8CE4: .4byte SpriteCallbackDummy +_080E8CE8: .4byte gSprites + thumb_func_end sub_80E8BF4 + + thumb_func_start sub_80E8CEC +sub_80E8CEC: @ 80E8CEC + push {lr} + ldr r0, _080E8D24 @ =gUnknown_083DBD60 + bl LoadCompressedObjectPic + ldr r0, _080E8D28 @ =gUnknown_083DBD68 + bl LoadSpritePalette + ldr r0, _080E8D2C @ =gSpriteTemplate_83DBDE4 + movs r1, 0xE0 + movs r2, 0x58 + movs r3, 0 + bl CreateSprite + lsls r0, 24 + lsrs r1, r0, 24 + cmp r1, 0x40 + beq _080E8D3C + ldr r0, _080E8D30 @ =gUnknown_083DB694 + ldr r2, [r0] + ldr r0, _080E8D34 @ =0x00009fa0 + adds r2, r0 + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + ldr r1, _080E8D38 @ =gSprites + adds r0, r1 + str r0, [r2] + b _080E8D48 + .align 2, 0 +_080E8D24: .4byte gUnknown_083DBD60 +_080E8D28: .4byte gUnknown_083DBD68 +_080E8D2C: .4byte gSpriteTemplate_83DBDE4 +_080E8D30: .4byte gUnknown_083DB694 +_080E8D34: .4byte 0x00009fa0 +_080E8D38: .4byte gSprites +_080E8D3C: + ldr r0, _080E8D4C @ =gUnknown_083DB694 + ldr r0, [r0] + ldr r1, _080E8D50 @ =0x00009fa0 + adds r0, r1 + movs r1, 0 + str r1, [r0] +_080E8D48: + pop {r0} + bx r0 + .align 2, 0 +_080E8D4C: .4byte gUnknown_083DB694 +_080E8D50: .4byte 0x00009fa0 + thumb_func_end sub_80E8CEC + + thumb_func_start sub_80E8D54 +sub_80E8D54: @ 80E8D54 + push {lr} + ldr r0, _080E8D78 @ =gUnknown_083DB694 + ldr r2, [r0] + ldr r1, _080E8D7C @ =0x00009fa0 + adds r0, r2, r1 + ldr r1, [r0] + cmp r1, 0 + beq _080E8D88 + adds r0, r2, 0 + adds r0, 0x26 + ldrb r0, [r0] + cmp r0, 0 + bne _080E8D80 + adds r0, r1, 0 + movs r1, 0x1 + bl StartSpriteAnim + b _080E8D88 + .align 2, 0 +_080E8D78: .4byte gUnknown_083DB694 +_080E8D7C: .4byte 0x00009fa0 +_080E8D80: + adds r0, r1, 0 + movs r1, 0x2 + bl StartSpriteAnim +_080E8D88: + pop {r0} + bx r0 + thumb_func_end sub_80E8D54 + + thumb_func_start sub_80E8D8C +sub_80E8D8C: @ 80E8D8C + push {lr} + lsls r0, 24 + lsrs r3, r0, 24 + ldr r0, _080E8DB8 @ =gUnknown_083DB694 + ldr r2, [r0] + ldr r1, _080E8DBC @ =0x00009fa0 + adds r0, r2, r1 + ldr r1, [r0] + cmp r1, 0 + beq _080E8DD2 + cmp r3, 0 + beq _080E8DCA + adds r0, r2, 0 + adds r0, 0x26 + ldrb r0, [r0] + cmp r0, 0 + bne _080E8DC0 + adds r0, r1, 0 + movs r1, 0x3 + bl StartSpriteAnim + b _080E8DD2 + .align 2, 0 +_080E8DB8: .4byte gUnknown_083DB694 +_080E8DBC: .4byte 0x00009fa0 +_080E8DC0: + adds r0, r1, 0 + movs r1, 0x4 + bl StartSpriteAnim + b _080E8DD2 +_080E8DCA: + adds r0, r1, 0 + movs r1, 0x5 + bl StartSpriteAnim +_080E8DD2: + pop {r0} + bx r0 + thumb_func_end sub_80E8D8C + + thumb_func_start sub_80E8DD8 +sub_80E8DD8: @ 80E8DD8 + push {r4-r6,lr} + mov r6, r9 + mov r5, r8 + push {r5,r6} + sub sp, 0x8 + ldr r0, _080E8F2C @ =REG_BG0HOFS + movs r6, 0 + strh r6, [r0] + adds r0, 0x2 + strh r6, [r0] + adds r0, 0x2 + strh r6, [r0] + adds r0, 0x2 + strh r6, [r0] + adds r0, 0x4 + strh r6, [r0] + subs r0, 0x2 + strh r6, [r0] + adds r0, 0x4 + strh r6, [r0] + adds r0, 0x2 + strh r6, [r0] + ldr r1, _080E8F30 @ =REG_BG0CNT + movs r2, 0x8B + lsls r2, 8 + adds r0, r2, 0 + strh r0, [r1] + adds r1, 0x2 + ldr r2, _080E8F34 @ =0x00000d09 + adds r0, r2, 0 + strh r0, [r1] + ldr r0, _080E8F38 @ =gUnknown_08E945D0 + ldr r1, _080E8F3C @ =gUnknown_083DB694 + ldr r1, [r1] + mov r8, r1 + movs r4, 0xE4 + lsls r4, 1 + add r4, r8 + movs r5, 0xA0 + lsls r5, 2 + adds r1, r4, 0 + adds r2, r5, 0 + bl CpuSet + ldr r0, _080E8F40 @ =gUnknown_08E953D0 + movs r1, 0xD9 + lsls r1, 3 + add r1, r8 + bl LZ77UnCompWram + ldr r0, _080E8F44 @ =gMenuWordGroupFrame_Gfx + ldr r1, _080E8F48 @ =0x06008000 + bl LZ77UnCompVram + ldr r1, _080E8F4C @ =0x06006800 + adds r0, r4, 0 + adds r2, r5, 0 + bl CpuSet + ldr r0, _080E8F50 @ =gMenuWordGroupFrame1_Pal + movs r1, 0x40 + movs r2, 0x40 + bl LoadPalette + ldr r1, _080E8F54 @ =REG_BG2CNT + ldr r2, _080E8F58 @ =0x00000e02 + adds r0, r2, 0 + strh r0, [r1] + ldr r1, _080E8F5C @ =0x06007000 + movs r5, 0x80 + lsls r5, 4 + mov r0, sp + strh r6, [r0] + ldr r4, _080E8F60 @ =0x040000d4 + str r0, [r4] + str r1, [r4, 0x4] + lsrs r0, r5, 1 + movs r2, 0x81 + lsls r2, 24 + orrs r0, r2 + str r0, [r4, 0x8] + ldr r0, [r4, 0x8] + ldr r0, _080E8F64 @ =gUnknown_08E9AB00 + ldr r2, _080E8F68 @ =0x06006000 + str r0, [r4] + str r2, [r4, 0x4] + ldr r0, _080E8F6C @ =0x80000020 + str r0, [r4, 0x8] + ldr r0, [r4, 0x8] + ldr r0, _080E8F70 @ =gUnknown_08E9AB60 + bl LZ77UnCompVram + ldr r0, _080E8F74 @ =gUnknown_08E9AB40 + movs r1, 0 + movs r2, 0x20 + bl LoadPalette + ldr r0, _080E8F78 @ =gUnknown_083DBDFC + movs r1, 0x10 + movs r2, 0x20 + bl LoadPalette + ldr r1, _080E8F7C @ =REG_BG3CNT + ldr r2, _080E8F80 @ =0x00000f0f + adds r0, r2, 0 + strh r0, [r1] + ldr r1, _080E8F84 @ =0x06007800 + movs r0, 0 + mov r9, r0 + str r0, [sp, 0x4] + add r0, sp, 0x4 + str r0, [r4] + str r1, [r4, 0x4] + lsrs r5, 2 + movs r0, 0x85 + lsls r0, 24 + orrs r5, r0 + str r5, [r4, 0x8] + ldr r0, [r4, 0x8] + ldr r0, _080E8F88 @ =gUnknown_083DBE40 + movs r1, 0x20 + movs r2, 0x20 + bl LoadPalette + ldr r0, _080E8F8C @ =gPlttBufferUnfaded + adds r1, r0, 0 + adds r1, 0x7E + ldr r3, _080E8F90 @ =0x00007fff + strh r3, [r1] + subs r1, 0x1C + ldr r2, _080E8F94 @ =0x00006f5b + strh r2, [r1] + adds r0, 0x70 + ldr r1, _080E8F98 @ =0x0000739c + strh r1, [r0] + ldr r0, _080E8F9C @ =gPlttBufferFaded + adds r4, r0, 0 + adds r4, 0x7E + strh r3, [r4] + adds r3, r0, 0 + adds r3, 0x62 + strh r2, [r3] + adds r0, 0x70 + strh r1, [r0] + movs r1, 0xBC + add r8, r1 + mov r2, r8 + strb r6, [r2] + bl sub_80E8FA4 + bl sub_80E948C + movs r0, 0xA + bl sub_80E9198 + movs r0, 0 + bl sub_80E91D4 + bl sub_80E95A4 + ldr r0, _080E8FA0 @ =REG_BLDCNT + mov r1, r9 + strh r1, [r0] + add sp, 0x8 + pop {r3,r4} + mov r8, r3 + mov r9, r4 + pop {r4-r6} + pop {r0} + bx r0 + .align 2, 0 +_080E8F2C: .4byte REG_BG0HOFS +_080E8F30: .4byte REG_BG0CNT +_080E8F34: .4byte 0x00000d09 +_080E8F38: .4byte gUnknown_08E945D0 +_080E8F3C: .4byte gUnknown_083DB694 +_080E8F40: .4byte gUnknown_08E953D0 +_080E8F44: .4byte gMenuWordGroupFrame_Gfx +_080E8F48: .4byte 0x06008000 +_080E8F4C: .4byte 0x06006800 +_080E8F50: .4byte gMenuWordGroupFrame1_Pal +_080E8F54: .4byte REG_BG2CNT +_080E8F58: .4byte 0x00000e02 +_080E8F5C: .4byte 0x06007000 +_080E8F60: .4byte 0x040000d4 +_080E8F64: .4byte gUnknown_08E9AB00 +_080E8F68: .4byte 0x06006000 +_080E8F6C: .4byte 0x80000020 +_080E8F70: .4byte gUnknown_08E9AB60 +_080E8F74: .4byte gUnknown_08E9AB40 +_080E8F78: .4byte gUnknown_083DBDFC +_080E8F7C: .4byte REG_BG3CNT +_080E8F80: .4byte 0x00000f0f +_080E8F84: .4byte 0x06007800 +_080E8F88: .4byte gUnknown_083DBE40 +_080E8F8C: .4byte gPlttBufferUnfaded +_080E8F90: .4byte 0x00007fff +_080E8F94: .4byte 0x00006f5b +_080E8F98: .4byte 0x0000739c +_080E8F9C: .4byte gPlttBufferFaded +_080E8FA0: .4byte REG_BLDCNT + thumb_func_end sub_80E8DD8 + + thumb_func_start sub_80E8FA4 +sub_80E8FA4: @ 80E8FA4 + push {r4-r7,lr} + mov r7, r10 + mov r6, r9 + mov r5, r8 + push {r5-r7} + sub sp, 0x2C + movs r0, 0 + mov r9, r0 + mov r1, sp + adds r1, 0x18 + str r1, [sp, 0x24] + add r2, sp, 0xC + mov r12, r2 +_080E8FBE: + mov r3, r9 + lsls r1, r3, 1 + ldr r4, _080E90F4 @ =0x08e8f136 + adds r0, r1, r4 + ldrh r2, [r0] + movs r0, 0x1F + ands r0, r2 + lsls r0, 8 + str r0, [sp] + ldr r5, _080E90F8 @ =0x08e8f13c + adds r1, r5 + ldrh r1, [r1] + movs r0, 0x1F + ands r0, r1 + lsls r0, 8 + str r0, [sp, 0xC] + lsls r2, 16 + lsrs r0, r2, 21 + movs r3, 0x1F + ands r0, r3 + lsls r0, 8 + str r0, [sp, 0x4] + lsls r1, 16 + lsrs r0, r1, 21 + ands r0, r3 + lsls r0, 8 + mov r4, r12 + str r0, [r4, 0x4] + lsrs r2, 26 + ands r2, r3 + lsls r2, 8 + str r2, [sp, 0x8] + lsrs r1, 26 + ands r1, r3 + lsls r1, 8 + str r1, [r4, 0x8] + movs r3, 0 + mov r5, r9 + lsls r5, 3 + mov r10, r5 + mov r0, r9 + adds r0, 0x1 + str r0, [sp, 0x28] + ldr r4, [sp, 0x24] +_080E9016: + lsls r0, r3, 2 + adds r2, r4, r0 + mov r5, r12 + adds r1, r5, r0 + add r0, sp + ldr r1, [r1] + ldr r0, [r0] + subs r0, r1, r0 + cmp r0, 0 + bge _080E902C + adds r0, 0x7 +_080E902C: + asrs r0, 3 + str r0, [r2] + adds r0, r3, 0x1 + lsls r0, 16 + lsrs r3, r0, 16 + cmp r3, 0x2 + bls _080E9016 + movs r4, 0 + ldr r0, _080E90FC @ =gUnknown_083DB694 + ldr r1, [r0] + mov r0, r10 + add r0, r9 + lsls r0, 1 + mov r8, r0 + movs r5, 0x1F + ldr r6, [sp, 0x24] + ldr r0, _080E9100 @ =0x00009f60 + adds r7, r1, r0 +_080E9050: + lsls r2, r4, 1 + add r2, r8 + adds r2, r7, r2 + ldr r1, [sp, 0x8] + asrs r1, 8 + ands r1, r5 + lsls r1, 10 + ldr r0, [sp, 0x4] + asrs r0, 8 + ands r0, r5 + lsls r0, 5 + orrs r1, r0 + ldr r0, [sp] + asrs r0, 8 + ands r0, r5 + orrs r1, r0 + strh r1, [r2] + movs r3, 0 + adds r4, 0x1 +_080E9076: + lsls r0, r3, 2 + mov r1, sp + adds r2, r1, r0 + adds r0, r6, r0 + ldr r1, [r2] + ldr r0, [r0] + adds r1, r0 + str r1, [r2] + adds r0, r3, 0x1 + lsls r0, 16 + lsrs r3, r0, 16 + cmp r3, 0x2 + bls _080E9076 + lsls r0, r4, 16 + lsrs r4, r0, 16 + cmp r4, 0x7 + bls _080E9050 + ldr r2, _080E90FC @ =gUnknown_083DB694 + ldr r3, [r2] + mov r0, r10 + add r0, r9 + adds r0, r4 + lsls r0, 1 + ldr r4, _080E9100 @ =0x00009f60 + adds r2, r3, r4 + adds r2, r0 + mov r5, r12 + ldr r1, [r5, 0x8] + asrs r1, 8 + movs r0, 0x1F + ands r1, r0 + lsls r1, 10 + ldr r0, [r5, 0x4] + asrs r0, 8 + movs r4, 0x1F + ands r0, r4 + lsls r0, 5 + orrs r1, r0 + ldr r0, [sp, 0xC] + asrs r0, 8 + ands r0, r4 + orrs r1, r0 + strh r1, [r2] + ldr r5, [sp, 0x28] + lsls r0, r5, 16 + lsrs r0, 16 + mov r9, r0 + cmp r0, 0x2 + bhi _080E90DA + b _080E8FBE +_080E90DA: + ldr r0, _080E9104 @ =0x00009f5e + adds r1, r3, r0 + movs r0, 0 + strb r0, [r1] + add sp, 0x2C + pop {r3-r5} + mov r8, r3 + mov r9, r4 + mov r10, r5 + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_080E90F4: .4byte 0x08e8f136 +_080E90F8: .4byte 0x08e8f13c +_080E90FC: .4byte gUnknown_083DB694 +_080E9100: .4byte 0x00009f60 +_080E9104: .4byte 0x00009f5e + thumb_func_end sub_80E8FA4 + + thumb_func_start sub_80E9108 +sub_80E9108: @ 80E9108 + push {r4-r7,lr} + lsls r0, 24 + ldr r1, _080E9164 @ =gUnknown_083DB694 + ldr r2, [r1] + ldr r3, _080E9168 @ =0x00009f5e + adds r1, r2, r3 + lsrs r0, 24 + ldrb r3, [r1] + adds r0, r3 + strb r0, [r1] + movs r4, 0 + ldr r0, _080E916C @ =gPlttBufferUnfaded + mov r12, r0 + adds r6, r1, 0 + ldr r3, _080E9170 @ =0x00009f60 + adds r5, r2, r3 + ldr r7, _080E9174 @ =gPlttBufferFaded +_080E912A: + adds r2, r4, 0 + adds r2, 0x51 + lsls r2, 1 + mov r0, r12 + adds r3, r2, r0 + ldrb r0, [r6] + lsls r0, 1 + lsls r1, r4, 3 + adds r1, r4 + lsls r1, 1 + adds r0, r1 + adds r0, r5, r0 + ldrh r0, [r0] + strh r0, [r3] + adds r2, r7 + ldrb r0, [r6] + lsls r0, 1 + adds r0, r1 + adds r0, r5, r0 + ldrh r0, [r0] + strh r0, [r2] + adds r0, r4, 0x1 + lsls r0, 16 + lsrs r4, r0, 16 + cmp r4, 0x2 + bls _080E912A + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_080E9164: .4byte gUnknown_083DB694 +_080E9168: .4byte 0x00009f5e +_080E916C: .4byte gPlttBufferUnfaded +_080E9170: .4byte 0x00009f60 +_080E9174: .4byte gPlttBufferFaded + thumb_func_end sub_80E9108 + + thumb_func_start sub_80E9178 +sub_80E9178: @ 80E9178 + push {lr} + ldr r0, _080E9190 @ =gUnknown_083DB694 + ldr r0, [r0] + ldr r1, _080E9194 @ =0x00009f5e + adds r0, r1 + movs r1, 0 + strb r1, [r0] + movs r0, 0 + bl sub_80E9108 + pop {r0} + bx r0 + .align 2, 0 +_080E9190: .4byte gUnknown_083DB694 +_080E9194: .4byte 0x00009f5e + thumb_func_end sub_80E9178 + + thumb_func_start sub_80E9198 +sub_80E9198: @ 80E9198 + ldr r1, _080E91A0 @ =gUnknown_03000740 + strb r0, [r1] + bx lr + .align 2, 0 +_080E91A0: .4byte gUnknown_03000740 + thumb_func_end sub_80E9198 + + thumb_func_start sub_80E91A4 +sub_80E91A4: @ 80E91A4 + ldr r0, _080E91AC @ =gUnknown_03000740 + ldrb r0, [r0] + bx lr + .align 2, 0 +_080E91AC: .4byte gUnknown_03000740 + thumb_func_end sub_80E91A4 + + thumb_func_start sub_80E91B0 +sub_80E91B0: @ 80E91B0 + push {lr} + sub sp, 0x8 + lsls r2, 24 + lsls r1, 27 + lsrs r1, 24 + lsrs r2, 21 + lsls r3, 27 + lsrs r3, 24 + str r3, [sp] + movs r3, 0x1 + str r3, [sp, 0x4] + movs r3, 0xB0 + bl sub_8072AB0 + add sp, 0x8 + pop {r0} + bx r0 + thumb_func_end sub_80E91B0 + + thumb_func_start sub_80E91D4 +sub_80E91D4: @ 80E91D4 + push {r4,lr} + lsls r0, 24 + lsrs r0, 24 + adds r4, r0, 0 + ldr r0, _080E91FC @ =gWindowConfig_81E6DA8 + bl BasicInitMenuWindow + cmp r4, 0xA + bne _080E9200 + movs r0, 0x3 + movs r1, 0xE + movs r2, 0x1A + movs r3, 0x13 + bl MenuZeroFillWindowRect + movs r0, 0xA + bl sub_80E9198 + b _080E935C + .align 2, 0 +_080E91FC: .4byte gWindowConfig_81E6DA8 +_080E9200: + bl sub_80E91A4 + lsls r0, 24 + lsrs r0, 24 + cmp r0, 0xA + bne _080E9218 + movs r0, 0x3 + movs r1, 0xE + movs r2, 0x1A + movs r3, 0x13 + bl MenuDrawTextWindow +_080E9218: + adds r0, r4, 0 + bl sub_80E9198 + cmp r4, 0x9 + bls _080E9224 + b _080E935C +_080E9224: + lsls r0, r4, 2 + ldr r1, _080E9230 @ =_080E9234 + adds r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_080E9230: .4byte _080E9234 + .align 2, 0 +_080E9234: + .4byte _080E925C + .4byte _080E9284 + .4byte _080E92AC + .4byte _080E92C4 + .4byte _080E92F0 + .4byte _080E9308 + .4byte _080E9310 + .4byte _080E9318 + .4byte _080E933C + .4byte _080E9350 +_080E925C: + ldr r0, _080E9278 @ =gUnknown_083DB694 + ldr r4, [r0] + ldr r1, _080E927C @ =0x00009fac + adds r0, r4, r1 + movs r1, 0x4 + movs r2, 0xF + movs r3, 0x2 + bl sub_80E91B0 + ldr r0, _080E9280 @ =0x00009ff5 + adds r4, r0 + adds r0, r4, 0 + b _080E9326 + .align 2, 0 +_080E9278: .4byte gUnknown_083DB694 +_080E927C: .4byte 0x00009fac +_080E9280: .4byte 0x00009ff5 +_080E9284: + ldr r0, _080E92A0 @ =gUnknown_083DB694 + ldr r4, [r0] + ldr r1, _080E92A4 @ =0x0000a03e + adds r0, r4, r1 + movs r1, 0x4 + movs r2, 0xF + movs r3, 0x2 + bl sub_80E91B0 + ldr r0, _080E92A8 @ =0x0000a087 + adds r4, r0 + adds r0, r4, 0 + b _080E9326 + .align 2, 0 +_080E92A0: .4byte gUnknown_083DB694 +_080E92A4: .4byte 0x0000a03e +_080E92A8: .4byte 0x0000a087 +_080E92AC: + ldr r0, _080E92BC @ =gOtherText_TextDeletedConfirmPage1 + movs r1, 0x4 + movs r2, 0xF + movs r3, 0x2 + bl sub_80E91B0 + ldr r0, _080E92C0 @ =gOtherText_TextDeletedConfirmPage2 + b _080E9326 + .align 2, 0 +_080E92BC: .4byte gOtherText_TextDeletedConfirmPage1 +_080E92C0: .4byte gOtherText_TextDeletedConfirmPage2 +_080E92C4: + ldr r0, _080E92D8 @ =gUnknown_083DB694 + ldr r0, [r0] + ldrb r0, [r0, 0x8] + cmp r0, 0x4 + beq _080E92E0 + cmp r0, 0x9 + bne _080E92E8 + ldr r0, _080E92DC @ =gOtherText_QuitGivingInfo + b _080E933E + .align 2, 0 +_080E92D8: .4byte gUnknown_083DB694 +_080E92DC: .4byte gOtherText_QuitGivingInfo +_080E92E0: + ldr r0, _080E92E4 @ =gOtherText_StopGivingMail + b _080E933E + .align 2, 0 +_080E92E4: .4byte gOtherText_StopGivingMail +_080E92E8: + ldr r0, _080E92EC @ =gOtherText_QuitEditing + b _080E933E + .align 2, 0 +_080E92EC: .4byte gOtherText_QuitEditing +_080E92F0: + ldr r0, _080E9300 @ =gOtherText_EditedTextNoSavePage1 + movs r1, 0x4 + movs r2, 0xF + movs r3, 0x2 + bl sub_80E91B0 + ldr r0, _080E9304 @ =gOtherText_EditedTextNoSavePage2 + b _080E9326 + .align 2, 0 +_080E9300: .4byte gOtherText_EditedTextNoSavePage1 +_080E9304: .4byte gOtherText_EditedTextNoSavePage2 +_080E9308: + ldr r0, _080E930C @ =gOtherText_EnterAPhraseOrWord + b _080E933E + .align 2, 0 +_080E930C: .4byte gOtherText_EnterAPhraseOrWord +_080E9310: + ldr r0, _080E9314 @ =gOtherText_TextNoDelete + b _080E933E + .align 2, 0 +_080E9314: .4byte gOtherText_TextNoDelete +_080E9318: + ldr r0, _080E9334 @ =gOtherText_OnlyOnePhrase + movs r1, 0x4 + movs r2, 0xF + movs r3, 0x2 + bl sub_80E91B0 + ldr r0, _080E9338 @ =gOtherText_OriginalSongRestored +_080E9326: + movs r1, 0x4 + movs r2, 0x11 + movs r3, 0x2 + bl sub_80E91B0 + b _080E935C + .align 2, 0 +_080E9334: .4byte gOtherText_OnlyOnePhrase +_080E9338: .4byte gOtherText_OriginalSongRestored +_080E933C: + ldr r0, _080E934C @ =gOtherText_TrendyAlready +_080E933E: + movs r1, 0x4 + movs r2, 0xF + movs r3, 0x4 + bl sub_80E91B0 + b _080E935C + .align 2, 0 +_080E934C: .4byte gOtherText_TrendyAlready +_080E9350: + ldr r0, _080E9364 @ =gOtherText_CombineTwoPhrases + movs r1, 0x4 + movs r2, 0xF + movs r3, 0x4 + bl sub_80E91B0 +_080E935C: + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_080E9364: .4byte gOtherText_CombineTwoPhrases + thumb_func_end sub_80E91D4 + + thumb_func_start sub_80E9368 +sub_80E9368: @ 80E9368 + push {r4,r5,lr} + lsls r0, 24 + lsrs r0, 24 + cmp r0, 0xD + bhi _080E93F8 + lsls r0, 2 + ldr r1, _080E937C @ =_080E9380 + adds r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_080E937C: .4byte _080E9380 + .align 2, 0 +_080E9380: + .4byte _080E93B8 + .4byte _080E93C0 + .4byte _080E93C8 + .4byte _080E93D0 + .4byte _080E93F8 + .4byte _080E93E8 + .4byte _080E93D8 + .4byte _080E93E8 + .4byte _080E93E8 + .4byte _080E93E0 + .4byte _080E93E8 + .4byte _080E93E8 + .4byte _080E93E8 + .4byte _080E93F0 +_080E93B8: + ldr r4, _080E93BC @ =gOtherText_Profile + b _080E93FA + .align 2, 0 +_080E93BC: .4byte gOtherText_Profile +_080E93C0: + ldr r4, _080E93C4 @ =gOtherText_AtBattleStart + b _080E93FA + .align 2, 0 +_080E93C4: .4byte gOtherText_AtBattleStart +_080E93C8: + ldr r4, _080E93CC @ =gOtherText_UponWinningBattle + b _080E93FA + .align 2, 0 +_080E93CC: .4byte gOtherText_UponWinningBattle +_080E93D0: + ldr r4, _080E93D4 @ =gOtherText_UponLosingBattle + b _080E93FA + .align 2, 0 +_080E93D4: .4byte gOtherText_UponLosingBattle +_080E93D8: + ldr r4, _080E93DC @ =gOtherText_TheBardsSong + b _080E93FA + .align 2, 0 +_080E93DC: .4byte gOtherText_TheBardsSong +_080E93E0: + ldr r4, _080E93E4 @ =gOtherText_WhatsHipHappening + b _080E93FA + .align 2, 0 +_080E93E4: .4byte gOtherText_WhatsHipHappening +_080E93E8: + ldr r4, _080E93EC @ =gOtherText_Interview + b _080E93FA + .align 2, 0 +_080E93EC: .4byte gOtherText_Interview +_080E93F0: + ldr r4, _080E93F4 @ =gOtherText_GoodSaying + b _080E93FA + .align 2, 0 +_080E93F4: .4byte gOtherText_GoodSaying +_080E93F8: + movs r4, 0 +_080E93FA: + ldr r0, _080E943C @ =gWindowConfig_81E6D8C + bl BasicInitMenuWindow + ldr r0, _080E9440 @ =gUnknown_083DB694 + ldr r2, [r0] + ldr r0, _080E9444 @ =0x0000a2ba + adds r5, r2, r0 + movs r3, 0xFC + strb r3, [r5] + adds r0, 0x1 + adds r1, r2, r0 + movs r0, 0x5 + strb r0, [r1] + ldr r0, _080E9448 @ =0x0000a2bc + adds r1, r2, r0 + movs r0, 0x1 + strb r0, [r1] + cmp r4, 0 + beq _080E9450 + ldr r1, _080E944C @ =0x0000a2bd + adds r0, r2, r1 + adds r1, r4, 0 + movs r2, 0xF0 + movs r3, 0x2 + bl sub_8072C74 + adds r0, r5, 0 + movs r1, 0 + movs r2, 0 + bl MenuPrint + b _080E9476 + .align 2, 0 +_080E943C: .4byte gWindowConfig_81E6D8C +_080E9440: .4byte gUnknown_083DB694 +_080E9444: .4byte 0x0000a2ba +_080E9448: .4byte 0x0000a2bc +_080E944C: .4byte 0x0000a2bd +_080E9450: + ldr r0, _080E9484 @ =0x0000a2bd + adds r1, r2, r0 + strb r3, [r1] + movs r0, 0x11 + strb r0, [r1, 0x1] + movs r0, 0x10 + strb r0, [r1, 0x2] + movs r0, 0xFF + strb r0, [r1, 0x3] + adds r0, r5, 0 + movs r1, 0 + movs r2, 0 + bl MenuPrint + adds r0, r5, 0 + movs r1, 0x1C + movs r2, 0 + bl MenuPrint +_080E9476: + ldr r0, _080E9488 @ =gWindowConfig_81E6DA8 + bl BasicInitMenuWindow + pop {r4,r5} + pop {r0} + bx r0 + .align 2, 0 +_080E9484: .4byte 0x0000a2bd +_080E9488: .4byte gWindowConfig_81E6DA8 + thumb_func_end sub_80E9368 + + thumb_func_start sub_80E948C +sub_80E948C: @ 80E948C + push {lr} + sub sp, 0x10 + ldr r0, _080E94A8 @ =gUnknown_083DB694 + ldr r0, [r0] + ldrb r0, [r0, 0x9] + cmp r0, 0x5 + bls _080E949C + b _080E9594 +_080E949C: + lsls r0, 2 + ldr r1, _080E94AC @ =_080E94B0 + adds r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_080E94A8: .4byte gUnknown_083DB694 +_080E94AC: .4byte _080E94B0 + .align 2, 0 +_080E94B0: + .4byte _080E9508 + .4byte _080E9530 + .4byte _080E9554 + .4byte _080E9578 + .4byte _080E94C8 + .4byte _080E94E8 +_080E94C8: + ldr r0, _080E94E0 @ =0x06006800 + ldr r3, _080E94E4 @ =gUnknown_08E94AD0 + movs r1, 0 + str r1, [sp] + movs r1, 0x1A + str r1, [sp, 0x4] + movs r1, 0x18 + str r1, [sp, 0x8] + movs r1, 0x6 + str r1, [sp, 0xC] + movs r1, 0x3 + b _080E9568 + .align 2, 0 +_080E94E0: .4byte 0x06006800 +_080E94E4: .4byte gUnknown_08E94AD0 +_080E94E8: + ldr r0, _080E9500 @ =0x06006800 + ldr r3, _080E9504 @ =gUnknown_08E94AD0 + movs r1, 0 + str r1, [sp] + movs r1, 0x12 + str r1, [sp, 0x4] + movs r1, 0xD + str r1, [sp, 0x8] + movs r1, 0x8 + str r1, [sp, 0xC] + movs r1, 0xE + b _080E951E + .align 2, 0 +_080E9500: .4byte 0x06006800 +_080E9504: .4byte gUnknown_08E94AD0 +_080E9508: + ldr r0, _080E9528 @ =0x06006800 + ldr r3, _080E952C @ =gUnknown_08E94AD0 + movs r1, 0 + str r1, [sp] + movs r1, 0xA + str r1, [sp, 0x4] + movs r1, 0x1A + str r1, [sp, 0x8] + movs r1, 0x8 + str r1, [sp, 0xC] + movs r1, 0x2 +_080E951E: + movs r2, 0x2 + bl sub_809D104 + b _080E9594 + .align 2, 0 +_080E9528: .4byte 0x06006800 +_080E952C: .4byte gUnknown_08E94AD0 +_080E9530: + ldr r0, _080E954C @ =0x06006800 + ldr r3, _080E9550 @ =gUnknown_08E94AD0 + movs r1, 0 + str r1, [sp] + str r1, [sp, 0x4] + movs r1, 0x1A + str r1, [sp, 0x8] + movs r1, 0xA + str r1, [sp, 0xC] + movs r1, 0x2 + movs r2, 0 + bl sub_809D104 + b _080E9594 + .align 2, 0 +_080E954C: .4byte 0x06006800 +_080E9550: .4byte gUnknown_08E94AD0 +_080E9554: + ldr r0, _080E9570 @ =0x06006800 + ldr r3, _080E9574 @ =gUnknown_08E94AD0 + movs r2, 0xD + str r2, [sp] + movs r1, 0x12 + str r1, [sp, 0x4] + str r2, [sp, 0x8] + movs r1, 0x4 + str r1, [sp, 0xC] + movs r1, 0xE +_080E9568: + movs r2, 0x3 + bl sub_809D104 + b _080E9594 + .align 2, 0 +_080E9570: .4byte 0x06006800 +_080E9574: .4byte gUnknown_08E94AD0 +_080E9578: + ldr r0, _080E959C @ =0x06006800 + ldr r3, _080E95A0 @ =gUnknown_08E94AD0 + movs r1, 0 + str r1, [sp] + movs r1, 0x20 + str r1, [sp, 0x4] + movs r1, 0x18 + str r1, [sp, 0x8] + movs r1, 0x4 + str r1, [sp, 0xC] + movs r1, 0x3 + movs r2, 0x2 + bl sub_809D104 +_080E9594: + add sp, 0x10 + pop {r0} + bx r0 + .align 2, 0 +_080E959C: .4byte 0x06006800 +_080E95A0: .4byte gUnknown_08E94AD0 + thumb_func_end sub_80E948C + + thumb_func_start sub_80E95A4 +sub_80E95A4: @ 80E95A4 + push {lr} + ldr r0, _080E95C0 @ =gWindowConfig_81E6D8C + bl BasicInitMenuWindow + ldr r0, _080E95C4 @ =gUnknown_083DB694 + ldr r0, [r0] + ldrb r0, [r0, 0x9] + cmp r0, 0x5 + bhi _080E9612 + lsls r0, 2 + ldr r1, _080E95C8 @ =_080E95CC + adds r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_080E95C0: .4byte gWindowConfig_81E6D8C +_080E95C4: .4byte gUnknown_083DB694 +_080E95C8: .4byte _080E95CC + .align 2, 0 +_080E95CC: + .4byte _080E95F2 + .4byte _080E95F6 + .4byte _080E9600 + .4byte _080E960A + .4byte _080E95E4 + .4byte _080E95EE +_080E95E4: + movs r0, 0x4 + movs r1, 0x6 + bl sub_80E9620 + b _080E9612 +_080E95EE: + movs r0, 0x2 + b _080E9602 +_080E95F2: + movs r0, 0x3 + b _080E95F8 +_080E95F6: + movs r0, 0 +_080E95F8: + movs r1, 0x5 + bl sub_80E9620 + b _080E9612 +_080E9600: + movs r0, 0x4 +_080E9602: + movs r1, 0x11 + bl sub_80E9620 + b _080E9612 +_080E960A: + movs r0, 0x3 + movs r1, 0x6 + bl sub_80E9620 +_080E9612: + ldr r0, _080E961C @ =gWindowConfig_81E6DA8 + bl BasicInitMenuWindow + pop {r0} + bx r0 + .align 2, 0 +_080E961C: .4byte gWindowConfig_81E6DA8 + thumb_func_end sub_80E95A4 + + thumb_func_start sub_80E9620 +sub_80E9620: @ 80E9620 + push {r4-r7,lr} + mov r7, r10 + mov r6, r9 + mov r5, r8 + push {r5-r7} + sub sp, 0x20 + lsls r0, 16 + lsls r1, 16 + lsrs r1, 16 + str r1, [sp, 0x14] + movs r1, 0 + mov r10, r1 + lsrs r7, r0, 16 + mov r9, r1 + ldr r0, _080E9644 @ =gUnknown_083DB694 + ldr r0, [r0] + b _080E971A + .align 2, 0 +_080E9644: .4byte gUnknown_083DB694 +_080E9648: + ldr r6, [sp, 0x14] + movs r2, 0 + mov r8, r2 + adds r0, r7, 0x2 + str r0, [sp, 0x1C] + mov r1, r9 + adds r1, 0x1 + str r1, [sp, 0x18] + b _080E96E4 +_080E965A: + mov r2, r10 + lsls r0, r2, 1 + adds r1, r5, 0 + adds r1, 0xC + adds r1, r0 + ldrh r0, [r1] + ldr r2, _080E9690 @ =0x0000ffff + cmp r0, r2 + bne _080E969C + movs r0, 0 + str r0, [sp] + str r0, [sp, 0x4] + movs r1, 0x9 + str r1, [sp, 0x8] + movs r0, 0x2 + str r0, [sp, 0xC] + str r1, [sp, 0x10] + ldr r0, _080E9694 @ =0x06007000 + adds r1, r6, 0 + adds r2, r7, 0 + ldr r3, _080E9698 @ =gUnknown_083DBE1C + bl sub_8095C8C + adds r0, r6, 0 + adds r0, 0xB + b _080E96CC + .align 2, 0 +_080E9690: .4byte 0x0000ffff +_080E9694: .4byte 0x06007000 +_080E9698: .4byte gUnknown_083DBE1C +_080E969C: + ldr r0, _080E9738 @ =0x0000a140 + adds r4, r5, r0 + ldrh r1, [r1] + adds r0, r4, 0 + movs r2, 0xB + bl sub_80EB218 + lsls r1, r6, 24 + lsrs r1, 24 + lsls r2, r7, 24 + lsrs r2, 24 + adds r0, r4, 0 + bl MenuPrint + mov r1, r9 + lsls r0, r1, 1 + add r0, r8 + adds r1, r5, 0 + adds r1, 0x8C + adds r1, r0 + adds r0, r6, 0 + adds r0, 0xB + ldrb r1, [r1] + adds r0, r1 +_080E96CC: + lsls r0, 16 + lsrs r6, r0, 16 + mov r0, r10 + adds r0, 0x1 + lsls r0, 16 + lsrs r0, 16 + mov r10, r0 + mov r0, r8 + adds r0, 0x1 + lsls r0, 16 + lsrs r0, 16 + mov r8, r0 +_080E96E4: + ldr r0, _080E973C @ =gUnknown_083DB694 + ldr r5, [r0] + adds r0, r5, 0 + adds r0, 0x83 + ldrb r0, [r0] + lsls r0, 24 + asrs r0, 24 + cmp r8, r0 + bge _080E970A + ldrb r2, [r5, 0xA] + cmp r10, r2 + bcc _080E965A + lsls r1, r6, 24 + lsrs r1, 24 + lsls r2, r7, 24 + lsrs r2, 24 + ldr r0, _080E9740 @ =gUnknown_083DBEA8 + bl MenuPrint +_080E970A: + ldr r1, [sp, 0x1C] + lsls r0, r1, 16 + lsrs r7, r0, 16 + ldr r2, [sp, 0x18] + lsls r0, r2, 16 + lsrs r0, 16 + mov r9, r0 + adds r0, r5, 0 +_080E971A: + adds r0, 0x84 + ldrb r0, [r0] + lsls r0, 24 + asrs r0, 24 + cmp r9, r0 + blt _080E9648 + add sp, 0x20 + pop {r3-r5} + mov r8, r3 + mov r9, r4 + mov r10, r5 + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_080E9738: .4byte 0x0000a140 +_080E973C: .4byte gUnknown_083DB694 +_080E9740: .4byte gUnknown_083DBEA8 + thumb_func_end sub_80E9620 + + thumb_func_start sub_80E9744 +sub_80E9744: @ 80E9744 + push {lr} + ldr r0, _080E9760 @ =gWindowConfig_81E6D8C + bl BasicInitMenuWindow + ldr r0, _080E9764 @ =gUnknown_083DB694 + ldr r0, [r0] + ldrb r0, [r0, 0x9] + cmp r0, 0x5 + bhi _080E97B2 + lsls r0, 2 + ldr r1, _080E9768 @ =_080E976C + adds r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_080E9760: .4byte gWindowConfig_81E6D8C +_080E9764: .4byte gUnknown_083DB694 +_080E9768: .4byte _080E976C + .align 2, 0 +_080E976C: + .4byte _080E9792 + .4byte _080E9796 + .4byte _080E97A0 + .4byte _080E97AA + .4byte _080E9784 + .4byte _080E978E +_080E9784: + movs r0, 0x4 + movs r1, 0x6 + bl sub_80E97C0 + b _080E97B2 +_080E978E: + movs r0, 0x2 + b _080E97A2 +_080E9792: + movs r0, 0x3 + b _080E9798 +_080E9796: + movs r0, 0 +_080E9798: + movs r1, 0x5 + bl sub_80E97C0 + b _080E97B2 +_080E97A0: + movs r0, 0x4 +_080E97A2: + movs r1, 0x11 + bl sub_80E97C0 + b _080E97B2 +_080E97AA: + movs r0, 0x3 + movs r1, 0x6 + bl sub_80E97C0 +_080E97B2: + ldr r0, _080E97BC @ =gWindowConfig_81E6DA8 + bl BasicInitMenuWindow + pop {r0} + bx r0 + .align 2, 0 +_080E97BC: .4byte gWindowConfig_81E6DA8 + thumb_func_end sub_80E9744 + + thumb_func_start sub_80E97C0 +sub_80E97C0: @ 80E97C0 + push {r4-r7,lr} + mov r7, r10 + mov r6, r9 + mov r5, r8 + push {r5-r7} + sub sp, 0x8 + lsls r0, 16 + lsrs r5, r0, 16 + lsls r1, 16 + lsrs r1, 16 + str r1, [sp] + movs r7, 0 + movs r3, 0 + ldr r1, _080E98B8 @ =gUnknown_083DB694 + ldr r0, [r1] + adds r0, 0x84 + ldrb r0, [r0] + lsls r0, 24 + asrs r0, 24 + cmp r3, r0 + bge _080E98A6 +_080E97EA: + ldr r1, [r1] + ldr r0, _080E98BC @ =0x0000a19a + adds r2, r1, r0 + movs r6, 0 + adds r0, r1, 0 + adds r0, 0x83 + ldrb r0, [r0] + lsls r0, 24 + asrs r0, 24 + ldr r4, [sp] + lsls r4, 24 + mov r8, r4 + lsls r4, r5, 24 + mov r9, r4 + adds r5, 0x2 + mov r10, r5 + adds r3, 0x1 + str r3, [sp, 0x4] + cmp r6, r0 + bge _080E985E + ldrb r1, [r1, 0xA] + cmp r7, r1 + bcs _080E985E + ldr r0, _080E98B8 @ =gUnknown_083DB694 + ldr r4, [r0] + ldr r5, _080E98C0 @ =0x0000ffff +_080E981E: + lsls r0, r7, 1 + adds r1, r4, 0 + adds r1, 0xC + adds r1, r0 + ldrh r0, [r1] + cmp r0, r5 + beq _080E983E + adds r1, r0, 0 + adds r0, r2, 0 + movs r2, 0 + bl sub_80EB218 + adds r2, r0, 0 + movs r0, 0 + strb r0, [r2] + adds r2, 0x1 +_080E983E: + adds r0, r7, 0x1 + lsls r0, 24 + lsrs r7, r0, 24 + adds r0, r6, 0x1 + lsls r0, 24 + lsrs r6, r0, 24 + adds r0, r4, 0 + adds r0, 0x83 + ldrb r0, [r0] + lsls r0, 24 + asrs r0, 24 + cmp r6, r0 + bge _080E985E + ldrb r0, [r4, 0xA] + cmp r7, r0 + bcc _080E981E +_080E985E: + ldr r1, _080E98B8 @ =gUnknown_083DB694 + ldr r4, [r1] + adds r0, r4, 0 + adds r0, 0x83 + movs r1, 0 + ldrsb r1, [r0, r1] + movs r0, 0xB + muls r1, r0 + movs r0, 0xFC + strb r0, [r2] + movs r0, 0x13 + strb r0, [r2, 0x1] + lsls r1, 3 + strb r1, [r2, 0x2] + movs r0, 0xFF + strb r0, [r2, 0x3] + ldr r2, _080E98BC @ =0x0000a19a + adds r0, r4, r2 + mov r3, r8 + lsrs r1, r3, 24 + mov r3, r9 + lsrs r2, r3, 24 + bl MenuPrint + mov r1, r10 + lsls r0, r1, 16 + lsrs r5, r0, 16 + ldr r2, [sp, 0x4] + lsls r0, r2, 24 + lsrs r3, r0, 24 + ldr r1, _080E98B8 @ =gUnknown_083DB694 + adds r4, 0x84 + movs r0, 0 + ldrsb r0, [r4, r0] + cmp r3, r0 + blt _080E97EA +_080E98A6: + add sp, 0x8 + pop {r3-r5} + mov r8, r3 + mov r9, r4 + mov r10, r5 + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_080E98B8: .4byte gUnknown_083DB694 +_080E98BC: .4byte 0x0000a19a +_080E98C0: .4byte 0x0000ffff + thumb_func_end sub_80E97C0 + + thumb_func_start sub_80E98C4 +sub_80E98C4: @ 80E98C4 + push {lr} + ldr r0, _080E98E0 @ =gWindowConfig_81E6D8C + bl BasicInitMenuWindow + ldr r0, _080E98E4 @ =gUnknown_083DB694 + ldr r0, [r0] + ldrb r0, [r0, 0x9] + cmp r0, 0x5 + bhi _080E9936 + lsls r0, 2 + ldr r1, _080E98E8 @ =_080E98EC + adds r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_080E98E0: .4byte gWindowConfig_81E6D8C +_080E98E4: .4byte gUnknown_083DB694 +_080E98E8: .4byte _080E98EC + .align 2, 0 +_080E98EC: + .4byte _080E990A + .4byte _080E9910 + .4byte _080E9916 + .4byte _080E991A + .4byte _080E9904 + .4byte _080E990A +_080E9904: + movs r1, 0x4 + movs r3, 0x2 + b _080E991E +_080E990A: + movs r1, 0x3 + movs r3, 0x2 + b _080E991E +_080E9910: + movs r1, 0x1 + movs r3, 0x3 + b _080E991E +_080E9916: + movs r1, 0x4 + b _080E991C +_080E991A: + movs r1, 0x3 +_080E991C: + movs r3, 0x1 +_080E991E: + lsls r3, 1 + adds r3, r1, r3 + subs r3, 0x1 + lsls r3, 24 + lsrs r3, 24 + movs r0, 0x2 + movs r2, 0x1B + bl MenuFillWindowRectWithBlankTile + ldr r0, _080E993C @ =gWindowConfig_81E6DA8 + bl BasicInitMenuWindow +_080E9936: + pop {r0} + bx r0 + .align 2, 0 +_080E993C: .4byte gWindowConfig_81E6DA8 + thumb_func_end sub_80E98C4 + + thumb_func_start sub_80E9940 +sub_80E9940: @ 80E9940 + push {r4-r6,lr} + adds r6, r0, 0 + lsls r5, r1, 24 + lsrs r5, 24 + movs r4, 0x7 + ands r4, r5 + lsls r3, r4, 1 + adds r1, r3, 0 + adds r3, 0x1 + movs r0, 0x2 + movs r2, 0x1F + bl MenuFillWindowRectWithBlankTile + adds r0, r6, 0 + adds r1, r5, 0 + bl sub_80E9A7C + lsls r4, 1 + adds r0, r6, 0 + movs r1, 0x2 + adds r2, r4, 0 + bl sub_80E9A60 + pop {r4-r6} + pop {r0} + bx r0 + thumb_func_end sub_80E9940 + + thumb_func_start sub_80E9974 +sub_80E9974: @ 80E9974 + push {r4-r6,lr} + ldr r0, _080E99C4 @ =gWindowConfig_81E6D54 + bl BasicInitMenuWindow + ldr r0, _080E99C8 @ =gUnknown_083DB694 + ldr r2, [r0] + adds r0, r2, 0 + adds r0, 0x26 + ldrb r0, [r0] + cmp r0, 0 + bne _080E99D4 + ldr r1, _080E99CC @ =0x000001b5 + adds r0, r2, r1 + ldrb r0, [r0] + lsls r0, 24 + asrs r0, 24 + lsls r1, r0, 16 + lsrs r4, r1, 16 + adds r0, 0x4 + cmp r4, r0 + bge _080E9A02 + adds r5, r2, 0 + ldr r2, _080E99CC @ =0x000001b5 + adds r6, r5, r2 +_080E99A4: + lsls r1, r4, 24 + lsrs r1, 24 + ldr r2, _080E99D0 @ =0x0000a0f5 + adds r0, r5, r2 + bl sub_80E9940 + adds r0, r4, 0x1 + lsls r0, 16 + lsrs r4, r0, 16 + movs r0, 0 + ldrsb r0, [r6, r0] + adds r0, 0x4 + cmp r4, r0 + blt _080E99A4 + b _080E9A02 + .align 2, 0 +_080E99C4: .4byte gWindowConfig_81E6D54 +_080E99C8: .4byte gUnknown_083DB694 +_080E99CC: .4byte 0x000001b5 +_080E99D0: .4byte 0x0000a0f5 +_080E99D4: + bl sub_80E9AD4 + ldr r4, _080E9A08 @ =gUnknown_083DBEAC + ldr r0, [r4] + movs r1, 0x2 + movs r2, 0 + bl sub_80E9A60 + ldr r0, [r4, 0x4] + movs r1, 0x2 + movs r2, 0x2 + bl sub_80E9A60 + ldr r0, [r4, 0x8] + movs r1, 0x2 + movs r2, 0x4 + bl sub_80E9A60 + ldr r0, [r4, 0xC] + movs r1, 0x2 + movs r2, 0x6 + bl sub_80E9A60 +_080E9A02: + pop {r4-r6} + pop {r0} + bx r0 + .align 2, 0 +_080E9A08: .4byte gUnknown_083DBEAC + thumb_func_end sub_80E9974 + + thumb_func_start sub_80E9A14 +sub_80E9A14: @ 80E9A14 + push {lr} + bl sub_80E9A4C + ldr r0, _080E9A44 @ =gUnknown_083DB694 + ldr r1, [r0] + adds r0, r1, 0 + adds r0, 0x26 + ldrb r0, [r0] + cmp r0, 0 + bne _080E9A40 + movs r0, 0xDD + lsls r0, 1 + adds r2, r1, r0 + ldr r3, _080E9A48 @ =0x000001b5 + adds r0, r1, r3 + ldrb r0, [r0] + lsls r0, 24 + asrs r0, 24 + lsls r0, 4 + ldrh r1, [r2] + adds r0, r1 + strh r0, [r2] +_080E9A40: + pop {r0} + bx r0 + .align 2, 0 +_080E9A44: .4byte gUnknown_083DB694 +_080E9A48: .4byte 0x000001b5 + thumb_func_end sub_80E9A14 + + thumb_func_start sub_80E9A4C +sub_80E9A4C: @ 80E9A4C + ldr r0, _080E9A5C @ =gUnknown_083DB694 + ldr r0, [r0] + movs r2, 0xDD + lsls r2, 1 + adds r1, r0, r2 + movs r0, 0 + strh r0, [r1] + bx lr + .align 2, 0 +_080E9A5C: .4byte gUnknown_083DB694 + thumb_func_end sub_80E9A4C + + thumb_func_start sub_80E9A60 +sub_80E9A60: @ 80E9A60 + push {lr} + lsls r2, 16 + movs r3, 0xF0 + lsls r3, 12 + ands r3, r2 + lsls r1, 24 + lsrs r1, 24 + lsrs r3, 16 + adds r2, r3, 0 + bl MenuPrint + pop {r0} + bx r0 + thumb_func_end sub_80E9A60 + + thumb_func_start sub_80E9A7C +sub_80E9A7C: @ 80E9A7C + push {r4-r7,lr} + adds r2, r0, 0 + lsls r1, 16 + lsrs r7, r1, 16 + lsls r0, r7, 17 + lsrs r5, r0, 16 + movs r4, 0 + ldr r0, _080E9AD0 @ =gUnknown_083DB694 + ldr r6, [r0] +_080E9A8E: + movs r0, 0xFC + strb r0, [r2] + movs r0, 0x12 + strb r0, [r2, 0x1] + movs r0, 0x58 + muls r0, r4 + strb r0, [r2, 0x2] + adds r2, 0x3 + lsls r1, r7, 1 + adds r1, r4, r1 + adds r0, r6, 0 + adds r0, 0x2A + adds r0, r1 + ldrb r1, [r0] + adds r0, r2, 0 + movs r2, 0xB + bl sub_80EAD64 + adds r2, r0, 0 + adds r0, r5, 0x1 + lsls r0, 16 + lsrs r5, r0, 16 + ldrh r0, [r6, 0x28] + cmp r5, r0 + bcs _080E9ACA + adds r0, r4, 0x1 + lsls r0, 16 + lsrs r4, r0, 16 + cmp r4, 0x1 + bls _080E9A8E +_080E9ACA: + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_080E9AD0: .4byte gUnknown_083DB694 + thumb_func_end sub_80E9A7C + + thumb_func_start sub_80E9AD4 +sub_80E9AD4: @ 80E9AD4 + push {r4,lr} + ldr r0, _080E9AF4 @ =gWindowConfig_81E6D54 + bl BasicInitMenuWindow + movs r4, 0 +_080E9ADE: + adds r0, r4, 0 + bl sub_80E9C74 + adds r0, r4, 0x1 + lsls r0, 16 + lsrs r4, r0, 16 + cmp r4, 0xF + bls _080E9ADE + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_080E9AF4: .4byte gWindowConfig_81E6D54 + thumb_func_end sub_80E9AD4 + + thumb_func_start sub_80E9AF8 +sub_80E9AF8: @ 80E9AF8 + push {r4-r7,lr} + mov r7, r10 + mov r6, r9 + mov r5, r8 + push {r5-r7} + sub sp, 0x4 + lsls r0, 16 + lsrs r7, r0, 16 + adds r0, r7, 0 + bl sub_80E9C74 + ldr r4, _080E9B7C @ =gUnknown_083DB694 + ldr r5, [r4] + ldr r0, _080E9B80 @ =0x0000a140 + adds r0, r5 + mov r8, r0 + movs r0, 0xFC + mov r1, r8 + strb r0, [r1] + movs r0, 0x11 + strb r0, [r1, 0x1] + movs r0, 0x10 + strb r0, [r1, 0x2] + ldr r2, _080E9B84 @ =0x0000a143 + adds r2, r5 + mov r8, r2 + adds r0, r5, 0 + adds r0, 0x7D + ldrb r0, [r0] + cmp r0, 0 + beq _080E9BF4 + movs r6, 0 + ldr r3, _080E9B88 @ =0x00009cd2 + adds r0, r5, r3 + adds r0, r7 + ldrb r0, [r0] + lsls r0, 24 + asrs r0, 24 + cmp r6, r0 + blt _080E9B4A + b _080E9C52 +_080E9B4A: + lsls r0, r7, 2 + mov r9, r0 + ldr r1, _080E9B8C @ =0x00009d56 + adds r1, r5, r1 + str r1, [sp] + lsls r2, r7, 17 + mov r10, r2 +_080E9B58: + lsls r4, r6, 1 + mov r3, r9 + adds r0, r4, r3 + ldr r1, [sp] + adds r0, r1, r0 + ldrh r0, [r0] + bl sub_80EB2D4 + lsls r0, 16 + lsrs r0, 16 + adds r5, r4, 0 + cmp r0, 0x7 + bne _080E9B94 + ldr r0, _080E9B90 @ =gWindowConfig_81E6D70 + bl BasicInitMenuWindow + b _080E9B9A + .align 2, 0 +_080E9B7C: .4byte gUnknown_083DB694 +_080E9B80: .4byte 0x0000a140 +_080E9B84: .4byte 0x0000a143 +_080E9B88: .4byte 0x00009cd2 +_080E9B8C: .4byte 0x00009d56 +_080E9B90: .4byte gWindowConfig_81E6D70 +_080E9B94: + ldr r0, _080E9BE0 @ =gWindowConfig_81E6D54 + bl BasicInitMenuWindow +_080E9B9A: + ldr r2, _080E9BE4 @ =gUnknown_083DB694 + ldr r4, [r2] + mov r3, r9 + adds r1, r5, r3 + ldr r2, _080E9BE8 @ =0x00009d56 + adds r0, r4, r2 + adds r0, r1 + ldrh r1, [r0] + mov r0, r8 + movs r2, 0x9 + bl sub_80EB218 + ldr r3, _080E9BEC @ =0x0000a140 + adds r0, r4, r3 + movs r1, 0xB + muls r1, r6 + adds r1, 0x4 + lsls r1, 16 + lsrs r1, 16 + mov r3, r10 + lsrs r2, r3, 16 + bl sub_80E9A60 + adds r0, r6, 0x1 + lsls r0, 16 + lsrs r6, r0, 16 + ldr r0, _080E9BF0 @ =0x00009cd2 + adds r4, r0 + adds r4, r7 + movs r0, 0 + ldrsb r0, [r4, r0] + cmp r6, r0 + blt _080E9B58 + b _080E9C52 + .align 2, 0 +_080E9BE0: .4byte gWindowConfig_81E6D54 +_080E9BE4: .4byte gUnknown_083DB694 +_080E9BE8: .4byte 0x00009d56 +_080E9BEC: .4byte 0x0000a140 +_080E9BF0: .4byte 0x00009cd2 +_080E9BF4: + ldr r0, _080E9C64 @ =gWindowConfig_81E6D54 + bl BasicInitMenuWindow + movs r6, 0 + ldr r1, _080E9C68 @ =0x00009cd2 + adds r0, r5, r1 + adds r0, r7 + ldrb r0, [r0] + lsls r0, 24 + asrs r0, 24 + cmp r6, r0 + bge _080E9C52 + adds r4, r5, 0 + adds r0, r4, r1 + adds r0, r7 + mov r9, r0 + lsls r5, r7, 17 +_080E9C16: + lsls r1, r6, 1 + lsls r0, r7, 2 + adds r1, r0 + ldr r2, _080E9C6C @ =0x00009d56 + adds r0, r4, r2 + adds r0, r1 + ldrh r1, [r0] + mov r0, r8 + movs r2, 0x9 + bl sub_80EB218 + movs r0, 0xB + adds r1, r6, 0 + muls r1, r0 + adds r1, 0x4 + lsls r1, 16 + lsrs r1, 16 + ldr r3, _080E9C70 @ =0x0000a140 + adds r0, r4, r3 + lsrs r2, r5, 16 + bl sub_80E9A60 + adds r0, r6, 0x1 + lsls r0, 16 + lsrs r6, r0, 16 + mov r1, r9 + movs r0, 0 + ldrsb r0, [r1, r0] + cmp r6, r0 + blt _080E9C16 +_080E9C52: + add sp, 0x4 + pop {r3-r5} + mov r8, r3 + mov r9, r4 + mov r10, r5 + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_080E9C64: .4byte gWindowConfig_81E6D54 +_080E9C68: .4byte 0x00009cd2 +_080E9C6C: .4byte 0x00009d56 +_080E9C70: .4byte 0x0000a140 + thumb_func_end sub_80E9AF8 + + thumb_func_start sub_80E9C74 +sub_80E9C74: @ 80E9C74 + push {lr} + lsls r0, 16 + movs r1, 0xE0 + lsls r1, 11 + ands r1, r0 + lsrs r1, 16 + lsls r3, r1, 1 + adds r1, r3, 0 + adds r3, 0x1 + movs r0, 0 + movs r2, 0x1D + bl MenuFillWindowRectWithBlankTile + pop {r0} + bx r0 + thumb_func_end sub_80E9C74 + + thumb_func_start sub_80E9C94 +sub_80E9C94: @ 80E9C94 + push {r4-r6,lr} + ldr r0, _080E9CAC @ =gUnknown_083DB694 + ldr r0, [r0] + ldr r2, _080E9CB0 @ =0x00009d54 + adds r1, r0, r2 + movs r0, 0 + ldrsb r0, [r1, r0] + cmp r0, 0x3 + bgt _080E9CB4 + lsls r0, 16 + lsrs r0, 16 + b _080E9CB6 + .align 2, 0 +_080E9CAC: .4byte gUnknown_083DB694 +_080E9CB0: .4byte 0x00009d54 +_080E9CB4: + movs r0, 0x4 +_080E9CB6: + adds r5, r0, 0 + movs r4, 0 + cmp r4, r5 + bcs _080E9CF4 + ldr r0, _080E9CE0 @ =gUnknown_083DB694 + ldr r0, [r0] + ldr r1, _080E9CE4 @ =0x00009d55 + adds r6, r0, r1 +_080E9CC6: + movs r0, 0 + ldrsb r0, [r6, r0] + adds r0, r4, r0 + lsls r0, 16 + lsrs r0, 16 + bl sub_80E9AF8 + adds r0, r4, 0x1 + lsls r0, 16 + lsrs r4, r0, 16 + cmp r4, r5 + bcc _080E9CC6 + b _080E9CF4 + .align 2, 0 +_080E9CE0: .4byte gUnknown_083DB694 +_080E9CE4: .4byte 0x00009d55 +_080E9CE8: + adds r0, r4, 0 + adds r1, r0, 0x1 + lsls r1, 16 + lsrs r4, r1, 16 + bl sub_80E9C74 +_080E9CF4: + cmp r4, 0x3 + bls _080E9CE8 + pop {r4-r6} + pop {r0} + bx r0 + thumb_func_end sub_80E9C94 + + thumb_func_start sub_80E9D00 +sub_80E9D00: @ 80E9D00 + push {r4-r6,lr} + ldr r0, _080E9D28 @ =gUnknown_083DB694 + ldr r2, [r0] + movs r0, 0xE0 + lsls r0, 1 + adds r1, r2, r0 + movs r0, 0 + ldrsb r0, [r1, r0] + cmp r0, 0 + ble _080E9D30 + lsls r0, 16 + lsrs r4, r0, 16 + ldr r1, _080E9D2C @ =0x00009d55 + adds r0, r2, r1 + ldrb r0, [r0] + lsls r0, 24 + asrs r0, 24 + adds r0, 0x4 + b _080E9D46 + .align 2, 0 +_080E9D28: .4byte gUnknown_083DB694 +_080E9D2C: .4byte 0x00009d55 +_080E9D30: + movs r0, 0 + ldrsb r0, [r1, r0] + negs r0, r0 + lsls r0, 16 + lsrs r4, r0, 16 + ldr r1, _080E9D74 @ =0x00009d55 + adds r0, r2, r1 + ldrb r0, [r0] + lsls r0, 24 + asrs r0, 24 + subs r0, r4 +_080E9D46: + lsls r0, 16 + lsrs r5, r0, 16 + subs r0, r4, 0x1 + lsls r0, 16 + lsrs r4, r0, 16 + ldr r0, _080E9D78 @ =0x0000ffff + cmp r4, r0 + beq _080E9D6E + adds r6, r0, 0 +_080E9D58: + adds r0, r5, 0 + adds r1, r0, 0x1 + lsls r1, 16 + lsrs r5, r1, 16 + bl sub_80E9AF8 + subs r0, r4, 0x1 + lsls r0, 16 + lsrs r4, r0, 16 + cmp r4, r6 + bne _080E9D58 +_080E9D6E: + pop {r4-r6} + pop {r0} + bx r0 + .align 2, 0 +_080E9D74: .4byte 0x00009d55 +_080E9D78: .4byte 0x0000ffff + thumb_func_end sub_80E9D00 + + thumb_func_start sub_80E9D7C +sub_80E9D7C: @ 80E9D7C + push {r4-r7,lr} + ldr r0, _080E9DAC @ =gWindowConfig_81E6D54 + bl BasicInitMenuWindow + ldr r0, _080E9DB0 @ =gUnknown_083DB694 + ldr r2, [r0] + movs r0, 0xE0 + lsls r0, 1 + adds r1, r2, r0 + movs r0, 0 + ldrsb r0, [r1, r0] + cmp r0, 0 + bge _080E9DB8 + negs r0, r0 + lsls r0, 16 + lsrs r6, r0, 16 + ldr r1, _080E9DB4 @ =0x000001b5 + adds r0, r2, r1 + ldrb r0, [r0] + lsls r0, 24 + asrs r0, 24 + subs r0, r6 + b _080E9DCC + .align 2, 0 +_080E9DAC: .4byte gWindowConfig_81E6D54 +_080E9DB0: .4byte gUnknown_083DB694 +_080E9DB4: .4byte 0x000001b5 +_080E9DB8: + movs r0, 0 + ldrsb r0, [r1, r0] + lsls r0, 16 + lsrs r6, r0, 16 + ldr r1, _080E9DFC @ =0x000001b5 + adds r0, r2, r1 + ldrb r0, [r0] + lsls r0, 24 + asrs r0, 24 + adds r0, 0x4 +_080E9DCC: + lsls r0, 16 + lsrs r4, r0, 16 + movs r5, 0 + cmp r5, r6 + bcs _080E9DF6 + ldr r0, _080E9E00 @ =gUnknown_083DB694 + ldr r7, [r0] +_080E9DDA: + lsls r1, r4, 24 + lsrs r1, 24 + ldr r2, _080E9E04 @ =0x0000a0f5 + adds r0, r7, r2 + bl sub_80E9940 + adds r0, r4, 0x1 + lsls r0, 16 + lsrs r4, r0, 16 + adds r0, r5, 0x1 + lsls r0, 16 + lsrs r5, r0, 16 + cmp r5, r6 + bcc _080E9DDA +_080E9DF6: + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_080E9DFC: .4byte 0x000001b5 +_080E9E00: .4byte gUnknown_083DB694 +_080E9E04: .4byte 0x0000a0f5 + thumb_func_end sub_80E9D7C + + thumb_func_start sub_80E9E08 +sub_80E9E08: @ 80E9E08 + push {r4,r5,lr} + lsls r0, 24 + lsrs r4, r0, 24 + ldr r0, _080E9E4C @ =gUnknown_083DB694 + ldr r3, [r0] + movs r0, 0xDD + lsls r0, 1 + adds r1, r3, r0 + movs r5, 0xE0 + lsls r5, 1 + adds r2, r3, r5 + movs r0, 0 + ldrsb r0, [r2, r0] + lsls r0, 4 + ldrh r1, [r1] + adds r0, r1 + movs r1, 0x7F + ands r0, r1 + subs r5, 0x4 + adds r1, r3, r5 + strh r0, [r1] + adds r1, r4, 0 + movs r0, 0 + ldrsb r0, [r2, r0] + cmp r0, 0 + bge _080E9E3E + negs r1, r4 +_080E9E3E: + ldr r2, _080E9E50 @ =0x000001bf + adds r0, r3, r2 + strb r1, [r0] + pop {r4,r5} + pop {r0} + bx r0 + .align 2, 0 +_080E9E4C: .4byte gUnknown_083DB694 +_080E9E50: .4byte 0x000001bf + thumb_func_end sub_80E9E08 + + thumb_func_start sub_80E9E54 +sub_80E9E54: @ 80E9E54 + push {r4,lr} + ldr r0, _080E9E8C @ =gUnknown_083DB694 + ldr r2, [r0] + movs r0, 0xDD + lsls r0, 1 + adds r3, r2, r0 + ldr r1, _080E9E90 @ =0x000001bf + adds r0, r2, r1 + ldrb r0, [r0] + lsls r0, 24 + asrs r0, 24 + ldrh r4, [r3] + adds r0, r4 + movs r1, 0x7F + ands r0, r1 + strh r0, [r3] + movs r3, 0 + movs r4, 0xDE + lsls r4, 1 + adds r1, r2, r4 + ldrh r1, [r1] + cmp r0, r1 + bne _080E9E84 + movs r3, 0x1 +_080E9E84: + adds r0, r3, 0 + pop {r4} + pop {r1} + bx r1 + .align 2, 0 +_080E9E8C: .4byte gUnknown_083DB694 +_080E9E90: .4byte 0x000001bf + thumb_func_end sub_80E9E54 + + thumb_func_start nullsub_23 +nullsub_23: @ 80E9E94 + bx lr + thumb_func_end nullsub_23 + + thumb_func_start sub_80E9E98 +sub_80E9E98: @ 80E9E98 + ldr r0, _080E9EA4 @ =gUnknown_083DB694 + ldr r0, [r0] + adds r0, 0xBE + movs r1, 0 + strh r1, [r0] + bx lr + .align 2, 0 +_080E9EA4: .4byte gUnknown_083DB694 + thumb_func_end sub_80E9E98 + + thumb_func_start sub_80E9EA8 +sub_80E9EA8: @ 80E9EA8 + push {lr} + ldr r1, _080E9EC4 @ =gUnknown_083DB694 + ldr r0, [r1] + adds r0, 0xBE + ldrh r0, [r0] + adds r2, r1, 0 + cmp r0, 0x5 + bhi _080E9F48 + lsls r0, 2 + ldr r1, _080E9EC8 @ =_080E9ECC + adds r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_080E9EC4: .4byte gUnknown_083DB694 +_080E9EC8: .4byte _080E9ECC + .align 2, 0 +_080E9ECC: + .4byte _080E9EE4 + .4byte _080E9EF4 + .4byte _080E9F0C + .4byte _080E9F24 + .4byte _080E9F38 + .4byte _080E9F44 +_080E9EE4: + bl sub_80EA24C + ldr r0, _080E9F08 @ =gUnknown_083DB694 + ldr r1, [r0] + adds r1, 0xBE + ldrh r0, [r1] + adds r0, 0x1 + strh r0, [r1] +_080E9EF4: + bl sub_80EA1E0 + lsls r0, 24 + cmp r0, 0 + beq _080E9F48 + bl sub_80EA4A4 + ldr r0, _080E9F08 @ =gUnknown_083DB694 + ldr r1, [r0] + b _080E9F3A + .align 2, 0 +_080E9F08: .4byte gUnknown_083DB694 +_080E9F0C: + bl sub_80EA1E0 + lsls r0, 24 + cmp r0, 0 + beq _080E9F48 + bl sub_80EA704 + ldr r0, _080E9F20 @ =gUnknown_083DB694 + ldr r1, [r0] + b _080E9F3A + .align 2, 0 +_080E9F20: .4byte gUnknown_083DB694 +_080E9F24: + bl sub_80EA1E0 + lsls r0, 24 + cmp r0, 0 + beq _080E9F48 + ldr r0, _080E9F34 @ =gUnknown_083DB694 + ldr r1, [r0] + b _080E9F3A + .align 2, 0 +_080E9F34: .4byte gUnknown_083DB694 +_080E9F38: + ldr r1, [r2] +_080E9F3A: + adds r1, 0xBE + ldrh r0, [r1] + adds r0, 0x1 + strh r0, [r1] + b _080E9F48 +_080E9F44: + movs r0, 0x1 + b _080E9F4A +_080E9F48: + movs r0, 0 +_080E9F4A: + pop {r1} + bx r1 + thumb_func_end sub_80E9EA8 + + thumb_func_start sub_80E9F50 +sub_80E9F50: @ 80E9F50 + push {lr} + ldr r0, _080E9F68 @ =gUnknown_083DB694 + ldr r0, [r0] + adds r0, 0xBE + ldrh r0, [r0] + cmp r0, 0x6 + bhi _080E9FCC + lsls r0, 2 + ldr r1, _080E9F6C @ =_080E9F70 + adds r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_080E9F68: .4byte gUnknown_083DB694 +_080E9F6C: .4byte _080E9F70 + .align 2, 0 +_080E9F70: + .4byte _080E9F8C + .4byte _080E9FAC + .4byte _080E9F96 + .4byte _080E9FAC + .4byte _080E9F9C + .4byte _080E9FAC + .4byte _080E9FC8 +_080E9F8C: + bl nullsub_23 + bl sub_80EA764 + b _080E9FA0 +_080E9F96: + bl sub_80EA5A0 + b _080E9FA0 +_080E9F9C: + bl sub_80EA348 +_080E9FA0: + ldr r0, _080E9FC4 @ =gUnknown_083DB694 + ldr r1, [r0] + adds r1, 0xBE + ldrh r0, [r1] + adds r0, 0x1 + strh r0, [r1] +_080E9FAC: + bl sub_80EA1E0 + lsls r0, 24 + cmp r0, 0 + beq _080E9FCC + ldr r0, _080E9FC4 @ =gUnknown_083DB694 + ldr r1, [r0] + adds r1, 0xBE + ldrh r0, [r1] + adds r0, 0x1 + strh r0, [r1] + b _080E9FCC + .align 2, 0 +_080E9FC4: .4byte gUnknown_083DB694 +_080E9FC8: + movs r0, 0x1 + b _080E9FCE +_080E9FCC: + movs r0, 0 +_080E9FCE: + pop {r1} + bx r1 + thumb_func_end sub_80E9F50 + + thumb_func_start sub_80E9FD4 +sub_80E9FD4: @ 80E9FD4 + push {r4,lr} + ldr r0, _080E9FEC @ =gUnknown_083DB694 + ldr r0, [r0] + adds r4, r0, 0 + adds r4, 0xBE + ldrh r0, [r4] + cmp r0, 0 + beq _080E9FF0 + cmp r0, 0x1 + beq _080E9FFE + b _080EA00C + .align 2, 0 +_080E9FEC: .4byte gUnknown_083DB694 +_080E9FF0: + bl nullsub_23 + bl sub_80EA5A0 + ldrh r0, [r4] + adds r0, 0x1 + strh r0, [r4] +_080E9FFE: + bl sub_80EA1E0 + lsls r0, 24 + cmp r0, 0 + beq _080EA00C + movs r0, 0x1 + b _080EA00E +_080EA00C: + movs r0, 0 +_080EA00E: + pop {r4} + pop {r1} + bx r1 + thumb_func_end sub_80E9FD4 + + thumb_func_start sub_80EA014 +sub_80EA014: @ 80EA014 + push {r4,lr} + ldr r0, _080EA02C @ =gUnknown_083DB694 + ldr r0, [r0] + adds r4, r0, 0 + adds r4, 0xBE + ldrh r0, [r4] + cmp r0, 0 + beq _080EA030 + cmp r0, 0x1 + beq _080EA03A + b _080EA048 + .align 2, 0 +_080EA02C: .4byte gUnknown_083DB694 +_080EA030: + bl sub_80EA4A4 + ldrh r0, [r4] + adds r0, 0x1 + strh r0, [r4] +_080EA03A: + bl sub_80EA1E0 + lsls r0, 24 + cmp r0, 0 + beq _080EA048 + movs r0, 0x1 + b _080EA04A +_080EA048: + movs r0, 0 +_080EA04A: + pop {r4} + pop {r1} + bx r1 + thumb_func_end sub_80EA014 + + thumb_func_start sub_80EA050 +sub_80EA050: @ 80EA050 + push {lr} + ldr r0, _080EA068 @ =gUnknown_083DB694 + ldr r0, [r0] + adds r0, 0xBE + ldrh r0, [r0] + cmp r0, 0x4 + bhi _080EA0DC + lsls r0, 2 + ldr r1, _080EA06C @ =_080EA070 + adds r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_080EA068: .4byte gUnknown_083DB694 +_080EA06C: .4byte _080EA070 + .align 2, 0 +_080EA070: + .4byte _080EA084 + .4byte _080EA08E + .4byte _080EA09E + .4byte _080EA0B4 + .4byte _080EA0D8 +_080EA084: + bl nullsub_23 + bl sub_80EA764 + b _080EA0C4 +_080EA08E: + bl sub_80EA1E0 + lsls r0, 24 + cmp r0, 0 + beq _080EA0DC + bl sub_80EA7F4 + b _080EA0C4 +_080EA09E: + movs r0, 0x1 + bl sub_80E9108 + bl sub_80EA1E0 + lsls r0, 24 + cmp r0, 0 + beq _080EA0DC + bl sub_80EA8BC + b _080EA0C4 +_080EA0B4: + movs r0, 0x1 + bl sub_80E9108 + bl sub_80EA1E0 + lsls r0, 24 + cmp r0, 0 + beq _080EA0DC +_080EA0C4: + ldr r0, _080EA0D4 @ =gUnknown_083DB694 + ldr r1, [r0] + adds r1, 0xBE + ldrh r0, [r1] + adds r0, 0x1 + strh r0, [r1] + b _080EA0DC + .align 2, 0 +_080EA0D4: .4byte gUnknown_083DB694 +_080EA0D8: + movs r0, 0x1 + b _080EA0DE +_080EA0DC: + movs r0, 0 +_080EA0DE: + pop {r1} + bx r1 + thumb_func_end sub_80EA050 + + thumb_func_start sub_80EA0E4 +sub_80EA0E4: @ 80EA0E4 + push {lr} + ldr r0, _080EA0FC @ =gUnknown_083DB694 + ldr r0, [r0] + adds r0, 0xBE + ldrh r0, [r0] + cmp r0, 0x4 + bhi _080EA17C + lsls r0, 2 + ldr r1, _080EA100 @ =_080EA104 + adds r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_080EA0FC: .4byte gUnknown_083DB694 +_080EA100: .4byte _080EA104 + .align 2, 0 +_080EA104: + .4byte _080EA118 + .4byte _080EA128 + .4byte _080EA144 + .4byte _080EA15C + .4byte _080EA178 +_080EA118: + bl sub_80EA948 + ldr r0, _080EA140 @ =gUnknown_083DB694 + ldr r1, [r0] + adds r1, 0xBE + ldrh r0, [r1] + adds r0, 0x1 + strh r0, [r1] +_080EA128: + movs r0, 0x1 + negs r0, r0 + bl sub_80E9108 + bl sub_80EA1E0 + lsls r0, 24 + cmp r0, 0 + beq _080EA17C + bl sub_80EAA44 + b _080EA166 + .align 2, 0 +_080EA140: .4byte gUnknown_083DB694 +_080EA144: + movs r0, 0x1 + negs r0, r0 + bl sub_80E9108 + bl sub_80EA1E0 + lsls r0, 24 + cmp r0, 0 + beq _080EA17C + bl sub_80EA704 + b _080EA166 +_080EA15C: + bl sub_80EA1E0 + lsls r0, 24 + cmp r0, 0 + beq _080EA17C +_080EA166: + ldr r0, _080EA174 @ =gUnknown_083DB694 + ldr r1, [r0] + adds r1, 0xBE + ldrh r0, [r1] + adds r0, 0x1 + strh r0, [r1] + b _080EA17C + .align 2, 0 +_080EA174: .4byte gUnknown_083DB694 +_080EA178: + movs r0, 0x1 + b _080EA17E +_080EA17C: + movs r0, 0 +_080EA17E: + pop {r1} + bx r1 + thumb_func_end sub_80EA0E4 + + thumb_func_start sub_80EA184 +sub_80EA184: @ 80EA184 + push {r4,lr} + ldr r0, _080EA1A0 @ =gUnknown_083DB694 + ldr r0, [r0] + adds r4, r0, 0 + adds r4, 0xBE + ldrh r0, [r4] + cmp r0, 0x1 + beq _080EA1B4 + cmp r0, 0x1 + bgt _080EA1A4 + cmp r0, 0 + beq _080EA1AA + b _080EA1D8 + .align 2, 0 +_080EA1A0: .4byte gUnknown_083DB694 +_080EA1A4: + cmp r0, 0x2 + beq _080EA1D0 + b _080EA1D8 +_080EA1AA: + bl sub_80EAAD4 + ldrh r0, [r4] + adds r0, 0x1 + strh r0, [r4] +_080EA1B4: + bl sub_80EA1E0 + lsls r0, 24 + cmp r0, 0 + beq _080EA1D8 + ldr r0, _080EA1CC @ =gUnknown_083DB694 + ldr r1, [r0] + adds r1, 0xBE + ldrh r0, [r1] + adds r0, 0x1 + strh r0, [r1] + b _080EA1D8 + .align 2, 0 +_080EA1CC: .4byte gUnknown_083DB694 +_080EA1D0: + bl sub_80E9178 + movs r0, 0x1 + b _080EA1DA +_080EA1D8: + movs r0, 0 +_080EA1DA: + pop {r4} + pop {r1} + bx r1 + thumb_func_end sub_80EA184 + + thumb_func_start sub_80EA1E0 +sub_80EA1E0: @ 80EA1E0 + push {r4-r6,lr} + ldr r0, _080EA240 @ =gUnknown_083DB694 + ldr r1, [r0] + adds r0, r1, 0 + adds r0, 0xC4 + ldrh r0, [r0] + cmp r0, 0 + beq _080EA244 + movs r4, 0 + adds r0, r1, 0 + adds r0, 0xC2 + ldrh r2, [r0] + cmp r4, r2 + bcs _080EA228 + adds r5, r1, 0 + adds r6, r0, 0 +_080EA200: + lsls r0, r4, 4 + adds r0, 0xC8 + adds r0, r5, r0 + bl sub_80EAC0C + lsls r0, r4, 1 + adds r0, r4 + lsls r0, 2 + movs r1, 0xA4 + lsls r1, 1 + adds r0, r1 + adds r0, r5, r0 + bl sub_80EAC48 + adds r0, r4, 0x1 + lsls r0, 16 + lsrs r4, r0, 16 + ldrh r2, [r6] + cmp r4, r2 + bcc _080EA200 +_080EA228: + ldr r0, _080EA240 @ =gUnknown_083DB694 + ldr r1, [r0] + adds r2, r1, 0 + adds r2, 0xBC + movs r0, 0x1 + strb r0, [r2] + adds r1, 0xC4 + ldrh r0, [r1] + subs r0, 0x1 + strh r0, [r1] + movs r0, 0 + b _080EA246 + .align 2, 0 +_080EA240: .4byte gUnknown_083DB694 +_080EA244: + movs r0, 0x1 +_080EA246: + pop {r4-r6} + pop {r1} + bx r1 + thumb_func_end sub_80EA1E0 + + thumb_func_start sub_80EA24C +sub_80EA24C: @ 80EA24C + push {r4-r7,lr} + mov r7, r9 + mov r6, r8 + push {r6,r7} + sub sp, 0x14 + ldr r0, _080EA340 @ =gUnknown_083DB694 + ldr r7, [r0] + adds r0, r7, 0 + adds r0, 0xC8 + movs r6, 0xF + str r6, [sp] + ldr r1, _080EA344 @ =0x0000fffe + mov r8, r1 + str r1, [sp, 0x4] + movs r4, 0 + str r4, [sp, 0x8] + str r4, [sp, 0xC] + str r4, [sp, 0x10] + movs r1, 0xD + movs r2, 0xE + movs r3, 0xD + bl sub_80EABD4 + movs r1, 0xA4 + lsls r1, 1 + adds r0, r7, r1 + str r4, [sp] + movs r1, 0xD9 + lsls r1, 3 + adds r5, r7, r1 + str r5, [sp, 0x4] + movs r1, 0 + movs r2, 0 + movs r3, 0 + bl sub_80EAC30 + adds r0, r7, 0 + adds r0, 0xD8 + str r6, [sp] + str r4, [sp, 0x4] + str r4, [sp, 0x8] + movs r1, 0x2 + mov r9, r1 + str r1, [sp, 0xC] + str r4, [sp, 0x10] + movs r1, 0xC + movs r2, 0xE + movs r3, 0xC + bl sub_80EABD4 + movs r1, 0xAA + lsls r1, 1 + adds r0, r7, r1 + str r4, [sp] + str r5, [sp, 0x4] + movs r1, 0x1E + movs r2, 0 + mov r3, r8 + bl sub_80EAC30 + adds r0, r7, 0 + adds r0, 0xE8 + movs r6, 0x10 + str r6, [sp] + mov r1, r8 + str r1, [sp, 0x4] + str r4, [sp, 0x8] + str r4, [sp, 0xC] + str r4, [sp, 0x10] + movs r1, 0xD + movs r2, 0xF + movs r3, 0xD + bl sub_80EABD4 + movs r1, 0xB0 + lsls r1, 1 + adds r0, r7, r1 + str r4, [sp] + str r5, [sp, 0x4] + movs r1, 0 + movs r2, 0x9 + movs r3, 0 + bl sub_80EAC30 + adds r0, r7, 0 + adds r0, 0xF8 + str r6, [sp] + str r4, [sp, 0x4] + str r4, [sp, 0x8] + mov r1, r9 + str r1, [sp, 0xC] + str r4, [sp, 0x10] + movs r1, 0xC + movs r2, 0xF + movs r3, 0xC + bl sub_80EABD4 + movs r1, 0xB6 + lsls r1, 1 + adds r0, r7, r1 + str r4, [sp] + str r5, [sp, 0x4] + movs r1, 0x1E + movs r2, 0x9 + mov r3, r8 + bl sub_80EAC30 + adds r1, r7, 0 + adds r1, 0xC2 + movs r0, 0x4 + strh r0, [r1] + adds r1, 0x2 + movs r0, 0x6 + strh r0, [r1] + add sp, 0x14 + pop {r3,r4} + mov r8, r3 + mov r9, r4 + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_080EA340: .4byte gUnknown_083DB694 +_080EA344: .4byte 0x0000fffe + thumb_func_end sub_80EA24C + + thumb_func_start sub_80EA348 +sub_80EA348: @ 80EA348 + push {r4-r7,lr} + mov r7, r9 + mov r6, r8 + push {r6,r7} + sub sp, 0x14 + ldr r0, _080EA49C @ =gUnknown_083DB694 + ldr r7, [r0] + adds r0, r7, 0 + adds r0, 0xC8 + movs r5, 0xF + str r5, [sp] + movs r1, 0x2 + mov r9, r1 + str r1, [sp, 0x4] + movs r4, 0 + str r4, [sp, 0x8] + str r4, [sp, 0xC] + str r4, [sp, 0x10] + movs r1, 0x1 + movs r2, 0xE + movs r3, 0xD + bl sub_80EABD4 + movs r1, 0xA4 + lsls r1, 1 + adds r0, r7, r1 + str r4, [sp] + movs r1, 0xD9 + lsls r1, 3 + adds r6, r7, r1 + str r6, [sp, 0x4] + movs r1, 0 + movs r2, 0 + movs r3, 0 + bl sub_80EAC30 + adds r0, r7, 0 + adds r0, 0xD8 + str r5, [sp] + str r4, [sp, 0x4] + str r4, [sp, 0x8] + ldr r1, _080EA4A0 @ =0x0000fffe + mov r8, r1 + str r1, [sp, 0xC] + str r4, [sp, 0x10] + movs r1, 0xC + movs r2, 0xE + movs r3, 0x18 + bl sub_80EABD4 + movs r1, 0xAA + lsls r1, 1 + adds r0, r7, r1 + str r4, [sp] + str r6, [sp, 0x4] + movs r1, 0x12 + movs r2, 0 + movs r3, 0x2 + bl sub_80EAC30 + adds r0, r7, 0 + adds r0, 0xE8 + movs r5, 0x10 + str r5, [sp] + mov r1, r9 + str r1, [sp, 0x4] + str r4, [sp, 0x8] + str r4, [sp, 0xC] + str r4, [sp, 0x10] + movs r1, 0x1 + movs r2, 0xF + movs r3, 0xD + bl sub_80EABD4 + movs r1, 0xB0 + lsls r1, 1 + adds r0, r7, r1 + str r4, [sp] + str r6, [sp, 0x4] + movs r1, 0 + movs r2, 0x9 + movs r3, 0 + bl sub_80EAC30 + adds r0, r7, 0 + adds r0, 0xF8 + str r5, [sp] + str r4, [sp, 0x4] + str r4, [sp, 0x8] + mov r1, r8 + str r1, [sp, 0xC] + str r4, [sp, 0x10] + movs r1, 0xC + movs r2, 0xF + movs r3, 0x18 + bl sub_80EABD4 + movs r1, 0xB6 + lsls r1, 1 + adds r0, r7, r1 + str r4, [sp] + str r6, [sp, 0x4] + movs r1, 0x12 + movs r2, 0x9 + movs r3, 0x2 + bl sub_80EAC30 + movs r1, 0x84 + lsls r1, 1 + adds r0, r7, r1 + str r5, [sp] + str r4, [sp, 0x4] + str r4, [sp, 0x8] + mov r1, r9 + str r1, [sp, 0xC] + str r4, [sp, 0x10] + movs r1, 0x1 + movs r2, 0xE + movs r3, 0x1 + bl sub_80EABD4 + movs r1, 0xBC + lsls r1, 1 + adds r0, r7, r1 + str r4, [sp] + adds r1, 0x50 + adds r6, r7, r1 + str r6, [sp, 0x4] + movs r1, 0x1 + movs r2, 0xE + movs r3, 0 + bl sub_80EAC30 + movs r1, 0x8C + lsls r1, 1 + adds r0, r7, r1 + str r5, [sp] + mov r1, r8 + str r1, [sp, 0x4] + str r4, [sp, 0x8] + str r4, [sp, 0xC] + str r4, [sp, 0x10] + movs r1, 0x18 + movs r2, 0xE + movs r3, 0x18 + bl sub_80EABD4 + movs r1, 0xC2 + lsls r1, 1 + adds r0, r7, r1 + str r4, [sp] + str r6, [sp, 0x4] + movs r1, 0x18 + movs r2, 0xE + mov r3, r8 + bl sub_80EAC30 + adds r0, r7, 0 + adds r0, 0xC2 + movs r1, 0x6 + strh r1, [r0] + adds r0, 0x2 + strh r1, [r0] + add sp, 0x14 + pop {r3,r4} + mov r8, r3 + mov r9, r4 + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_080EA49C: .4byte gUnknown_083DB694 +_080EA4A0: .4byte 0x0000fffe + thumb_func_end sub_80EA348 + + thumb_func_start sub_80EA4A4 +sub_80EA4A4: @ 80EA4A4 + push {r4-r7,lr} + mov r7, r9 + mov r6, r8 + push {r6,r7} + sub sp, 0x14 + ldr r0, _080EA598 @ =gUnknown_083DB694 + ldr r7, [r0] + adds r0, r7, 0 + adds r0, 0xC8 + movs r6, 0xF + str r6, [sp] + movs r4, 0 + str r4, [sp, 0x4] + ldr r1, _080EA59C @ =0x0000ffff + mov r8, r1 + str r1, [sp, 0x8] + str r4, [sp, 0xC] + str r4, [sp, 0x10] + movs r1, 0x1 + movs r2, 0xE + movs r3, 0xD + bl sub_80EABD4 + movs r1, 0xA4 + lsls r1, 1 + adds r0, r7, r1 + str r4, [sp] + movs r1, 0xD9 + lsls r1, 3 + adds r5, r7, r1 + str r5, [sp, 0x4] + movs r1, 0 + movs r2, 0 + movs r3, 0 + bl sub_80EAC30 + adds r0, r7, 0 + adds r0, 0xD8 + str r6, [sp] + str r4, [sp, 0x4] + mov r1, r8 + str r1, [sp, 0x8] + str r4, [sp, 0xC] + str r4, [sp, 0x10] + movs r1, 0xC + movs r2, 0xE + movs r3, 0x18 + bl sub_80EABD4 + movs r1, 0xAA + lsls r1, 1 + adds r0, r7, r1 + str r4, [sp] + str r5, [sp, 0x4] + movs r1, 0x12 + movs r2, 0 + movs r3, 0 + bl sub_80EAC30 + adds r0, r7, 0 + adds r0, 0xE8 + movs r1, 0x10 + mov r9, r1 + str r1, [sp] + str r4, [sp, 0x4] + str r4, [sp, 0x8] + str r4, [sp, 0xC] + movs r6, 0x1 + str r6, [sp, 0x10] + movs r1, 0x1 + movs r2, 0xF + movs r3, 0xD + bl sub_80EABD4 + movs r1, 0xB0 + lsls r1, 1 + adds r0, r7, r1 + mov r1, r8 + str r1, [sp] + str r5, [sp, 0x4] + movs r1, 0 + movs r2, 0x9 + movs r3, 0 + bl sub_80EAC30 + adds r0, r7, 0 + adds r0, 0xF8 + mov r1, r9 + str r1, [sp] + str r4, [sp, 0x4] + str r4, [sp, 0x8] + str r4, [sp, 0xC] + str r6, [sp, 0x10] + movs r1, 0xC + movs r2, 0xF + movs r3, 0x18 + bl sub_80EABD4 + movs r1, 0xB6 + lsls r1, 1 + adds r0, r7, r1 + mov r1, r8 + str r1, [sp] + str r5, [sp, 0x4] + movs r1, 0x12 + movs r2, 0x9 + movs r3, 0 + bl sub_80EAC30 + adds r0, r7, 0 + adds r0, 0xC2 + movs r1, 0x4 + strh r1, [r0] + adds r0, 0x2 + strh r1, [r0] + add sp, 0x14 + pop {r3,r4} + mov r8, r3 + mov r9, r4 + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_080EA598: .4byte gUnknown_083DB694 +_080EA59C: .4byte 0x0000ffff + thumb_func_end sub_80EA4A4 + + thumb_func_start sub_80EA5A0 +sub_80EA5A0: @ 80EA5A0 + push {r4-r7,lr} + mov r7, r9 + mov r6, r8 + push {r6,r7} + sub sp, 0x14 + ldr r0, _080EA6FC @ =gUnknown_083DB694 + ldr r7, [r0] + adds r0, r7, 0 + adds r0, 0xC8 + movs r6, 0xF + str r6, [sp] + movs r4, 0 + str r4, [sp, 0x4] + movs r1, 0x1 + mov r8, r1 + str r1, [sp, 0x8] + str r4, [sp, 0xC] + str r4, [sp, 0x10] + movs r2, 0xA + movs r3, 0xD + bl sub_80EABD4 + movs r1, 0xA4 + lsls r1, 1 + adds r0, r7, r1 + str r4, [sp] + movs r1, 0xD9 + lsls r1, 3 + adds r5, r7, r1 + str r5, [sp, 0x4] + movs r1, 0 + movs r2, 0 + movs r3, 0 + bl sub_80EAC30 + adds r0, r7, 0 + adds r0, 0xD8 + str r6, [sp] + str r4, [sp, 0x4] + mov r1, r8 + str r1, [sp, 0x8] + str r4, [sp, 0xC] + str r4, [sp, 0x10] + movs r1, 0xC + movs r2, 0xA + movs r3, 0x18 + bl sub_80EABD4 + movs r1, 0xAA + lsls r1, 1 + adds r0, r7, r1 + str r4, [sp] + str r5, [sp, 0x4] + movs r1, 0x12 + movs r2, 0 + movs r3, 0 + bl sub_80EAC30 + adds r0, r7, 0 + adds r0, 0xE8 + movs r1, 0x14 + mov r9, r1 + str r1, [sp] + str r4, [sp, 0x4] + str r4, [sp, 0x8] + str r4, [sp, 0xC] + ldr r6, _080EA700 @ =0x0000ffff + str r6, [sp, 0x10] + movs r1, 0x1 + movs r2, 0xF + movs r3, 0xD + bl sub_80EABD4 + movs r1, 0xB0 + lsls r1, 1 + adds r0, r7, r1 + mov r1, r8 + str r1, [sp] + str r5, [sp, 0x4] + movs r1, 0 + movs r2, 0x5 + movs r3, 0 + bl sub_80EAC30 + adds r0, r7, 0 + adds r0, 0xF8 + mov r1, r9 + str r1, [sp] + str r4, [sp, 0x4] + str r4, [sp, 0x8] + str r4, [sp, 0xC] + str r6, [sp, 0x10] + movs r1, 0xC + movs r2, 0xF + movs r3, 0x18 + bl sub_80EABD4 + movs r1, 0xB6 + lsls r1, 1 + adds r0, r7, r1 + mov r1, r8 + str r1, [sp] + str r5, [sp, 0x4] + movs r1, 0x12 + movs r2, 0x5 + movs r3, 0 + bl sub_80EAC30 + movs r1, 0x84 + lsls r1, 1 + adds r0, r7, r1 + movs r1, 0xA + str r1, [sp] + str r4, [sp, 0x4] + str r4, [sp, 0x8] + str r4, [sp, 0xC] + mov r1, r8 + str r1, [sp, 0x10] + movs r1, 0x1 + movs r2, 0xA + movs r3, 0x18 + bl sub_80EABD4 + movs r1, 0xBC + lsls r1, 1 + adds r0, r7, r1 + str r4, [sp] + adds r1, 0x50 + adds r5, r7, r1 + str r5, [sp, 0x4] + movs r1, 0x1 + movs r2, 0xA + movs r3, 0 + bl sub_80EAC30 + movs r1, 0x8C + lsls r1, 1 + adds r0, r7, r1 + mov r1, r9 + str r1, [sp] + str r4, [sp, 0x4] + str r6, [sp, 0x8] + str r4, [sp, 0xC] + str r4, [sp, 0x10] + movs r1, 0x1 + movs r2, 0x14 + movs r3, 0x18 + bl sub_80EABD4 + movs r1, 0xC2 + lsls r1, 1 + adds r0, r7, r1 + str r6, [sp] + str r5, [sp, 0x4] + movs r1, 0x1 + movs r2, 0x14 + movs r3, 0 + bl sub_80EAC30 + adds r1, r7, 0 + adds r1, 0xC2 + movs r0, 0x6 + strh r0, [r1] + adds r1, 0x2 + movs r0, 0x4 + strh r0, [r1] + add sp, 0x14 + pop {r3,r4} + mov r8, r3 + mov r9, r4 + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_080EA6FC: .4byte gUnknown_083DB694 +_080EA700: .4byte 0x0000ffff + thumb_func_end sub_80EA5A0 + + thumb_func_start sub_80EA704 +sub_80EA704: @ 80EA704 + push {r4-r6,lr} + sub sp, 0x14 + ldr r0, _080EA75C @ =gUnknown_083DB694 + ldr r6, [r0] + adds r0, r6, 0 + adds r0, 0xC8 + movs r1, 0x14 + str r1, [sp] + movs r4, 0 + str r4, [sp, 0x4] + str r4, [sp, 0x8] + movs r5, 0x1 + str r5, [sp, 0xC] + str r4, [sp, 0x10] + movs r1, 0x18 + movs r2, 0xC + movs r3, 0x19 + bl sub_80EABD4 + movs r1, 0xA4 + lsls r1, 1 + adds r0, r6, r1 + ldr r3, _080EA760 @ =0x0000ffff + str r4, [sp] + movs r2, 0xD9 + lsls r2, 3 + adds r1, r6, r2 + str r1, [sp, 0x4] + movs r1, 0x5 + movs r2, 0xA + bl sub_80EAC30 + adds r0, r6, 0 + adds r0, 0xC2 + strh r5, [r0] + adds r1, r6, 0 + adds r1, 0xC4 + movs r0, 0x5 + strh r0, [r1] + add sp, 0x14 + pop {r4-r6} + pop {r0} + bx r0 + .align 2, 0 +_080EA75C: .4byte gUnknown_083DB694 +_080EA760: .4byte 0x0000ffff + thumb_func_end sub_80EA704 + + thumb_func_start sub_80EA764 +sub_80EA764: @ 80EA764 + push {r4-r7,lr} + sub sp, 0x14 + ldr r0, _080EA7EC @ =gUnknown_083DB694 + ldr r7, [r0] + adds r0, r7, 0 + adds r0, 0xC8 + movs r6, 0x14 + str r6, [sp] + movs r4, 0 + str r4, [sp, 0x4] + str r4, [sp, 0x8] + ldr r5, _080EA7F0 @ =0x0000ffff + str r5, [sp, 0xC] + str r4, [sp, 0x10] + movs r1, 0x18 + movs r2, 0xC + movs r3, 0x1E + bl sub_80EABD4 + movs r1, 0xA4 + lsls r1, 1 + adds r0, r7, r1 + str r4, [sp] + movs r2, 0xD9 + lsls r2, 3 + adds r1, r7, r2 + str r1, [sp, 0x4] + movs r1, 0 + movs r2, 0xA + movs r3, 0x1 + bl sub_80EAC30 + adds r0, r7, 0 + adds r0, 0xD8 + str r6, [sp] + str r5, [sp, 0x4] + str r4, [sp, 0x8] + str r4, [sp, 0xC] + str r4, [sp, 0x10] + movs r1, 0x1E + movs r2, 0xC + movs r3, 0x1F + bl sub_80EABD4 + movs r1, 0xAA + lsls r1, 1 + adds r0, r7, r1 + str r4, [sp] + movs r2, 0xE4 + lsls r2, 1 + adds r1, r7, r2 + str r1, [sp, 0x4] + movs r1, 0x1E + movs r2, 0xC + adds r3, r5, 0 + bl sub_80EAC30 + adds r1, r7, 0 + adds r1, 0xC2 + movs r0, 0x2 + strh r0, [r1] + adds r1, 0x2 + movs r0, 0x6 + strh r0, [r1] + add sp, 0x14 + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_080EA7EC: .4byte gUnknown_083DB694 +_080EA7F0: .4byte 0x0000ffff + thumb_func_end sub_80EA764 + + thumb_func_start sub_80EA7F4 +sub_80EA7F4: @ 80EA7F4 + push {r4-r7,lr} + mov r7, r8 + push {r7} + sub sp, 0x14 + ldr r0, _080EA8B4 @ =gUnknown_083DB694 + ldr r7, [r0] + adds r0, r7, 0 + adds r0, 0xC8 + movs r6, 0x14 + str r6, [sp] + movs r4, 0 + str r4, [sp, 0x4] + str r4, [sp, 0x8] + movs r5, 0x1 + str r5, [sp, 0xC] + str r4, [sp, 0x10] + movs r1, 0x14 + movs r2, 0xA + movs r3, 0x19 + bl sub_80EABD4 + movs r1, 0xA4 + lsls r1, 1 + adds r0, r7, r1 + ldr r3, _080EA8B8 @ =0x0000ffff + str r4, [sp] + movs r2, 0xD9 + lsls r2, 3 + adds r2, r7 + mov r8, r2 + str r2, [sp, 0x4] + movs r1, 0x19 + movs r2, 0 + bl sub_80EAC30 + adds r0, r7, 0 + adds r0, 0xD8 + str r6, [sp] + str r4, [sp, 0x4] + str r4, [sp, 0x8] + str r5, [sp, 0xC] + str r4, [sp, 0x10] + movs r1, 0 + movs r2, 0xA + movs r3, 0x1 + bl sub_80EABD4 + movs r1, 0xAA + lsls r1, 1 + adds r0, r7, r1 + str r4, [sp] + movs r2, 0xE4 + lsls r2, 1 + adds r1, r7, r2 + str r1, [sp, 0x4] + movs r1, 0 + movs r2, 0xA + movs r3, 0 + bl sub_80EAC30 + adds r0, r7, 0 + adds r0, 0xE8 + str r6, [sp] + str r5, [sp, 0x4] + str r4, [sp, 0x8] + str r4, [sp, 0xC] + str r4, [sp, 0x10] + movs r1, 0x1 + movs r2, 0xA + movs r3, 0x4 + bl sub_80EABD4 + movs r1, 0xB0 + lsls r1, 1 + adds r0, r7, r1 + str r4, [sp] + mov r2, r8 + str r2, [sp, 0x4] + movs r1, 0 + movs r2, 0 + movs r3, 0 + bl sub_80EAC30 + adds r1, r7, 0 + adds r1, 0xC2 + movs r0, 0x3 + strh r0, [r1] + adds r1, 0x2 + movs r0, 0x2 + strh r0, [r1] + add sp, 0x14 + pop {r3} + mov r8, r3 + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_080EA8B4: .4byte gUnknown_083DB694 +_080EA8B8: .4byte 0x0000ffff + thumb_func_end sub_80EA7F4 + + thumb_func_start sub_80EA8BC +sub_80EA8BC: @ 80EA8BC + push {r4-r6,lr} + sub sp, 0x14 + ldr r0, _080EA944 @ =gUnknown_083DB694 + ldr r6, [r0] + adds r0, r6, 0 + adds r0, 0xC8 + movs r5, 0x14 + str r5, [sp] + movs r4, 0 + str r4, [sp, 0x4] + str r4, [sp, 0x8] + str r4, [sp, 0xC] + str r4, [sp, 0x10] + movs r1, 0x3 + movs r2, 0xA + movs r3, 0x4 + bl sub_80EABD4 + movs r1, 0xA4 + lsls r1, 1 + adds r0, r6, r1 + str r4, [sp] + movs r2, 0xD9 + lsls r2, 3 + adds r1, r6, r2 + str r1, [sp, 0x4] + movs r1, 0 + movs r2, 0 + movs r3, 0 + bl sub_80EAC30 + adds r0, r6, 0 + adds r0, 0xD8 + str r5, [sp] + str r4, [sp, 0x4] + str r4, [sp, 0x8] + str r4, [sp, 0xC] + str r4, [sp, 0x10] + movs r1, 0 + movs r2, 0xA + movs r3, 0x2 + bl sub_80EABD4 + movs r1, 0xAA + lsls r1, 1 + adds r0, r6, r1 + str r4, [sp] + movs r2, 0xE4 + lsls r2, 1 + adds r1, r6, r2 + str r1, [sp, 0x4] + movs r1, 0 + movs r2, 0xA + movs r3, 0 + bl sub_80EAC30 + adds r1, r6, 0 + adds r1, 0xC2 + movs r0, 0x2 + strh r0, [r1] + adds r1, 0x2 + movs r0, 0x1 + strh r0, [r1] + add sp, 0x14 + pop {r4-r6} + pop {r0} + bx r0 + .align 2, 0 +_080EA944: .4byte gUnknown_083DB694 + thumb_func_end sub_80EA8BC + + thumb_func_start sub_80EA948 +sub_80EA948: @ 80EA948 + push {r4-r7,lr} + mov r7, r9 + mov r6, r8 + push {r6,r7} + sub sp, 0x14 + ldr r0, _080EAA3C @ =gUnknown_083DB694 + ldr r7, [r0] + adds r0, r7, 0 + adds r0, 0xC8 + movs r6, 0x14 + str r6, [sp] + movs r4, 0 + str r4, [sp, 0x4] + str r4, [sp, 0x8] + ldr r5, _080EAA40 @ =0x0000ffff + str r5, [sp, 0xC] + str r4, [sp, 0x10] + movs r1, 0 + movs r2, 0xA + movs r3, 0x2 + bl sub_80EABD4 + movs r1, 0xA4 + lsls r1, 1 + adds r0, r7, r1 + str r4, [sp] + adds r1, 0x80 + adds r1, r7 + mov r9, r1 + str r1, [sp, 0x4] + movs r1, 0 + movs r2, 0xA + movs r3, 0 + bl sub_80EAC30 + adds r0, r7, 0 + adds r0, 0xD8 + str r6, [sp] + str r5, [sp, 0x4] + str r4, [sp, 0x8] + str r4, [sp, 0xC] + str r4, [sp, 0x10] + movs r1, 0x3 + movs r2, 0xA + movs r3, 0x5 + bl sub_80EABD4 + movs r1, 0xAA + lsls r1, 1 + adds r0, r7, r1 + str r4, [sp] + movs r1, 0xD9 + lsls r1, 3 + adds r1, r7 + mov r8, r1 + str r1, [sp, 0x4] + movs r1, 0 + movs r2, 0 + movs r3, 0 + bl sub_80EAC30 + adds r0, r7, 0 + adds r0, 0xE8 + str r6, [sp] + str r5, [sp, 0x4] + str r4, [sp, 0x8] + str r4, [sp, 0xC] + str r4, [sp, 0x10] + movs r1, 0x1A + movs r2, 0xA + movs r3, 0x1E + bl sub_80EABD4 + movs r1, 0xB0 + lsls r1, 1 + adds r0, r7, r1 + str r4, [sp] + mov r1, r9 + str r1, [sp, 0x4] + movs r1, 0x1A + movs r2, 0xA + adds r3, r5, 0 + bl sub_80EAC30 + adds r0, r7, 0 + adds r0, 0xF8 + str r6, [sp] + str r5, [sp, 0x4] + str r4, [sp, 0x8] + str r5, [sp, 0xC] + str r4, [sp, 0x10] + movs r1, 0x19 + movs r2, 0xA + movs r3, 0x1A + bl sub_80EABD4 + movs r1, 0xB6 + lsls r1, 1 + adds r0, r7, r1 + str r4, [sp] + mov r1, r8 + str r1, [sp, 0x4] + movs r1, 0x1D + movs r2, 0 + movs r3, 0 + bl sub_80EAC30 + adds r1, r7, 0 + adds r1, 0xC2 + movs r0, 0x4 + strh r0, [r1] + adds r1, 0x2 + movs r0, 0x2 + strh r0, [r1] + add sp, 0x14 + pop {r3,r4} + mov r8, r3 + mov r9, r4 + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_080EAA3C: .4byte gUnknown_083DB694 +_080EAA40: .4byte 0x0000ffff + thumb_func_end sub_80EA948 + + thumb_func_start sub_80EAA44 +sub_80EAA44: @ 80EAA44 + push {r4-r6,lr} + sub sp, 0x14 + ldr r0, _080EAACC @ =gUnknown_083DB694 + ldr r6, [r0] + adds r0, r6, 0 + adds r0, 0xC8 + movs r5, 0x14 + str r5, [sp] + movs r4, 0 + str r4, [sp, 0x4] + str r4, [sp, 0x8] + str r4, [sp, 0xC] + str r4, [sp, 0x10] + movs r1, 0x18 + movs r2, 0xA + movs r3, 0x1E + bl sub_80EABD4 + movs r1, 0xA4 + lsls r1, 1 + adds r0, r6, r1 + str r4, [sp] + movs r2, 0xE4 + lsls r2, 1 + adds r1, r6, r2 + str r1, [sp, 0x4] + movs r1, 0x18 + movs r2, 0xA + movs r3, 0 + bl sub_80EAC30 + adds r0, r6, 0 + adds r0, 0xD8 + str r5, [sp] + str r4, [sp, 0x4] + str r4, [sp, 0x8] + ldr r1, _080EAAD0 @ =0x0000ffff + str r1, [sp, 0xC] + str r4, [sp, 0x10] + movs r1, 0x17 + movs r2, 0xA + movs r3, 0x18 + bl sub_80EABD4 + movs r1, 0xAA + lsls r1, 1 + adds r0, r6, r1 + str r4, [sp] + movs r2, 0xD9 + lsls r2, 3 + adds r1, r6, r2 + str r1, [sp, 0x4] + movs r1, 0x1D + movs r2, 0 + movs r3, 0 + bl sub_80EAC30 + adds r1, r6, 0 + adds r1, 0xC2 + movs r0, 0x2 + strh r0, [r1] + adds r1, 0x2 + movs r0, 0x1 + strh r0, [r1] + add sp, 0x14 + pop {r4-r6} + pop {r0} + bx r0 + .align 2, 0 +_080EAACC: .4byte gUnknown_083DB694 +_080EAAD0: .4byte 0x0000ffff + thumb_func_end sub_80EAA44 + + thumb_func_start sub_80EAAD4 +sub_80EAAD4: @ 80EAAD4 + push {r4-r7,lr} + mov r7, r9 + mov r6, r8 + push {r6,r7} + sub sp, 0x14 + ldr r0, _080EABCC @ =gUnknown_083DB694 + ldr r7, [r0] + adds r0, r7, 0 + adds r0, 0xC8 + movs r1, 0xF + str r1, [sp] + movs r4, 0 + str r4, [sp, 0x4] + movs r5, 0x1 + str r5, [sp, 0x8] + str r4, [sp, 0xC] + str r4, [sp, 0x10] + movs r1, 0 + movs r2, 0xA + movs r3, 0x1E + bl sub_80EABD4 + movs r1, 0xA4 + lsls r1, 1 + adds r0, r7, r1 + str r4, [sp] + movs r1, 0xD9 + lsls r1, 3 + adds r1, r7 + mov r8, r1 + str r1, [sp, 0x4] + movs r1, 0 + movs r2, 0 + movs r3, 0 + bl sub_80EAC30 + adds r0, r7, 0 + adds r0, 0xD8 + movs r1, 0x14 + mov r9, r1 + str r1, [sp] + str r4, [sp, 0x4] + str r4, [sp, 0x8] + str r4, [sp, 0xC] + ldr r6, _080EABD0 @ =0x0000ffff + str r6, [sp, 0x10] + movs r1, 0 + movs r2, 0xF + movs r3, 0x1E + bl sub_80EABD4 + movs r1, 0xAA + lsls r1, 1 + adds r0, r7, r1 + str r5, [sp] + mov r1, r8 + str r1, [sp, 0x4] + movs r1, 0 + movs r2, 0x5 + movs r3, 0 + bl sub_80EAC30 + adds r0, r7, 0 + adds r0, 0xE8 + movs r1, 0xA + str r1, [sp] + str r4, [sp, 0x4] + str r4, [sp, 0x8] + str r4, [sp, 0xC] + str r5, [sp, 0x10] + movs r1, 0 + movs r2, 0xA + movs r3, 0x1E + bl sub_80EABD4 + movs r1, 0xB0 + lsls r1, 1 + adds r0, r7, r1 + str r4, [sp] + adds r1, 0x68 + adds r5, r7, r1 + str r5, [sp, 0x4] + movs r1, 0 + movs r2, 0xA + movs r3, 0 + bl sub_80EAC30 + adds r0, r7, 0 + adds r0, 0xF8 + mov r1, r9 + str r1, [sp] + str r4, [sp, 0x4] + str r6, [sp, 0x8] + str r4, [sp, 0xC] + str r4, [sp, 0x10] + movs r1, 0 + movs r2, 0x14 + movs r3, 0x1E + bl sub_80EABD4 + movs r1, 0xB6 + lsls r1, 1 + adds r0, r7, r1 + str r6, [sp] + str r5, [sp, 0x4] + movs r1, 0 + movs r2, 0x14 + movs r3, 0 + bl sub_80EAC30 + adds r1, r7, 0 + adds r1, 0xC2 + movs r0, 0x4 + strh r0, [r1] + adds r1, 0x2 + movs r0, 0x5 + strh r0, [r1] + add sp, 0x14 + pop {r3,r4} + mov r8, r3 + mov r9, r4 + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_080EABCC: .4byte gUnknown_083DB694 +_080EABD0: .4byte 0x0000ffff + thumb_func_end sub_80EAAD4 + + thumb_func_start sub_80EABD4 +sub_80EABD4: @ 80EABD4 + push {r4-r7,lr} + mov r7, r9 + mov r6, r8 + push {r6,r7} + ldr r5, [sp, 0x1C] + ldr r6, [sp, 0x20] + ldr r4, [sp, 0x24] + mov r9, r4 + ldr r4, [sp, 0x28] + ldr r7, [sp, 0x2C] + mov r8, r7 + strh r1, [r0] + strh r3, [r0, 0x2] + strh r2, [r0, 0x4] + strh r5, [r0, 0x6] + strh r6, [r0, 0x8] + strh r4, [r0, 0xA] + mov r1, r9 + strh r1, [r0, 0xC] + mov r4, r8 + strh r4, [r0, 0xE] + pop {r3,r4} + mov r8, r3 + mov r9, r4 + pop {r4-r7} + pop {r0} + bx r0 + thumb_func_end sub_80EABD4 + + thumb_func_start sub_80EAC0C +sub_80EAC0C: @ 80EAC0C + ldrh r1, [r0, 0x8] + ldrh r2, [r0] + adds r1, r2 + strh r1, [r0] + ldrh r1, [r0, 0xA] + ldrh r2, [r0, 0x2] + adds r1, r2 + strh r1, [r0, 0x2] + ldrh r1, [r0, 0xC] + ldrh r2, [r0, 0x4] + adds r1, r2 + strh r1, [r0, 0x4] + ldrh r1, [r0, 0xE] + ldrh r2, [r0, 0x6] + adds r1, r2 + strh r1, [r0, 0x6] + bx lr + thumb_func_end sub_80EAC0C + + thumb_func_start sub_80EAC30 +sub_80EAC30: @ 80EAC30 + push {r4,r5,lr} + ldr r4, [sp, 0xC] + ldr r5, [sp, 0x10] + strh r1, [r0] + strh r2, [r0, 0x2] + strh r3, [r0, 0x4] + strh r4, [r0, 0x6] + str r5, [r0, 0x8] + pop {r4,r5} + pop {r0} + bx r0 + thumb_func_end sub_80EAC30 + + thumb_func_start sub_80EAC48 +sub_80EAC48: @ 80EAC48 + ldrh r1, [r0, 0x4] + ldrh r2, [r0] + adds r1, r2 + strh r1, [r0] + ldrh r1, [r0, 0x6] + ldrh r2, [r0, 0x2] + adds r1, r2 + strh r1, [r0, 0x2] + bx lr + thumb_func_end sub_80EAC48 + + thumb_func_start sub_80EAC5C +sub_80EAC5C: @ 80EAC5C + push {r4-r6,lr} + ldr r0, _080EACB4 @ =gUnknown_083DB694 + ldr r1, [r0] + adds r0, r1, 0 + adds r0, 0xBC + ldrb r0, [r0] + cmp r0, 0 + beq _080EACAC + movs r4, 0 + adds r0, r1, 0 + adds r0, 0xC2 + ldrh r2, [r0] + cmp r4, r2 + bcs _080EACA2 + adds r5, r1, 0 + adds r6, r0, 0 +_080EAC7C: + lsls r1, r4, 4 + adds r1, 0xC8 + adds r1, r5, r1 + lsls r2, r4, 1 + adds r2, r4 + lsls r2, 2 + movs r0, 0xA4 + lsls r0, 1 + adds r2, r0 + adds r2, r5, r2 + ldr r0, _080EACB8 @ =0x06006800 + bl sub_80EACBC + adds r0, r4, 0x1 + lsls r0, 16 + lsrs r4, r0, 16 + ldrh r2, [r6] + cmp r4, r2 + bcc _080EAC7C +_080EACA2: + ldr r0, _080EACB4 @ =gUnknown_083DB694 + ldr r0, [r0] + adds r0, 0xBC + movs r1, 0 + strb r1, [r0] +_080EACAC: + pop {r4-r6} + pop {r0} + bx r0 + .align 2, 0 +_080EACB4: .4byte gUnknown_083DB694 +_080EACB8: .4byte 0x06006800 + thumb_func_end sub_80EAC5C + + thumb_func_start sub_80EACBC +sub_80EACBC: @ 80EACBC + push {r4-r7,lr} + sub sp, 0x10 + adds r7, r0, 0 + adds r3, r1, 0 + adds r4, r2, 0 + ldrh r2, [r3, 0x2] + ldrh r0, [r3] + subs r2, r0 + ldrh r0, [r3, 0x6] + ldrh r1, [r3, 0x4] + subs r0, r1 + lsls r0, 16 + lsrs r0, 16 + lsls r6, r2, 16 + cmp r6, 0 + ble _080EACFE + lsls r5, r0, 16 + cmp r5, 0 + ble _080EACFE + ldrh r1, [r3] + ldrh r2, [r3, 0x4] + ldr r3, [r4, 0x8] + ldrh r0, [r4] + str r0, [sp] + ldrh r0, [r4, 0x2] + str r0, [sp, 0x4] + lsrs r0, r6, 16 + str r0, [sp, 0x8] + lsrs r0, r5, 16 + str r0, [sp, 0xC] + adds r0, r7, 0 + bl sub_809D104 +_080EACFE: + add sp, 0x10 + pop {r4-r7} + pop {r0} + bx r0 + thumb_func_end sub_80EACBC + + thumb_func_start sub_80EAD08 +sub_80EAD08: @ 80EAD08 + push {r4,r5,lr} + ldr r0, _080EAD58 @ =gUnknown_03004DC0 + ldrb r1, [r0, 0x14] + lsls r0, r1, 4 + subs r0, r1 + lsls r0, 7 + ldr r1, _080EAD5C @ =gUnknown_03004DE0 + adds r4, r0, r1 + adds r4, 0xB0 + ldr r0, _080EAD60 @ =gUnknown_083DB694 + ldr r1, [r0] + movs r0, 0xDD + lsls r0, 1 + adds r1, r0 + ldrh r0, [r1] + adds r2, r0, 0 + subs r2, 0x58 + movs r0, 0xFF + ands r2, r0 + movs r3, 0 + movs r5, 0xFF +_080EAD32: + ldrh r0, [r1] + adds r0, r3 + cmp r0, 0x80 + bne _080EAD42 + negs r0, r3 + adds r2, r0, 0 + subs r2, 0x58 + ands r2, r5 +_080EAD42: + strh r2, [r4] + adds r4, 0x2 + adds r0, r3, 0x1 + lsls r0, 16 + lsrs r3, r0, 16 + cmp r3, 0x3F + bls _080EAD32 + pop {r4,r5} + pop {r0} + bx r0 + .align 2, 0 +_080EAD58: .4byte gUnknown_03004DC0 +_080EAD5C: .4byte gUnknown_03004DE0 +_080EAD60: .4byte gUnknown_083DB694 + thumb_func_end sub_80EAD08 + + thumb_func_start sub_80EAD64 +sub_80EAD64: @ 80EAD64 + push {lr} + lsls r1, 24 + ldr r2, _080EAD78 @ =gEasyChatGroupNames + lsrs r1, 22 + adds r1, r2 + ldr r1, [r1] + bl StringCopy + pop {r1} + bx r1 + .align 2, 0 +_080EAD78: .4byte gEasyChatGroupNames + thumb_func_end sub_80EAD64 + + thumb_func_start sub_80EAD7C +sub_80EAD7C: @ 80EAD7C + push {lr} + lsls r0, 24 + lsrs r0, 24 + adds r1, r0, 0 + cmp r0, 0x14 + beq _080EADA2 + cmp r0, 0x14 + bgt _080EAD9C + cmp r0, 0x11 + blt _080EADBA + ldr r0, _080EAD98 @ =0x00000804 + bl FlagGet + b _080EADB4 + .align 2, 0 +_080EAD98: .4byte 0x00000804 +_080EAD9C: + cmp r1, 0x15 + beq _080EADB0 + b _080EADBA +_080EADA2: + ldr r0, _080EADAC @ =0x00000806 + bl FlagGet + b _080EADB4 + .align 2, 0 +_080EADAC: .4byte 0x00000806 +_080EADB0: + bl sub_80EB9C8 +_080EADB4: + lsls r0, 24 + lsrs r0, 24 + b _080EADBC +_080EADBA: + movs r0, 0x1 +_080EADBC: + pop {r1} + bx r1 + thumb_func_end sub_80EAD7C + + thumb_func_start sub_80EADC0 +sub_80EADC0: @ 80EADC0 + push {lr} + lsls r0, 24 + lsrs r2, r0, 24 + lsls r1, 16 + lsrs r3, r1, 16 + cmp r2, 0x15 + bhi _080EAE82 + lsls r0, r2, 2 + ldr r1, _080EADD8 @ =_080EADDC + adds r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_080EADD8: .4byte _080EADDC + .align 2, 0 +_080EADDC: + .4byte _080EAE50 + .4byte _080EAE82 + .4byte _080EAE82 + .4byte _080EAE82 + .4byte _080EAE82 + .4byte _080EAE82 + .4byte _080EAE82 + .4byte _080EAE82 + .4byte _080EAE82 + .4byte _080EAE82 + .4byte _080EAE82 + .4byte _080EAE82 + .4byte _080EAE82 + .4byte _080EAE82 + .4byte _080EAE82 + .4byte _080EAE82 + .4byte _080EAE82 + .4byte _080EAE62 + .4byte _080EAE62 + .4byte _080EAE62 + .4byte _080EAE34 + .4byte _080EAE78 +_080EAE34: + ldr r0, _080EAE4C @ =gUnknown_083DB694 + ldr r0, [r0] + adds r0, r2 + adds r0, 0x67 + ldrb r0, [r0] + cmp r0, 0 + beq _080EAE70 + lsls r0, r3, 24 + lsrs r0, 24 + bl sub_80EB868 + b _080EAE7C + .align 2, 0 +_080EAE4C: .4byte gUnknown_083DB694 +_080EAE50: + adds r0, r3, 0 + bl SpeciesToNationalPokedexNum + lsls r0, 16 + lsrs r0, 16 + movs r1, 0 + bl GetNationalPokedexFlag + b _080EAE7C +_080EAE62: + ldr r0, _080EAE74 @ =gUnknown_083DB694 + ldr r0, [r0] + adds r0, r2 + adds r0, 0x67 + ldrb r0, [r0] + cmp r0, 0 + bne _080EAE82 +_080EAE70: + movs r0, 0 + b _080EAE84 + .align 2, 0 +_080EAE74: .4byte gUnknown_083DB694 +_080EAE78: + bl sub_80EB9C8 +_080EAE7C: + lsls r0, 24 + lsrs r0, 24 + b _080EAE84 +_080EAE82: + movs r0, 0x1 +_080EAE84: + pop {r1} + bx r1 + thumb_func_end sub_80EADC0 + + thumb_func_start sub_80EAE88 +sub_80EAE88: @ 80EAE88 + push {r4,lr} + lsls r0, 24 + lsrs r4, r0, 24 + cmp r4, 0 + beq _080EAEA6 + cmp r4, 0x14 + beq _080EAEB2 + adds r0, r4, 0 + bl sub_80EAD7C + lsls r0, 24 + cmp r0, 0 + bne _080EAEBC + movs r0, 0 + b _080EAEC2 +_080EAEA6: + movs r0, 0 + bl GetHoennPokedexCount + lsls r0, 16 + lsrs r0, 16 + b _080EAEC2 +_080EAEB2: + bl sub_80EB8C0 + lsls r0, 24 + lsrs r0, 24 + b _080EAEC2 +_080EAEBC: + ldr r0, _080EAEC8 @ =gEasyChatGroupSizes + adds r0, r4, r0 + ldrb r0, [r0] +_080EAEC2: + pop {r4} + pop {r1} + bx r1 + .align 2, 0 +_080EAEC8: .4byte gEasyChatGroupSizes + thumb_func_end sub_80EAE88 + + thumb_func_start sub_80EAECC +sub_80EAECC: @ 80EAECC + push {r4-r7,lr} + mov r7, r10 + mov r6, r9 + mov r5, r8 + push {r5-r7} + sub sp, 0x10 + movs r7, 0 + ldr r1, _080EAF08 @ =gUnknown_083DB694 + ldr r0, [r1] + ldr r3, _080EAF0C @ =0x0000446c + adds r3, r0, r3 + str r3, [sp, 0x4] +_080EAEE4: + ldr r1, _080EAF10 @ =gEasyChatWordsByLetter + lsls r2, r7, 1 + adds r0, r2, r1 + ldrh r4, [r0] + adds r3, r7, 0x1 + lsls r0, r3, 1 + adds r0, r1 + ldrh r0, [r0] + str r0, [sp] + ldr r0, [sp, 0x4] + adds r1, r0, r2 + movs r0, 0 + strh r0, [r1] + mov r9, r0 + adds r6, r4, 0 + mov r10, r2 + str r3, [sp, 0x8] + b _080EB00C + .align 2, 0 +_080EAF08: .4byte gUnknown_083DB694 +_080EAF0C: .4byte 0x0000446c +_080EAF10: .4byte gEasyChatWordsByLetter +_080EAF14: + ldr r2, _080EAFAC @ =gEasyChatWordsAlphabetized + adds r0, r6, 0 + adds r1, r0, 0x1 + lsls r1, 16 + lsrs r6, r1, 16 + lsls r0, 1 + adds r0, r2 + ldrh r1, [r0] + adds r4, r1, 0 + ldr r0, _080EAFB0 @ =0x0000feff + cmp r1, r0 + bls _080EAFC8 + movs r0, 0xFF + ands r1, r0 + movs r3, 0 + subs r0, r1, 0x1 + lsls r0, 16 + lsrs r5, r0, 16 + ldr r0, _080EAFB4 @ =0x0000ffff + cmp r5, r0 + beq _080EB00C + lsls r0, r7, 4 + adds r0, r7 + lsls r0, 3 + subs r0, r7 + lsls r0, 2 + mov r8, r0 +_080EAF4A: + adds r1, r6, 0 + adds r0, r1, 0x1 + lsls r0, 16 + lsrs r6, r0, 16 + lsls r1, 1 + ldr r0, _080EAFAC @ =gEasyChatWordsAlphabetized + adds r1, r0 + ldrh r4, [r1] + lsrs r0, r4, 9 + ldr r1, _080EAFB8 @ =0x000001ff + adds r2, r1, 0 + adds r1, r4, 0 + ands r1, r2 + str r3, [sp, 0xC] + bl sub_80EADC0 + lsls r0, 24 + ldr r3, [sp, 0xC] + cmp r0, 0 + beq _080EAF9E + cmp r3, 0 + bne _080EAF9E + ldr r3, _080EAFBC @ =gUnknown_083DB694 + ldr r2, [r3] + mov r1, r9 + adds r0, r1, 0x1 + lsls r0, 16 + lsrs r0, 16 + mov r9, r0 + lsls r1, 1 + add r1, r8 + ldr r3, _080EAFC0 @ =0x00000b78 + adds r0, r2, r3 + adds r0, r1 + strh r4, [r0] + ldr r0, _080EAFC4 @ =0x0000446c + adds r2, r0 + add r2, r10 + ldrh r0, [r2] + adds r0, 0x1 + strh r0, [r2] + movs r3, 0x1 +_080EAF9E: + subs r0, r5, 0x1 + lsls r0, 16 + lsrs r5, r0, 16 + ldr r1, _080EAFB4 @ =0x0000ffff + cmp r5, r1 + bne _080EAF4A + b _080EB00C + .align 2, 0 +_080EAFAC: .4byte gEasyChatWordsAlphabetized +_080EAFB0: .4byte 0x0000feff +_080EAFB4: .4byte 0x0000ffff +_080EAFB8: .4byte 0x000001ff +_080EAFBC: .4byte gUnknown_083DB694 +_080EAFC0: .4byte 0x00000b78 +_080EAFC4: .4byte 0x0000446c +_080EAFC8: + lsrs r0, r4, 9 + ldr r3, _080EB030 @ =0x000001ff + adds r2, r3, 0 + adds r1, r4, 0 + ands r1, r2 + bl sub_80EADC0 + lsls r0, 24 + cmp r0, 0 + beq _080EB00C + ldr r0, _080EB034 @ =gUnknown_083DB694 + ldr r2, [r0] + mov r1, r9 + adds r0, r1, 0x1 + lsls r0, 16 + lsrs r0, 16 + mov r9, r0 + lsls r1, 1 + lsls r0, r7, 4 + adds r0, r7 + lsls r0, 3 + subs r0, r7 + lsls r0, 2 + adds r1, r0 + ldr r3, _080EB038 @ =0x00000b78 + adds r0, r2, r3 + adds r0, r1 + strh r4, [r0] + ldr r0, _080EB03C @ =0x0000446c + adds r2, r0 + add r2, r10 + ldrh r0, [r2] + adds r0, 0x1 + strh r0, [r2] +_080EB00C: + ldr r1, [sp] + cmp r6, r1 + bcs _080EB014 + b _080EAF14 +_080EB014: + ldr r3, [sp, 0x8] + lsls r0, r3, 16 + lsrs r7, r0, 16 + cmp r7, 0x1A + bhi _080EB020 + b _080EAEE4 +_080EB020: + add sp, 0x10 + pop {r3-r5} + mov r8, r3 + mov r9, r4 + mov r10, r5 + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_080EB030: .4byte 0x000001ff +_080EB034: .4byte gUnknown_083DB694 +_080EB038: .4byte 0x00000b78 +_080EB03C: .4byte 0x0000446c + thumb_func_end sub_80EAECC + + thumb_func_start sub_80EB040 +sub_80EB040: @ 80EB040 + push {r4-r6,lr} + movs r3, 0 +_080EB044: + adds r6, r3, 0x1 + cmp r3, 0 + beq _080EB094 + cmp r3, 0x15 + beq _080EB094 + cmp r3, 0x12 + beq _080EB094 + cmp r3, 0x13 + beq _080EB094 + ldr r0, _080EB0A4 @ =gEasyChatGroupWords + lsls r1, r3, 2 + adds r1, r0 + ldr r2, [r1] + movs r4, 0 + ldrb r0, [r2] + cmp r0, 0xFF + beq _080EB094 + ldr r0, _080EB0A8 @ =gUnknown_083DB694 + ldr r0, [r0] + ldr r1, _080EB0AC @ =0x000044d0 + adds r5, r0, r1 +_080EB06E: + lsls r0, r4, 2 + lsls r1, r3, 10 + adds r0, r1 + adds r0, r5, r0 + str r2, [r0] + ldrb r0, [r2] + adds r1, r4, 0x1 + cmp r0, 0xFF + beq _080EB088 +_080EB080: + adds r2, 0x1 + ldrb r0, [r2] + cmp r0, 0xFF + bne _080EB080 +_080EB088: + adds r2, 0x1 + lsls r0, r1, 16 + lsrs r4, r0, 16 + ldrb r0, [r2] + cmp r0, 0xFF + bne _080EB06E +_080EB094: + lsls r0, r6, 16 + lsrs r3, r0, 16 + cmp r3, 0x15 + bls _080EB044 + pop {r4-r6} + pop {r0} + bx r0 + .align 2, 0 +_080EB0A4: .4byte gEasyChatGroupWords +_080EB0A8: .4byte gUnknown_083DB694 +_080EB0AC: .4byte 0x000044d0 + thumb_func_end sub_80EB040 + + thumb_func_start sub_80EB0B0 +sub_80EB0B0: @ 80EB0B0 + push {r4-r7,lr} + mov r7, r10 + mov r6, r9 + mov r5, r8 + push {r5-r7} + sub sp, 0x8 + ldr r3, _080EB184 @ =gUnknown_083DB694 + ldr r4, [r3] + adds r0, r4, 0 + adds r0, 0x26 + ldrb r5, [r0] + cmp r5, 0 + bne _080EB19C + movs r0, 0xDC + lsls r0, 1 + adds r2, r4, r0 + ldrb r6, [r2] + lsls r1, r6, 1 + ldr r7, _080EB188 @ =0x000044a2 + adds r0, r4, r7 + adds r0, r1 + strh r5, [r0] + movs r7, 0 + movs r0, 0 + mov r9, r0 + ldr r1, _080EB18C @ =gEasyChatGroupOrders + lsls r0, r6, 2 + adds r0, r1 + ldr r0, [r0] + str r0, [sp] + movs r1, 0 + mov r8, r1 + ldr r1, _080EB190 @ =gEasyChatGroupSizes + ldrb r0, [r2] + adds r0, r1 + ldrb r0, [r0] + cmp r8, r0 + bcc _080EB0FE + b _080EB1FE +_080EB0FE: + movs r2, 0xDC + lsls r2, 1 + adds r2, r4, r2 + str r2, [sp, 0x4] + lsls r5, r6, 24 + mov r10, r5 +_080EB10A: + mov r1, r8 + lsls r0, r1, 1 + ldr r2, [sp] + adds r5, r0, r2 + ldrh r1, [r5] + mov r2, r10 + lsrs r0, r2, 24 + bl sub_80EADC0 + lsls r0, 24 + cmp r0, 0 + beq _080EB16A + ldr r0, _080EB184 @ =gUnknown_083DB694 + ldr r3, [r0] + lsls r1, r7, 1 + mov r2, r9 + lsls r0, r2, 2 + adds r1, r0 + ldr r0, _080EB194 @ =0x00009d56 + adds r4, r3, r0 + adds r4, r1 + movs r0, 0x7F + ands r0, r6 + lsls r0, 9 + ldrh r1, [r5] + ldr r5, _080EB198 @ =0x000001ff + adds r2, r5, 0 + ands r1, r2 + orrs r0, r1 + strh r0, [r4] + lsls r0, r6, 1 + ldr r1, _080EB188 @ =0x000044a2 + adds r3, r1 + adds r3, r0 + ldrh r0, [r3] + adds r0, 0x1 + strh r0, [r3] + adds r0, r7, 0x1 + lsls r0, 16 + lsrs r7, r0, 16 + cmp r7, 0x1 + bls _080EB16A + movs r7, 0 + mov r0, r9 + adds r0, 0x1 + lsls r0, 16 + lsrs r0, 16 + mov r9, r0 +_080EB16A: + mov r0, r8 + adds r0, 0x1 + lsls r0, 16 + lsrs r0, 16 + mov r8, r0 + ldr r1, _080EB190 @ =gEasyChatGroupSizes + ldr r2, [sp, 0x4] + ldrb r0, [r2] + adds r0, r1 + ldrb r0, [r0] + cmp r8, r0 + bcc _080EB10A + b _080EB1FE + .align 2, 0 +_080EB184: .4byte gUnknown_083DB694 +_080EB188: .4byte 0x000044a2 +_080EB18C: .4byte gEasyChatGroupOrders +_080EB190: .4byte gEasyChatGroupSizes +_080EB194: .4byte 0x00009d56 +_080EB198: .4byte 0x000001ff +_080EB19C: + movs r5, 0xDC + lsls r5, 1 + adds r0, r4, r5 + ldrb r2, [r0] + movs r3, 0 + movs r6, 0 + movs r5, 0 + lsls r1, r2, 1 + ldr r7, _080EB210 @ =0x0000446c + adds r0, r4, r7 + adds r1, r0, r1 + ldrh r0, [r1] + cmp r5, r0 + bcs _080EB1FE + ldr r7, _080EB214 @ =0x00009d56 + adds r7, r4 + mov r8, r7 + lsls r0, r2, 4 + adds r0, r2 + lsls r0, 3 + subs r0, r2 + lsls r7, r0, 2 + ldr r0, _080EB218 @ =0x00000b78 + adds r2, r4, r0 + adds r4, r1, 0 +_080EB1CE: + lsls r1, r3, 1 + lsls r0, r6, 2 + adds r1, r0 + add r1, r8 + lsls r0, r5, 1 + adds r0, r7 + adds r0, r2, r0 + ldrh r0, [r0] + strh r0, [r1] + adds r0, r3, 0x1 + lsls r0, 16 + lsrs r3, r0, 16 + cmp r3, 0x1 + bls _080EB1F2 + movs r3, 0 + adds r0, r6, 0x1 + lsls r0, 16 + lsrs r6, r0, 16 +_080EB1F2: + adds r0, r5, 0x1 + lsls r0, 16 + lsrs r5, r0, 16 + ldrh r1, [r4] + cmp r5, r1 + bcc _080EB1CE +_080EB1FE: + add sp, 0x8 + pop {r3-r5} + mov r8, r3 + mov r9, r4 + mov r10, r5 + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_080EB210: .4byte 0x0000446c +_080EB214: .4byte 0x00009d56 +_080EB218: .4byte 0x00000b78 + thumb_func_end sub_80EB0B0 + + thumb_func_start sub_80EB218 +sub_80EB218: @ 80EB218 + push {r4-r7,lr} + mov r7, r8 + push {r7} + adds r5, r0, 0 + lsls r6, r1, 16 + lsrs r4, r6, 16 + adds r7, r4, 0 + lsls r2, 16 + lsrs r2, 16 + mov r8, r2 + adds r0, r4, 0 + bl sub_80EB37C + lsls r0, 24 + cmp r0, 0 + beq _080EB240 + ldr r1, _080EB23C @ =gOtherText_ThreeQuestions + b _080EB2A2 + .align 2, 0 +_080EB23C: .4byte gOtherText_ThreeQuestions +_080EB240: + ldr r0, _080EB250 @ =0x0000ffff + cmp r4, r0 + bne _080EB254 + adds r1, r5, 0 + movs r0, 0xFF + strb r0, [r1] + b _080EB2AA + .align 2, 0 +_080EB250: .4byte 0x0000ffff +_080EB254: + lsrs r2, r6, 25 + ldr r1, _080EB268 @ =0x000001ff + ands r1, r7 + cmp r2, 0x13 + bgt _080EB26C + cmp r2, 0x12 + bge _080EB280 + cmp r2, 0 + beq _080EB270 + b _080EB290 + .align 2, 0 +_080EB268: .4byte 0x000001ff +_080EB26C: + cmp r2, 0x15 + bne _080EB290 +_080EB270: + movs r0, 0xB + muls r1, r0 + ldr r0, _080EB27C @ =gSpeciesNames + adds r1, r0 + b _080EB2A2 + .align 2, 0 +_080EB27C: .4byte gSpeciesNames +_080EB280: + movs r0, 0xD + muls r1, r0 + ldr r0, _080EB28C @ =gMoveNames + adds r1, r0 + b _080EB2A2 + .align 2, 0 +_080EB28C: .4byte gMoveNames +_080EB290: + ldr r0, _080EB2CC @ =gUnknown_083DB694 + ldr r0, [r0] + lsls r1, 2 + lsls r2, 10 + adds r1, r2 + ldr r2, _080EB2D0 @ =0x000044d0 + adds r0, r2 + adds r0, r1 + ldr r1, [r0] +_080EB2A2: + adds r0, r5, 0 + bl StringCopy + adds r1, r0, 0 +_080EB2AA: + movs r0, 0xFC + strb r0, [r1] + movs r0, 0x13 + strb r0, [r1, 0x1] + mov r2, r8 + lsls r0, r2, 3 + strb r0, [r1, 0x2] + adds r1, 0x3 + movs r0, 0xFF + strb r0, [r1] + adds r0, r1, 0 + pop {r3} + mov r8, r3 + pop {r4-r7} + pop {r1} + bx r1 + .align 2, 0 +_080EB2CC: .4byte gUnknown_083DB694 +_080EB2D0: .4byte 0x000044d0 + thumb_func_end sub_80EB218 + + thumb_func_start sub_80EB2D4 +sub_80EB2D4: @ 80EB2D4 + push {r4-r6,lr} + lsls r5, r0, 16 + lsrs r4, r5, 16 + adds r6, r4, 0 + adds r0, r4, 0 + bl sub_80EB37C + lsls r0, 24 + cmp r0, 0 + beq _080EB2F8 + ldr r0, _080EB2F4 @ =gOtherText_ThreeQuestions + bl StringLength + lsls r0, 16 + lsrs r0, 16 + b _080EB374 + .align 2, 0 +_080EB2F4: .4byte gOtherText_ThreeQuestions +_080EB2F8: + ldr r0, _080EB304 @ =0x0000ffff + cmp r4, r0 + bne _080EB308 + movs r0, 0 + b _080EB374 + .align 2, 0 +_080EB304: .4byte 0x0000ffff +_080EB308: + lsrs r2, r5, 25 + ldr r1, _080EB31C @ =0x000001ff + ands r1, r6 + cmp r2, 0x13 + bgt _080EB320 + cmp r2, 0x12 + bge _080EB334 + cmp r2, 0 + beq _080EB324 + b _080EB344 + .align 2, 0 +_080EB31C: .4byte 0x000001ff +_080EB320: + cmp r2, 0x15 + bne _080EB344 +_080EB324: + movs r0, 0xB + muls r1, r0 + ldr r0, _080EB330 @ =gSpeciesNames + adds r1, r0 + b _080EB356 + .align 2, 0 +_080EB330: .4byte gSpeciesNames +_080EB334: + movs r0, 0xD + muls r1, r0 + ldr r0, _080EB340 @ =gMoveNames + adds r1, r0 + b _080EB356 + .align 2, 0 +_080EB340: .4byte gMoveNames +_080EB344: + ldr r0, _080EB35C @ =gUnknown_083DB694 + ldr r0, [r0] + lsls r1, 2 + lsls r2, 10 + adds r1, r2 + ldr r2, _080EB360 @ =0x000044d0 + adds r0, r2 + adds r0, r1 + ldr r1, [r0] +_080EB356: + movs r2, 0 + b _080EB36C + .align 2, 0 +_080EB35C: .4byte gUnknown_083DB694 +_080EB360: .4byte 0x000044d0 +_080EB364: + adds r1, 0x1 + adds r0, r2, 0x1 + lsls r0, 16 + lsrs r2, r0, 16 +_080EB36C: + ldrb r0, [r1] + cmp r0, 0xFF + bne _080EB364 + adds r0, r2, 0 +_080EB374: + pop {r4-r6} + pop {r1} + bx r1 + thumb_func_end sub_80EB2D4 + + thumb_func_start sub_80EB37C +sub_80EB37C: @ 80EB37C + push {r4,r5,lr} + lsls r1, r0, 16 + lsrs r3, r1, 16 + ldr r0, _080EB3A0 @ =0x0000ffff + cmp r3, r0 + beq _080EB3EA + lsrs r2, r1, 25 + ldr r5, _080EB3A4 @ =0x000001ff + ands r5, r3 + cmp r2, 0x15 + bhi _080EB3F4 + cmp r2, 0x13 + bgt _080EB3A8 + cmp r2, 0x12 + bge _080EB3AC + cmp r2, 0 + beq _080EB3AC + b _080EB3E0 + .align 2, 0 +_080EB3A0: .4byte 0x0000ffff +_080EB3A4: .4byte 0x000001ff +_080EB3A8: + cmp r2, 0x15 + bne _080EB3E0 +_080EB3AC: + ldr r0, _080EB3D8 @ =gEasyChatGroupWords + lsls r1, r2, 2 + adds r1, r0 + ldr r4, [r1] + movs r3, 0 + ldr r0, _080EB3DC @ =gEasyChatGroupSizes + adds r0, r2, r0 + ldrb r0, [r0] + cmp r3, r0 + bcs _080EB3F4 + adds r1, r0, 0 +_080EB3C2: + lsls r0, r3, 1 + adds r0, r4 + ldrh r0, [r0] + cmp r5, r0 + beq _080EB3EA + adds r0, r3, 0x1 + lsls r0, 16 + lsrs r3, r0, 16 + cmp r3, r1 + bcc _080EB3C2 + b _080EB3F4 + .align 2, 0 +_080EB3D8: .4byte gEasyChatGroupWords +_080EB3DC: .4byte gEasyChatGroupSizes +_080EB3E0: + ldr r0, _080EB3F0 @ =gEasyChatGroupSizes + adds r0, r2, r0 + ldrb r0, [r0] + cmp r5, r0 + bcs _080EB3F4 +_080EB3EA: + movs r0, 0 + b _080EB3F6 + .align 2, 0 +_080EB3F0: .4byte gEasyChatGroupSizes +_080EB3F4: + movs r0, 0x1 +_080EB3F6: + pop {r4,r5} + pop {r1} + bx r1 + thumb_func_end sub_80EB37C + + thumb_func_start de_sub_80EB748 +de_sub_80EB748: @ 80EB3FC + push {r4-r7,lr} + adds r3, r0, 0 + adds r5, r1, 0 + movs r7, 0 + cmp r3, 0x13 + bgt _080EB412 + cmp r3, 0x12 + bge _080EB416 + cmp r3, 0 + beq _080EB416 + b _080EB458 +_080EB412: + cmp r3, 0x15 + bne _080EB458 +_080EB416: + ldr r1, _080EB438 @ =gEasyChatGroupWords + lsls r0, r3, 2 + adds r0, r1 + ldr r4, [r0] + movs r2, 0 + ldr r0, _080EB43C @ =gEasyChatGroupSizes + adds r1, r3, r0 + adds r6, r0, 0 + ldrb r1, [r1] + cmp r2, r1 + bge _080EB45A + ldrh r0, [r4] + cmp r5, r0 + bne _080EB440 + movs r7, 0 + b _080EB45A + .align 2, 0 +_080EB438: .4byte gEasyChatGroupWords +_080EB43C: .4byte gEasyChatGroupSizes +_080EB440: + adds r2, 0x1 + adds r0, r3, r6 + ldrb r0, [r0] + cmp r2, r0 + bge _080EB45A + lsls r0, r2, 1 + adds r0, r4 + ldrh r0, [r0] + cmp r5, r0 + bne _080EB440 + adds r7, r2, 0 + b _080EB45A +_080EB458: + adds r7, r5, 0 +_080EB45A: + adds r0, r7, 0 + pop {r4-r7} + pop {r1} + bx r1 + thumb_func_end de_sub_80EB748 + + thumb_func_start sub_80EB3FC +sub_80EB3FC: @ 80EB4B4 + push {r4-r7,lr} + adds r5, r0, 0 + lsls r6, r1, 16 + lsrs r4, r6, 16 + adds r7, r4, 0 + adds r0, r4, 0 + bl sub_80EB37C + lsls r0, 24 + cmp r0, 0 + beq _080EB4D8 + ldr r1, _080EB4D4 @ =gOtherText_ThreeQuestions + adds r0, r5, 0 + bl StringCopy + b _080EB55E + .align 2, 0 +_080EB4D4: .4byte gOtherText_ThreeQuestions +_080EB4D8: + ldr r0, _080EB4F4 @ =0x0000ffff + cmp r4, r0 + beq _080EB558 + lsrs r1, r6, 25 + ldr r2, _080EB4F8 @ =0x000001ff + ands r2, r7 + cmp r1, 0x13 + bgt _080EB4FC + cmp r1, 0x12 + bge _080EB510 + cmp r1, 0 + beq _080EB500 + b _080EB520 + .align 2, 0 +_080EB4F4: .4byte 0x0000ffff +_080EB4F8: .4byte 0x000001ff +_080EB4FC: + cmp r1, 0x15 + bne _080EB520 +_080EB500: + movs r0, 0xB + adds r1, r2, 0 + muls r1, r0 + ldr r0, _080EB50C @ =gSpeciesNames + adds r1, r0 + b _080EB550 + .align 2, 0 +_080EB50C: .4byte gSpeciesNames +_080EB510: + movs r0, 0xD + adds r1, r2, 0 + muls r1, r0 + ldr r0, _080EB51C @ =gMoveNames + adds r1, r0 + b _080EB550 + .align 2, 0 +_080EB51C: .4byte gMoveNames +_080EB520: + ldr r0, _080EB564 @ =gEasyChatGroupWords + lsls r1, 2 + adds r1, r0 + ldr r1, [r1] + subs r0, r2, 0x1 + lsls r0, 16 + lsrs r2, r0, 16 + ldr r0, _080EB568 @ =0x0000ffff + cmp r2, r0 + beq _080EB550 + adds r3, r0, 0 +_080EB536: + ldrb r0, [r1] + adds r1, 0x1 + subs r2, 0x1 + cmp r0, 0xFF + beq _080EB548 +_080EB540: + ldrb r0, [r1] + adds r1, 0x1 + cmp r0, 0xFF + bne _080EB540 +_080EB548: + lsls r0, r2, 16 + lsrs r2, r0, 16 + cmp r2, r3 + bne _080EB536 +_080EB550: + adds r0, r5, 0 + bl StringCopy + adds r5, r0, 0 +_080EB558: + movs r0, 0xFF + strb r0, [r5] + adds r0, r5, 0 +_080EB55E: + pop {r4-r7} + pop {r1} + bx r1 + .align 2, 0 +_080EB564: .4byte gEasyChatGroupWords +_080EB568: .4byte 0x0000ffff + thumb_func_end sub_80EB3FC + + .align 2, 0 @ Don't pad with nop. |