diff options
author | YamaArashi <shadow962@live.com> | 2016-11-01 10:08:48 -0700 |
---|---|---|
committer | YamaArashi <shadow962@live.com> | 2016-11-01 10:16:34 -0700 |
commit | 6f0e42a91aeeedd64725ce57e3dad6a38421d8e9 (patch) | |
tree | dcea69ec49430f004c17ff71b77587cafd78c69a /asm/pokedex.s | |
parent | fef81187dce23adc635d7f4b7fd82298eab09ec2 (diff) |
split asm files
Diffstat (limited to 'asm/pokedex.s')
-rw-r--r-- | asm/pokedex.s | 13372 |
1 files changed, 13372 insertions, 0 deletions
diff --git a/asm/pokedex.s b/asm/pokedex.s new file mode 100644 index 000000000..73ed5b324 --- /dev/null +++ b/asm/pokedex.s @@ -0,0 +1,13372 @@ + .include "asm/macros.inc" + .include "constants/constants.inc" + + .syntax unified + + .text + + thumb_func_start sub_80BB2D0 +sub_80BB2D0: @ 80BB2D0 + push {r4-r6,lr} + ldr r0, =0x02039b50 + movs r2, 0 + strh r2, [r0] + ldr r1, =0x02039b52 + movs r0, 0x40 + strb r0, [r1] + ldr r0, =0x030060b0 + strb r2, [r0] + ldr r4, =0x03005d90 + ldr r0, [r4] + movs r1, 0 + strb r2, [r0, 0x19] + ldr r0, [r4] + strb r2, [r0, 0x18] + ldr r0, [r4] + strb r2, [r0, 0x1A] + ldr r0, [r4] + strb r2, [r0, 0x1B] + ldr r0, [r4] + str r1, [r0, 0x1C] + str r1, [r0, 0x20] + str r1, [r0, 0x24] + bl sub_809D3C0 + movs r1, 0 + movs r2, 0 + ldr r3, =0x03005d8c + ldr r6, =0x00000988 + ldr r5, =0x00003b24 +_080BB30C: + ldr r0, [r4] + adds r0, 0x28 + adds r0, r1 + strb r2, [r0] + ldr r0, [r4] + adds r0, 0x5C + adds r0, r1 + strb r2, [r0] + ldr r0, [r3] + adds r0, r6 + adds r0, r1 + strb r2, [r0] + ldr r0, [r3] + adds r0, r5 + adds r0, r1 + strb r2, [r0] + adds r0, r1, 0x1 + lsls r0, 16 + lsrs r1, r0, 16 + cmp r1, 0x33 + bls _080BB30C + pop {r4-r6} + pop {r0} + bx r0 + .pool + thumb_func_end sub_80BB2D0 + + thumb_func_start sub_80BB358 +sub_80BB358: @ 80BB358 + ldr r1, =0x02039b50 + movs r0, 0 + strh r0, [r1] + ldr r1, =0x02039b52 + movs r0, 0x40 + strb r0, [r1] + bx lr + .pool + thumb_func_end sub_80BB358 + + thumb_func_start sub_80BB370 +sub_80BB370: @ 80BB370 + push {lr} + bl LoadOamFromSprites + bl ProcessObjectCopyRequests + bl copy_pal_bg_faded_to_pal_ram + pop {r0} + bx r0 + thumb_func_end sub_80BB370 + + thumb_func_start sub_80BB384 +sub_80BB384: @ 80BB384 + push {r4-r7,lr} + adds r4, r0, 0 + movs r3, 0 + ldr r0, =0x0000ffff + adds r7, r0, 0 + movs r1, 0x2 + negs r1, r1 + mov r12, r1 + movs r6, 0x3 + negs r6, r6 + ldr r5, =0x00000181 +_080BB39A: + lsls r1, r3, 2 + adds r1, r4, r1 + ldrh r0, [r1] + orrs r0, r7 + strh r0, [r1] + ldrb r2, [r1, 0x2] + mov r0, r12 + ands r0, r2 + ands r0, r6 + strb r0, [r1, 0x2] + adds r0, r3, 0x1 + lsls r0, 16 + lsrs r3, r0, 16 + cmp r3, r5 + bls _080BB39A + movs r2, 0xC1 + lsls r2, 3 + adds r0, r4, r2 + movs r2, 0 + strh r2, [r0] + ldr r0, =0x0000060a + adds r3, r4, r0 + ldrb r1, [r3] + movs r0, 0x2 + negs r0, r0 + ands r0, r1 + movs r1, 0x3 + negs r1, r1 + ands r0, r1 + strb r0, [r3] + ldr r1, =0x0000060c + adds r0, r4, r1 + strh r2, [r0] + ldr r3, =0x0000060e + adds r0, r4, r3 + strh r2, [r0] + adds r1, 0x4 + adds r0, r4, r1 + strh r2, [r0] + adds r3, 0x4 + adds r0, r4, r3 + strh r2, [r0] + adds r1, 0x4 + adds r0, r4, r1 + strh r2, [r0] + adds r3, 0x4 + adds r0, r4, r3 + strh r2, [r0] + adds r1, 0x4 + adds r0, r4, r1 + strh r2, [r0] + adds r3, 0x4 + adds r0, r4, r3 + strh r2, [r0] + adds r1, 0x4 + adds r0, r4, r1 + strh r2, [r0] + movs r3, 0 + ldr r0, =0x0000061e + adds r2, r4, r0 + ldr r1, =0x0000ffff + adds r5, r1, 0 +_080BB416: + lsls r0, r3, 1 + adds r0, r2, r0 + ldrh r1, [r0] + orrs r1, r5 + strh r1, [r0] + adds r0, r3, 0x1 + lsls r0, 16 + lsrs r3, r0, 16 + cmp r3, 0x3 + bls _080BB416 + movs r2, 0xC5 + lsls r2, 3 + adds r0, r4, r2 + movs r2, 0 + movs r1, 0 + strh r1, [r0] + ldr r3, =0x0000062a + adds r0, r4, r3 + strh r1, [r0] + adds r3, 0x2 + adds r0, r4, r3 + strb r2, [r0] + adds r3, 0x1 + adds r0, r4, r3 + strb r2, [r0] + adds r3, 0x1 + adds r0, r4, r3 + strb r2, [r0] + adds r3, 0x1 + adds r0, r4, r3 + strb r2, [r0] + movs r2, 0xC6 + lsls r2, 3 + adds r0, r4, r2 + strh r1, [r0] + adds r3, 0x3 + adds r0, r4, r3 + strh r1, [r0] + adds r2, 0x4 + adds r0, r4, r2 + strh r1, [r0] + adds r3, 0x4 + adds r0, r4, r3 + strh r1, [r0] + adds r2, 0x4 + adds r0, r4, r2 + strh r1, [r0] + movs r3, 0 + ldr r0, =0x0000063a + adds r1, r4, r0 + movs r2, 0 +_080BB47C: + lsls r0, r3, 1 + adds r0, r1, r0 + strh r2, [r0] + adds r0, r3, 0x1 + lsls r0, 16 + lsrs r3, r0, 16 + cmp r3, 0x3 + bls _080BB47C + ldr r1, =0x0000064a + adds r0, r4, r1 + movs r1, 0 + strb r1, [r0] + ldr r2, =0x0000064b + adds r0, r4, r2 + strb r1, [r0] + ldr r0, =0x0000064c + adds r3, r4, r0 + ldrb r2, [r3] + movs r0, 0x2 + negs r0, r0 + ands r0, r2 + strb r0, [r3] + ldr r2, =0x0000064d + adds r0, r4, r2 + strb r1, [r0] + ldr r3, =0x0000064e + adds r0, r4, r3 + strb r1, [r0] + adds r2, 0x2 + adds r0, r4, r2 + strb r1, [r0] + adds r3, 0x2 + adds r0, r4, r3 + strh r1, [r0] + adds r2, 0x3 + adds r0, r4, r2 + strh r1, [r0] + movs r3, 0 + ldr r0, =0x00000654 + adds r1, r4, r0 + movs r2, 0 +_080BB4CE: + adds r0, r1, r3 + strb r2, [r0] + adds r0, r3, 0x1 + lsls r0, 16 + lsrs r3, r0, 16 + cmp r3, 0x7 + bls _080BB4CE + movs r3, 0 + ldr r2, =0x0000065c + adds r1, r4, r2 + movs r2, 0 +_080BB4E4: + adds r0, r1, r3 + strb r2, [r0] + adds r0, r3, 0x1 + lsls r0, 16 + lsrs r3, r0, 16 + cmp r3, 0x7 + bls _080BB4E4 + pop {r4-r7} + pop {r0} + bx r0 + .pool + thumb_func_end sub_80BB384 + + thumb_func_start sub_80BB534 +sub_80BB534: @ 80BB534 + push {r4-r7,lr} + mov r7, r8 + push {r7} + sub sp, 0x8 + ldr r0, =0x030022c0 + movs r1, 0x87 + lsls r1, 3 + adds r4, r0, r1 + ldrb r0, [r4] + cmp r0, 0x1 + beq _080BB5FC + cmp r0, 0x1 + ble _080BB558 + cmp r0, 0x2 + beq _080BB628 + cmp r0, 0x3 + bne _080BB558 + b _080BB71C +_080BB558: + movs r0, 0 + bl SetVBlankCallback + movs r0, 0 + bl sub_80C09B0 + movs r3, 0xC0 + lsls r3, 19 + movs r4, 0xC0 + lsls r4, 9 + add r2, sp, 0x4 + mov r8, r2 + mov r2, sp + movs r6, 0 + ldr r1, =0x040000d4 + movs r5, 0x80 + lsls r5, 5 + ldr r7, =0x81000800 + movs r0, 0x81 + lsls r0, 24 + mov r12, r0 +_080BB582: + strh r6, [r2] + mov r0, sp + str r0, [r1] + str r3, [r1, 0x4] + str r7, [r1, 0x8] + ldr r0, [r1, 0x8] + adds r3, r5 + subs r4, r5 + cmp r4, r5 + bhi _080BB582 + strh r6, [r2] + mov r2, sp + str r2, [r1] + str r3, [r1, 0x4] + lsrs r0, r4, 1 + mov r3, r12 + orrs r0, r3 + str r0, [r1, 0x8] + ldr r0, [r1, 0x8] + movs r0, 0xE0 + lsls r0, 19 + movs r3, 0x80 + lsls r3, 3 + movs r4, 0 + str r4, [sp, 0x4] + ldr r2, =0x040000d4 + mov r1, r8 + str r1, [r2] + str r0, [r2, 0x4] + lsrs r0, r3, 2 + movs r1, 0x85 + lsls r1, 24 + orrs r0, r1 + str r0, [r2, 0x8] + ldr r0, [r2, 0x8] + movs r1, 0xA0 + lsls r1, 19 + mov r0, sp + strh r4, [r0] + str r0, [r2] + str r1, [r2, 0x4] + lsrs r3, 1 + movs r0, 0x81 + lsls r0, 24 + orrs r3, r0 + str r3, [r2, 0x8] + ldr r0, [r2, 0x8] + ldr r0, =0x030022c0 + movs r2, 0x87 + lsls r2, 3 + adds r0, r2 + movs r1, 0x1 + strb r1, [r0] + b _080BB74C + .pool +_080BB5FC: + bl remove_some_task + bl ResetTasks + bl ResetAllObjectData + bl sub_80A1A74 + bl ResetObjectPaletteAllocator + ldr r1, =0x0300301c + movs r0, 0x8 + strb r0, [r1] + bl dp13_810BB8C + ldrb r0, [r4] + adds r0, 0x1 + strb r0, [r4] + b _080BB74C + .pool +_080BB628: + ldr r4, =0x02039b4c + ldr r0, =0x00000664 + bl AllocZeroed + str r0, [r4] + bl sub_80BB384 + ldr r0, =sub_80BB78C + movs r1, 0 + bl CreateTask + ldr r1, [r4] + ldr r5, =0x03005d90 + ldr r0, [r5] + ldrb r0, [r0, 0x19] + ldr r3, =0x00000612 + adds r1, r3 + strh r0, [r1] + bl sub_809D42C + adds r1, r0, 0 + cmp r1, 0 + bne _080BB65E + ldr r0, [r4] + ldr r2, =0x00000612 + adds r0, r2 + strh r1, [r0] +_080BB65E: + ldr r1, [r4] + ldr r0, [r5] + ldrb r2, [r0, 0x18] + ldr r3, =0x00000616 + adds r0, r1, r3 + strh r2, [r0] + ldr r0, =0x02039b50 + ldrh r2, [r0] + subs r3, 0x8 + adds r0, r1, r3 + strh r2, [r0] + ldr r0, =0x02039b52 + ldrb r0, [r0] + ldr r2, =0x0000062c + adds r1, r2 + strb r0, [r1] + ldr r0, [r4] + adds r3, 0x3F + adds r0, r3 + movs r1, 0 + strb r1, [r0] + bl sub_809D42C + cmp r0, 0 + bne _080BB6D0 + movs r0, 0 + bl sub_80C0844 + ldr r1, [r4] + ldr r2, =0x0000061a + adds r1, r2 + strh r0, [r1] + movs r0, 0x1 + bl sub_80C0844 + b _080BB6E4 + .pool +_080BB6D0: + movs r0, 0 + bl pokedex_count + ldr r1, [r4] + ldr r2, =0x0000061a + adds r1, r2 + strh r0, [r1] + movs r0, 0x1 + bl pokedex_count +_080BB6E4: + ldr r1, [r4] + ldr r3, =0x0000061c + adds r1, r3 + strh r0, [r1] + ldr r0, =0x02039b4c + ldr r0, [r0] + ldr r1, =0x0000062d + adds r0, r1 + movs r1, 0x8 + strb r1, [r0] + ldr r1, =0x030022c0 + movs r2, 0x87 + lsls r2, 3 + adds r1, r2 + ldrb r0, [r1] + adds r0, 0x1 + strb r0, [r1] + b _080BB74C + .pool +_080BB71C: + movs r0, 0x1 + bl EnableInterrupts + ldr r0, =sub_80BB370 + bl SetVBlankCallback + ldr r0, =sub_80BB774 + bl SetMainCallback2 + ldr r0, =0x02039b4c + ldr r1, [r0] + ldr r3, =0x00000612 + adds r0, r1, r3 + ldrb r0, [r0] + ldr r2, =0x00000616 + adds r1, r2 + ldrb r1, [r1] + bl sub_80BC8D4 + ldr r0, =0x03007420 + ldr r1, =0x0000ffff + movs r2, 0x80 + bl MPlayVolumeControl +_080BB74C: + add sp, 0x8 + pop {r3} + mov r8, r3 + pop {r4-r7} + pop {r0} + bx r0 + .pool + thumb_func_end sub_80BB534 + + thumb_func_start sub_80BB774 +sub_80BB774: @ 80BB774 + push {lr} + bl RunTasks + bl CallObjectCallbacks + bl PrepareSpritesForOamLoad + bl fade_and_return_progress_probably + pop {r0} + bx r0 + thumb_func_end sub_80BB774 + + thumb_func_start sub_80BB78C +sub_80BB78C: @ 80BB78C + push {r4,lr} + lsls r0, 24 + lsrs r4, r0, 24 + ldr r0, =0x02039b4c + ldr r1, [r0] + ldr r0, =0x0000064c + adds r1, r0 + ldrb r2, [r1] + movs r0, 0x2 + negs r0, r0 + ands r0, r2 + strb r0, [r1] + movs r0, 0 + bl sub_80BC514 + lsls r0, 24 + cmp r0, 0 + beq _080BB7BE + ldr r0, =0x03005e00 + lsls r1, r4, 2 + adds r1, r4 + lsls r1, 3 + adds r1, r0 + ldr r0, =sub_80BB7D4 + str r0, [r1] +_080BB7BE: + pop {r4} + pop {r0} + bx r0 + .pool + thumb_func_end sub_80BB78C + + thumb_func_start sub_80BB7D4 +sub_80BB7D4: @ 80BB7D4 + push {r4-r7,lr} + mov r7, r9 + mov r6, r8 + push {r6,r7} + sub sp, 0x4 + lsls r0, 24 + lsrs r6, r0, 24 + ldr r7, =0x02039b4c + ldr r0, [r7] + ldr r4, =0x00000652 + adds r0, r4 + ldrh r1, [r0] + movs r0, 0x12 + bl SetGpuReg + ldr r3, [r7] + adds r1, r3, r4 + ldrh r0, [r1] + movs r4, 0 + ldrsh r2, [r1, r4] + mov r8, r2 + cmp r2, 0 + beq _080BB810 + subs r0, 0x8 + strh r0, [r1] + b _080BBA06 + .pool +_080BB810: + ldr r2, =0x030022c0 + ldrh r1, [r2, 0x2E] + movs r0, 0x1 + mov r9, r0 + ands r0, r1 + cmp r0, 0 + beq _080BB8A4 + ldr r1, =0x0000060e + adds r0, r3, r1 + ldrh r0, [r0] + lsls r0, 2 + adds r0, r3, r0 + ldrb r0, [r0, 0x2] + lsls r0, 31 + cmp r0, 0 + beq _080BB8A4 + bl sub_80BD8D0 + ldr r4, =0x02020630 + ldr r0, [r7] + ldr r5, =0x00000626 + adds r0, r5 + ldrh r1, [r0] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r4 + ldrb r1, [r0, 0x5] + lsrs r1, 4 + adds r1, 0x10 + mov r0, r9 + lsls r0, r1 + mvns r0, r0 + mov r2, r8 + str r2, [sp] + movs r1, 0 + movs r2, 0 + movs r3, 0x10 + bl pal_fade_maybe + ldr r0, [r7] + adds r0, r5 + ldrh r1, [r0] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r4, 0x1C + adds r0, r4 + ldr r1, =sub_80BE470 + str r1, [r0] + ldr r1, =0x03005e00 + lsls r0, r6, 2 + adds r0, r6 + lsls r0, 3 + adds r0, r1 + ldr r1, =sub_80BBBF4 + str r1, [r0] + movs r0, 0x15 + b _080BB976 + .pool +_080BB8A4: + ldrh r2, [r2, 0x2E] + movs r0, 0x8 + ands r0, r2 + lsls r0, 16 + lsrs r4, r0, 16 + cmp r4, 0 + beq _080BB8FC + ldr r3, =0x02039b4c + ldr r1, [r3] + ldr r4, =0x00000652 + adds r0, r1, r4 + movs r2, 0 + strh r2, [r0] + ldr r0, =0x0000064f + adds r1, r0 + movs r0, 0x1 + strb r0, [r1] + ldr r0, [r3] + movs r1, 0xCA + lsls r1, 3 + adds r0, r1 + strh r2, [r0] + ldr r1, =0x03005e00 + lsls r0, r6, 2 + adds r0, r6 + lsls r0, 3 + adds r0, r1 + ldr r1, =sub_80BBA78 + str r1, [r0] + movs r0, 0x5 + bl audio_play + b _080BBA06 + .pool +_080BB8FC: + movs r0, 0x4 + ands r0, r2 + lsls r0, 16 + lsrs r1, r0, 16 + cmp r1, 0 + beq _080BB9A0 + movs r0, 0x5 + bl audio_play + movs r0, 0x1 + negs r0, r0 + str r4, [sp] + movs r1, 0 + movs r2, 0 + movs r3, 0x10 + bl pal_fade_maybe + bl sub_80C1258 + ldr r1, =0x03005e00 + lsls r3, r6, 2 + adds r3, r6 + lsls r3, 3 + adds r3, r1 + lsls r0, 24 + lsrs r0, 24 + movs r2, 0 + strh r0, [r3, 0x8] + ldr r1, =0x02039b4c + ldr r0, [r1] + ldr r4, =0x0000064e + adds r0, r4 + strb r2, [r0] + ldr r0, [r1] + ldr r2, =0x0000062c + adds r1, r0, r2 + ldrb r2, [r1] + subs r4, 0x24 + adds r1, r0, r4 + strh r2, [r1] + ldr r2, =0x0000060e + adds r1, r0, r2 + ldrh r2, [r1] + subs r4, 0x1A + adds r1, r0, r4 + strh r2, [r1] + ldr r2, =0x00000612 + adds r1, r0, r2 + ldrh r2, [r1] + adds r4, 0x4 + adds r1, r0, r4 + strh r2, [r1] + ldr r2, =0x00000616 + adds r1, r0, r2 + ldrh r1, [r1] + adds r4, 0x4 + adds r0, r4 + strh r1, [r0] + ldr r0, =sub_80BBD1C + str r0, [r3] + movs r0, 0x2 +_080BB976: + bl audio_play + bl sub_80BC890 + b _080BBA06 + .pool +_080BB9A0: + movs r0, 0x2 + ands r0, r2 + cmp r0, 0 + beq _080BB9D8 + movs r0, 0x1 + negs r0, r0 + str r1, [sp] + movs r1, 0 + movs r2, 0 + movs r3, 0x10 + bl pal_fade_maybe + ldr r1, =0x03005e00 + lsls r0, r6, 2 + adds r0, r6 + lsls r0, 3 + adds r0, r1 + ldr r1, =sub_80BBDE8 + str r1, [r0] + movs r0, 0x3 + bl audio_play + b _080BBA06 + .pool +_080BB9D8: + ldr r5, =0x02039b4c + ldr r0, [r5] + ldr r4, =0x0000060e + adds r0, r4 + ldrh r0, [r0] + movs r1, 0xE + bl sub_80BD69C + ldr r1, [r5] + adds r4, r1, r4 + strh r0, [r4] + ldr r0, =0x0000062e + adds r1, r0 + ldrb r0, [r1] + cmp r0, 0 + beq _080BBA06 + ldr r0, =0x03005e00 + lsls r1, r6, 2 + adds r1, r6 + lsls r1, 3 + adds r1, r0 + ldr r0, =sub_80BBA28 + str r0, [r1] +_080BBA06: + add sp, 0x4 + pop {r3,r4} + mov r8, r3 + mov r9, r4 + pop {r4-r7} + pop {r0} + bx r0 + .pool + thumb_func_end sub_80BB7D4 + + thumb_func_start sub_80BBA28 +sub_80BBA28: @ 80BBA28 + push {r4,lr} + lsls r0, 24 + lsrs r4, r0, 24 + ldr r0, =0x02039b4c + ldr r2, [r0] + ldr r1, =0x0000062f + adds r0, r2, r1 + ldrb r0, [r0] + ldr r3, =0x00000634 + adds r1, r2, r3 + ldrb r1, [r1] + adds r3, 0x2 + adds r2, r3 + ldrb r2, [r2] + bl sub_80BD404 + lsls r0, 24 + cmp r0, 0 + beq _080BBA5C + ldr r0, =0x03005e00 + lsls r1, r4, 2 + adds r1, r4 + lsls r1, 3 + adds r1, r0 + ldr r0, =sub_80BB7D4 + str r0, [r1] +_080BBA5C: + pop {r4} + pop {r0} + bx r0 + .pool + thumb_func_end sub_80BBA28 + + thumb_func_start sub_80BBA78 +sub_80BBA78: @ 80BBA78 + push {r4-r7,lr} + sub sp, 0x4 + lsls r0, 24 + lsrs r7, r0, 24 + ldr r6, =0x02039b4c + ldr r0, [r6] + ldr r4, =0x00000652 + adds r0, r4 + ldrh r1, [r0] + movs r0, 0x12 + bl SetGpuReg + ldr r3, [r6] + adds r1, r3, r4 + ldrh r2, [r1] + movs r4, 0 + ldrsh r0, [r1, r4] + cmp r0, 0x50 + beq _080BBAB0 + adds r0, r2, 0 + adds r0, 0x8 + strh r0, [r1] + b _080BBBE8 + .pool +_080BBAB0: + ldr r5, =0x030022c0 + ldrh r1, [r5, 0x2E] + movs r0, 0x1 + ands r0, r1 + cmp r0, 0 + beq _080BBB58 + movs r2, 0xCA + lsls r2, 3 + adds r0, r3, r2 + ldrh r0, [r0] + cmp r0, 0x1 + beq _080BBADC + cmp r0, 0x1 + ble _080BBB20 + cmp r0, 0x2 + beq _080BBAF4 + cmp r0, 0x3 + beq _080BBB34 + b _080BBB20 + .pool +_080BBADC: + ldr r4, =0x0000060e + adds r1, r3, r4 + movs r0, 0 + strh r0, [r1] + ldr r0, =0x0000062c + adds r1, r3, r0 + movs r0, 0x40 + b _080BBB0C + .pool +_080BBAF4: + ldr r1, =0x0000060c + adds r2, r3, r1 + ldrh r0, [r2] + subs r0, 0x1 + ldr r4, =0x0000060e + adds r1, r3, r4 + strh r0, [r1] + ldrh r0, [r2] + lsls r0, 4 + adds r0, 0x30 + ldr r2, =0x0000062c + adds r1, r3, r2 +_080BBB0C: + strb r0, [r1] + bl sub_80BDA40 + ldr r0, [r6] + adds r0, r4 + ldrh r0, [r0] + movs r1, 0xE + bl sub_80BD2B4 + ldrh r1, [r5, 0x2E] +_080BBB20: + movs r0, 0x8 + orrs r0, r1 + strh r0, [r5, 0x2E] + b _080BBB58 + .pool +_080BBB34: + movs r0, 0x1 + negs r0, r0 + movs r1, 0 + str r1, [sp] + movs r2, 0 + movs r3, 0x10 + bl pal_fade_maybe + ldr r1, =0x03005e00 + lsls r0, r7, 2 + adds r0, r7 + lsls r0, 3 + adds r0, r1 + ldr r1, =sub_80BBDE8 + str r1, [r0] + movs r0, 0x3 + bl audio_play +_080BBB58: + ldr r2, =0x030022c0 + ldrh r1, [r2, 0x2E] + movs r0, 0xA + ands r0, r1 + cmp r0, 0 + beq _080BBB98 + ldr r0, =0x02039b4c + ldr r0, [r0] + ldr r3, =0x0000064f + adds r0, r3 + movs r1, 0 + strb r1, [r0] + ldr r1, =0x03005e00 + lsls r0, r7, 2 + adds r0, r7 + lsls r0, 3 + adds r0, r1 + ldr r1, =sub_80BB7D4 + str r1, [r0] + b _080BBBB6 + .pool +_080BBB98: + ldrh r1, [r2, 0x30] + movs r0, 0x40 + ands r0, r1 + cmp r0, 0 + beq _080BBBC4 + ldr r0, =0x02039b4c + ldr r0, [r0] + movs r4, 0xCA + lsls r4, 3 + adds r1, r0, r4 + ldrh r0, [r1] + cmp r0, 0 + beq _080BBBC4 + subs r0, 0x1 + strh r0, [r1] +_080BBBB6: + movs r0, 0x5 + bl audio_play + b _080BBBE8 + .pool +_080BBBC4: + ldrh r1, [r2, 0x30] + movs r0, 0x80 + ands r0, r1 + cmp r0, 0 + beq _080BBBE8 + ldr r0, =0x02039b4c + ldr r0, [r0] + movs r2, 0xCA + lsls r2, 3 + adds r1, r0, r2 + ldrh r0, [r1] + cmp r0, 0x2 + bhi _080BBBE8 + adds r0, 0x1 + strh r0, [r1] + movs r0, 0x5 + bl audio_play +_080BBBE8: + add sp, 0x4 + pop {r4-r7} + pop {r0} + bx r0 + .pool + thumb_func_end sub_80BBA78 + + thumb_func_start sub_80BBBF4 +sub_80BBBF4: @ 80BBBF4 + push {r4-r6,lr} + lsls r0, 24 + lsrs r4, r0, 24 + ldr r2, =0x02020630 + ldr r5, =0x02039b4c + ldr r3, [r5] + ldr r6, =0x00000626 + adds r0, r3, r6 + ldrh r1, [r0] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r1, r0, r2 + movs r2, 0x20 + ldrsh r0, [r1, r2] + cmp r0, 0x30 + bne _080BBC52 + movs r2, 0x22 + ldrsh r0, [r1, r2] + cmp r0, 0x38 + bne _080BBC52 + ldr r1, =0x0000064a + adds r0, r3, r1 + ldrb r1, [r0] + ldr r2, =0x0000064b + adds r0, r3, r2 + strb r1, [r0] + ldr r1, [r5] + subs r2, 0x3D + adds r0, r1, r2 + ldrh r0, [r0] + lsls r0, 2 + adds r0, r1, r0 + adds r1, r6 + ldrb r1, [r1] + bl sub_80BE91C + ldr r2, =0x03005e00 + lsls r1, r4, 2 + adds r1, r4 + lsls r1, 3 + adds r1, r2 + lsls r0, 24 + lsrs r0, 24 + strh r0, [r1, 0x8] + ldr r0, =sub_80BBC74 + str r0, [r1] +_080BBC52: + pop {r4-r6} + pop {r0} + bx r0 + .pool + thumb_func_end sub_80BBBF4 + + thumb_func_start sub_80BBC74 +sub_80BBC74: @ 80BBC74 + push {r4,r5,lr} + lsls r0, 24 + lsrs r0, 24 + ldr r2, =0x03005e00 + lsls r1, r0, 2 + adds r1, r0 + lsls r1, 3 + adds r4, r1, r2 + movs r0, 0x8 + ldrsh r1, [r4, r0] + lsls r0, r1, 2 + adds r0, r1 + lsls r0, 3 + adds r0, r2 + ldrb r0, [r0, 0x4] + cmp r0, 0 + beq _080BBCE0 + ldr r5, =0x02039b4c + ldr r0, [r5] + ldr r1, =0x0000064a + adds r0, r1 + ldrb r0, [r0] + cmp r0, 0x1 + bne _080BBCFC + ldrb r0, [r4, 0x8] + bl sub_80BE9C4 + lsls r0, 24 + cmp r0, 0 + bne _080BBCFC + bl sub_80BD930 + lsls r0, 24 + cmp r0, 0 + beq _080BBCFC + ldr r0, [r5] + ldr r2, =0x0000060e + adds r1, r0, r2 + ldrh r1, [r1] + lsls r1, 2 + adds r0, r1 + ldrb r1, [r4, 0x8] + bl sub_80BE9F8 + b _080BBCFC + .pool +_080BBCE0: + ldr r2, =0x02039b50 + ldr r0, =0x02039b4c + ldr r1, [r0] + ldr r3, =0x0000060e + adds r0, r1, r3 + ldrh r0, [r0] + strh r0, [r2] + ldr r2, =0x02039b52 + ldr r0, =0x0000062c + adds r1, r0 + ldrb r0, [r1] + strb r0, [r2] + ldr r0, =sub_80BB78C + str r0, [r4] +_080BBCFC: + pop {r4,r5} + pop {r0} + bx r0 + .pool + thumb_func_end sub_80BBC74 + + thumb_func_start sub_80BBD1C +sub_80BBD1C: @ 80BBD1C + push {r4-r6,lr} + lsls r0, 24 + lsrs r0, 24 + ldr r2, =0x03005e00 + lsls r1, r0, 2 + adds r1, r0 + lsls r1, 3 + adds r6, r1, r2 + movs r0, 0x8 + ldrsh r1, [r6, r0] + lsls r0, r1, 2 + adds r0, r1 + lsls r0, 3 + adds r0, r2 + ldrb r4, [r0, 0x4] + cmp r4, 0 + bne _080BBDCA + bl sub_80BDA40 + ldr r5, =0x02039b4c + ldr r2, [r5] + ldr r1, =0x0000064e + adds r0, r2, r1 + ldrb r0, [r0] + cmp r0, 0 + beq _080BBD7C + ldr r3, =0x0000060e + adds r0, r2, r3 + strh r4, [r0] + ldr r0, =0x0000062c + adds r1, r2, r0 + movs r0, 0x40 + strb r0, [r1] + ldr r0, =sub_80BBE70 + b _080BBDC8 + .pool +_080BBD7C: + ldr r1, =0x0000062a + adds r0, r2, r1 + ldrh r1, [r0] + ldr r3, =0x0000062c + adds r0, r2, r3 + strb r1, [r0] + ldr r1, [r5] + movs r2, 0xC2 + lsls r2, 3 + adds r0, r1, r2 + ldrh r2, [r0] + subs r3, 0x1E + adds r0, r1, r3 + strh r2, [r0] + ldr r2, =0x00000614 + adds r0, r1, r2 + ldrh r0, [r0] + adds r3, 0x4 + adds r1, r3 + strh r0, [r1] + bl sub_809D42C + adds r1, r0, 0 + cmp r1, 0 + bne _080BBDB6 + ldr r0, [r5] + ldr r2, =0x00000612 + adds r0, r2 + strh r1, [r0] +_080BBDB6: + ldr r0, [r5] + movs r3, 0xC3 + lsls r3, 3 + adds r1, r0, r3 + ldrh r1, [r1] + ldr r2, =0x00000616 + adds r0, r2 + strh r1, [r0] + ldr r0, =sub_80BB78C +_080BBDC8: + str r0, [r6] +_080BBDCA: + pop {r4-r6} + pop {r0} + bx r0 + .pool + thumb_func_end sub_80BBD1C + + thumb_func_start sub_80BBDE8 +sub_80BBDE8: @ 80BBDE8 + push {r4-r6,lr} + lsls r0, 24 + lsrs r6, r0, 24 + ldr r0, =0x02037fd4 + ldrb r1, [r0, 0x7] + movs r0, 0x80 + ands r0, r1 + cmp r0, 0 + bne _080BBE4A + ldr r4, =0x03005d90 + ldr r0, [r4] + ldr r5, =0x02039b4c + ldr r1, [r5] + ldr r2, =0x00000612 + adds r1, r2 + ldrh r1, [r1] + strb r1, [r0, 0x19] + bl sub_809D42C + adds r1, r0, 0 + cmp r1, 0 + bne _080BBE18 + ldr r0, [r4] + strb r1, [r0, 0x19] +_080BBE18: + ldr r1, [r4] + ldr r0, [r5] + ldr r2, =0x00000616 + adds r0, r2 + ldrh r0, [r0] + strb r0, [r1, 0x18] + bl sub_80BDA40 + bl sub_80BC890 + adds r0, r6, 0 + bl DestroyTask + ldr r0, =sub_8086194 + bl SetMainCallback2 + ldr r0, =0x03007420 + ldr r1, =0x0000ffff + movs r2, 0x80 + lsls r2, 1 + bl MPlayVolumeControl + ldr r0, [r5] + bl Free +_080BBE4A: + pop {r4-r6} + pop {r0} + bx r0 + .pool + thumb_func_end sub_80BBDE8 + + thumb_func_start sub_80BBE70 +sub_80BBE70: @ 80BBE70 + push {r4,lr} + lsls r0, 24 + lsrs r4, r0, 24 + ldr r0, =0x02039b4c + ldr r1, [r0] + ldr r0, =0x0000064c + adds r1, r0 + ldrb r0, [r1] + movs r2, 0x1 + orrs r0, r2 + strb r0, [r1] + movs r0, 0x3 + bl sub_80BC514 + lsls r0, 24 + cmp r0, 0 + beq _080BBEA0 + ldr r0, =0x03005e00 + lsls r1, r4, 2 + adds r1, r4 + lsls r1, 3 + adds r1, r0 + ldr r0, =sub_80BBEB8 + str r0, [r1] +_080BBEA0: + pop {r4} + pop {r0} + bx r0 + .pool + thumb_func_end sub_80BBE70 + + thumb_func_start sub_80BBEB8 +sub_80BBEB8: @ 80BBEB8 + push {r4-r7,lr} + sub sp, 0x4 + lsls r0, 24 + lsrs r6, r0, 24 + ldr r5, =0x02039b4c + ldr r0, [r5] + ldr r4, =0x00000652 + adds r0, r4 + ldrh r1, [r0] + movs r0, 0x12 + bl SetGpuReg + ldr r3, [r5] + adds r1, r3, r4 + ldrh r0, [r1] + movs r2, 0 + ldrsh r4, [r1, r2] + cmp r4, 0 + beq _080BBEEC + subs r0, 0x8 + strh r0, [r1] + b _080BC08A + .pool +_080BBEEC: + ldr r2, =0x030022c0 + ldrh r1, [r2, 0x2E] + movs r7, 0x1 + adds r0, r7, 0 + ands r0, r1 + cmp r0, 0 + beq _080BBF70 + ldr r1, =0x0000060e + adds r0, r3, r1 + ldrh r0, [r0] + lsls r0, 2 + adds r0, r3, r0 + ldrb r0, [r0, 0x2] + lsls r0, 31 + cmp r0, 0 + beq _080BBF70 + bl sub_80BD8D0 + ldr r3, =0x02020630 + ldr r0, [r5] + ldr r2, =0x00000626 + adds r0, r2 + ldrh r0, [r0] + lsls r2, r0, 4 + adds r2, r0 + lsls r2, 2 + adds r0, r2, r3 + ldrb r1, [r0, 0x5] + lsrs r1, 4 + adds r1, 0x10 + adds r0, r7, 0 + lsls r0, r1 + adds r3, 0x1C + adds r2, r3 + ldr r1, =sub_80BE470 + str r1, [r2] + mvns r0, r0 + str r4, [sp] + movs r1, 0 + movs r2, 0 + movs r3, 0x10 + bl pal_fade_maybe + ldr r1, =0x03005e00 + lsls r0, r6, 2 + adds r0, r6 + lsls r0, 3 + adds r0, r1 + ldr r1, =sub_80BC2D4 + str r1, [r0] + movs r0, 0x15 + b _080BC00A + .pool +_080BBF70: + ldrh r2, [r2, 0x2E] + movs r0, 0x8 + ands r0, r2 + lsls r0, 16 + lsrs r1, r0, 16 + cmp r1, 0 + beq _080BBFC8 + ldr r3, =0x02039b4c + ldr r1, [r3] + ldr r2, =0x00000652 + adds r0, r1, r2 + movs r2, 0 + strh r2, [r0] + ldr r0, =0x0000064f + adds r1, r0 + movs r0, 0x1 + strb r0, [r1] + ldr r0, [r3] + movs r1, 0xCA + lsls r1, 3 + adds r0, r1 + strh r2, [r0] + ldr r1, =0x03005e00 + lsls r0, r6, 2 + adds r0, r6 + lsls r0, 3 + adds r0, r1 + ldr r1, =sub_80BC0F8 + str r1, [r0] + movs r0, 0x5 + bl audio_play + b _080BC08A + .pool +_080BBFC8: + movs r0, 0x4 + ands r0, r2 + lsls r0, 16 + lsrs r3, r0, 16 + cmp r3, 0 + beq _080BC024 + movs r0, 0x1 + negs r0, r0 + str r1, [sp] + movs r1, 0 + movs r2, 0 + movs r3, 0x10 + bl pal_fade_maybe + bl sub_80C1258 + ldr r2, =0x03005e00 + lsls r1, r6, 2 + adds r1, r6 + lsls r1, 3 + adds r1, r2 + lsls r0, 24 + lsrs r0, 24 + movs r2, 0 + strh r0, [r1, 0x8] + ldr r0, =0x02039b4c + ldr r0, [r0] + ldr r3, =0x0000064e + adds r0, r3 + strb r2, [r0] + ldr r0, =sub_80BBD1C + str r0, [r1] + movs r0, 0x2 +_080BC00A: + bl audio_play + bl sub_80BC890 + b _080BC08A + .pool +_080BC024: + movs r0, 0x2 + ands r0, r2 + cmp r0, 0 + beq _080BC05C + movs r0, 0x1 + negs r0, r0 + str r3, [sp] + movs r1, 0 + movs r2, 0 + movs r3, 0x10 + bl pal_fade_maybe + ldr r1, =0x03005e00 + lsls r0, r6, 2 + adds r0, r6 + lsls r0, 3 + adds r0, r1 + ldr r1, =sub_80BC3DC + str r1, [r0] + movs r0, 0x3 + bl audio_play + b _080BC08A + .pool +_080BC05C: + ldr r5, =0x02039b4c + ldr r0, [r5] + ldr r4, =0x0000060e + adds r0, r4 + ldrh r0, [r0] + movs r1, 0xE + bl sub_80BD69C + ldr r1, [r5] + adds r4, r1, r4 + strh r0, [r4] + ldr r0, =0x0000062e + adds r1, r0 + ldrb r0, [r1] + cmp r0, 0 + beq _080BC08A + ldr r0, =0x03005e00 + lsls r1, r6, 2 + adds r1, r6 + lsls r1, 3 + adds r1, r0 + ldr r0, =sub_80BC0A8 + str r0, [r1] +_080BC08A: + add sp, 0x4 + pop {r4-r7} + pop {r0} + bx r0 + .pool + thumb_func_end sub_80BBEB8 + + thumb_func_start sub_80BC0A8 +sub_80BC0A8: @ 80BC0A8 + push {r4,lr} + lsls r0, 24 + lsrs r4, r0, 24 + ldr r0, =0x02039b4c + ldr r2, [r0] + ldr r1, =0x0000062f + adds r0, r2, r1 + ldrb r0, [r0] + ldr r3, =0x00000634 + adds r1, r2, r3 + ldrb r1, [r1] + adds r3, 0x2 + adds r2, r3 + ldrb r2, [r2] + bl sub_80BD404 + lsls r0, 24 + cmp r0, 0 + beq _080BC0DC + ldr r0, =0x03005e00 + lsls r1, r4, 2 + adds r1, r4 + lsls r1, 3 + adds r1, r0 + ldr r0, =sub_80BBEB8 + str r0, [r1] +_080BC0DC: + pop {r4} + pop {r0} + bx r0 + .pool + thumb_func_end sub_80BC0A8 + + thumb_func_start sub_80BC0F8 +sub_80BC0F8: @ 80BC0F8 + push {r4-r6,lr} + sub sp, 0x4 + lsls r0, 24 + lsrs r6, r0, 24 + ldr r5, =0x02039b4c + ldr r0, [r5] + ldr r4, =0x00000652 + adds r0, r4 + ldrh r1, [r0] + movs r0, 0x12 + bl SetGpuReg + ldr r5, [r5] + adds r1, r5, r4 + ldrh r2, [r1] + movs r3, 0 + ldrsh r0, [r1, r3] + cmp r0, 0x60 + beq _080BC130 + adds r0, r2, 0 + adds r0, 0x8 + strh r0, [r1] + b _080BC2C8 + .pool +_080BC130: + ldr r0, =0x030022c0 + ldrh r1, [r0, 0x2E] + movs r0, 0x1 + ands r0, r1 + cmp r0, 0 + bne _080BC13E + b _080BC238 +_080BC13E: + movs r1, 0xCA + lsls r1, 3 + adds r0, r5, r1 + ldrh r0, [r0] + cmp r0, 0x4 + bhi _080BC1C2 + lsls r0, 2 + ldr r1, =_080BC15C + adds r0, r1 + ldr r0, [r0] + mov pc, r0 + .pool + .align 2, 0 +_080BC15C: + .4byte _080BC1C2 + .4byte _080BC170 + .4byte _080BC194 + .4byte _080BC1E4 + .4byte _080BC214 +_080BC170: + ldr r5, =0x02039b4c + ldr r1, [r5] + ldr r4, =0x0000060e + adds r2, r1, r4 + movs r0, 0 + strh r0, [r2] + ldr r2, =0x0000062c + adds r1, r2 + movs r0, 0x40 + strb r0, [r1] + b _080BC1B2 + .pool +_080BC194: + ldr r5, =0x02039b4c + ldr r2, [r5] + ldr r0, =0x0000060c + adds r3, r2, r0 + ldrh r0, [r3] + subs r0, 0x1 + ldr r4, =0x0000060e + adds r1, r2, r4 + strh r0, [r1] + ldrh r0, [r3] + lsls r0, 4 + adds r0, 0x30 + ldr r1, =0x0000062c + adds r2, r1 + strb r0, [r2] +_080BC1B2: + bl sub_80BDA40 + ldr r0, [r5] + adds r0, r4 + ldrh r0, [r0] + movs r1, 0xE + bl sub_80BD2B4 +_080BC1C2: + ldr r2, =0x030022c0 + ldrh r1, [r2, 0x2E] + movs r0, 0x8 + orrs r0, r1 + strh r0, [r2, 0x2E] + b _080BC238 + .pool +_080BC1E4: + movs r0, 0x1 + negs r0, r0 + movs r1, 0 + str r1, [sp] + movs r2, 0 + movs r3, 0x10 + bl pal_fade_maybe + ldr r1, =0x03005e00 + lsls r0, r6, 2 + adds r0, r6 + lsls r0, 3 + adds r0, r1 + ldr r1, =sub_80BC3DC + str r1, [r0] + movs r0, 0x34 + bl audio_play + b _080BC238 + .pool +_080BC214: + movs r0, 0x1 + negs r0, r0 + movs r1, 0 + str r1, [sp] + movs r2, 0 + movs r3, 0x10 + bl pal_fade_maybe + ldr r1, =0x03005e00 + lsls r0, r6, 2 + adds r0, r6 + lsls r0, 3 + adds r0, r1 + ldr r1, =sub_80BC47C + str r1, [r0] + movs r0, 0x3 + bl audio_play +_080BC238: + ldr r2, =0x030022c0 + ldrh r1, [r2, 0x2E] + movs r0, 0xA + ands r0, r1 + cmp r0, 0 + beq _080BC278 + ldr r0, =0x02039b4c + ldr r0, [r0] + ldr r2, =0x0000064f + adds r0, r2 + movs r1, 0 + strb r1, [r0] + ldr r1, =0x03005e00 + lsls r0, r6, 2 + adds r0, r6 + lsls r0, 3 + adds r0, r1 + ldr r1, =sub_80BBEB8 + str r1, [r0] + b _080BC296 + .pool +_080BC278: + ldrh r1, [r2, 0x30] + movs r0, 0x40 + ands r0, r1 + cmp r0, 0 + beq _080BC2A4 + ldr r0, =0x02039b4c + ldr r0, [r0] + movs r3, 0xCA + lsls r3, 3 + adds r1, r0, r3 + ldrh r0, [r1] + cmp r0, 0 + beq _080BC2A4 + subs r0, 0x1 + strh r0, [r1] +_080BC296: + movs r0, 0x5 + bl audio_play + b _080BC2C8 + .pool +_080BC2A4: + ldrh r1, [r2, 0x30] + movs r0, 0x80 + ands r0, r1 + cmp r0, 0 + beq _080BC2C8 + ldr r0, =0x02039b4c + ldr r0, [r0] + movs r2, 0xCA + lsls r2, 3 + adds r1, r0, r2 + ldrh r0, [r1] + cmp r0, 0x3 + bhi _080BC2C8 + adds r0, 0x1 + strh r0, [r1] + movs r0, 0x5 + bl audio_play +_080BC2C8: + add sp, 0x4 + pop {r4-r6} + pop {r0} + bx r0 + .pool + thumb_func_end sub_80BC0F8 + + thumb_func_start sub_80BC2D4 +sub_80BC2D4: @ 80BC2D4 + push {r4-r6,lr} + lsls r0, 24 + lsrs r6, r0, 24 + ldr r2, =0x02020630 + ldr r5, =0x02039b4c + ldr r3, [r5] + ldr r4, =0x00000626 + adds r0, r3, r4 + ldrh r1, [r0] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r1, r0, r2 + movs r2, 0x20 + ldrsh r0, [r1, r2] + cmp r0, 0x30 + bne _080BC33A + movs r2, 0x22 + ldrsh r0, [r1, r2] + cmp r0, 0x38 + bne _080BC33A + ldr r1, =0x0000064a + adds r0, r3, r1 + ldrb r1, [r0] + ldr r2, =0x0000064b + adds r0, r3, r2 + strb r1, [r0] + ldr r1, [r5] + subs r2, 0x3D + adds r0, r1, r2 + ldrh r0, [r0] + lsls r0, 2 + adds r0, r1, r0 + adds r1, r4 + ldrb r1, [r1] + bl sub_80BE91C + ldr r2, =0x03005e00 + lsls r1, r6, 2 + adds r1, r6 + lsls r1, 3 + adds r1, r2 + lsls r0, 24 + lsrs r0, 24 + strh r0, [r1, 0x8] + ldr r0, [r5] + adds r0, r4 + ldr r2, =0x0000ffff + strh r2, [r0] + ldr r0, =sub_80BC360 + str r0, [r1] +_080BC33A: + pop {r4-r6} + pop {r0} + bx r0 + .pool + thumb_func_end sub_80BC2D4 + + thumb_func_start sub_80BC360 +sub_80BC360: @ 80BC360 + push {r4,r5,lr} + lsls r0, 24 + lsrs r0, 24 + ldr r2, =0x03005e00 + lsls r1, r0, 2 + adds r1, r0 + lsls r1, 3 + adds r4, r1, r2 + movs r0, 0x8 + ldrsh r1, [r4, r0] + lsls r0, r1, 2 + adds r0, r1 + lsls r0, 3 + adds r0, r2 + ldrb r0, [r0, 0x4] + cmp r0, 0 + beq _080BC3CC + ldr r5, =0x02039b4c + ldr r0, [r5] + ldr r1, =0x0000064a + adds r0, r1 + ldrb r0, [r0] + cmp r0, 0x1 + bne _080BC3D0 + ldrb r0, [r4, 0x8] + bl sub_80BE9C4 + lsls r0, 24 + cmp r0, 0 + bne _080BC3D0 + bl sub_80BD930 + lsls r0, 24 + cmp r0, 0 + beq _080BC3D0 + ldr r0, [r5] + ldr r2, =0x0000060e + adds r1, r0, r2 + ldrh r1, [r1] + lsls r1, 2 + adds r0, r1 + ldrb r1, [r4, 0x8] + bl sub_80BE9F8 + b _080BC3D0 + .pool +_080BC3CC: + ldr r0, =sub_80BBE70 + str r0, [r4] +_080BC3D0: + pop {r4,r5} + pop {r0} + bx r0 + .pool + thumb_func_end sub_80BC360 + + thumb_func_start sub_80BC3DC +sub_80BC3DC: @ 80BC3DC + push {r4,r5,lr} + lsls r0, 24 + lsrs r5, r0, 24 + ldr r0, =0x02037fd4 + ldrb r1, [r0, 0x7] + movs r0, 0x80 + ands r0, r1 + cmp r0, 0 + bne _080BC450 + ldr r4, =0x02039b4c + ldr r0, [r4] + ldr r2, =0x0000062a + adds r1, r0, r2 + ldrh r1, [r1] + ldr r3, =0x0000062c + adds r0, r3 + strb r1, [r0] + ldr r1, [r4] + subs r2, 0x1A + adds r0, r1, r2 + ldrh r2, [r0] + subs r3, 0x1E + adds r0, r1, r3 + strh r2, [r0] + ldr r2, =0x00000614 + adds r0, r1, r2 + ldrh r0, [r0] + adds r3, 0x4 + adds r1, r3 + strh r0, [r1] + bl sub_809D42C + adds r1, r0, 0 + cmp r1, 0 + bne _080BC42A + ldr r0, [r4] + ldr r2, =0x00000612 + adds r0, r2 + strh r1, [r0] +_080BC42A: + ldr r0, [r4] + movs r3, 0xC3 + lsls r3, 3 + adds r1, r0, r3 + ldrh r1, [r1] + ldr r2, =0x00000616 + adds r0, r2 + strh r1, [r0] + ldr r1, =0x03005e00 + lsls r0, r5, 2 + adds r0, r5 + lsls r0, 3 + adds r0, r1 + ldr r1, =sub_80BB78C + str r1, [r0] + bl sub_80BDA40 + bl sub_80BC890 +_080BC450: + pop {r4,r5} + pop {r0} + bx r0 + .pool + thumb_func_end sub_80BC3DC + + thumb_func_start sub_80BC47C +sub_80BC47C: @ 80BC47C + push {r4,r5,lr} + lsls r0, 24 + lsrs r5, r0, 24 + ldr r0, =0x02037fd4 + ldrb r1, [r0, 0x7] + movs r0, 0x80 + ands r0, r1 + cmp r0, 0 + bne _080BC4E8 + ldr r4, =0x02039b4c + ldr r0, [r4] + ldr r2, =0x0000062a + adds r1, r0, r2 + ldrh r1, [r1] + ldr r3, =0x0000062c + adds r0, r3 + strb r1, [r0] + ldr r1, [r4] + subs r2, 0x1A + adds r0, r1, r2 + ldrh r2, [r0] + subs r3, 0x1E + adds r0, r1, r3 + strh r2, [r0] + ldr r2, =0x00000614 + adds r0, r1, r2 + ldrh r0, [r0] + adds r3, 0x4 + adds r1, r3 + strh r0, [r1] + bl sub_809D42C + adds r1, r0, 0 + cmp r1, 0 + bne _080BC4CA + ldr r0, [r4] + ldr r2, =0x00000612 + adds r0, r2 + strh r1, [r0] +_080BC4CA: + ldr r0, [r4] + movs r3, 0xC3 + lsls r3, 3 + adds r1, r0, r3 + ldrh r1, [r1] + ldr r2, =0x00000616 + adds r0, r2 + strh r1, [r0] + ldr r1, =0x03005e00 + lsls r0, r5, 2 + adds r0, r5 + lsls r0, 3 + adds r0, r1 + ldr r1, =sub_80BBDE8 + str r1, [r0] +_080BC4E8: + pop {r4,r5} + pop {r0} + bx r0 + .pool + thumb_func_end sub_80BC47C + + thumb_func_start sub_80BC514 +sub_80BC514: @ 80BC514 + push {r4-r6,lr} + sub sp, 0x4 + lsls r0, 24 + lsrs r5, r0, 24 + ldr r1, =0x030022c0 + movs r2, 0x87 + lsls r2, 3 + adds r0, r1, r2 + ldrb r0, [r0] + adds r3, r1, 0 + cmp r0, 0x6 + bhi _080BC55C + lsls r0, 2 + ldr r1, =_080BC540 + adds r0, r1 + ldr r0, [r0] + mov pc, r0 + .pool + .align 2, 0 +_080BC540: + .4byte _080BC55C + .4byte _080BC6CC + .4byte _080BC6FC + .4byte _080BC704 + .4byte _080BC768 + .4byte _080BC790 + .4byte _080BC818 +_080BC55C: + ldr r0, =0x02037fd4 + ldrb r1, [r0, 0x7] + movs r0, 0x80 + ands r0, r1 + lsls r0, 24 + lsrs r6, r0, 24 + cmp r6, 0 + beq _080BC56E + b _080BC838 +_080BC56E: + movs r0, 0 + bl SetVBlankCallback + ldr r4, =0x02039b4c + ldr r0, [r4] + ldr r1, =0x0000064a + adds r0, r1 + strb r5, [r0] + movs r0, 0 + bl sub_80C09B0 + ldr r0, [r4] + ldr r2, =0x0000062d + adds r0, r2 + ldrb r1, [r0] + movs r0, 0x1A + bl SetGpuReg + movs r0, 0 + bl ResetBgsAndClearDma3BusyFlags + ldr r1, =gUnknown_0855D298 + movs r0, 0 + movs r2, 0x4 + bl InitBgsFromTemplates + movs r4, 0x80 + lsls r4, 4 + adds r0, r4, 0 + bl AllocZeroed + adds r1, r0, 0 + movs r0, 0x3 + bl SetBgTilemapBuffer + adds r0, r4, 0 + bl AllocZeroed + adds r1, r0, 0 + movs r0, 0x2 + bl SetBgTilemapBuffer + adds r0, r4, 0 + bl AllocZeroed + adds r1, r0, 0 + movs r0, 0x1 + bl SetBgTilemapBuffer + adds r0, r4, 0 + bl AllocZeroed + adds r1, r0, 0 + movs r0, 0 + bl SetBgTilemapBuffer + ldr r1, =gUnknown_08DC1934 + movs r2, 0x80 + lsls r2, 6 + str r6, [sp] + movs r0, 0x3 + movs r3, 0 + bl copy_decompressed_tile_data_to_vram_autofree + ldr r1, =gUnknown_08DC2C5C + movs r0, 0x1 + movs r2, 0 + movs r3, 0 + bl CopyToBgTilemapBuffer + ldr r1, =gUnknown_08DC2DAC + movs r0, 0x3 + movs r2, 0 + movs r3, 0 + bl CopyToBgTilemapBuffer + cmp r5, 0 + bne _080BC640 + ldr r1, =gUnknown_08DC2A08 + movs r3, 0xA0 + lsls r3, 2 + movs r0, 0 + movs r2, 0 + bl CopyToBgTilemapBuffer + b _080BC64E + .pool +_080BC640: + ldr r1, =gUnknown_08DC2B1C + movs r3, 0xA0 + lsls r3, 2 + movs r0, 0 + movs r2, 0 + bl CopyToBgTilemapBuffer +_080BC64E: + bl sub_80A1A74 + cmp r5, 0 + bne _080BC674 + ldr r3, =0x02039b4c + ldr r1, [r3] + ldr r0, =0x0000064c + adds r1, r0 + ldrb r2, [r1] + movs r0, 0x2 + negs r0, r0 + ands r0, r2 + b _080BC682 + .pool +_080BC674: + ldr r3, =0x02039b4c + ldr r1, [r3] + ldr r2, =0x0000064c + adds r1, r2 + ldrb r0, [r1] + movs r2, 0x1 + orrs r0, r2 +_080BC682: + strb r0, [r1] + ldr r0, [r3] + ldr r1, =0x0000064c + adds r0, r1 + ldrb r0, [r0] + lsls r0, 31 + lsrs r0, 31 + bl sub_80BC844 + ldr r0, =gUnknown_0855D2A8 + bl InitWindows + bl DeactivateAllTextPrinters + movs r0, 0 + bl PutWindowTilemap + movs r0, 0 + movs r1, 0x3 + bl CopyWindowToVram + ldr r0, =0x030022c0 + movs r2, 0x87 + lsls r2, 3 + adds r0, r2 + movs r1, 0x1 + strb r1, [r0] + b _080BC838 + .pool +_080BC6CC: + bl ResetAllObjectData + bl ResetObjectPaletteAllocator + ldr r1, =0x0300301c + movs r0, 0x8 + strb r0, [r1] + ldr r0, =gUnknown_0855D26C + bl LoadCompressedObjectPic + ldr r0, =gUnknown_0855D27C + bl LoadTaggedObjectPalettes + adds r0, r5, 0 + bl sub_80BDB7C + b _080BC7F8 + .pool +_080BC6FC: + movs r2, 0x87 + lsls r2, 3 + adds r1, r3, r2 + b _080BC800 +_080BC704: + cmp r5, 0 + bne _080BC71C + ldr r0, =0x02039b4c + ldr r1, [r0] + ldr r2, =0x00000612 + adds r0, r1, r2 + ldrb r0, [r0] + adds r2, 0x4 + adds r1, r2 + ldrb r1, [r1] + bl sub_80BC8D4 +_080BC71C: + ldr r4, =0x02039b4c + ldr r0, [r4] + ldr r1, =0x0000060e + adds r0, r1 + ldrh r0, [r0] + movs r1, 0xE + bl sub_80BD2B4 + ldr r0, [r4] + ldr r2, =0x0000064f + adds r0, r2 + movs r1, 0 + strb r1, [r0] + ldr r0, [r4] + adds r2, 0x3 + adds r0, r2 + strh r1, [r0] + movs r0, 0 + bl CopyBgTilemapBufferToVram + movs r0, 0x1 + bl CopyBgTilemapBufferToVram + movs r0, 0x2 + bl CopyBgTilemapBufferToVram + movs r0, 0x3 + bl CopyBgTilemapBufferToVram + b _080BC7F8 + .pool +_080BC768: + movs r0, 0x1 + negs r0, r0 + movs r1, 0 + str r1, [sp] + movs r2, 0x10 + movs r3, 0 + bl pal_fade_maybe + ldr r0, =sub_80BB370 + bl SetVBlankCallback + ldr r1, =0x030022c0 + movs r2, 0x87 + lsls r2, 3 + adds r1, r2 + b _080BC800 + .pool +_080BC790: + ldr r1, =0x00003f3f + movs r0, 0x48 + bl SetGpuReg + ldr r1, =0x00001d3f + movs r0, 0x4A + bl SetGpuReg + movs r0, 0x40 + movs r1, 0 + bl SetGpuReg + movs r0, 0x44 + movs r1, 0 + bl SetGpuReg + movs r0, 0x42 + movs r1, 0 + bl SetGpuReg + movs r0, 0x46 + movs r1, 0 + bl SetGpuReg + movs r0, 0x50 + movs r1, 0 + bl SetGpuReg + movs r0, 0x52 + movs r1, 0 + bl SetGpuReg + movs r0, 0x54 + movs r1, 0 + bl SetGpuReg + ldr r1, =0x00009040 + movs r0, 0 + bl SetGpuReg + movs r0, 0 + bl ShowBg + movs r0, 0x1 + bl ShowBg + movs r0, 0x2 + bl ShowBg + movs r0, 0x3 + bl ShowBg +_080BC7F8: + ldr r1, =0x030022c0 + movs r0, 0x87 + lsls r0, 3 + adds r1, r0 +_080BC800: + ldrb r0, [r1] + adds r0, 0x1 + strb r0, [r1] + b _080BC838 + .pool +_080BC818: + ldr r0, =0x02037fd4 + ldrb r1, [r0, 0x7] + movs r0, 0x80 + ands r0, r1 + lsls r0, 24 + lsrs r2, r0, 24 + cmp r2, 0 + bne _080BC838 + movs r1, 0x87 + lsls r1, 3 + adds r0, r3, r1 + strb r2, [r0] + movs r0, 0x1 + b _080BC83A + .pool +_080BC838: + movs r0, 0 +_080BC83A: + add sp, 0x4 + pop {r4-r6} + pop {r1} + bx r1 + thumb_func_end sub_80BC514 + + thumb_func_start sub_80BC844 +sub_80BC844: @ 80BC844 + push {lr} + lsls r0, 24 + lsrs r0, 24 + cmp r0, 0x1 + bne _080BC858 + ldr r0, =gUnknown_08DC17B6 + b _080BC862 + .pool +_080BC858: + bl sub_809D42C + cmp r0, 0 + bne _080BC870 + ldr r0, =gUnknown_08DC16F6 +_080BC862: + movs r1, 0x1 + movs r2, 0xBE + bl gpu_pal_apply + b _080BC87A + .pool +_080BC870: + ldr r0, =gUnknown_08DC1876 + movs r1, 0x1 + movs r2, 0xBE + bl gpu_pal_apply +_080BC87A: + bl sub_8098C64 + movs r1, 0xF0 + movs r2, 0x20 + bl gpu_pal_apply + pop {r0} + bx r0 + .pool + thumb_func_end sub_80BC844 + + thumb_func_start sub_80BC890 +sub_80BC890: @ 80BC890 + push {lr} + bl FreeAllWindowBuffers + movs r0, 0 + bl GetBgTilemapBuffer + cmp r0, 0 + beq _080BC8A4 + bl Free +_080BC8A4: + movs r0, 0x1 + bl GetBgTilemapBuffer + cmp r0, 0 + beq _080BC8B2 + bl Free +_080BC8B2: + movs r0, 0x2 + bl GetBgTilemapBuffer + cmp r0, 0 + beq _080BC8C0 + bl Free +_080BC8C0: + movs r0, 0x3 + bl GetBgTilemapBuffer + cmp r0, 0 + beq _080BC8CE + bl Free +_080BC8CE: + pop {r0} + bx r0 + thumb_func_end sub_80BC890 + + thumb_func_start sub_80BC8D4 +sub_80BC8D4: @ 80BC8D4 + push {r4-r7,lr} + mov r7, r10 + mov r6, r9 + mov r5, r8 + push {r5-r7} + sub sp, 0x8 + lsls r0, 24 + lsrs r4, r0, 24 + lsls r1, 24 + lsrs r6, r1, 24 + ldr r0, =0x02039b4c + ldr r0, [r0] + ldr r1, =0x0000060c + adds r0, r1 + movs r5, 0 + strh r5, [r0] + cmp r4, 0 + beq _080BC8FC + cmp r4, 0x1 + beq _080BC910 +_080BC8FC: + mov r1, sp + movs r0, 0xCA + strh r0, [r1] + movs r0, 0x1 + strh r0, [r1, 0x2] + b _080BC92C + .pool +_080BC910: + bl sub_809D42C + cmp r0, 0 + beq _080BC924 + mov r0, sp + movs r1, 0xC1 + lsls r1, 1 + strh r1, [r0] + strh r5, [r0, 0x2] + b _080BC92C +_080BC924: + mov r0, sp + movs r1, 0xCA + strh r1, [r0] + strh r4, [r0, 0x2] +_080BC92C: + cmp r6, 0x5 + bls _080BC932 + b _080BCDB4 +_080BC932: + lsls r0, r6, 2 + ldr r1, =_080BC940 + adds r0, r1 + ldr r0, [r0] + mov pc, r0 + .pool + .align 2, 0 +_080BC940: + .4byte _080BC958 + .4byte _080BCACC + .4byte _080BCB78 + .4byte _080BCC08 + .4byte _080BCCA0 + .4byte _080BCD30 +_080BC958: + mov r0, sp + ldrh r0, [r0, 0x2] + cmp r0, 0 + beq _080BCA00 + movs r4, 0 + mov r0, sp + ldrh r0, [r0] + cmp r4, r0 + blt _080BC96C + b _080BCDB4 +_080BC96C: + mov r5, sp + ldr r2, =0x02039b4c + mov r8, r2 + movs r3, 0x1 + mov r9, r3 +_080BC976: + lsls r4, 16 + asrs r4, 16 + adds r7, r4, 0x1 + mov r10, r7 + lsls r0, r7, 16 + lsrs r6, r0, 16 + adds r0, r6, 0 + bl HoennToNationalOrder + strh r0, [r5, 0x4] + mov r2, r8 + ldr r1, [r2] + lsls r4, 2 + adds r1, r4 + strh r0, [r1] + ldrh r0, [r5, 0x4] + movs r1, 0 + bl pokedex_flag_operation + mov r3, r8 + ldr r2, [r3] + adds r2, r4 + mov r3, r9 + ands r3, r0 + ldrb r0, [r2, 0x2] + movs r7, 0x2 + negs r7, r7 + adds r1, r7, 0 + ands r0, r1 + orrs r0, r3 + strb r0, [r2, 0x2] + ldrh r0, [r5, 0x4] + movs r1, 0x1 + bl pokedex_flag_operation + mov r1, r8 + ldr r3, [r1] + adds r3, r4 + mov r2, r9 + ands r2, r0 + lsls r2, 1 + ldrb r0, [r3, 0x2] + subs r7, 0x1 + adds r1, r7, 0 + ands r0, r1 + orrs r0, r2 + strb r0, [r3, 0x2] + mov r0, r8 + ldr r1, [r0] + adds r4, r1, r4 + ldrb r0, [r4, 0x2] + lsls r0, 31 + cmp r0, 0 + beq _080BC9EA + ldr r2, =0x0000060c + adds r0, r1, r2 + mov r3, r10 + strh r3, [r0] +_080BC9EA: + adds r4, r6, 0 + lsls r0, r4, 16 + asrs r0, 16 + ldrh r7, [r5] + cmp r0, r7 + blt _080BC976 + b _080BCDB4 + .pool +_080BCA00: + movs r4, 0 + movs r5, 0 + mov r10, r5 + mov r0, sp + ldrh r0, [r0] + cmp r4, r0 + blt _080BCA10 + b _080BCDB4 +_080BCA10: + mov r6, sp + ldr r0, =0x02039b4c + mov r8, r0 + movs r1, 0x1 + mov r9, r1 +_080BCA1A: + lsls r4, 16 + asrs r0, r4, 16 + adds r0, 0x1 + strh r0, [r6, 0x4] + ldrh r0, [r6, 0x4] + movs r1, 0 + bl pokedex_flag_operation + lsls r0, 24 + adds r7, r4, 0 + cmp r0, 0 + beq _080BCA36 + movs r2, 0x1 + mov r10, r2 +_080BCA36: + mov r3, r10 + cmp r3, 0 + beq _080BCAB2 + mov r4, r8 + ldr r1, [r4] + lsls r0, r5, 16 + asrs r5, r0, 16 + lsls r4, r5, 2 + adds r1, r4 + ldrh r0, [r6, 0x4] + strh r0, [r1] + ldrh r0, [r6, 0x4] + movs r1, 0 + bl pokedex_flag_operation + mov r1, r8 + ldr r2, [r1] + adds r2, r4 + mov r3, r9 + ands r3, r0 + mov r12, r3 + ldrb r0, [r2, 0x2] + movs r3, 0x2 + negs r3, r3 + adds r1, r3, 0 + ands r0, r1 + mov r1, r12 + orrs r0, r1 + strb r0, [r2, 0x2] + ldrh r0, [r6, 0x4] + movs r1, 0x1 + bl pokedex_flag_operation + mov r2, r8 + ldr r3, [r2] + adds r3, r4 + mov r2, r9 + ands r2, r0 + lsls r2, 1 + mov r12, r2 + ldrb r0, [r3, 0x2] + movs r2, 0x3 + negs r2, r2 + adds r1, r2, 0 + ands r0, r1 + mov r1, r12 + orrs r0, r1 + strb r0, [r3, 0x2] + mov r3, r8 + ldr r2, [r3] + adds r4, r2, r4 + ldrb r0, [r4, 0x2] + lsls r0, 31 + cmp r0, 0 + beq _080BCAAC + adds r1, r5, 0x1 + ldr r4, =0x0000060c + adds r0, r2, r4 + strh r1, [r0] +_080BCAAC: + adds r0, r5, 0x1 + lsls r0, 16 + lsrs r5, r0, 16 +_080BCAB2: + movs r1, 0x80 + lsls r1, 9 + adds r0, r7, r1 + lsrs r4, r0, 16 + asrs r0, 16 + ldrh r2, [r6] + cmp r0, r2 + blt _080BCA1A + b _080BCDB4 + .pool +_080BCACC: + movs r4, 0 + mov r5, sp + ldr r3, =0x02039b4c + mov r8, r3 + ldr r6, =0x0000060c + movs r7, 0x1 + mov r9, r7 +_080BCADA: + ldr r1, =gUnknown_0855C6A4 + lsls r4, 16 + asrs r0, r4, 15 + adds r0, r1 + ldrh r0, [r0] + strh r0, [r5, 0x4] + ldrh r0, [r5, 0x4] + bl NationalToHoennOrder + lsls r0, 16 + lsrs r0, 16 + adds r7, r4, 0 + ldrh r1, [r5] + cmp r0, r1 + bhi _080BCB58 + ldrh r0, [r5, 0x4] + movs r1, 0 + bl pokedex_flag_operation + lsls r0, 24 + cmp r0, 0 + beq _080BCB58 + mov r3, r8 + ldr r2, [r3] + adds r3, r2, r6 + ldrh r0, [r3] + lsls r0, 2 + adds r0, r2, r0 + ldrh r1, [r5, 0x4] + strh r1, [r0] + ldrh r0, [r3] + lsls r0, 2 + adds r2, r0 + ldrb r0, [r2, 0x2] + mov r4, r9 + orrs r0, r4 + strb r0, [r2, 0x2] + ldrh r0, [r5, 0x4] + movs r1, 0x1 + bl pokedex_flag_operation + mov r1, r8 + ldr r3, [r1] + adds r1, r3, r6 + ldrh r1, [r1] + lsls r1, 2 + adds r3, r1 + mov r2, r9 + ands r2, r0 + lsls r2, 1 + ldrb r0, [r3, 0x2] + movs r4, 0x3 + negs r4, r4 + adds r1, r4, 0 + ands r0, r1 + orrs r0, r2 + strb r0, [r3, 0x2] + mov r0, r8 + ldr r1, [r0] + adds r1, r6 + ldrh r0, [r1] + adds r0, 0x1 + strh r0, [r1] +_080BCB58: + movs r2, 0x80 + lsls r2, 9 + adds r1, r7, r2 + lsrs r4, r1, 16 + movs r0, 0xCD + lsls r0, 17 + cmp r1, r0 + ble _080BCADA + b _080BCDB4 + .pool +_080BCB78: + ldr r4, =0x00000181 + lsls r0, r4, 16 + mov r5, sp + ldr r7, =0x02039b4c + ldr r6, =0x0000060c +_080BCB82: + ldr r1, =gUnknown_0855C9DA + asrs r0, 15 + adds r0, r1 + ldrh r0, [r0] + strh r0, [r5, 0x4] + ldrh r0, [r5, 0x4] + bl NationalToHoennOrder + lsls r0, 16 + lsrs r0, 16 + ldrh r3, [r5] + cmp r0, r3 + bhi _080BCBE2 + ldrh r0, [r5, 0x4] + movs r1, 0x1 + bl pokedex_flag_operation + lsls r0, 24 + cmp r0, 0 + beq _080BCBE2 + ldr r2, [r7] + adds r3, r2, r6 + ldrh r0, [r3] + lsls r0, 2 + adds r0, r2, r0 + ldrh r1, [r5, 0x4] + strh r1, [r0] + ldrh r0, [r3] + lsls r0, 2 + adds r2, r0 + ldrb r0, [r2, 0x2] + movs r1, 0x1 + orrs r0, r1 + strb r0, [r2, 0x2] + ldr r2, [r7] + adds r0, r2, r6 + ldrh r0, [r0] + lsls r0, 2 + adds r2, r0 + ldrb r0, [r2, 0x2] + movs r1, 0x2 + orrs r0, r1 + strb r0, [r2, 0x2] + ldr r1, [r7] + adds r1, r6 + ldrh r0, [r1] + adds r0, 0x1 + strh r0, [r1] +_080BCBE2: + lsls r0, r4, 16 + ldr r4, =0xffff0000 + adds r0, r4 + lsrs r4, r0, 16 + lsls r0, r4, 16 + cmp r0, 0 + bge _080BCB82 + b _080BCDB4 + .pool +_080BCC08: + movs r4, 0 + mov r5, sp + ldr r7, =0x02039b4c + mov r8, r7 + ldr r6, =0x0000060c + ldr r0, =0x00000181 + mov r9, r0 +_080BCC16: + ldr r1, =gUnknown_0855C9DA + lsls r4, 16 + asrs r0, r4, 15 + adds r0, r1 + ldrh r0, [r0] + strh r0, [r5, 0x4] + ldrh r0, [r5, 0x4] + bl NationalToHoennOrder + lsls r0, 16 + lsrs r0, 16 + adds r7, r4, 0 + ldrh r1, [r5] + cmp r0, r1 + bhi _080BCC7E + ldrh r0, [r5, 0x4] + movs r1, 0x1 + bl pokedex_flag_operation + lsls r0, 24 + cmp r0, 0 + beq _080BCC7E + mov r3, r8 + ldr r2, [r3] + adds r3, r2, r6 + ldrh r0, [r3] + lsls r0, 2 + adds r0, r2, r0 + ldrh r1, [r5, 0x4] + strh r1, [r0] + ldrh r0, [r3] + lsls r0, 2 + adds r2, r0 + ldrb r0, [r2, 0x2] + movs r1, 0x1 + orrs r0, r1 + strb r0, [r2, 0x2] + mov r4, r8 + ldr r2, [r4] + adds r0, r2, r6 + ldrh r0, [r0] + lsls r0, 2 + adds r2, r0 + ldrb r0, [r2, 0x2] + movs r1, 0x2 + orrs r0, r1 + strb r0, [r2, 0x2] + ldr r1, [r4] + adds r1, r6 + ldrh r0, [r1] + adds r0, 0x1 + strh r0, [r1] +_080BCC7E: + movs r1, 0x80 + lsls r1, 9 + adds r0, r7, r1 + lsrs r4, r0, 16 + asrs r0, 16 + cmp r0, r9 + ble _080BCC16 + b _080BCDB4 + .pool +_080BCCA0: + ldr r4, =0x00000181 + lsls r0, r4, 16 + mov r5, sp + ldr r7, =0x02039b4c + ldr r6, =0x0000060c +_080BCCAA: + ldr r1, =gUnknown_0855CCDE + asrs r0, 15 + adds r0, r1 + ldrh r0, [r0] + strh r0, [r5, 0x4] + ldrh r0, [r5, 0x4] + bl NationalToHoennOrder + lsls r0, 16 + lsrs r0, 16 + ldrh r2, [r5] + cmp r0, r2 + bhi _080BCD0A + ldrh r0, [r5, 0x4] + movs r1, 0x1 + bl pokedex_flag_operation + lsls r0, 24 + cmp r0, 0 + beq _080BCD0A + ldr r2, [r7] + adds r3, r2, r6 + ldrh r0, [r3] + lsls r0, 2 + adds r0, r2, r0 + ldrh r1, [r5, 0x4] + strh r1, [r0] + ldrh r0, [r3] + lsls r0, 2 + adds r2, r0 + ldrb r0, [r2, 0x2] + movs r1, 0x1 + orrs r0, r1 + strb r0, [r2, 0x2] + ldr r2, [r7] + adds r0, r2, r6 + ldrh r0, [r0] + lsls r0, 2 + adds r2, r0 + ldrb r0, [r2, 0x2] + movs r1, 0x2 + orrs r0, r1 + strb r0, [r2, 0x2] + ldr r1, [r7] + adds r1, r6 + ldrh r0, [r1] + adds r0, 0x1 + strh r0, [r1] +_080BCD0A: + lsls r0, r4, 16 + ldr r3, =0xffff0000 + adds r0, r3 + lsrs r4, r0, 16 + lsls r0, r4, 16 + cmp r0, 0 + bge _080BCCAA + b _080BCDB4 + .pool +_080BCD30: + movs r4, 0 + mov r5, sp + ldr r7, =0x02039b4c + mov r8, r7 + ldr r6, =0x0000060c + ldr r0, =0x00000181 + mov r9, r0 +_080BCD3E: + ldr r1, =gUnknown_0855CCDE + lsls r4, 16 + asrs r0, r4, 15 + adds r0, r1 + ldrh r0, [r0] + strh r0, [r5, 0x4] + ldrh r0, [r5, 0x4] + bl NationalToHoennOrder + lsls r0, 16 + lsrs r0, 16 + adds r7, r4, 0 + ldrh r1, [r5] + cmp r0, r1 + bhi _080BCDA6 + ldrh r0, [r5, 0x4] + movs r1, 0x1 + bl pokedex_flag_operation + lsls r0, 24 + cmp r0, 0 + beq _080BCDA6 + mov r3, r8 + ldr r2, [r3] + adds r3, r2, r6 + ldrh r0, [r3] + lsls r0, 2 + adds r0, r2, r0 + ldrh r1, [r5, 0x4] + strh r1, [r0] + ldrh r0, [r3] + lsls r0, 2 + adds r2, r0 + ldrb r0, [r2, 0x2] + movs r1, 0x1 + orrs r0, r1 + strb r0, [r2, 0x2] + mov r4, r8 + ldr r2, [r4] + adds r0, r2, r6 + ldrh r0, [r0] + lsls r0, 2 + adds r2, r0 + ldrb r0, [r2, 0x2] + movs r1, 0x2 + orrs r0, r1 + strb r0, [r2, 0x2] + ldr r1, [r4] + adds r1, r6 + ldrh r0, [r1] + adds r0, 0x1 + strh r0, [r1] +_080BCDA6: + movs r1, 0x80 + lsls r1, 9 + adds r0, r7, r1 + lsrs r4, r0, 16 + asrs r0, 16 + cmp r0, r9 + ble _080BCD3E +_080BCDB4: + ldr r1, =0x02039b4c + ldr r0, [r1] + ldr r2, =0x0000060c + adds r0, r2 + ldrh r4, [r0] + lsls r3, r4, 16 + asrs r0, r3, 16 + ldr r2, =0x00000181 + cmp r0, r2 + bgt _080BCE08 + adds r5, r1, 0 + movs r4, 0x2 + negs r4, r4 + mov r9, r4 + movs r7, 0x3 + negs r7, r7 + mov r8, r7 + adds r7, r2, 0 + ldr r0, =0x0000ffff + adds r6, r0, 0 +_080BCDDC: + ldr r1, [r5] + asrs r3, 16 + lsls r4, r3, 2 + adds r1, r4 + ldrh r0, [r1] + orrs r0, r6 + strh r0, [r1] + ldrb r2, [r1, 0x2] + mov r0, r9 + ands r0, r2 + strb r0, [r1, 0x2] + ldr r1, [r5] + adds r1, r4 + ldrb r2, [r1, 0x2] + mov r0, r8 + ands r0, r2 + strb r0, [r1, 0x2] + adds r3, 0x1 + lsls r3, 16 + asrs r0, r3, 16 + cmp r0, r7 + ble _080BCDDC +_080BCE08: + add sp, 0x8 + pop {r3-r5} + mov r8, r3 + mov r9, r4 + mov r10, r5 + pop {r4-r7} + pop {r0} + bx r0 + .pool + thumb_func_end sub_80BC8D4 + + thumb_func_start sub_80BCE2C +sub_80BCE2C: @ 80BCE2C + push {r4-r6,lr} + mov r6, r8 + push {r6} + sub sp, 0x18 + mov r8, r3 + ldr r3, [sp, 0x2C] + lsls r0, 24 + lsrs r0, 24 + lsls r1, 24 + lsrs r1, 24 + lsls r3, 24 + add r4, sp, 0x14 + movs r6, 0 + strb r6, [r4] + adds r5, r4, 0 + movs r4, 0xF + strb r4, [r5, 0x1] + movs r4, 0x3 + strb r4, [r5, 0x2] + mov r4, r8 + lsls r4, 27 + lsrs r4, 24 + mov r8, r4 + lsrs r3, 21 + adds r3, 0x1 + lsls r3, 24 + lsrs r3, 24 + str r6, [sp] + str r6, [sp, 0x4] + str r5, [sp, 0x8] + movs r4, 0x1 + negs r4, r4 + str r4, [sp, 0xC] + str r2, [sp, 0x10] + mov r2, r8 + bl AddTextPrinterParametrized2 + add sp, 0x18 + pop {r3} + mov r8, r3 + pop {r4-r6} + pop {r0} + bx r0 + thumb_func_end sub_80BCE2C + + thumb_func_start sub_80BCE84 +sub_80BCE84: @ 80BCE84 + push {r4-r7,lr} + mov r7, r10 + mov r6, r9 + mov r5, r8 + push {r5-r7} + lsls r0, 24 + lsrs r0, 24 + lsls r1, 16 + lsrs r1, 16 + lsls r2, 16 + lsrs r7, r2, 16 + cmp r0, 0x1 + beq _080BCF7C + cmp r0, 0x1 + ble _080BCEA8 + cmp r0, 0x2 + bne _080BCEA8 + b _080BD074 +_080BCEA8: + subs r0, r1, 0x5 + lsls r0, 16 + lsrs r1, r0, 16 + movs r0, 0 + mov r9, r0 +_080BCEB2: + lsls r0, r1, 16 + lsrs r5, r0, 16 + mov r10, r0 + ldr r1, =0x00000181 + cmp r5, r1 + bhi _080BCED2 + ldr r2, =0x02039b4c + mov r8, r2 + ldr r0, [r2] + mov r3, r10 + asrs r6, r3, 14 + adds r0, r6 + ldrh r0, [r0] + ldr r1, =0x0000ffff + cmp r0, r1 + bne _080BCEF0 +_080BCED2: + mov r2, r9 + lsls r1, r2, 25 + lsrs r1, 24 + movs r0, 0x11 + adds r2, r7, 0 + bl sub_80BD28C + b _080BCF64 + .pool +_080BCEF0: + mov r3, r9 + lsls r0, r3, 25 + lsrs r4, r0, 24 + movs r0, 0x11 + adds r1, r4, 0 + adds r2, r7, 0 + bl sub_80BD28C + mov r1, r8 + ldr r0, [r1] + adds r0, r6 + ldrb r0, [r0, 0x2] + lsls r0, 31 + cmp r0, 0 + beq _080BCF42 + adds r0, r5, 0 + movs r1, 0x12 + adds r2, r4, 0 + adds r3, r7, 0 + bl sub_80BD154 + mov r2, r8 + ldr r0, [r2] + adds r0, r6 + ldrb r0, [r0, 0x2] + lsls r0, 30 + lsrs r0, 31 + movs r1, 0x11 + adds r2, r4, 0 + adds r3, r7, 0 + bl sub_80BD1F4 + mov r3, r8 + ldr r0, [r3] + adds r0, r6 + ldrh r0, [r0] + movs r1, 0x16 + adds r2, r4, 0 + bl sub_80BD23C + b _080BCF64 +_080BCF42: + adds r0, r5, 0 + movs r1, 0x12 + adds r2, r4, 0 + adds r3, r7, 0 + bl sub_80BD154 + movs r0, 0 + movs r1, 0x11 + adds r2, r4, 0 + adds r3, r7, 0 + bl sub_80BD1F4 + movs r0, 0 + movs r1, 0x16 + adds r2, r4, 0 + bl sub_80BD23C +_080BCF64: + movs r0, 0x80 + lsls r0, 9 + add r0, r10 + lsrs r1, r0, 16 + mov r0, r9 + adds r0, 0x1 + lsls r0, 16 + lsrs r0, 16 + mov r9, r0 + cmp r0, 0xA + bls _080BCEB2 + b _080BD13E +_080BCF7C: + subs r0, r1, 0x5 + lsls r1, r0, 16 + lsrs r5, r1, 16 + ldr r0, =0x00000181 + ldr r2, =0x02039b4c + cmp r5, r0 + bhi _080BCF9A + adds r6, r2, 0 + ldr r3, [r6] + asrs r4, r1, 14 + adds r0, r3, r4 + ldrh r1, [r0] + ldr r0, =0x0000ffff + cmp r1, r0 + bne _080BCFB8 +_080BCF9A: + ldr r0, [r2] + movs r1, 0xC6 + lsls r1, 3 + adds r0, r1 + movs r2, 0 + ldrsh r1, [r0, r2] + lsls r1, 25 + b _080BD0B2 + .pool +_080BCFB8: + movs r1, 0xC6 + lsls r1, 3 + adds r0, r3, r1 + movs r2, 0 + ldrsh r1, [r0, r2] + lsls r1, 25 + lsrs r1, 24 + movs r0, 0x11 + adds r2, r7, 0 + bl sub_80BD28C + ldr r1, [r6] + adds r0, r1, r4 + ldrb r0, [r0, 0x2] + lsls r0, 31 + cmp r0, 0 + beq _080BD028 + movs r3, 0xC6 + lsls r3, 3 + adds r0, r1, r3 + movs r1, 0 + ldrsh r2, [r0, r1] + lsls r2, 25 + lsrs r2, 24 + adds r0, r5, 0 + movs r1, 0x12 + adds r3, r7, 0 + bl sub_80BD154 + ldr r1, [r6] + adds r0, r1, r4 + ldrb r0, [r0, 0x2] + lsls r0, 30 + lsrs r0, 31 + movs r2, 0xC6 + lsls r2, 3 + adds r1, r2 + movs r3, 0 + ldrsh r2, [r1, r3] + lsls r2, 25 + lsrs r2, 24 + movs r1, 0x11 + adds r3, r7, 0 + bl sub_80BD1F4 + ldr r1, [r6] + adds r0, r1, r4 + ldrh r0, [r0] + movs r2, 0xC6 + lsls r2, 3 + adds r1, r2 + movs r3, 0 + ldrsh r2, [r1, r3] + lsls r2, 25 + lsrs r2, 24 + b _080BD06C +_080BD028: + movs r2, 0xC6 + lsls r2, 3 + adds r0, r1, r2 + movs r3, 0 + ldrsh r2, [r0, r3] + lsls r2, 25 + lsrs r2, 24 + adds r0, r5, 0 + movs r1, 0x12 + adds r3, r7, 0 + bl sub_80BD154 + ldr r0, [r6] + movs r1, 0xC6 + lsls r1, 3 + adds r0, r1 + movs r3, 0 + ldrsh r2, [r0, r3] + lsls r2, 25 + lsrs r2, 24 + movs r0, 0 + movs r1, 0x11 + adds r3, r7, 0 + bl sub_80BD1F4 + ldr r0, [r6] + movs r1, 0xC6 + lsls r1, 3 + adds r0, r1 + movs r3, 0 + ldrsh r2, [r0, r3] + lsls r2, 25 + lsrs r2, 24 + movs r0, 0 +_080BD06C: + movs r1, 0x16 + bl sub_80BD23C + b _080BD13E +_080BD074: + adds r0, r1, 0x5 + lsls r0, 16 + lsrs r1, r0, 16 + ldr r0, =0x02039b4c + mov r8, r0 + ldr r3, [r0] + movs r2, 0xC6 + lsls r2, 3 + adds r0, r3, r2 + ldrh r0, [r0] + adds r0, 0xA + lsls r0, 16 + lsrs r2, r0, 16 + cmp r2, 0xF + bls _080BD09A + adds r0, r2, 0 + subs r0, 0x10 + lsls r0, 16 + lsrs r2, r0, 16 +_080BD09A: + lsls r1, 16 + lsrs r5, r1, 16 + ldr r0, =0x00000181 + cmp r5, r0 + bhi _080BD0B0 + asrs r6, r1, 14 + adds r0, r3, r6 + ldrh r1, [r0] + ldr r0, =0x0000ffff + cmp r1, r0 + bne _080BD0CC +_080BD0B0: + lsls r1, r2, 25 +_080BD0B2: + lsrs r1, 24 + movs r0, 0x11 + adds r2, r7, 0 + bl sub_80BD28C + b _080BD13E + .pool +_080BD0CC: + lsls r0, r2, 25 + lsrs r4, r0, 24 + movs r0, 0x11 + adds r1, r4, 0 + adds r2, r7, 0 + bl sub_80BD28C + mov r3, r8 + ldr r0, [r3] + adds r0, r6 + ldrb r0, [r0, 0x2] + lsls r0, 31 + cmp r0, 0 + beq _080BD11C + adds r0, r5, 0 + movs r1, 0x12 + adds r2, r4, 0 + adds r3, r7, 0 + bl sub_80BD154 + mov r1, r8 + ldr r0, [r1] + adds r0, r6 + ldrb r0, [r0, 0x2] + lsls r0, 30 + lsrs r0, 31 + movs r1, 0x11 + adds r2, r4, 0 + adds r3, r7, 0 + bl sub_80BD1F4 + mov r2, r8 + ldr r0, [r2] + adds r0, r6 + ldrh r0, [r0] + movs r1, 0x16 + adds r2, r4, 0 + bl sub_80BD23C + b _080BD13E +_080BD11C: + adds r0, r5, 0 + movs r1, 0x12 + adds r2, r4, 0 + adds r3, r7, 0 + bl sub_80BD154 + movs r0, 0 + movs r1, 0x11 + adds r2, r4, 0 + adds r3, r7, 0 + bl sub_80BD1F4 + movs r0, 0 + movs r1, 0x16 + adds r2, r4, 0 + bl sub_80BD23C +_080BD13E: + movs r0, 0 + movs r1, 0x2 + bl CopyWindowToVram + pop {r3-r5} + mov r8, r3 + mov r9, r4 + mov r10, r5 + pop {r4-r7} + pop {r0} + bx r0 + thumb_func_end sub_80BCE84 + + thumb_func_start sub_80BD154 +sub_80BD154: @ 80BD154 + push {r4-r7,lr} + mov r7, r8 + push {r7} + sub sp, 0xC + adds r4, r0, 0 + lsls r4, 16 + lsrs r4, 16 + lsls r1, 24 + lsrs r1, 24 + mov r8, r1 + lsls r2, 24 + lsrs r7, r2, 24 + ldr r1, =gUnknown_0855D2B8 + add r0, sp, 0x4 + movs r2, 0x6 + bl memcpy + ldr r0, =0x02039b4c + ldr r0, [r0] + lsls r4, 2 + adds r4, r0, r4 + ldrh r6, [r4] + ldr r1, =0x00000612 + adds r0, r1 + ldrh r0, [r0] + cmp r0, 0 + bne _080BD194 + adds r0, r6, 0 + bl NationalToHoennOrder + lsls r0, 16 + lsrs r6, r0, 16 +_080BD194: + add r4, sp, 0x4 + adds r0, r6, 0 + movs r1, 0x64 + bl __udivsi3 + adds r0, 0xA1 + strb r0, [r4, 0x2] + add r5, sp, 0x4 + adds r0, r6, 0 + movs r1, 0x64 + bl __umodsi3 + adds r4, r0, 0 + lsls r4, 16 + lsrs r4, 16 + adds r0, r4, 0 + movs r1, 0xA + bl __udivsi3 + adds r0, 0xA1 + strb r0, [r5, 0x3] + add r5, sp, 0x4 + adds r0, r4, 0 + movs r1, 0xA + bl __umodsi3 + adds r0, 0xA1 + strb r0, [r5, 0x4] + str r7, [sp] + movs r0, 0 + movs r1, 0x7 + add r2, sp, 0x4 + mov r3, r8 + bl sub_80BCE2C + add sp, 0xC + pop {r3} + mov r8, r3 + pop {r4-r7} + pop {r0} + bx r0 + .pool + thumb_func_end sub_80BD154 + + thumb_func_start sub_80BD1F4 +sub_80BD1F4: @ 80BD1F4 + push {r4,lr} + sub sp, 0x8 + lsls r0, 16 + lsls r1, 24 + lsrs r3, r1, 24 + lsls r2, 24 + lsrs r4, r2, 24 + cmp r0, 0 + beq _080BD220 + ldr r1, =gUnknown_0855D2BE + lsls r2, r3, 3 + lsls r3, r4, 3 + movs r0, 0x8 + str r0, [sp] + movs r0, 0x10 + str r0, [sp, 0x4] + movs r0, 0 + bl BlitBitmapToWindow + b _080BD234 + .pool +_080BD220: + lsls r2, r3, 3 + lsls r3, r4, 3 + movs r0, 0x8 + str r0, [sp] + movs r0, 0x10 + str r0, [sp, 0x4] + movs r0, 0 + movs r1, 0 + bl FillWindowPixelRect +_080BD234: + add sp, 0x8 + pop {r4} + pop {r0} + bx r0 + thumb_func_end sub_80BD1F4 + + thumb_func_start sub_80BD23C +sub_80BD23C: @ 80BD23C + push {r4-r6,lr} + sub sp, 0x4 + lsls r0, 16 + lsrs r0, 16 + lsls r1, 24 + lsrs r6, r1, 24 + lsls r2, 24 + lsrs r5, r2, 24 + bl NationalPokedexNumToSpecies + adds r1, r0, 0 + cmp r1, 0 + beq _080BD264 + movs r0, 0xB + muls r1, r0 + ldr r0, =gSpeciesNames + adds r4, r1, r0 + b _080BD266 + .pool +_080BD264: + ldr r4, =gUnknown_0855D2FE +_080BD266: + str r5, [sp] + movs r0, 0 + movs r1, 0x7 + adds r2, r4, 0 + adds r3, r6, 0 + bl sub_80BCE2C + adds r0, r4, 0 + bl GetStringLength + lsls r0, 24 + lsrs r0, 24 + add sp, 0x4 + pop {r4-r6} + pop {r1} + bx r1 + .pool + thumb_func_end sub_80BD23C + + thumb_func_start sub_80BD28C +sub_80BD28C: @ 80BD28C + push {lr} + sub sp, 0x8 + adds r2, r0, 0 + adds r3, r1, 0 + lsls r2, 24 + lsls r3, 24 + lsrs r2, 21 + lsrs r3, 21 + movs r0, 0x60 + str r0, [sp] + movs r0, 0x10 + str r0, [sp, 0x4] + movs r0, 0 + movs r1, 0 + bl FillWindowPixelRect + add sp, 0x8 + pop {r0} + bx r0 + thumb_func_end sub_80BD28C + + thumb_func_start sub_80BD2B4 +sub_80BD2B4: @ 80BD2B4 + push {r4-r7,lr} + mov r7, r8 + push {r7} + lsls r0, 16 + lsrs r6, r0, 16 + lsls r1, 16 + lsrs r1, 16 + mov r8, r1 + ldr r2, =0x02037fd4 + ldrb r0, [r2, 0x8] + movs r1, 0x80 + orrs r0, r1 + strb r0, [r2, 0x8] + movs r2, 0 + ldr r7, =0x02039b4c + adds r5, r7, 0 + ldr r4, =0x0000061e + ldr r0, =0x0000ffff + adds r3, r0, 0 +_080BD2DA: + ldr r1, [r5] + lsls r0, r2, 1 + adds r1, r4 + adds r1, r0 + ldrh r0, [r1] + orrs r0, r3 + strh r0, [r1] + adds r0, r2, 0x1 + lsls r0, 24 + lsrs r2, r0, 24 + cmp r2, 0x3 + bls _080BD2DA + ldr r0, [r7] + ldr r1, =0x00000626 + adds r0, r1 + ldr r1, =0x0000ffff + strh r1, [r0] + subs r0, r6, 0x1 + lsls r0, 16 + lsrs r0, 16 + bl sub_80BDA8C + lsls r0, 16 + lsrs r0, 16 + ldr r4, =0x0000ffff + cmp r0, r4 + beq _080BD334 + movs r1, 0x60 + movs r2, 0x50 + bl sub_80BDACC + lsls r0, 24 + lsrs r1, r0, 24 + ldr r3, =0x02020630 + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r1, r3, 0 + adds r1, 0x1C + adds r1, r0, r1 + ldr r2, =sub_80BE4E0 + str r2, [r1] + adds r0, r3 + ldr r1, =0x0000ffe0 + strh r1, [r0, 0x38] +_080BD334: + adds r0, r6, 0 + bl sub_80BDA8C + lsls r0, 16 + lsrs r0, 16 + cmp r0, r4 + beq _080BD366 + movs r1, 0x60 + movs r2, 0x50 + bl sub_80BDACC + lsls r0, 24 + lsrs r1, r0, 24 + ldr r3, =0x02020630 + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r1, r3, 0 + adds r1, 0x1C + adds r1, r0, r1 + ldr r2, =sub_80BE4E0 + str r2, [r1] + adds r0, r3 + movs r1, 0 + strh r1, [r0, 0x38] +_080BD366: + adds r0, r6, 0x1 + lsls r0, 16 + lsrs r0, 16 + bl sub_80BDA8C + lsls r0, 16 + lsrs r0, 16 + cmp r0, r4 + beq _080BD39C + movs r1, 0x60 + movs r2, 0x50 + bl sub_80BDACC + lsls r0, 24 + lsrs r1, r0, 24 + ldr r3, =0x02020630 + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r1, r3, 0 + adds r1, 0x1C + adds r1, r0, r1 + ldr r2, =sub_80BE4E0 + str r2, [r1] + adds r0, r3 + movs r1, 0x20 + strh r1, [r0, 0x38] +_080BD39C: + movs r0, 0 + adds r1, r6, 0 + mov r2, r8 + bl sub_80BCE84 + ldr r0, [r7] + ldr r2, =0x0000062d + adds r0, r2 + ldrb r1, [r0] + movs r0, 0x1A + bl SetGpuReg + ldr r0, [r7] + movs r2, 0xC6 + lsls r2, 3 + adds r1, r0, r2 + movs r2, 0 + strh r2, [r1] + ldr r1, =0x00000632 + adds r0, r1 + strh r2, [r0] + ldr r2, =0x02037fd4 + ldrb r1, [r2, 0x8] + movs r0, 0x7F + ands r0, r1 + strb r0, [r2, 0x8] + pop {r3} + mov r8, r3 + pop {r4-r7} + pop {r0} + bx r0 + .pool + thumb_func_end sub_80BD2B4 + + thumb_func_start sub_80BD404 +sub_80BD404: @ 80BD404 + push {r4-r7,lr} + mov r7, r8 + push {r7} + lsls r0, 24 + lsrs r4, r0, 24 + lsls r1, 24 + lsrs r5, r1, 24 + lsls r2, 24 + lsrs r6, r2, 24 + ldr r0, =0x02039b4c + ldr r1, [r0] + ldr r3, =0x0000062e + adds r2, r1, r3 + ldrb r3, [r2] + adds r7, r0, 0 + cmp r3, 0 + bne _080BD428 + b _080BD578 +_080BD428: + subs r0, r3, 0x1 + strb r0, [r2] + cmp r4, 0x1 + beq _080BD440 + cmp r4, 0x2 + beq _080BD4DC + b _080BD558 + .pool +_080BD440: + movs r3, 0 + ldr r4, =0x0000ffff + mov r12, r4 + ldr r0, =0x02020630 + mov r8, r0 + adds r2, r7, 0 +_080BD44C: + ldr r0, [r2] + lsls r1, r3, 1 + ldr r4, =0x0000061e + adds r0, r4 + adds r1, r0, r1 + ldrh r0, [r1] + cmp r0, r12 + beq _080BD46A + lsls r1, r0, 4 + adds r1, r0 + lsls r1, 2 + add r1, r8 + ldrh r0, [r1, 0x38] + adds r0, r5 + strh r0, [r1, 0x38] +_080BD46A: + adds r0, r3, 0x1 + lsls r0, 16 + lsrs r3, r0, 16 + cmp r3, 0x3 + bls _080BD44C + ldr r4, [r7] + ldr r1, =0x0000062e + adds r0, r4, r1 + ldrb r0, [r0] + subs r0, r6, r0 + lsls r0, 4 + adds r1, r6, 0 + bl __divsi3 + lsls r0, 24 + lsrs r2, r0, 24 + ldr r3, =0x0000062d + adds r0, r4, r3 + ldr r1, =0x00000632 + adds r4, r1 + movs r3, 0 + ldrsh r1, [r4, r3] + lsls r1, 4 + ldrb r0, [r0] + adds r1, r0 + subs r1, r2 + lsls r1, 16 + lsrs r1, 16 + movs r0, 0x1A + bl SetGpuReg + ldr r0, [r7] + ldr r4, =0x0000062c + adds r2, r0, r4 + movs r1, 0xC5 + lsls r1, 3 + adds r0, r1 + ldrb r1, [r0] + ldrb r0, [r2] + subs r0, r1 + strb r0, [r2] + b _080BD558 + .pool +_080BD4DC: + movs r3, 0 + ldr r2, =0x0000ffff + mov r12, r2 + ldr r4, =0x02020630 + mov r8, r4 + adds r2, r7, 0 +_080BD4E8: + ldr r0, [r2] + lsls r1, r3, 1 + ldr r4, =0x0000061e + adds r0, r4 + adds r1, r0, r1 + ldrh r0, [r1] + cmp r0, r12 + beq _080BD506 + lsls r1, r0, 4 + adds r1, r0 + lsls r1, 2 + add r1, r8 + ldrh r0, [r1, 0x38] + subs r0, r5 + strh r0, [r1, 0x38] +_080BD506: + adds r0, r3, 0x1 + lsls r0, 16 + lsrs r3, r0, 16 + cmp r3, 0x3 + bls _080BD4E8 + ldr r4, [r7] + ldr r1, =0x0000062e + adds r0, r4, r1 + ldrb r0, [r0] + subs r0, r6, r0 + lsls r0, 4 + adds r1, r6, 0 + bl __divsi3 + lsls r0, 24 + lsrs r2, r0, 24 + ldr r3, =0x0000062d + adds r0, r4, r3 + ldr r1, =0x00000632 + adds r4, r1 + movs r3, 0 + ldrsh r1, [r4, r3] + lsls r1, 4 + ldrb r0, [r0] + adds r1, r0 + adds r1, r2 + lsls r1, 16 + lsrs r1, 16 + movs r0, 0x1A + bl SetGpuReg + ldr r0, [r7] + ldr r4, =0x0000062c + adds r1, r0, r4 + movs r2, 0xC5 + lsls r2, 3 + adds r0, r2 + ldrb r0, [r0] + ldrb r3, [r1] + adds r0, r3 + strb r0, [r1] +_080BD558: + movs r0, 0 + b _080BD598 + .pool +_080BD578: + ldr r4, =0x0000062d + adds r2, r1, r4 + movs r3, 0xC6 + lsls r3, 3 + adds r0, r1, r3 + movs r4, 0 + ldrsh r1, [r0, r4] + lsls r1, 4 + ldrb r2, [r2] + adds r1, r2 + lsls r1, 16 + lsrs r1, 16 + movs r0, 0x1A + bl SetGpuReg + movs r0, 0x1 +_080BD598: + pop {r3} + mov r8, r3 + pop {r4-r7} + pop {r1} + bx r1 + .pool + thumb_func_end sub_80BD404 + + thumb_func_start sub_80BD5A8 +sub_80BD5A8: @ 80BD5A8 + push {r4-r6,lr} + lsls r0, 24 + lsrs r2, r0, 24 + lsls r1, 16 + lsrs r3, r1, 16 + ldr r4, =0x02039b4c + ldr r0, [r4] + movs r5, 0xC6 + lsls r5, 3 + adds r1, r0, r5 + ldrh r1, [r1] + ldr r6, =0x00000632 + adds r0, r6 + strh r1, [r0] + cmp r2, 0x1 + beq _080BD5D8 + cmp r2, 0x2 + beq _080BD638 + b _080BD694 + .pool +_080BD5D8: + subs r0, r3, 0x1 + lsls r0, 16 + lsrs r0, 16 + bl sub_80BDA8C + lsls r0, 16 + lsrs r1, r0, 16 + ldr r0, =0x0000ffff + cmp r1, r0 + beq _080BD612 + adds r0, r1, 0 + movs r1, 0x60 + movs r2, 0x50 + bl sub_80BDACC + lsls r0, 24 + lsrs r1, r0, 24 + ldr r3, =0x02020630 + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r1, r3, 0 + adds r1, 0x1C + adds r1, r0, r1 + ldr r2, =sub_80BE4E0 + str r2, [r1] + adds r0, r3 + ldr r1, =0x0000ffc0 + strh r1, [r0, 0x38] +_080BD612: + ldr r0, [r4] + adds r1, r0, r5 + ldrh r2, [r1] + movs r3, 0 + ldrsh r0, [r1, r3] + cmp r0, 0 + ble _080BD634 + subs r0, r2, 0x1 + b _080BD692 + .pool +_080BD634: + movs r0, 0xF + b _080BD692 +_080BD638: + adds r0, r3, 0x1 + lsls r0, 16 + lsrs r0, 16 + bl sub_80BDA8C + lsls r0, 16 + lsrs r1, r0, 16 + ldr r0, =0x0000ffff + cmp r1, r0 + beq _080BD672 + adds r0, r1, 0 + movs r1, 0x60 + movs r2, 0x50 + bl sub_80BDACC + lsls r0, 24 + lsrs r1, r0, 24 + ldr r3, =0x02020630 + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r1, r3, 0 + adds r1, 0x1C + adds r1, r0, r1 + ldr r2, =sub_80BE4E0 + str r2, [r1] + adds r0, r3 + movs r1, 0x40 + strh r1, [r0, 0x38] +_080BD672: + ldr r0, [r4] + adds r1, r0, r5 + ldrh r2, [r1] + movs r6, 0 + ldrsh r0, [r1, r6] + cmp r0, 0xE + bgt _080BD690 + adds r0, r2, 0x1 + b _080BD692 + .pool +_080BD690: + movs r0, 0 +_080BD692: + strh r0, [r1] +_080BD694: + pop {r4-r6} + pop {r0} + bx r0 + thumb_func_end sub_80BD5A8 + + thumb_func_start sub_80BD69C +sub_80BD69C: @ 80BD69C + push {r4-r7,lr} + mov r7, r10 + mov r6, r9 + mov r5, r8 + push {r5-r7} + lsls r0, 16 + lsrs r7, r0, 16 + lsls r1, 16 + lsrs r4, r1, 16 + movs r0, 0 + mov r10, r0 + ldr r2, =0x030022c0 + ldrh r1, [r2, 0x2C] + movs r0, 0x40 + ands r0, r1 + cmp r0, 0 + beq _080BD6FC + cmp r7, 0 + beq _080BD6FC + movs r1, 0x1 + mov r10, r1 + ldr r0, =0x02039b4c + ldr r0, [r0] + ldr r2, =0x0000060c + adds r0, r2 + ldrh r3, [r0] + subs r3, 0x1 + lsls r3, 16 + lsrs r3, 16 + movs r0, 0x1 + adds r1, r7, 0 + movs r2, 0 + bl sub_80C0E0C + adds r7, r0, 0 + movs r0, 0x1 + adds r1, r7, 0 + bl sub_80BD5A8 + movs r0, 0x1 + b _080BD734 + .pool +_080BD6FC: + ldrh r1, [r2, 0x2C] + movs r0, 0x80 + ands r0, r1 + cmp r0, 0 + beq _080BD74C + ldr r0, =0x02039b4c + ldr r0, [r0] + ldr r3, =0x0000060c + adds r0, r3 + ldrh r0, [r0] + subs r0, 0x1 + cmp r7, r0 + bge _080BD74C + movs r1, 0x2 + mov r10, r1 + lsls r3, r0, 16 + lsrs r3, 16 + movs r0, 0 + adds r1, r7, 0 + movs r2, 0 + bl sub_80C0E0C + adds r7, r0, 0 + movs r0, 0x2 + adds r1, r7, 0 + bl sub_80BD5A8 + movs r0, 0x2 +_080BD734: + adds r1, r7, 0 + adds r2, r4, 0 + bl sub_80BCE84 + movs r0, 0x6C + bl audio_play + b _080BD81A + .pool +_080BD74C: + ldrh r1, [r2, 0x2E] + movs r0, 0x20 + ands r0, r1 + cmp r0, 0 + beq _080BD7B4 + cmp r7, 0 + beq _080BD7B4 + adds r6, r7, 0 + movs r4, 0 +_080BD75E: + ldr r5, =0x02039b4c + ldr r0, [r5] + ldr r2, =0x0000060c + adds r0, r2 + ldrh r3, [r0] + subs r3, 0x1 + lsls r3, 16 + lsrs r3, 16 + movs r0, 0x1 + adds r1, r7, 0 + movs r2, 0 + bl sub_80C0E0C + adds r7, r0, 0 + adds r0, r4, 0x1 + lsls r0, 24 + lsrs r4, r0, 24 + cmp r4, 0x6 + bls _080BD75E + ldr r1, [r5] + ldr r3, =0x0000062c + adds r1, r3 + subs r0, r7, r6 + lsls r0, 4 + ldrb r2, [r1] + adds r0, r2 + strb r0, [r1] + bl sub_80BDA40 + adds r0, r7, 0 + movs r1, 0xE + bl sub_80BD2B4 + movs r0, 0x6D + bl audio_play + b _080BD81A + .pool +_080BD7B4: + ldrh r1, [r2, 0x2E] + movs r0, 0x10 + ands r0, r1 + cmp r0, 0 + beq _080BD81A + ldr r0, =0x02039b4c + ldr r0, [r0] + ldr r3, =0x0000060c + adds r0, r3 + ldrh r0, [r0] + subs r0, 0x1 + cmp r7, r0 + bge _080BD81A + adds r6, r7, 0 + movs r4, 0 +_080BD7D2: + ldr r5, =0x02039b4c + ldr r0, [r5] + ldr r1, =0x0000060c + adds r0, r1 + ldrh r3, [r0] + subs r3, 0x1 + lsls r3, 16 + lsrs r3, 16 + movs r0, 0 + adds r1, r7, 0 + movs r2, 0 + bl sub_80C0E0C + adds r7, r0, 0 + adds r0, r4, 0x1 + lsls r0, 24 + lsrs r4, r0, 24 + cmp r4, 0x6 + bls _080BD7D2 + ldr r1, [r5] + ldr r2, =0x0000062c + adds r1, r2 + subs r0, r7, r6 + lsls r0, 4 + ldrb r3, [r1] + adds r0, r3 + strb r0, [r1] + bl sub_80BDA40 + adds r0, r7, 0 + movs r1, 0xE + bl sub_80BD2B4 + movs r0, 0x6D + bl audio_play +_080BD81A: + mov r0, r10 + cmp r0, 0 + bne _080BD83C + ldr r0, =0x02039b4c + ldr r0, [r0] + movs r1, 0xC7 + lsls r1, 3 + adds r0, r1 + mov r2, r10 + strh r2, [r0] + b _080BD8A2 + .pool +_080BD83C: + ldr r1, =gUnknown_0855D28C + ldr r6, =0x02039b4c + ldr r2, [r6] + movs r3, 0xC7 + lsls r3, 3 + mov r9, r3 + adds r0, r2, r3 + ldrh r0, [r0] + lsrs r0, 2 + adds r1, r0, r1 + ldrb r5, [r1] + ldr r1, =gUnknown_0855D291 + adds r0, r1 + ldrb r3, [r0] + ldr r0, =0x0000062e + adds r2, r0 + strb r3, [r2] + ldr r1, [r6] + ldr r2, =0x00000636 + mov r8, r2 + adds r0, r1, r2 + strh r3, [r0] + ldr r4, =0x00000634 + adds r0, r1, r4 + strh r5, [r0] + ldr r3, =0x0000062f + adds r1, r3 + mov r0, r10 + strb r0, [r1] + ldr r2, [r6] + lsrs r5, 1 + movs r1, 0xC5 + lsls r1, 3 + adds r0, r2, r1 + strh r5, [r0] + adds r3, r2, r3 + ldrb r0, [r3] + adds r4, r2, r4 + ldrb r1, [r4] + add r2, r8 + ldrb r2, [r2] + bl sub_80BD404 + ldr r0, [r6] + mov r2, r9 + adds r1, r0, r2 + ldrh r0, [r1] + cmp r0, 0xB + bhi _080BD8A2 + adds r0, 0x1 + strh r0, [r1] +_080BD8A2: + adds r0, r7, 0 + pop {r3-r5} + mov r8, r3 + mov r9, r4 + mov r10, r5 + pop {r4-r7} + pop {r1} + bx r1 + .pool + thumb_func_end sub_80BD69C + + thumb_func_start sub_80BD8D0 +sub_80BD8D0: @ 80BD8D0 + push {r4-r7,lr} + movs r4, 0 + ldr r0, =0x02039b4c + mov r12, r0 + ldr r6, =0x02020630 + ldr r5, =0x0000ffff +_080BD8DC: + mov r1, r12 + ldr r3, [r1] + lsls r1, r4, 1 + ldr r2, =0x0000061e + adds r0, r3, r2 + adds r0, r1 + ldrh r2, [r0] + lsls r0, r2, 4 + adds r0, r2 + lsls r0, 2 + adds r1, r0, r6 + movs r7, 0x24 + ldrsh r0, [r1, r7] + cmp r0, 0 + bne _080BD90C + movs r7, 0x26 + ldrsh r0, [r1, r7] + cmp r0, 0 + bne _080BD90C + cmp r2, r5 + beq _080BD90C + ldr r1, =0x00000626 + adds r0, r3, r1 + strh r2, [r0] +_080BD90C: + adds r0, r4, 0x1 + lsls r0, 16 + lsrs r4, r0, 16 + cmp r4, 0x3 + bls _080BD8DC + pop {r4-r7} + pop {r0} + bx r0 + .pool + thumb_func_end sub_80BD8D0 + + thumb_func_start sub_80BD930 +sub_80BD930: @ 80BD930 + push {r4-r6,lr} + ldr r3, =0x02039b4c + ldr r0, [r3] + ldr r1, =0x0000060e + adds r0, r1 + ldrh r4, [r0] + ldr r2, =0x030022c0 + ldrh r1, [r2, 0x2E] + movs r0, 0x40 + ands r0, r1 + cmp r0, 0 + beq _080BD9B8 + cmp r4, 0 + beq _080BD9B8 + adds r2, r4, 0 + adds r5, r3, 0 +_080BD950: + ldr r0, [r5] + ldr r1, =0x0000060c + adds r0, r1 + ldrh r3, [r0] + subs r3, 0x1 + lsls r3, 16 + lsrs r3, 16 + movs r0, 0x1 + adds r1, r2, 0 + movs r2, 0 + bl sub_80C0E0C + lsls r0, 16 + lsrs r2, r0, 16 + ldr r0, [r5] + lsls r1, r2, 2 + adds r0, r1 + ldrb r0, [r0, 0x2] + lsls r0, 31 + cmp r0, 0 + bne _080BD9A0 + cmp r2, 0 + bne _080BD950 +_080BD97E: + ldr r0, =0x02039b4c + ldr r1, [r0] + ldr r0, =0x0000060e + adds r2, r1, r0 + ldrh r0, [r2] + cmp r0, r4 + bne _080BD9A4 + b _080BDA38 + .pool +_080BD9A0: + adds r4, r2, 0 + b _080BD97E +_080BD9A4: + strh r4, [r2] + ldr r0, =0x0000062c + adds r1, r0 + ldrb r0, [r1] + subs r0, 0x10 + b _080BDA20 + .pool +_080BD9B4: + adds r4, r2, 0 + b _080BDA08 +_080BD9B8: + ldrh r1, [r2, 0x2E] + movs r0, 0x80 + ands r0, r1 + cmp r0, 0 + beq _080BDA38 + ldr r0, [r3] + ldr r1, =0x0000060c + adds r0, r1 + ldrh r0, [r0] + subs r0, 0x1 + cmp r4, r0 + bge _080BDA38 + adds r2, r4, 0 + adds r6, r3, 0 + adds r5, r1, 0 +_080BD9D6: + ldr r0, [r6] + adds r0, r5 + ldrh r3, [r0] + subs r3, 0x1 + lsls r3, 16 + lsrs r3, 16 + movs r0, 0 + adds r1, r2, 0 + movs r2, 0 + bl sub_80C0E0C + lsls r0, 16 + lsrs r2, r0, 16 + ldr r1, [r6] + lsls r0, r2, 2 + adds r0, r1, r0 + ldrb r0, [r0, 0x2] + lsls r0, 31 + cmp r0, 0 + bne _080BD9B4 + adds r0, r1, r5 + ldrh r0, [r0] + subs r0, 0x1 + cmp r2, r0 + blt _080BD9D6 +_080BDA08: + ldr r0, =0x02039b4c + ldr r1, [r0] + ldr r0, =0x0000060e + adds r2, r1, r0 + ldrh r0, [r2] + cmp r0, r4 + beq _080BDA38 + strh r4, [r2] + ldr r0, =0x0000062c + adds r1, r0 + ldrb r0, [r1] + adds r0, 0x10 +_080BDA20: + strb r0, [r1] + movs r0, 0x1 + b _080BDA3A + .pool +_080BDA38: + movs r0, 0 +_080BDA3A: + pop {r4-r6} + pop {r1} + bx r1 + thumb_func_end sub_80BD930 + + thumb_func_start sub_80BDA40 +sub_80BDA40: @ 80BDA40 + push {r4-r7,lr} + movs r5, 0 + ldr r6, =0x02039b4c + ldr r7, =0x0000ffff +_080BDA48: + ldr r0, [r6] + lsls r4, r5, 1 + ldr r1, =0x0000061e + adds r0, r1 + adds r1, r0, r4 + ldrh r0, [r1] + cmp r0, r7 + beq _080BDA6C + bl sub_818D820 + ldr r1, [r6] + ldr r0, =0x0000061e + adds r1, r0 + adds r1, r4 + ldrh r2, [r1] + adds r0, r7, 0 + orrs r0, r2 + strh r0, [r1] +_080BDA6C: + adds r0, r5, 0x1 + lsls r0, 16 + lsrs r5, r0, 16 + cmp r5, 0x3 + bls _080BDA48 + movs r0, 0 + pop {r4-r7} + pop {r1} + bx r1 + .pool + thumb_func_end sub_80BDA40 + + thumb_func_start sub_80BDA8C +sub_80BDA8C: @ 80BDA8C + push {lr} + lsls r0, 16 + lsrs r2, r0, 16 + ldr r0, =0x00000181 + cmp r2, r0 + bhi _080BDAA8 + ldr r0, =0x02039b4c + ldr r1, [r0] + lsls r0, r2, 2 + adds r2, r1, r0 + ldrh r1, [r2] + ldr r0, =0x0000ffff + cmp r1, r0 + bne _080BDAB8 +_080BDAA8: + ldr r0, =0x0000ffff + b _080BDAC6 + .pool +_080BDAB8: + ldrb r0, [r2, 0x2] + lsls r0, 31 + cmp r0, 0 + bne _080BDAC4 + movs r0, 0 + b _080BDAC6 +_080BDAC4: + ldrh r0, [r2] +_080BDAC6: + pop {r1} + bx r1 + thumb_func_end sub_80BDA8C + + thumb_func_start sub_80BDACC +sub_80BDACC: @ 80BDACC + push {r4-r7,lr} + mov r7, r9 + mov r6, r8 + push {r6,r7} + lsls r0, 16 + lsrs r0, 16 + mov r8, r0 + lsls r2, 16 + lsrs r2, 16 + movs r6, 0 + ldr r0, =0x02039b4c + mov r9, r0 + ldr r3, =0x0000ffff + lsls r1, 16 +_080BDAE8: + mov r4, r9 + ldr r0, [r4] + lsls r7, r6, 1 + ldr r4, =0x0000061e + adds r0, r4 + adds r0, r7 + ldrh r0, [r0] + cmp r0, r3 + bne _080BDB60 + lsls r2, 16 + mov r0, r8 + asrs r1, 16 + asrs r2, 16 + adds r3, r6, 0 + bl sub_80C0E9C + adds r5, r0, 0 + lsls r5, 24 + lsrs r5, 24 + ldr r0, =0x02020630 + lsls r4, r5, 4 + adds r4, r5 + lsls r4, 2 + adds r4, r0 + ldrb r1, [r4, 0x1] + movs r2, 0x4 + negs r2, r2 + adds r0, r2, 0 + ands r1, r0 + movs r0, 0x1 + orrs r1, r0 + strb r1, [r4, 0x1] + ldrb r0, [r4, 0x5] + movs r1, 0xC + orrs r0, r1 + strb r0, [r4, 0x5] + movs r0, 0 + strh r0, [r4, 0x2E] + strh r6, [r4, 0x30] + mov r0, r8 + bl NationalPokedexNumToSpecies + strh r0, [r4, 0x32] + mov r4, r9 + ldr r0, [r4] + ldr r1, =0x0000061e + adds r0, r1 + adds r0, r7 + strh r5, [r0] + adds r0, r5, 0 + b _080BDB6C + .pool +_080BDB60: + adds r0, r6, 0x1 + lsls r0, 24 + lsrs r6, r0, 24 + cmp r6, 0x3 + bls _080BDAE8 + ldr r0, =0x0000ffff +_080BDB6C: + pop {r3,r4} + mov r8, r3 + mov r9, r4 + pop {r4-r7} + pop {r1} + bx r1 + .pool + thumb_func_end sub_80BDACC + + thumb_func_start sub_80BDB7C +sub_80BDB7C: @ 80BDB7C + push {r4-r7,lr} + mov r7, r10 + mov r6, r9 + mov r5, r8 + push {r5-r7} + mov r8, r0 + lsls r0, 24 + lsrs r0, 24 + mov r8, r0 + ldr r4, =gUnknown_0855D1AC + adds r0, r4, 0 + movs r1, 0xB8 + movs r2, 0x4 + movs r3, 0 + bl AddObjectToFront + lsls r0, 24 + lsrs r7, r0, 24 + ldr r1, =0x02020630 + mov r10, r1 + lsls r0, r7, 4 + adds r0, r7 + lsls r0, 2 + add r0, r10 + movs r1, 0 + strh r1, [r0, 0x30] + adds r0, r4, 0 + movs r1, 0xB8 + movs r2, 0x9C + movs r3, 0 + bl AddObjectToFront + lsls r0, 24 + lsrs r7, r0, 24 + lsls r0, r7, 4 + adds r0, r7 + lsls r0, 2 + add r0, r10 + movs r1, 0x1 + strh r1, [r0, 0x30] + adds r0, 0x3F + ldrb r1, [r0] + movs r2, 0x2 + orrs r1, r2 + strb r1, [r0] + ldr r0, =gUnknown_0855D194 + movs r1, 0xE6 + movs r2, 0x14 + movs r3, 0 + bl AddObjectToFront + ldr r5, =gUnknown_0855D1C4 + adds r0, r5, 0 + movs r1, 0x10 + movs r2, 0x78 + movs r3, 0 + bl AddObjectToFront + adds r0, r5, 0 + movs r1, 0x30 + movs r2, 0x78 + movs r3, 0 + bl AddObjectToFront + lsls r0, 24 + lsrs r7, r0, 24 + lsls r0, r7, 4 + adds r0, r7 + lsls r0, 2 + add r0, r10 + movs r1, 0x3 + bl StartObjectImageAnim + adds r0, r5, 0 + movs r1, 0x10 + movs r2, 0x90 + movs r3, 0 + bl AddObjectToFront + lsls r0, 24 + lsrs r7, r0, 24 + lsls r4, r7, 4 + adds r4, r7 + lsls r4, 2 + add r4, r10 + adds r0, r4, 0 + movs r1, 0x2 + bl StartObjectImageAnim + movs r0, 0x80 + mov r9, r0 + mov r1, r9 + strh r1, [r4, 0x32] + adds r0, r5, 0 + movs r1, 0x30 + movs r2, 0x90 + movs r3, 0 + bl AddObjectToFront + lsls r0, 24 + lsrs r7, r0, 24 + lsls r0, r7, 4 + adds r0, r7 + lsls r0, 2 + add r0, r10 + movs r1, 0x1 + bl StartObjectImageAnim + ldr r6, =gUnknown_0855D1DC + adds r0, r6, 0 + movs r1, 0 + movs r2, 0x50 + movs r3, 0x2 + bl AddObjectToFront + lsls r0, 24 + lsrs r7, r0, 24 + lsls r1, r7, 4 + adds r1, r7 + lsls r1, 2 + add r1, r10 + ldrb r2, [r1, 0x1] + movs r4, 0x4 + negs r4, r4 + adds r0, r4, 0 + ands r0, r2 + movs r5, 0x1 + orrs r0, r5 + strb r0, [r1, 0x1] + ldrb r2, [r1, 0x3] + movs r0, 0x3F + negs r0, r0 + ands r0, r2 + movs r2, 0x3C + orrs r0, r2 + strb r0, [r1, 0x3] + movs r0, 0x1E + strh r0, [r1, 0x2E] + movs r0, 0 + strh r0, [r1, 0x30] + adds r0, r6, 0 + movs r1, 0 + movs r2, 0x50 + movs r3, 0x2 + bl AddObjectToFront + lsls r0, 24 + lsrs r7, r0, 24 + lsls r1, r7, 4 + adds r1, r7 + lsls r1, 2 + add r1, r10 + ldrb r0, [r1, 0x1] + ands r4, r0 + orrs r4, r5 + strb r4, [r1, 0x1] + ldrb r0, [r1, 0x3] + movs r2, 0x3E + orrs r0, r2 + strb r0, [r1, 0x3] + movs r0, 0x1F + strh r0, [r1, 0x2E] + mov r0, r9 + strh r0, [r1, 0x30] + mov r1, r8 + cmp r1, 0 + beq _080BDCCC + b _080BE414 +_080BDCCC: + bl sub_809D42C + cmp r0, 0 + beq _080BDCD6 + b _080BDF4C +_080BDCD6: + ldr r4, =gUnknown_0855D1F4 + adds r0, r4, 0 + movs r1, 0x20 + movs r2, 0x28 + movs r3, 0x1 + bl AddObjectToFront + adds r0, r4, 0 + movs r1, 0x20 + movs r2, 0x48 + movs r3, 0x1 + bl AddObjectToFront + lsls r0, 24 + lsrs r7, r0, 24 + lsls r0, r7, 4 + adds r0, r7 + lsls r0, 2 + add r0, r10 + movs r1, 0x1 + bl StartObjectImageAnim + movs r0, 0 + mov r8, r0 + ldr r0, =gUnknown_0855D224 + movs r1, 0x18 + movs r2, 0x30 + movs r3, 0x1 + bl AddObjectToFront + lsls r0, 24 + lsrs r7, r0, 24 + ldr r0, =0x02039b4c + ldr r0, [r0] + ldr r1, =0x0000061a + adds r0, r1 + ldrh r0, [r0] + movs r1, 0x64 + bl __udivsi3 + lsls r0, 16 + lsrs r5, r0, 16 + lsls r0, r7, 4 + adds r0, r7 + lsls r0, 2 + mov r1, r10 + adds r4, r0, r1 + lsls r1, r5, 24 + lsrs r1, 24 + adds r0, r4, 0 + bl StartObjectImageAnim + cmp r5, 0 + beq _080BDD6C + movs r0, 0x1 + mov r8, r0 + b _080BDD78 + .pool +_080BDD6C: + adds r0, r4, 0 + adds r0, 0x3E + ldrb r1, [r0] + movs r2, 0x4 + orrs r1, r2 + strb r1, [r0] +_080BDD78: + ldr r0, =gUnknown_0855D224 + movs r1, 0x20 + movs r2, 0x30 + movs r3, 0x1 + bl AddObjectToFront + lsls r0, 24 + lsrs r7, r0, 24 + ldr r0, =0x02039b4c + ldr r0, [r0] + ldr r1, =0x0000061a + adds r0, r1 + ldrh r0, [r0] + movs r1, 0x64 + bl __umodsi3 + lsls r0, 16 + lsrs r0, 16 + movs r1, 0xA + bl __udivsi3 + lsls r0, 16 + lsrs r5, r0, 16 + cmp r5, 0 + bne _080BDDB0 + mov r0, r8 + cmp r0, 0 + beq _080BDDD4 +_080BDDB0: + lsls r0, r7, 4 + adds r0, r7 + lsls r0, 2 + ldr r1, =0x02020630 + adds r0, r1 + lsls r1, r5, 24 + lsrs r1, 24 + bl StartObjectImageAnim + b _080BDDE8 + .pool +_080BDDD4: + ldr r1, =0x02020630 + lsls r0, r7, 4 + adds r0, r7 + lsls r0, 2 + adds r0, r1 + adds r0, 0x3E + ldrb r1, [r0] + movs r2, 0x4 + orrs r1, r2 + strb r1, [r0] +_080BDDE8: + ldr r6, =gUnknown_0855D224 + adds r0, r6, 0 + movs r1, 0x28 + movs r2, 0x30 + movs r3, 0x1 + bl AddObjectToFront + lsls r0, 24 + lsrs r7, r0, 24 + ldr r5, =0x02039b4c + ldr r0, [r5] + ldr r1, =0x0000061a + adds r0, r1 + ldrh r0, [r0] + movs r1, 0x64 + bl __umodsi3 + lsls r0, 16 + lsrs r0, 16 + movs r1, 0xA + bl __umodsi3 + adds r1, r0, 0 + lsls r0, r7, 4 + adds r0, r7 + lsls r0, 2 + ldr r4, =0x02020630 + adds r0, r4 + lsls r1, 24 + lsrs r1, 24 + bl StartObjectImageAnim + movs r0, 0 + mov r8, r0 + adds r0, r6, 0 + movs r1, 0x18 + movs r2, 0x50 + movs r3, 0x1 + bl AddObjectToFront + lsls r0, 24 + lsrs r7, r0, 24 + ldr r0, [r5] + ldr r1, =0x0000061c + adds r0, r1 + ldrh r0, [r0] + movs r1, 0x64 + bl __udivsi3 + lsls r0, 16 + lsrs r5, r0, 16 + lsls r0, r7, 4 + adds r0, r7 + lsls r0, 2 + adds r4, r0, r4 + lsls r1, r5, 24 + lsrs r1, 24 + adds r0, r4, 0 + bl StartObjectImageAnim + cmp r5, 0 + beq _080BDE80 + movs r0, 0x1 + mov r8, r0 + b _080BDE8C + .pool +_080BDE80: + adds r0, r4, 0 + adds r0, 0x3E + ldrb r1, [r0] + movs r2, 0x4 + orrs r1, r2 + strb r1, [r0] +_080BDE8C: + ldr r0, =gUnknown_0855D224 + movs r1, 0x20 + movs r2, 0x50 + movs r3, 0x1 + bl AddObjectToFront + lsls r0, 24 + lsrs r7, r0, 24 + ldr r0, =0x02039b4c + ldr r0, [r0] + ldr r1, =0x0000061c + adds r0, r1 + ldrh r0, [r0] + movs r1, 0x64 + bl __umodsi3 + lsls r0, 16 + lsrs r0, 16 + movs r1, 0xA + bl __udivsi3 + lsls r0, 16 + lsrs r5, r0, 16 + cmp r5, 0 + bne _080BDEC4 + mov r0, r8 + cmp r0, 0 + beq _080BDEE8 +_080BDEC4: + lsls r0, r7, 4 + adds r0, r7 + lsls r0, 2 + ldr r1, =0x02020630 + adds r0, r1 + lsls r1, r5, 24 + lsrs r1, 24 + bl StartObjectImageAnim + b _080BDEFC + .pool +_080BDEE8: + ldr r1, =0x02020630 + lsls r0, r7, 4 + adds r0, r7 + lsls r0, 2 + adds r0, r1 + adds r0, 0x3E + ldrb r1, [r0] + movs r2, 0x4 + orrs r1, r2 + strb r1, [r0] +_080BDEFC: + ldr r0, =gUnknown_0855D224 + movs r1, 0x28 + movs r2, 0x50 + movs r3, 0x1 + bl AddObjectToFront + lsls r0, 24 + lsrs r7, r0, 24 + ldr r0, =0x02039b4c + ldr r0, [r0] + ldr r1, =0x0000061c + adds r0, r1 + ldrh r0, [r0] + movs r1, 0x64 + bl __umodsi3 + lsls r0, 16 + lsrs r0, 16 + movs r1, 0xA + bl __umodsi3 + adds r1, r0, 0 + lsls r0, r7, 4 + adds r0, r7 + lsls r0, 2 + ldr r2, =0x02020630 + adds r0, r2 + lsls r1, 24 + lsrs r1, 24 + bl StartObjectImageAnim + b _080BE3E2 + .pool +_080BDF4C: + ldr r4, =gUnknown_0855D1F4 + adds r0, r4, 0 + movs r1, 0x20 + movs r2, 0x28 + movs r3, 0x1 + bl AddObjectToFront + adds r0, r4, 0 + movs r1, 0x20 + movs r2, 0x4C + movs r3, 0x1 + bl AddObjectToFront + lsls r0, 24 + lsrs r7, r0, 24 + lsls r0, r7, 4 + adds r0, r7 + lsls r0, 2 + add r0, r10 + movs r1, 0x1 + bl StartObjectImageAnim + ldr r4, =gUnknown_0855D20C + adds r0, r4, 0 + movs r1, 0x11 + movs r2, 0x2D + movs r3, 0x1 + bl AddObjectToFront + adds r0, r4, 0 + movs r1, 0x11 + movs r2, 0x37 + movs r3, 0x1 + bl AddObjectToFront + lsls r0, 24 + lsrs r7, r0, 24 + lsls r0, r7, 4 + adds r0, r7 + lsls r0, 2 + add r0, r10 + movs r1, 0x1 + bl StartObjectImageAnim + adds r0, r4, 0 + movs r1, 0x11 + movs r2, 0x51 + movs r3, 0x1 + bl AddObjectToFront + adds r0, r4, 0 + movs r1, 0x11 + movs r2, 0x5B + movs r3, 0x1 + bl AddObjectToFront + lsls r0, 24 + lsrs r7, r0, 24 + lsls r0, r7, 4 + adds r0, r7 + lsls r0, 2 + add r0, r10 + movs r1, 0x1 + bl StartObjectImageAnim + movs r0, 0 + bl sub_80C0844 + lsls r0, 16 + lsrs r6, r0, 16 + movs r0, 0 + mov r8, r0 + ldr r0, =gUnknown_0855D23C + movs r1, 0x28 + movs r2, 0x2D + movs r3, 0x1 + bl AddObjectToFront + lsls r0, 24 + lsrs r7, r0, 24 + adds r0, r6, 0 + movs r1, 0x64 + bl __udivsi3 + lsls r0, 16 + lsrs r5, r0, 16 + lsls r0, r7, 4 + adds r0, r7 + lsls r0, 2 + mov r1, r10 + adds r4, r0, r1 + lsls r1, r5, 24 + lsrs r1, 24 + adds r0, r4, 0 + bl StartObjectImageAnim + cmp r5, 0 + beq _080BE024 + movs r0, 0x1 + mov r8, r0 + b _080BE030 + .pool +_080BE024: + adds r0, r4, 0 + adds r0, 0x3E + ldrb r1, [r0] + movs r2, 0x4 + orrs r1, r2 + strb r1, [r0] +_080BE030: + ldr r0, =gUnknown_0855D23C + movs r1, 0x30 + movs r2, 0x2D + movs r3, 0x1 + bl AddObjectToFront + lsls r0, 24 + lsrs r7, r0, 24 + adds r0, r6, 0 + movs r1, 0x64 + bl __umodsi3 + lsls r0, 16 + lsrs r0, 16 + movs r1, 0xA + bl __udivsi3 + lsls r0, 16 + lsrs r5, r0, 16 + cmp r5, 0 + bne _080BE060 + mov r1, r8 + cmp r1, 0 + beq _080BE07C +_080BE060: + lsls r0, r7, 4 + adds r0, r7 + lsls r0, 2 + ldr r1, =0x02020630 + adds r0, r1 + lsls r1, r5, 24 + lsrs r1, 24 + bl StartObjectImageAnim + b _080BE090 + .pool +_080BE07C: + ldr r1, =0x02020630 + lsls r0, r7, 4 + adds r0, r7 + lsls r0, 2 + adds r0, r1 + adds r0, 0x3E + ldrb r1, [r0] + movs r2, 0x4 + orrs r1, r2 + strb r1, [r0] +_080BE090: + ldr r5, =gUnknown_0855D23C + adds r0, r5, 0 + movs r1, 0x38 + movs r2, 0x2D + movs r3, 0x1 + bl AddObjectToFront + lsls r0, 24 + lsrs r7, r0, 24 + adds r0, r6, 0 + movs r1, 0x64 + bl __umodsi3 + lsls r0, 16 + lsrs r0, 16 + movs r1, 0xA + bl __umodsi3 + adds r1, r0, 0 + lsls r0, r7, 4 + adds r0, r7 + lsls r0, 2 + ldr r4, =0x02020630 + adds r0, r4 + lsls r1, 24 + lsrs r1, 24 + bl StartObjectImageAnim + movs r0, 0 + mov r8, r0 + adds r0, r5, 0 + movs r1, 0x28 + movs r2, 0x37 + movs r3, 0x1 + bl AddObjectToFront + lsls r0, 24 + lsrs r7, r0, 24 + ldr r0, =0x02039b4c + ldr r0, [r0] + ldr r1, =0x0000061a + adds r0, r1 + ldrh r0, [r0] + movs r1, 0x64 + bl __udivsi3 + lsls r0, 16 + lsrs r5, r0, 16 + lsls r0, r7, 4 + adds r0, r7 + lsls r0, 2 + adds r4, r0, r4 + lsls r1, r5, 24 + lsrs r1, 24 + adds r0, r4, 0 + bl StartObjectImageAnim + cmp r5, 0 + beq _080BE11C + movs r0, 0x1 + mov r8, r0 + b _080BE128 + .pool +_080BE11C: + adds r0, r4, 0 + adds r0, 0x3E + ldrb r1, [r0] + movs r2, 0x4 + orrs r1, r2 + strb r1, [r0] +_080BE128: + ldr r0, =gUnknown_0855D23C + movs r1, 0x30 + movs r2, 0x37 + movs r3, 0x1 + bl AddObjectToFront + lsls r0, 24 + lsrs r7, r0, 24 + ldr r0, =0x02039b4c + ldr r0, [r0] + ldr r1, =0x0000061a + adds r0, r1 + ldrh r0, [r0] + movs r1, 0x64 + bl __umodsi3 + lsls r0, 16 + lsrs r0, 16 + movs r1, 0xA + bl __udivsi3 + lsls r0, 16 + lsrs r5, r0, 16 + cmp r5, 0 + bne _080BE160 + mov r0, r8 + cmp r0, 0 + beq _080BE184 +_080BE160: + lsls r0, r7, 4 + adds r0, r7 + lsls r0, 2 + ldr r1, =0x02020630 + adds r0, r1 + lsls r1, r5, 24 + lsrs r1, 24 + bl StartObjectImageAnim + b _080BE198 + .pool +_080BE184: + ldr r1, =0x02020630 + lsls r0, r7, 4 + adds r0, r7 + lsls r0, 2 + adds r0, r1 + adds r0, 0x3E + ldrb r1, [r0] + movs r2, 0x4 + orrs r1, r2 + strb r1, [r0] +_080BE198: + ldr r5, =gUnknown_0855D23C + adds r0, r5, 0 + movs r1, 0x38 + movs r2, 0x37 + movs r3, 0x1 + bl AddObjectToFront + lsls r0, 24 + lsrs r7, r0, 24 + ldr r0, =0x02039b4c + ldr r0, [r0] + ldr r1, =0x0000061a + adds r0, r1 + ldrh r0, [r0] + movs r1, 0x64 + bl __umodsi3 + lsls r0, 16 + lsrs r0, 16 + movs r1, 0xA + bl __umodsi3 + adds r1, r0, 0 + lsls r0, r7, 4 + adds r0, r7 + lsls r0, 2 + ldr r4, =0x02020630 + adds r0, r4 + lsls r1, 24 + lsrs r1, 24 + bl StartObjectImageAnim + movs r0, 0x1 + bl sub_80C0844 + lsls r0, 16 + lsrs r6, r0, 16 + movs r0, 0 + mov r8, r0 + adds r0, r5, 0 + movs r1, 0x28 + movs r2, 0x51 + movs r3, 0x1 + bl AddObjectToFront + lsls r0, 24 + lsrs r7, r0, 24 + adds r0, r6, 0 + movs r1, 0x64 + bl __udivsi3 + lsls r0, 16 + lsrs r5, r0, 16 + lsls r0, r7, 4 + adds r0, r7 + lsls r0, 2 + adds r4, r0, r4 + lsls r1, r5, 24 + lsrs r1, 24 + adds r0, r4, 0 + bl StartObjectImageAnim + cmp r5, 0 + beq _080BE230 + movs r1, 0x1 + mov r8, r1 + b _080BE23C + .pool +_080BE230: + adds r0, r4, 0 + adds r0, 0x3E + ldrb r1, [r0] + movs r2, 0x4 + orrs r1, r2 + strb r1, [r0] +_080BE23C: + ldr r0, =gUnknown_0855D23C + movs r1, 0x30 + movs r2, 0x51 + movs r3, 0x1 + bl AddObjectToFront + lsls r0, 24 + lsrs r7, r0, 24 + adds r0, r6, 0 + movs r1, 0x64 + bl __umodsi3 + lsls r0, 16 + lsrs r0, 16 + movs r1, 0xA + bl __udivsi3 + lsls r0, 16 + lsrs r5, r0, 16 + cmp r5, 0 + bne _080BE26C + mov r0, r8 + cmp r0, 0 + beq _080BE288 +_080BE26C: + lsls r0, r7, 4 + adds r0, r7 + lsls r0, 2 + ldr r1, =0x02020630 + adds r0, r1 + lsls r1, r5, 24 + lsrs r1, 24 + bl StartObjectImageAnim + b _080BE29C + .pool +_080BE288: + ldr r1, =0x02020630 + lsls r0, r7, 4 + adds r0, r7 + lsls r0, 2 + adds r0, r1 + adds r0, 0x3E + ldrb r1, [r0] + movs r2, 0x4 + orrs r1, r2 + strb r1, [r0] +_080BE29C: + ldr r5, =gUnknown_0855D23C + adds r0, r5, 0 + movs r1, 0x38 + movs r2, 0x51 + movs r3, 0x1 + bl AddObjectToFront + lsls r0, 24 + lsrs r7, r0, 24 + adds r0, r6, 0 + movs r1, 0x64 + bl __umodsi3 + lsls r0, 16 + lsrs r0, 16 + movs r1, 0xA + bl __umodsi3 + adds r1, r0, 0 + lsls r0, r7, 4 + adds r0, r7 + lsls r0, 2 + ldr r4, =0x02020630 + adds r0, r4 + lsls r1, 24 + lsrs r1, 24 + bl StartObjectImageAnim + movs r1, 0 + mov r8, r1 + adds r0, r5, 0 + movs r1, 0x28 + movs r2, 0x5B + movs r3, 0x1 + bl AddObjectToFront + lsls r0, 24 + lsrs r7, r0, 24 + ldr r0, =0x02039b4c + ldr r0, [r0] + ldr r1, =0x0000061c + adds r0, r1 + ldrh r0, [r0] + movs r1, 0x64 + bl __udivsi3 + lsls r0, 16 + lsrs r5, r0, 16 + lsls r0, r7, 4 + adds r0, r7 + lsls r0, 2 + adds r4, r0, r4 + lsls r1, r5, 24 + lsrs r1, 24 + adds r0, r4, 0 + bl StartObjectImageAnim + cmp r5, 0 + beq _080BE328 + movs r0, 0x1 + mov r8, r0 + b _080BE334 + .pool +_080BE328: + adds r0, r4, 0 + adds r0, 0x3E + ldrb r1, [r0] + movs r2, 0x4 + orrs r1, r2 + strb r1, [r0] +_080BE334: + ldr r0, =gUnknown_0855D23C + movs r1, 0x30 + movs r2, 0x5B + movs r3, 0x1 + bl AddObjectToFront + lsls r0, 24 + lsrs r7, r0, 24 + ldr r0, =0x02039b4c + ldr r0, [r0] + ldr r1, =0x0000061c + adds r0, r1 + ldrh r0, [r0] + movs r1, 0x64 + bl __umodsi3 + lsls r0, 16 + lsrs r0, 16 + movs r1, 0xA + bl __udivsi3 + lsls r0, 16 + lsrs r5, r0, 16 + cmp r5, 0 + bne _080BE36C + mov r0, r8 + cmp r0, 0 + beq _080BE390 +_080BE36C: + lsls r0, r7, 4 + adds r0, r7 + lsls r0, 2 + ldr r1, =0x02020630 + adds r0, r1 + lsls r1, r5, 24 + lsrs r1, 24 + bl StartObjectImageAnim + b _080BE3A4 + .pool +_080BE390: + ldr r1, =0x02020630 + lsls r0, r7, 4 + adds r0, r7 + lsls r0, 2 + adds r0, r1 + adds r0, 0x3E + ldrb r1, [r0] + movs r2, 0x4 + orrs r1, r2 + strb r1, [r0] +_080BE3A4: + ldr r0, =gUnknown_0855D23C + movs r1, 0x38 + movs r2, 0x5B + movs r3, 0x1 + bl AddObjectToFront + lsls r0, 24 + lsrs r7, r0, 24 + ldr r0, =0x02039b4c + ldr r0, [r0] + ldr r1, =0x0000061c + adds r0, r1 + ldrh r0, [r0] + movs r1, 0x64 + bl __umodsi3 + lsls r0, 16 + lsrs r0, 16 + movs r1, 0xA + bl __umodsi3 + adds r1, r0, 0 + lsls r0, r7, 4 + adds r0, r7 + lsls r0, 2 + ldr r2, =0x02020630 + adds r0, r2 + lsls r1, 24 + lsrs r1, 24 + bl StartObjectImageAnim +_080BE3E2: + ldr r0, =gUnknown_0855D254 + movs r1, 0x88 + movs r2, 0x60 + movs r3, 0x1 + bl AddObjectToFront + lsls r0, 24 + lsrs r7, r0, 24 + ldr r1, =0x02020630 + lsls r0, r7, 4 + adds r0, r7 + lsls r0, 2 + adds r0, r1 + b _080BE42C + .pool +_080BE414: + ldr r0, =gUnknown_0855D254 + movs r1, 0x88 + movs r2, 0x50 + movs r3, 0x1 + bl AddObjectToFront + lsls r0, 24 + lsrs r7, r0, 24 + lsls r0, r7, 4 + adds r0, r7 + lsls r0, 2 + add r0, r10 +_080BE42C: + adds r0, 0x3E + ldrb r1, [r0] + movs r2, 0x4 + orrs r1, r2 + strb r1, [r0] + pop {r3-r5} + mov r8, r3 + mov r9, r4 + mov r10, r5 + pop {r4-r7} + pop {r0} + bx r0 + .pool + thumb_func_end sub_80BDB7C + + thumb_func_start nullsub_38 +nullsub_38: @ 80BE448 + bx lr + thumb_func_end nullsub_38 + + thumb_func_start sub_80BE44C +sub_80BE44C: @ 80BE44C + push {lr} + adds r1, r0, 0 + ldr r0, =0x02039b4c + ldr r0, [r0] + ldr r2, =0x0000064a + adds r0, r2 + ldrb r0, [r0] + cmp r0, 0 + beq _080BE464 + adds r0, r1, 0 + bl RemoveObjectAndFreeTiles +_080BE464: + pop {r0} + bx r0 + .pool + thumb_func_end sub_80BE44C + + thumb_func_start sub_80BE470 +sub_80BE470: @ 80BE470 + push {lr} + adds r2, r0, 0 + ldrb r1, [r2, 0x5] + movs r0, 0xD + negs r0, r0 + ands r0, r1 + strb r0, [r2, 0x5] + ldrb r1, [r2, 0x1] + movs r0, 0x4 + negs r0, r0 + ands r0, r1 + strb r0, [r2, 0x1] + movs r0, 0 + strh r0, [r2, 0x24] + strh r0, [r2, 0x26] + ldr r1, [r2, 0x20] + ldr r0, =0x00380030 + cmp r1, r0 + beq _080BE4D4 + ldrh r1, [r2, 0x20] + movs r3, 0x20 + ldrsh r0, [r2, r3] + cmp r0, 0x30 + ble _080BE4A4 + subs r0, r1, 0x1 + strh r0, [r2, 0x20] +_080BE4A4: + ldrh r1, [r2, 0x20] + movs r3, 0x20 + ldrsh r0, [r2, r3] + cmp r0, 0x2F + bgt _080BE4B2 + adds r0, r1, 0x1 + strh r0, [r2, 0x20] +_080BE4B2: + ldrh r1, [r2, 0x22] + movs r3, 0x22 + ldrsh r0, [r2, r3] + cmp r0, 0x38 + ble _080BE4C0 + subs r0, r1, 0x1 + strh r0, [r2, 0x22] +_080BE4C0: + ldrh r1, [r2, 0x22] + movs r3, 0x22 + ldrsh r0, [r2, r3] + cmp r0, 0x37 + bgt _080BE4D8 + adds r0, r1, 0x1 + strh r0, [r2, 0x22] + b _080BE4D8 + .pool +_080BE4D4: + ldr r0, =nullsub_38 + str r0, [r2, 0x1C] +_080BE4D8: + pop {r0} + bx r0 + .pool + thumb_func_end sub_80BE470 + + thumb_func_start sub_80BE4E0 +sub_80BE4E0: @ 80BE4E0 + push {r4-r7,lr} + sub sp, 0x4 + adds r4, r0, 0 + ldrh r0, [r4, 0x30] + lsls r0, 24 + lsrs r6, r0, 24 + ldr r7, =0x02039b4c + ldr r1, [r7] + ldr r2, =0x0000064a + adds r0, r1, r2 + ldrb r0, [r0] + cmp r0, 0 + beq _080BE520 + cmp r0, 0x3 + beq _080BE520 + lsls r5, r6, 1 + ldr r4, =0x0000061e + adds r0, r1, r4 + adds r0, r5 + ldrh r0, [r0] + bl sub_818D820 + ldr r0, [r7] + adds r0, r4 + adds r0, r5 + b _080BE5EC + .pool +_080BE520: + ldr r2, =gUnknown_08329F40 + ldrh r0, [r4, 0x38] + lsls r0, 24 + lsrs r0, 23 + adds r0, r2 + movs r3, 0 + ldrsh r1, [r0, r3] + movs r0, 0x4C + muls r0, r1 + cmp r0, 0 + bge _080BE538 + adds r0, 0xFF +_080BE538: + asrs r0, 8 + strh r0, [r4, 0x26] + movs r1, 0x38 + ldrsh r0, [r4, r1] + adds r0, 0x40 + lsls r0, 1 + adds r0, r2 + movs r2, 0 + ldrsh r1, [r0, r2] + movs r0, 0x80 + lsls r0, 9 + bl __divsi3 + adds r2, r0, 0 + ldr r0, =0x0000ffff + cmp r2, r0 + bls _080BE55C + adds r2, r0, 0 +_080BE55C: + ldrh r0, [r4, 0x30] + adds r0, 0x1 + lsls r0, 24 + lsrs r0, 24 + movs r1, 0x80 + lsls r1, 1 + lsls r2, 16 + lsrs r2, 16 + str r2, [sp] + movs r2, 0 + movs r3, 0 + bl SetSpriteTransformationMatrix + adds r1, r6, 0x1 + movs r0, 0x1F + ands r1, r0 + lsls r1, 1 + ldrb r2, [r4, 0x3] + movs r0, 0x3F + negs r0, r0 + ands r0, r2 + orrs r0, r1 + strb r0, [r4, 0x3] + ldrh r0, [r4, 0x38] + adds r0, 0x3F + lsls r0, 16 + lsrs r0, 16 + cmp r0, 0x7E + bhi _080BE5B4 + adds r2, r4, 0 + adds r2, 0x3E + ldrb r0, [r2] + movs r1, 0x5 + negs r1, r1 + ands r1, r0 + strb r1, [r2] + movs r0, 0x1 + strh r0, [r4, 0x2E] + b _080BE5C0 + .pool +_080BE5B4: + adds r2, r4, 0 + adds r2, 0x3E + ldrb r0, [r2] + movs r1, 0x4 + orrs r0, r1 + strb r0, [r2] +_080BE5C0: + ldrh r0, [r4, 0x38] + adds r0, 0x3F + lsls r0, 16 + lsrs r0, 16 + cmp r0, 0x7E + bls _080BE5F0 + movs r3, 0x2E + ldrsh r0, [r4, r3] + cmp r0, 0 + beq _080BE5F0 + ldr r5, =0x02039b4c + ldr r0, [r5] + lsls r6, 1 + ldr r4, =0x0000061e + adds r0, r4 + adds r0, r6 + ldrh r0, [r0] + bl sub_818D820 + ldr r0, [r5] + adds r0, r4 + adds r0, r6 +_080BE5EC: + ldr r1, =0x0000ffff + strh r1, [r0] +_080BE5F0: + add sp, 0x4 + pop {r4-r7} + pop {r0} + bx r0 + .pool + thumb_func_end sub_80BE4E0 + + thumb_func_start sub_80BE604 +sub_80BE604: @ 80BE604 + push {r4,lr} + adds r4, r0, 0 + ldr r1, =0x02039b4c + ldr r0, [r1] + ldr r2, =0x0000064a + adds r0, r2 + ldrb r0, [r0] + cmp r0, 0 + beq _080BE62C + cmp r0, 0x3 + beq _080BE62C + adds r0, r4, 0 + bl RemoveObjectAndFreeTiles + b _080BE648 + .pool +_080BE62C: + ldr r2, [r1] + ldr r1, =0x0000060e + adds r0, r2, r1 + ldrh r1, [r0] + lsls r0, r1, 4 + subs r0, r1 + lsls r0, 3 + ldr r1, =0x0000060c + adds r2, r1 + ldrh r1, [r2] + subs r1, 0x1 + bl __divsi3 + strh r0, [r4, 0x26] +_080BE648: + pop {r4} + pop {r0} + bx r0 + .pool + thumb_func_end sub_80BE604 + + thumb_func_start sub_80BE658 +sub_80BE658: @ 80BE658 + push {r4,r5,lr} + adds r3, r0, 0 + ldr r1, =0x02039b4c + ldr r0, [r1] + ldr r2, =0x0000064a + adds r0, r2 + ldrb r0, [r0] + adds r5, r1, 0 + cmp r0, 0 + beq _080BE680 + cmp r0, 0x3 + beq _080BE680 + adds r0, r3, 0 + bl RemoveObjectAndFreeTiles + b _080BE750 + .pool +_080BE680: + movs r1, 0x30 + ldrsh r0, [r3, r1] + cmp r0, 0 + beq _080BE6C2 + ldr r0, [r5] + ldr r2, =0x0000060e + adds r1, r0, r2 + ldrh r1, [r1] + subs r2, 0x2 + adds r0, r2 + ldrh r0, [r0] + subs r0, 0x1 + cmp r1, r0 + bne _080BE6AC + adds r0, r3, 0 + adds r0, 0x3E + ldrb r1, [r0] + movs r2, 0x4 + orrs r1, r2 + b _080BE6B8 + .pool +_080BE6AC: + adds r0, r3, 0 + adds r0, 0x3E + ldrb r2, [r0] + movs r1, 0x5 + negs r1, r1 + ands r1, r2 +_080BE6B8: + strb r1, [r0] + adds r2, r0, 0 + ldrh r1, [r3, 0x32] + lsls r0, r1, 24 + b _080BE6F8 +_080BE6C2: + ldr r0, [r5] + ldr r1, =0x0000060e + adds r0, r1 + ldrh r0, [r0] + cmp r0, 0 + bne _080BE6E0 + adds r0, r3, 0 + adds r0, 0x3E + ldrb r1, [r0] + movs r2, 0x4 + orrs r1, r2 + b _080BE6EC + .pool +_080BE6E0: + adds r0, r3, 0 + adds r0, 0x3E + ldrb r2, [r0] + movs r1, 0x5 + negs r1, r1 + ands r1, r2 +_080BE6EC: + strb r1, [r0] + adds r2, r0, 0 + ldrh r1, [r3, 0x32] + adds r0, r1, 0 + subs r0, 0x80 + lsls r0, 24 +_080BE6F8: + lsrs r0, 24 + adds r4, r1, 0 + ldr r1, =gUnknown_08329F40 + lsls r0, 1 + adds r0, r1 + movs r1, 0 + ldrsh r0, [r0, r1] + cmp r0, 0 + bge _080BE70C + adds r0, 0x3F +_080BE70C: + asrs r0, 6 + strh r0, [r3, 0x26] + adds r0, r4, 0 + adds r0, 0x8 + strh r0, [r3, 0x32] + ldr r1, [r5] + ldr r3, =0x0000064f + adds r0, r1, r3 + ldrb r0, [r0] + cmp r0, 0 + bne _080BE748 + adds r3, 0x3 + adds r0, r1, r3 + movs r1, 0 + ldrsh r0, [r0, r1] + cmp r0, 0 + bne _080BE748 + ldrb r1, [r2] + movs r0, 0x4 + ands r0, r1 + cmp r0, 0 + bne _080BE748 + movs r0, 0x5 + negs r0, r0 + ands r0, r1 + b _080BE74E + .pool +_080BE748: + ldrb r0, [r2] + movs r1, 0x4 + orrs r0, r1 +_080BE74E: + strb r0, [r2] +_080BE750: + pop {r4,r5} + pop {r0} + bx r0 + thumb_func_end sub_80BE658 + + thumb_func_start sub_80BE758 +sub_80BE758: @ 80BE758 + push {lr} + adds r1, r0, 0 + ldr r0, =0x02039b4c + ldr r0, [r0] + ldr r2, =0x0000064a + adds r0, r2 + ldrb r0, [r0] + cmp r0, 0 + beq _080BE774 + cmp r0, 0x3 + beq _080BE774 + adds r0, r1, 0 + bl RemoveObjectAndFreeTiles +_080BE774: + pop {r0} + bx r0 + .pool + thumb_func_end sub_80BE758 + + thumb_func_start sub_80BE780 +sub_80BE780: @ 80BE780 + push {r4-r7,lr} + sub sp, 0x4 + adds r6, r0, 0 + ldr r1, =0x02039b4c + ldr r0, [r1] + ldr r2, =0x0000064a + adds r0, r2 + ldrb r0, [r0] + adds r7, r1, 0 + cmp r0, 0 + beq _080BE7AC + cmp r0, 0x3 + beq _080BE7AC + adds r0, r6, 0 + bl RemoveObjectAndFreeTiles + b _080BE824 + .pool +_080BE7AC: + ldr r0, [r7] + ldr r5, =0x0000062c + adds r0, r5 + ldrb r1, [r0] + ldrh r0, [r6, 0x30] + adds r1, r0 + lsls r1, 24 + lsrs r1, 24 + ldr r4, =gUnknown_08329F40 + lsls r0, r1, 1 + adds r0, r4 + ldrh r3, [r0] + adds r1, 0x40 + lsls r1, 1 + adds r1, r4 + ldrh r0, [r6, 0x2E] + lsls r0, 24 + lsrs r0, 24 + ldrh r1, [r1] + lsls r3, 16 + lsrs r2, r3, 16 + negs r3, r3 + lsrs r3, 16 + str r1, [sp] + bl SetSpriteTransformationMatrix + ldr r1, [r7] + adds r1, r5 + ldrh r0, [r6, 0x30] + adds r0, 0x40 + ldrb r1, [r1] + adds r0, r1 + lsls r0, 24 + lsrs r0, 24 + lsls r1, r0, 1 + adds r1, r4 + ldrh r3, [r1] + adds r0, 0x40 + lsls r0, 1 + adds r0, r4 + movs r2, 0 + ldrsh r1, [r0, r2] + lsls r0, r1, 2 + adds r0, r1 + lsls r0, 3 + cmp r0, 0 + bge _080BE80C + adds r0, 0xFF +_080BE80C: + asrs r0, 8 + strh r0, [r6, 0x24] + lsls r1, r3, 16 + asrs r1, 16 + lsls r0, r1, 2 + adds r0, r1 + lsls r0, 3 + cmp r0, 0 + bge _080BE820 + adds r0, 0xFF +_080BE820: + asrs r0, 8 + strh r0, [r6, 0x26] +_080BE824: + add sp, 0x4 + pop {r4-r7} + pop {r0} + bx r0 + .pool + thumb_func_end sub_80BE780 + + thumb_func_start sub_80BE834 +sub_80BE834: @ 80BE834 + push {r4,lr} + adds r3, r0, 0 + ldr r1, =0x02039b4c + ldr r0, [r1] + ldr r2, =0x0000064a + adds r0, r2 + ldrb r2, [r0] + cmp r2, 0 + beq _080BE85C + cmp r2, 0x3 + beq _080BE85C + adds r0, r3, 0 + bl RemoveObjectAndFreeTiles + b _080BE8D4 + .pool +_080BE85C: + ldr r4, [r1] + ldr r1, =0x0000064a + adds r0, r4, r1 + ldrb r0, [r0] + movs r1, 0x60 + cmp r0, 0 + bne _080BE86C + movs r1, 0x50 +_080BE86C: + ldr r2, =0x0000064f + adds r0, r4, r2 + ldrb r0, [r0] + cmp r0, 0 + beq _080BE8C8 + adds r2, 0x3 + adds r0, r4, r2 + movs r2, 0 + ldrsh r0, [r0, r2] + cmp r0, r1 + bne _080BE8C8 + adds r2, r3, 0 + adds r2, 0x3E + ldrb r1, [r2] + movs r0, 0x5 + negs r0, r0 + ands r0, r1 + strb r0, [r2] + movs r1, 0xCA + lsls r1, 3 + adds r0, r4, r1 + ldrh r0, [r0] + lsls r0, 4 + strh r0, [r3, 0x26] + ldr r1, =gUnknown_08329F40 + ldrh r2, [r3, 0x32] + lsls r0, r2, 24 + lsrs r0, 23 + adds r0, r1 + movs r1, 0 + ldrsh r0, [r0, r1] + cmp r0, 0 + bge _080BE8B0 + adds r0, 0x3F +_080BE8B0: + asrs r0, 6 + strh r0, [r3, 0x24] + adds r0, r2, 0 + adds r0, 0x8 + strh r0, [r3, 0x32] + b _080BE8D4 + .pool +_080BE8C8: + adds r0, r3, 0 + adds r0, 0x3E + ldrb r1, [r0] + movs r2, 0x4 + orrs r1, r2 + strb r1, [r0] +_080BE8D4: + pop {r4} + pop {r0} + bx r0 + thumb_func_end sub_80BE834 + + thumb_func_start sub_80BE8DC +sub_80BE8DC: @ 80BE8DC + push {r4,r5,lr} + sub sp, 0x18 + adds r5, r1, 0 + adds r3, r2, 0 + lsls r5, 24 + lsrs r5, 24 + lsls r3, 24 + lsrs r3, 24 + add r1, sp, 0x14 + movs r4, 0 + strb r4, [r1] + adds r2, r1, 0 + movs r1, 0xF + strb r1, [r2, 0x1] + movs r1, 0x3 + strb r1, [r2, 0x2] + str r4, [sp] + str r4, [sp, 0x4] + str r2, [sp, 0x8] + subs r1, 0x4 + str r1, [sp, 0xC] + str r0, [sp, 0x10] + movs r0, 0 + movs r1, 0x1 + adds r2, r5, 0 + bl AddTextPrinterParametrized2 + add sp, 0x18 + pop {r4,r5} + pop {r0} + bx r0 + thumb_func_end sub_80BE8DC + + thumb_func_start sub_80BE91C +sub_80BE91C: @ 80BE91C + push {r4,r5,lr} + lsls r4, r1, 24 + lsrs r4, 24 + ldr r1, =0x02039b54 + str r0, [r1] + ldr r0, =sub_80BEA24 + movs r1, 0 + bl CreateTask + adds r5, r0, 0 + lsls r5, 24 + lsrs r5, 24 + ldr r1, =0x03005e00 + lsls r0, r5, 2 + adds r0, r5 + lsls r0, 3 + adds r0, r1 + movs r2, 0 + strh r2, [r0, 0x8] + movs r1, 0x1 + strh r1, [r0, 0xA] + strh r2, [r0, 0xC] + strh r2, [r0, 0xE] + strh r4, [r0, 0x10] + movs r1, 0xFF + strh r1, [r0, 0x12] + movs r0, 0 + bl ResetBgsAndClearDma3BusyFlags + ldr r1, =gUnknown_0856E630 + movs r0, 0 + movs r2, 0x4 + bl InitBgsFromTemplates + movs r4, 0x80 + lsls r4, 4 + adds r0, r4, 0 + bl AllocZeroed + adds r1, r0, 0 + movs r0, 0x3 + bl SetBgTilemapBuffer + adds r0, r4, 0 + bl AllocZeroed + adds r1, r0, 0 + movs r0, 0x2 + bl SetBgTilemapBuffer + adds r0, r4, 0 + bl AllocZeroed + adds r1, r0, 0 + movs r0, 0x1 + bl SetBgTilemapBuffer + adds r0, r4, 0 + bl AllocZeroed + adds r1, r0, 0 + movs r0, 0 + bl SetBgTilemapBuffer + ldr r0, =gUnknown_0856E640 + bl InitWindows + bl DeactivateAllTextPrinters + adds r0, r5, 0 + pop {r4,r5} + pop {r1} + bx r1 + .pool + thumb_func_end sub_80BE91C + + thumb_func_start sub_80BE9C4 +sub_80BE9C4: @ 80BE9C4 + push {lr} + lsls r0, 24 + lsrs r0, 24 + ldr r2, =0x03005e00 + lsls r1, r0, 2 + adds r1, r0 + lsls r1, 3 + adds r1, r2 + movs r2, 0x8 + ldrsh r0, [r1, r2] + cmp r0, 0 + bne _080BE9F0 + ldr r1, [r1] + ldr r0, =sub_80BEDF4 + cmp r1, r0 + bne _080BE9F0 + movs r0, 0 + b _080BE9F2 + .pool +_080BE9F0: + movs r0, 0x1 +_080BE9F2: + pop {r1} + bx r1 + thumb_func_end sub_80BE9C4 + + thumb_func_start sub_80BE9F8 +sub_80BE9F8: @ 80BE9F8 + adds r2, r0, 0 + lsls r0, r1, 24 + lsrs r0, 24 + ldr r1, =0x02039b54 + str r2, [r1] + ldr r2, =0x03005e00 + lsls r1, r0, 2 + adds r1, r0 + lsls r1, 3 + adds r1, r2 + movs r3, 0 + movs r2, 0x1 + strh r2, [r1, 0x8] + strh r3, [r1, 0xA] + strh r3, [r1, 0xC] + strh r3, [r1, 0xE] + bx lr + .pool + thumb_func_end sub_80BE9F8 + + thumb_func_start sub_80BEA24 +sub_80BEA24: @ 80BEA24 + push {r4-r6,lr} + sub sp, 0x4 + lsls r0, 24 + lsrs r4, r0, 24 + ldr r1, =0x030022c0 + movs r2, 0x87 + lsls r2, 3 + adds r0, r1, r2 + ldrb r0, [r0] + adds r5, r1, 0 + cmp r0, 0xA + bhi _080BEA7C + lsls r0, 2 + ldr r1, =_080BEA50 + adds r0, r1 + ldr r0, [r0] + mov pc, r0 + .pool + .align 2, 0 +_080BEA50: + .4byte _080BEA7C + .4byte _080BEAF0 + .4byte _080BEB50 + .4byte _080BEB90 + .4byte _080BEB98 + .4byte _080BEC08 + .4byte _080BEC60 + .4byte _080BECBC + .4byte _080BED04 + .4byte _080BED5E + .4byte _080BED7C +_080BEA7C: + ldr r0, =0x02037fd4 + ldrb r1, [r0, 0x7] + movs r0, 0x80 + ands r0, r1 + cmp r0, 0 + beq _080BEA8A + b _080BEDA0 +_080BEA8A: + ldr r0, =0x02039b4c + ldr r0, [r0] + ldr r3, =0x0000064a + adds r0, r3 + movs r6, 0x1 + strb r6, [r0] + ldr r1, =0x030060b4 + ldr r0, [r5, 0xC] + str r0, [r1] + movs r0, 0 + bl SetVBlankCallback + movs r2, 0 + ldr r1, =0x03005e00 + lsls r0, r4, 2 + adds r0, r4 + lsls r0, 3 + adds r1, r0, r1 + movs r3, 0xA + ldrsh r0, [r1, r3] + cmp r0, 0 + beq _080BEABA + movs r2, 0x80 + lsls r2, 5 +_080BEABA: + movs r3, 0xC + ldrsh r0, [r1, r3] + cmp r0, 0 + beq _080BEACA + movs r1, 0x80 + lsls r1, 2 + adds r0, r1, 0 + orrs r2, r0 +_080BEACA: + adds r0, r2, 0 + bl sub_80C09B0 + movs r2, 0x87 + lsls r2, 3 + adds r0, r5, r2 + strb r6, [r0] + b _080BEDA0 + .pool +_080BEAF0: + ldr r1, =gUnknown_08DC1934 + movs r2, 0x80 + lsls r2, 6 + movs r0, 0 + str r0, [sp] + movs r0, 0x3 + movs r3, 0 + bl copy_decompressed_tile_data_to_vram_autofree + ldr r1, =gUnknown_08DC3080 + movs r0, 0x3 + movs r2, 0 + movs r3, 0 + bl CopyToBgTilemapBuffer + movs r0, 0 + movs r1, 0 + bl FillWindowPixelBuffer + movs r0, 0 + bl PutWindowTilemap + movs r0, 0x1 + bl PutWindowTilemap + ldr r0, =0x02039b54 + ldr r0, [r0] + ldrh r1, [r0] + movs r0, 0x1 + bl sub_80C0D30 + movs r0, 0x1 + movs r1, 0x2 + bl CopyWindowToVram + ldr r1, =0x030022c0 + movs r3, 0x87 + lsls r3, 3 + adds r1, r3 + b _080BED70 + .pool +_080BEB50: + movs r0, 0xD + bl sub_80BFCDC + ldr r4, =0x02039b4c + ldr r0, [r4] + ldr r1, =0x0000064d + adds r0, r1 + ldrb r0, [r0] + movs r1, 0xD + bl sub_80BFD0C + ldr r0, [r4] + ldr r2, =0x0000064c + adds r0, r2 + ldrb r0, [r0] + lsls r0, 31 + lsrs r0, 31 + bl sub_80BC844 + ldr r1, =0x030022c0 + movs r3, 0x87 + lsls r3, 3 + adds r1, r3 + b _080BED70 + .pool +_080BEB90: + movs r0, 0x87 + lsls r0, 3 + adds r1, r5, r0 + b _080BED70 +_080BEB98: + ldr r4, =0x02039b54 + ldr r3, [r4] + ldrh r0, [r3] + ldr r1, =0x02039b4c + ldr r1, [r1] + ldr r2, =0x00000612 + adds r1, r2 + ldrh r2, [r1] + negs r1, r2 + orrs r1, r2 + lsrs r1, 31 + ldr r2, [r3] + lsls r2, 14 + lsrs r2, 31 + movs r3, 0 + bl sub_80C020C + ldr r0, [r4] + ldrb r1, [r0, 0x2] + movs r0, 0x2 + ands r0, r1 + cmp r0, 0 + bne _080BEBD0 + ldr r0, =0x02037716 + movs r1, 0x31 + movs r2, 0x1E + bl gpu_pal_apply +_080BEBD0: + movs r0, 0 + movs r1, 0x3 + bl CopyWindowToVram + movs r0, 0x1 + bl CopyBgTilemapBufferToVram + movs r0, 0x2 + bl CopyBgTilemapBufferToVram + movs r0, 0x3 + bl CopyBgTilemapBufferToVram + ldr r1, =0x030022c0 + movs r3, 0x87 + lsls r3, 3 + adds r1, r3 + b _080BED70 + .pool +_080BEC08: + ldr r0, =0x03005e00 + lsls r1, r4, 2 + adds r1, r4 + lsls r1, 3 + adds r4, r1, r0 + movs r1, 0xA + ldrsh r0, [r4, r1] + cmp r0, 0 + bne _080BEC44 + ldr r0, =0x02039b54 + ldr r0, [r0] + ldrh r0, [r0] + movs r1, 0x30 + movs r2, 0x38 + movs r3, 0 + bl sub_80C0E9C + strh r0, [r4, 0x10] + ldr r2, =0x02020630 + movs r3, 0x10 + ldrsh r0, [r4, r3] + lsls r1, r0, 4 + adds r1, r0 + lsls r1, 2 + adds r1, r2 + ldrb r2, [r1, 0x5] + movs r0, 0xD + negs r0, r0 + ands r0, r2 + strb r0, [r1, 0x5] +_080BEC44: + ldr r1, =0x030022c0 + movs r0, 0x87 + lsls r0, 3 + adds r1, r0 + b _080BED70 + .pool +_080BEC60: + movs r3, 0 + ldr r0, =0x03005e00 + lsls r1, r4, 2 + adds r1, r4 + lsls r1, 3 + adds r1, r0 + movs r2, 0xC + ldrsh r0, [r1, r2] + cmp r0, 0 + beq _080BEC76 + movs r3, 0x14 +_080BEC76: + movs r2, 0xA + ldrsh r0, [r1, r2] + cmp r0, 0 + beq _080BEC98 + ldr r2, =0x02020630 + movs r0, 0x10 + ldrsh r1, [r1, r0] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r2 + ldrb r1, [r0, 0x5] + lsrs r1, 4 + adds r1, 0x10 + movs r0, 0x1 + lsls r0, r1 + orrs r3, r0 +_080BEC98: + mvns r0, r3 + movs r1, 0 + str r1, [sp] + movs r2, 0x10 + movs r3, 0 + bl pal_fade_maybe + ldr r0, =0x030060b4 + ldr r0, [r0] + bl SetVBlankCallback + b _080BED68 + .pool +_080BECBC: + movs r0, 0x50 + movs r1, 0 + bl SetGpuReg + movs r0, 0x52 + movs r1, 0 + bl SetGpuReg + movs r0, 0x54 + movs r1, 0 + bl SetGpuReg + movs r1, 0x82 + lsls r1, 5 + movs r0, 0 + bl SetGpuReg + movs r0, 0 + bl HideBg + movs r0, 0x1 + bl ShowBg + movs r0, 0x2 + bl ShowBg + movs r0, 0x3 + bl ShowBg + ldr r1, =0x030022c0 + movs r3, 0x87 + lsls r3, 3 + adds r1, r3 + b _080BED70 + .pool +_080BED04: + ldr r0, =0x02037fd4 + ldrb r1, [r0, 0x7] + movs r0, 0x80 + ands r0, r1 + cmp r0, 0 + bne _080BEDA0 + movs r0, 0x87 + lsls r0, 3 + adds r2, r5, r0 + ldrb r0, [r2] + adds r3, r0, 0x1 + strb r3, [r2] + ldr r1, =0x03005e00 + lsls r0, r4, 2 + adds r0, r4 + lsls r0, 3 + adds r0, r1 + movs r1, 0xE + ldrsh r0, [r0, r1] + cmp r0, 0 + bne _080BED58 + bl sub_80A369C + ldr r0, =0x02039b54 + ldr r0, [r0] + ldrh r0, [r0] + bl NationalPokedexNumToSpecies + lsls r0, 16 + lsrs r0, 16 + movs r1, 0 + movs r2, 0x7D + movs r3, 0xA + bl sub_80A32C0 + b _080BEDA0 + .pool +_080BED58: + adds r0, r3, 0x1 + strb r0, [r2] + b _080BEDA0 +_080BED5E: + bl sub_80A36C8 + lsls r0, 24 + cmp r0, 0 + bne _080BEDA0 +_080BED68: + ldr r1, =0x030022c0 + movs r2, 0x87 + lsls r2, 3 + adds r1, r2 +_080BED70: + ldrb r0, [r1] + adds r0, 0x1 + strb r0, [r1] + b _080BEDA0 + .pool +_080BED7C: + ldr r1, =0x03005e00 + lsls r0, r4, 2 + adds r0, r4 + lsls r0, 3 + adds r0, r1 + movs r2, 0 + movs r1, 0 + strh r1, [r0, 0x8] + strh r1, [r0, 0xA] + movs r1, 0x1 + strh r1, [r0, 0xC] + strh r1, [r0, 0xE] + ldr r1, =sub_80BEDF4 + str r1, [r0] + movs r3, 0x87 + lsls r3, 3 + adds r0, r5, r3 + strb r2, [r0] +_080BEDA0: + add sp, 0x4 + pop {r4-r6} + pop {r0} + bx r0 + .pool + thumb_func_end sub_80BEA24 + + thumb_func_start sub_80BEDB0 +sub_80BEDB0: @ 80BEDB0 + push {lr} + bl FreeAllWindowBuffers + movs r0, 0 + bl GetBgTilemapBuffer + cmp r0, 0 + beq _080BEDC4 + bl Free +_080BEDC4: + movs r0, 0x1 + bl GetBgTilemapBuffer + cmp r0, 0 + beq _080BEDD2 + bl Free +_080BEDD2: + movs r0, 0x2 + bl GetBgTilemapBuffer + cmp r0, 0 + beq _080BEDE0 + bl Free +_080BEDE0: + movs r0, 0x3 + bl GetBgTilemapBuffer + cmp r0, 0 + beq _080BEDEE + bl Free +_080BEDEE: + pop {r0} + bx r0 + thumb_func_end sub_80BEDB0 + + thumb_func_start sub_80BEDF4 +sub_80BEDF4: @ 80BEDF4 + push {r4,r5,lr} + sub sp, 0x4 + lsls r0, 24 + lsrs r0, 24 + ldr r2, =0x03005e00 + lsls r1, r0, 2 + adds r1, r0 + lsls r1, 3 + adds r4, r1, r2 + movs r0, 0x8 + ldrsh r5, [r4, r0] + cmp r5, 0 + beq _080BEE34 + movs r0, 0x1 + negs r0, r0 + movs r1, 0 + str r1, [sp] + movs r2, 0 + movs r3, 0x10 + bl pal_fade_maybe + ldr r0, =sub_80BF038 + str r0, [r4] + movs r0, 0x6C + bl audio_play + b _080BEFBA + .pool +_080BEE34: + ldr r1, =0x030022c0 + ldrh r2, [r1, 0x2E] + movs r0, 0x2 + ands r0, r2 + lsls r0, 16 + lsrs r3, r0, 16 + cmp r3, 0 + beq _080BEE50 + movs r0, 0x1 + negs r0, r0 + str r5, [sp] + b _080BEF0E + .pool +_080BEE50: + movs r0, 0x1 + ands r0, r2 + cmp r0, 0 + beq _080BEF28 + ldr r5, =0x02039b4c + ldr r0, [r5] + ldr r1, =0x0000064d + adds r0, r1 + ldrb r1, [r0] + cmp r1, 0x1 + beq _080BEEA0 + cmp r1, 0x1 + bgt _080BEE78 + cmp r1, 0 + beq _080BEE82 + b _080BEFBA + .pool +_080BEE78: + cmp r1, 0x2 + beq _080BEEC0 + cmp r1, 0x3 + beq _080BEF08 + b _080BEFBA +_080BEE82: + movs r0, 0x15 + negs r0, r0 + str r3, [sp] + movs r1, 0 + movs r2, 0 + movs r3, 0x10 + bl pal_fade_maybe + ldr r0, [r5] + ldr r3, =0x0000064e + adds r0, r3 + movs r1, 0x1 + b _080BEEF0 + .pool +_080BEEA0: + movs r0, 0x15 + negs r0, r0 + str r3, [sp] + movs r1, 0 + movs r2, 0 + movs r3, 0x10 + bl pal_fade_maybe + ldr r0, [r5] + ldr r1, =0x0000064e + adds r0, r1 + movs r1, 0x2 + b _080BEEF0 + .pool +_080BEEC0: + ldr r0, =0x02039b54 + ldr r0, [r0] + ldrb r0, [r0, 0x2] + ands r1, r0 + cmp r1, 0 + bne _080BEED8 + movs r0, 0x20 + bl audio_play + b _080BEFBA + .pool +_080BEED8: + movs r0, 0x15 + negs r0, r0 + str r3, [sp] + movs r1, 0 + movs r2, 0 + movs r3, 0x10 + bl pal_fade_maybe + ldr r0, [r5] + ldr r3, =0x0000064e + adds r0, r3 + movs r1, 0x3 +_080BEEF0: + strb r1, [r0] + ldr r0, =sub_80BEFD0 + str r0, [r4] + movs r0, 0x15 + bl audio_play + b _080BEFBA + .pool +_080BEF08: + movs r0, 0x1 + negs r0, r0 + str r3, [sp] +_080BEF0E: + movs r1, 0 + movs r2, 0 + movs r3, 0x10 + bl pal_fade_maybe + ldr r0, =sub_80BF070 + str r0, [r4] + movs r0, 0x3 + bl audio_play + b _080BEFBA + .pool +_080BEF28: + movs r0, 0x20 + ands r0, r2 + cmp r0, 0 + bne _080BEF44 + movs r0, 0x80 + lsls r0, 2 + ands r0, r2 + cmp r0, 0 + beq _080BEF78 + ldr r0, =0x03005d90 + ldr r0, [r0] + ldrb r0, [r0, 0x13] + cmp r0, 0x1 + bne _080BEF78 +_080BEF44: + ldr r3, =0x02039b4c + ldr r0, [r3] + ldr r4, =0x0000064d + adds r2, r0, r4 + ldrb r0, [r2] + cmp r0, 0 + beq _080BEF78 + subs r0, 0x1 + strb r0, [r2] + ldr r0, [r3] + adds r0, r4 + ldrb r0, [r0] + movs r1, 0xD + bl sub_80BFD0C + movs r0, 0x6D + bl audio_play + b _080BEFBA + .pool +_080BEF78: + ldrh r1, [r1, 0x2E] + movs r0, 0x10 + ands r0, r1 + cmp r0, 0 + bne _080BEF96 + movs r0, 0x80 + lsls r0, 1 + ands r0, r1 + cmp r0, 0 + beq _080BEFBA + ldr r0, =0x03005d90 + ldr r0, [r0] + ldrb r0, [r0, 0x13] + cmp r0, 0x1 + bne _080BEFBA +_080BEF96: + ldr r2, =0x02039b4c + ldr r0, [r2] + ldr r3, =0x0000064d + adds r1, r0, r3 + ldrb r0, [r1] + cmp r0, 0x2 + bhi _080BEFBA + adds r0, 0x1 + strb r0, [r1] + ldr r0, [r2] + adds r0, r3 + ldrb r0, [r0] + movs r1, 0xD + bl sub_80BFD0C + movs r0, 0x6D + bl audio_play +_080BEFBA: + add sp, 0x4 + pop {r4,r5} + pop {r0} + bx r0 + .pool + thumb_func_end sub_80BEDF4 + + thumb_func_start sub_80BEFD0 +sub_80BEFD0: @ 80BEFD0 + push {r4,lr} + lsls r0, 24 + lsrs r2, r0, 24 + ldr r0, =0x02037fd4 + ldrb r1, [r0, 0x7] + movs r0, 0x80 + ands r0, r1 + cmp r0, 0 + bne _080BF02C + ldr r1, =0x03005e00 + lsls r0, r2, 2 + adds r0, r2 + lsls r0, 3 + adds r4, r0, r1 + ldrh r0, [r4, 0x10] + bl sub_818D820 + ldr r0, =0x02039b4c + ldr r0, [r0] + ldr r1, =0x0000064e + adds r0, r1 + ldrb r0, [r0] + cmp r0, 0x2 + beq _080BF020 + cmp r0, 0x2 + ble _080BF008 + cmp r0, 0x3 + beq _080BF028 +_080BF008: + ldr r0, =sub_80BF0AC + b _080BF02A + .pool +_080BF020: + ldr r0, =sub_80BF250 + b _080BF02A + .pool +_080BF028: + ldr r0, =sub_80BF82C +_080BF02A: + str r0, [r4] +_080BF02C: + pop {r4} + pop {r0} + bx r0 + .pool + thumb_func_end sub_80BEFD0 + + thumb_func_start sub_80BF038 +sub_80BF038: @ 80BF038 + push {r4,lr} + lsls r0, 24 + lsrs r2, r0, 24 + ldr r0, =0x02037fd4 + ldrb r1, [r0, 0x7] + movs r0, 0x80 + ands r0, r1 + cmp r0, 0 + bne _080BF05E + ldr r0, =0x03005e00 + lsls r4, r2, 2 + adds r4, r2 + lsls r4, 3 + adds r4, r0 + ldrh r0, [r4, 0x10] + bl sub_818D820 + ldr r0, =sub_80BEA24 + str r0, [r4] +_080BF05E: + pop {r4} + pop {r0} + bx r0 + .pool + thumb_func_end sub_80BF038 + + thumb_func_start sub_80BF070 +sub_80BF070: @ 80BF070 + push {r4,lr} + lsls r0, 24 + lsrs r4, r0, 24 + ldr r0, =0x02037fd4 + ldrb r1, [r0, 0x7] + movs r0, 0x80 + ands r0, r1 + cmp r0, 0 + bne _080BF09C + ldr r0, =0x03005e00 + lsls r1, r4, 2 + adds r1, r4 + lsls r1, 3 + adds r1, r0 + ldrh r0, [r1, 0x10] + bl sub_818D820 + bl sub_80BEDB0 + adds r0, r4, 0 + bl DestroyTask +_080BF09C: + pop {r4} + pop {r0} + bx r0 + .pool + thumb_func_end sub_80BF070 + + thumb_func_start sub_80BF0AC +sub_80BF0AC: @ 80BF0AC + push {r4-r7,lr} + lsls r0, 24 + lsrs r6, r0, 24 + ldr r2, =0x030022c0 + movs r0, 0x87 + lsls r0, 3 + adds r7, r2, r0 + ldrb r0, [r7] + cmp r0, 0x1 + beq _080BF120 + cmp r0, 0x1 + ble _080BF0C8 + cmp r0, 0x2 + beq _080BF15C +_080BF0C8: + ldr r0, =0x02037fd4 + ldrb r1, [r0, 0x7] + movs r0, 0x80 + ands r0, r1 + lsls r0, 24 + lsrs r5, r0, 24 + cmp r5, 0 + bne _080BF196 + ldr r4, =0x02039b4c + ldr r0, [r4] + ldr r1, =0x0000064a + adds r0, r1 + movs r1, 0x5 + strb r1, [r0] + ldr r1, =0x030060b4 + ldr r0, [r2, 0xC] + str r0, [r1] + movs r0, 0 + bl SetVBlankCallback + movs r0, 0x80 + lsls r0, 2 + bl sub_80C09B0 + ldr r0, [r4] + ldr r1, =0x0000064d + adds r0, r1 + strb r5, [r0] + movs r0, 0x1 + strb r0, [r7] + b _080BF196 + .pool +_080BF120: + movs r0, 0xD + bl sub_80BFCF4 + movs r0, 0 + movs r1, 0xD + bl sub_80BFD7C + ldr r0, =0x02039b4c + ldr r0, [r0] + ldr r1, =0x0000064c + adds r0, r1 + ldrb r0, [r0] + lsls r0, 31 + lsrs r0, 31 + bl sub_80BC844 + movs r1, 0xD0 + lsls r1, 4 + movs r0, 0xA + bl SetGpuReg + ldrb r0, [r7] + adds r0, 0x1 + strb r0, [r7] + b _080BF196 + .pool +_080BF15C: + ldr r0, =0x02039b54 + ldr r0, [r0] + ldrh r0, [r0] + bl NationalPokedexNumToSpecies + lsls r0, 16 + lsrs r0, 16 + ldr r5, =0x02039b4c + ldr r1, [r5] + ldr r4, =0x0000064e + adds r1, r4 + bl sub_813D3D8 + ldr r0, =0x030060b4 + ldr r0, [r0] + bl SetVBlankCallback + ldr r0, [r5] + adds r0, r4 + movs r1, 0 + strb r1, [r0] + strb r1, [r7] + ldr r1, =0x03005e00 + lsls r0, r6, 2 + adds r0, r6 + lsls r0, 3 + adds r0, r1 + ldr r1, =sub_80BF1B4 + str r1, [r0] +_080BF196: + pop {r4-r7} + pop {r0} + bx r0 + .pool + thumb_func_end sub_80BF0AC + + thumb_func_start sub_80BF1B4 +sub_80BF1B4: @ 80BF1B4 + push {lr} + lsls r0, 24 + lsrs r2, r0, 24 + ldr r0, =0x02039b4c + ldr r0, [r0] + ldr r1, =0x0000064e + adds r0, r1 + ldrb r0, [r0] + cmp r0, 0 + beq _080BF1D6 + ldr r0, =0x03005e00 + lsls r1, r2, 2 + adds r1, r2 + lsls r1, 3 + adds r1, r0 + ldr r0, =sub_80BF1EC + str r0, [r1] +_080BF1D6: + pop {r0} + bx r0 + .pool + thumb_func_end sub_80BF1B4 + + thumb_func_start sub_80BF1EC +sub_80BF1EC: @ 80BF1EC + push {lr} + lsls r0, 24 + lsrs r2, r0, 24 + ldr r0, =0x02037fd4 + ldrb r1, [r0, 0x7] + movs r0, 0x80 + ands r0, r1 + cmp r0, 0 + bne _080BF242 + ldr r0, =0x02039b4c + ldr r0, [r0] + ldr r1, =0x0000064e + adds r0, r1 + ldrb r0, [r0] + cmp r0, 0x1 + beq _080BF210 + cmp r0, 0x2 + beq _080BF234 +_080BF210: + ldr r0, =0x03005e00 + lsls r1, r2, 2 + adds r1, r2 + lsls r1, 3 + adds r1, r0 + ldr r0, =sub_80BEA24 + b _080BF240 + .pool +_080BF234: + ldr r0, =0x03005e00 + lsls r1, r2, 2 + adds r1, r2 + lsls r1, 3 + adds r1, r0 + ldr r0, =sub_80BF250 +_080BF240: + str r0, [r1] +_080BF242: + pop {r0} + bx r0 + .pool + thumb_func_end sub_80BF1EC + + thumb_func_start sub_80BF250 +sub_80BF250: @ 80BF250 + push {r4,r5,lr} + sub sp, 0x14 + lsls r0, 24 + lsrs r4, r0, 24 + ldr r1, =0x030022c0 + movs r2, 0x87 + lsls r2, 3 + adds r0, r1, r2 + ldrb r0, [r0] + adds r2, r1, 0 + cmp r0, 0xA + bhi _080BF2A8 + lsls r0, 2 + ldr r1, =_080BF27C + adds r0, r1 + ldr r0, [r0] + mov pc, r0 + .pool + .align 2, 0 +_080BF27C: + .4byte _080BF2A8 + .4byte _080BF310 + .4byte _080BF360 + .4byte _080BF38C + .4byte _080BF3A0 + .4byte _080BF3D0 + .4byte _080BF41C + .4byte _080BF498 + .4byte _080BF514 + .4byte _080BF540 + .4byte _080BF590 +_080BF2A8: + ldr r0, =0x02037fd4 + ldrb r1, [r0, 0x7] + movs r0, 0x80 + ands r0, r1 + cmp r0, 0 + beq _080BF2B6 + b _080BF5B2 +_080BF2B6: + ldr r0, =0x03007420 + bl MPlayStop_rev01 + ldr r5, =0x02039b4c + ldr r0, [r5] + ldr r3, =0x0000064a + adds r0, r3 + movs r1, 0x6 + strb r1, [r0] + ldr r1, =0x030060b4 + ldr r4, =0x030022c0 + ldr r0, [r4, 0xC] + str r0, [r1] + movs r0, 0 + bl SetVBlankCallback + movs r0, 0x80 + lsls r0, 2 + bl sub_80C09B0 + ldr r0, [r5] + ldr r1, =0x0000064d + adds r0, r1 + movs r1, 0x1 + strb r1, [r0] + movs r2, 0x87 + lsls r2, 3 + adds r4, r2 + strb r1, [r4] + b _080BF5B2 + .pool +_080BF310: + ldr r1, =gUnknown_08DC1934 + movs r2, 0x80 + lsls r2, 6 + movs r0, 0 + str r0, [sp] + movs r0, 0x3 + movs r3, 0 + bl copy_decompressed_tile_data_to_vram_autofree + ldr r1, =gUnknown_08DC3198 + movs r0, 0x3 + movs r2, 0 + movs r3, 0 + bl CopyToBgTilemapBuffer + movs r0, 0 + movs r1, 0 + bl FillWindowPixelBuffer + movs r0, 0 + bl PutWindowTilemap + movs r0, 0x3 + bl PutWindowTilemap + movs r0, 0x2 + bl PutWindowTilemap + ldr r1, =0x030022c0 + movs r3, 0x87 + lsls r3, 3 + adds r1, r3 + b _080BF582 + .pool +_080BF360: + movs r0, 0xD + bl sub_80BFCF4 + movs r0, 0x1 + movs r1, 0xD + bl sub_80BFD7C + ldr r0, =0x02039b4c + ldr r0, [r0] + ldr r4, =0x0000064c + adds r0, r4 + ldrb r0, [r0] + lsls r0, 31 + lsrs r0, 31 + bl sub_80BC844 + b _080BF57A + .pool +_080BF38C: + bl sub_80A1A74 + ldr r1, =0x030022c0 + movs r2, 0x87 + lsls r2, 3 + adds r1, r2 + b _080BF582 + .pool +_080BF3A0: + ldr r0, =gUnknown_085E871B + movs r1, 0x52 + movs r2, 0x21 + bl sub_80BE8DC + ldr r0, =0x02039b54 + ldr r0, [r0] + ldrh r1, [r0] + movs r0, 0 + movs r2, 0x52 + movs r3, 0x31 + bl sub_80C0B44 + ldr r1, =0x030022c0 + movs r3, 0x87 + lsls r3, 3 + adds r1, r3 + b _080BF582 + .pool +_080BF3D0: + ldr r0, =0x02039b54 + ldr r0, [r0] + ldrh r0, [r0] + movs r1, 0x30 + movs r2, 0x38 + movs r3, 0 + bl sub_80C0E9C + ldr r2, =0x03005e00 + lsls r1, r4, 2 + adds r1, r4 + lsls r1, 3 + adds r1, r2 + movs r3, 0 + strh r0, [r1, 0x10] + ldr r2, =0x02020630 + movs r4, 0x10 + ldrsh r0, [r1, r4] + lsls r1, r0, 4 + adds r1, r0 + lsls r1, 2 + adds r1, r2 + ldrb r2, [r1, 0x5] + movs r0, 0xD + negs r0, r0 + ands r0, r2 + strb r0, [r1, 0x5] + ldr r0, =0x030061ec + strb r3, [r0] + b _080BF57A + .pool +_080BF41C: + ldr r1, =0xffff0000 + ldr r0, [sp, 0x4] + ands r0, r1 + ldr r1, =0x00004020 + orrs r0, r1 + ldr r1, =0xff00ffff + ands r0, r1 + movs r1, 0xF8 + lsls r1, 13 + orrs r0, r1 + ldr r1, =0x00ffffff + ands r0, r1 + movs r1, 0x80 + lsls r1, 20 + orrs r0, r1 + str r0, [sp, 0x4] + ldr r1, =0xffff00ff + ldr r0, [sp, 0x8] + ands r0, r1 + movs r1, 0xF0 + lsls r1, 5 + orrs r0, r1 + ldr r1, =0xffffff00 + ands r0, r1 + movs r1, 0xC + orrs r0, r1 + str r0, [sp, 0x8] + add r0, sp, 0x4 + movs r1, 0x2 + bl sub_8145354 + lsls r0, 24 + cmp r0, 0 + bne _080BF462 + b _080BF5B2 +_080BF462: + ldr r1, =0x030022c0 + movs r2, 0x87 + lsls r2, 3 + adds r1, r2 + ldrb r0, [r1] + adds r0, 0x1 + movs r2, 0 + strb r0, [r1] + ldr r0, =0x030061ec + strb r2, [r0] + b _080BF5B2 + .pool +_080BF498: + ldr r1, =0x00ffffff + ldr r0, [sp, 0xC] + ands r0, r1 + movs r1, 0x90 + lsls r1, 20 + orrs r0, r1 + str r0, [sp, 0xC] + ldr r2, =0xffffff00 + add r0, sp, 0xC + ldr r1, [r0, 0x4] + ands r1, r2 + movs r2, 0x12 + orrs r1, r2 + ldr r2, =0xffff00ff + ands r1, r2 + movs r2, 0xC0 + lsls r2, 2 + orrs r1, r2 + str r1, [r0, 0x4] + movs r1, 0x3 + bl sub_8145850 + lsls r0, 24 + cmp r0, 0 + beq _080BF4D8 + ldr r1, =0x030022c0 + movs r3, 0x87 + lsls r3, 3 + adds r1, r3 + ldrb r0, [r1] + adds r0, 0x1 + strb r0, [r1] +_080BF4D8: + movs r0, 0x3 + movs r1, 0x2 + bl CopyWindowToVram + movs r0, 0 + movs r1, 0x3 + bl CopyWindowToVram + movs r0, 0 + bl CopyBgTilemapBufferToVram + movs r0, 0x1 + bl CopyBgTilemapBufferToVram + movs r0, 0x2 + bl CopyBgTilemapBufferToVram + movs r0, 0x3 + bl CopyBgTilemapBufferToVram + b _080BF5B2 + .pool +_080BF514: + movs r0, 0x15 + negs r0, r0 + movs r1, 0 + str r1, [sp] + movs r2, 0x10 + movs r3, 0 + bl pal_fade_maybe + ldr r0, =0x030060b4 + ldr r0, [r0] + bl SetVBlankCallback + ldr r1, =0x030022c0 + movs r4, 0x87 + lsls r4, 3 + adds r1, r4 + b _080BF582 + .pool +_080BF540: + movs r0, 0x50 + movs r1, 0 + bl SetGpuReg + movs r0, 0x52 + movs r1, 0 + bl SetGpuReg + movs r0, 0x54 + movs r1, 0 + bl SetGpuReg + movs r1, 0x82 + lsls r1, 5 + movs r0, 0 + bl SetGpuReg + movs r0, 0 + bl ShowBg + movs r0, 0x1 + bl ShowBg + movs r0, 0x2 + bl ShowBg + movs r0, 0x3 + bl ShowBg +_080BF57A: + ldr r1, =0x030022c0 + movs r0, 0x87 + lsls r0, 3 + adds r1, r0 +_080BF582: + ldrb r0, [r1] + adds r0, 0x1 + strb r0, [r1] + b _080BF5B2 + .pool +_080BF590: + ldr r0, =0x02039b4c + ldr r0, [r0] + ldr r1, =0x0000064e + adds r0, r1 + movs r1, 0 + strb r1, [r0] + movs r3, 0x87 + lsls r3, 3 + adds r0, r2, r3 + strb r1, [r0] + ldr r1, =0x03005e00 + lsls r0, r4, 2 + adds r0, r4 + lsls r0, 3 + adds r0, r1 + ldr r1, =sub_80BF5CC + str r1, [r0] +_080BF5B2: + add sp, 0x14 + pop {r4,r5} + pop {r0} + bx r0 + .pool + thumb_func_end sub_80BF250 + + thumb_func_start sub_80BF5CC +sub_80BF5CC: @ 80BF5CC + push {r4,r5,lr} + sub sp, 0x4 + lsls r0, 24 + lsrs r4, r0, 24 + movs r0, 0x2 + bl sub_814545C + bl sub_80A36EC + lsls r0, 24 + cmp r0, 0 + beq _080BF5EC + movs r0, 0x1 + bl sub_80BF7FC + b _080BF5F2 +_080BF5EC: + movs r0, 0 + bl sub_80BF7FC +_080BF5F2: + ldr r1, =0x030022c0 + ldrh r2, [r1, 0x2E] + movs r0, 0x1 + ands r0, r2 + adds r5, r1, 0 + cmp r0, 0 + beq _080BF624 + movs r0, 0x1 + bl sub_80BF7FC + ldr r0, =0x02039b54 + ldr r0, [r0] + ldrh r0, [r0] + bl NationalPokedexNumToSpecies + lsls r0, 16 + lsrs r0, 16 + bl sub_8145534 + b _080BF772 + .pool +_080BF624: + ldr r0, =0x02037fd4 + ldrb r1, [r0, 0x7] + movs r0, 0x80 + ands r0, r1 + lsls r0, 24 + lsrs r1, r0, 24 + cmp r1, 0 + beq _080BF636 + b _080BF772 +_080BF636: + movs r0, 0x2 + ands r0, r2 + lsls r0, 16 + lsrs r3, r0, 16 + cmp r3, 0 + beq _080BF694 + movs r0, 0x15 + negs r0, r0 + str r1, [sp] + movs r1, 0 + movs r2, 0 + movs r3, 0x10 + bl pal_fade_maybe + ldr r0, =0x03007420 + bl m4aMPlayContinue + ldr r0, =0x02039b4c + ldr r0, [r0] + ldr r1, =0x0000064e + adds r0, r1 + movs r1, 0x1 + strb r1, [r0] + ldr r1, =0x03005e00 + lsls r0, r4, 2 + adds r0, r4 + lsls r0, 3 + adds r0, r1 + ldr r1, =sub_80BF790 + str r1, [r0] + movs r0, 0x3 + bl audio_play + b _080BF772 + .pool +_080BF694: + movs r0, 0x20 + ands r0, r2 + cmp r0, 0 + bne _080BF6B0 + movs r0, 0x80 + lsls r0, 2 + ands r0, r2 + cmp r0, 0 + beq _080BF700 + ldr r0, =0x03005d90 + ldr r0, [r0] + ldrb r0, [r0, 0x13] + cmp r0, 0x1 + bne _080BF700 +_080BF6B0: + movs r0, 0x15 + negs r0, r0 + str r3, [sp] + movs r1, 0 + movs r2, 0 + movs r3, 0x10 + bl pal_fade_maybe + ldr r0, =0x03007420 + bl m4aMPlayContinue + ldr r0, =0x02039b4c + ldr r0, [r0] + ldr r1, =0x0000064e + adds r0, r1 + movs r1, 0x2 + strb r1, [r0] + ldr r1, =0x03005e00 + lsls r0, r4, 2 + adds r0, r4 + lsls r0, 3 + adds r0, r1 + ldr r1, =sub_80BF790 + str r1, [r0] + movs r0, 0x6D + bl audio_play + b _080BF772 + .pool +_080BF700: + ldrh r1, [r5, 0x2E] + movs r0, 0x10 + ands r0, r1 + cmp r0, 0 + bne _080BF71E + movs r0, 0x80 + lsls r0, 1 + ands r0, r1 + cmp r0, 0 + beq _080BF772 + ldr r0, =0x03005d90 + ldr r0, [r0] + ldrb r0, [r0, 0x13] + cmp r0, 0x1 + bne _080BF772 +_080BF71E: + ldr r0, =0x02039b54 + ldr r0, [r0] + ldrb r1, [r0, 0x2] + movs r0, 0x2 + ands r0, r1 + cmp r0, 0 + bne _080BF73C + movs r0, 0x20 + bl audio_play + b _080BF772 + .pool +_080BF73C: + movs r0, 0x15 + negs r0, r0 + movs r1, 0 + str r1, [sp] + movs r2, 0 + movs r3, 0x10 + bl pal_fade_maybe + ldr r0, =0x03007420 + bl m4aMPlayContinue + ldr r0, =0x02039b4c + ldr r0, [r0] + ldr r1, =0x0000064e + adds r0, r1 + movs r1, 0x3 + strb r1, [r0] + ldr r1, =0x03005e00 + lsls r0, r4, 2 + adds r0, r4 + lsls r0, 3 + adds r0, r1 + ldr r1, =sub_80BF790 + str r1, [r0] + movs r0, 0x6D + bl audio_play +_080BF772: + add sp, 0x4 + pop {r4,r5} + pop {r0} + bx r0 + .pool + thumb_func_end sub_80BF5CC + + thumb_func_start sub_80BF790 +sub_80BF790: @ 80BF790 + push {r4,lr} + lsls r0, 24 + lsrs r4, r0, 24 + ldr r0, =0x02037fd4 + ldrb r1, [r0, 0x7] + movs r0, 0x80 + ands r0, r1 + cmp r0, 0 + bne _080BF7F0 + bl sub_8145914 + ldr r1, =0x03005e00 + lsls r0, r4, 2 + adds r0, r4 + lsls r0, 3 + adds r4, r0, r1 + ldrh r0, [r4, 0x10] + bl sub_818D820 + ldr r0, =0x02039b4c + ldr r0, [r0] + ldr r1, =0x0000064e + adds r0, r1 + ldrb r0, [r0] + cmp r0, 0x2 + beq _080BF7E4 + cmp r0, 0x2 + ble _080BF7CC + cmp r0, 0x3 + beq _080BF7EC +_080BF7CC: + ldr r0, =sub_80BEA24 + b _080BF7EE + .pool +_080BF7E4: + ldr r0, =sub_80BF0AC + b _080BF7EE + .pool +_080BF7EC: + ldr r0, =sub_80BF82C +_080BF7EE: + str r0, [r4] +_080BF7F0: + pop {r4} + pop {r0} + bx r0 + .pool + thumb_func_end sub_80BF790 + + thumb_func_start sub_80BF7FC +sub_80BF7FC: @ 80BF7FC + push {lr} + sub sp, 0x4 + lsls r0, 24 + cmp r0, 0 + beq _080BF810 + ldr r1, =0x00000392 + b _080BF812 + .pool +_080BF810: + ldr r1, =0x000002af +_080BF812: + mov r0, sp + strh r1, [r0] + mov r0, sp + movs r1, 0x5D + movs r2, 0x2 + bl gpu_pal_apply + add sp, 0x4 + pop {r0} + bx r0 + .pool + thumb_func_end sub_80BF7FC + + thumb_func_start sub_80BF82C +sub_80BF82C: @ 80BF82C + push {r4-r7,lr} + sub sp, 0x44 + lsls r0, 24 + lsrs r7, r0, 24 + ldr r1, =0x030022c0 + movs r2, 0x87 + lsls r2, 3 + adds r0, r1, r2 + ldrb r0, [r0] + adds r5, r1, 0 + cmp r0, 0x9 + bhi _080BF880 + lsls r0, 2 + ldr r1, =_080BF858 + adds r0, r1 + ldr r0, [r0] + mov pc, r0 + .pool + .align 2, 0 +_080BF858: + .4byte _080BF880 + .4byte _080BF8D8 + .4byte _080BF910 + .4byte _080BF93C + .4byte _080BF97C + .4byte _080BF982 + .4byte _080BFA34 + .4byte _080BFAE8 + .4byte _080BFB14 + .4byte _080BFB64 +_080BF880: + ldr r0, =0x02037fd4 + ldrb r1, [r0, 0x7] + movs r0, 0x80 + ands r0, r1 + cmp r0, 0 + beq _080BF88E + b _080BFB94 +_080BF88E: + ldr r4, =0x02039b4c + ldr r0, [r4] + ldr r1, =0x0000064a + adds r0, r1 + movs r1, 0x7 + strb r1, [r0] + ldr r1, =0x030060b4 + ldr r0, [r5, 0xC] + str r0, [r1] + movs r0, 0 + bl SetVBlankCallback + movs r0, 0x80 + lsls r0, 2 + bl sub_80C09B0 + ldr r0, [r4] + ldr r2, =0x0000064d + adds r0, r2 + movs r1, 0x2 + strb r1, [r0] + movs r0, 0x87 + lsls r0, 3 + adds r1, r5, r0 + movs r0, 0x1 + strb r0, [r1] + b _080BFB94 + .pool +_080BF8D8: + ldr r1, =gUnknown_08DC1934 + movs r2, 0x80 + lsls r2, 6 + movs r0, 0 + str r0, [sp] + movs r0, 0x3 + movs r3, 0 + bl copy_decompressed_tile_data_to_vram_autofree + ldr r1, =gUnknown_08DC2E6C + movs r0, 0x3 + movs r2, 0 + movs r3, 0 + bl CopyToBgTilemapBuffer + movs r0, 0 + movs r1, 0 + bl FillWindowPixelBuffer + movs r0, 0 + bl PutWindowTilemap + b _080BFB4E + .pool +_080BF910: + movs r0, 0xD + bl sub_80BFCF4 + movs r0, 0x2 + movs r1, 0xD + bl sub_80BFD7C + ldr r0, =0x02039b4c + ldr r0, [r0] + ldr r1, =0x0000064c + adds r0, r1 + ldrb r0, [r0] + lsls r0, 31 + lsrs r0, 31 + bl sub_80BC844 + b _080BFB4E + .pool +_080BF93C: + ldr r1, =gUnknown_085E8723 + add r0, sp, 0x4 + bl CopyString + ldr r0, =0x03005d90 + ldr r1, [r0] + add r0, sp, 0x4 + bl AppendString + movs r0, 0x1 + add r1, sp, 0x4 + movs r2, 0xF0 + bl GetStringCenterAlignXOffset + adds r1, r0, 0 + lsls r1, 24 + lsrs r1, 24 + add r0, sp, 0x4 + movs r2, 0x79 + bl sub_80BE8DC + ldr r1, =0x030022c0 + movs r0, 0x87 + lsls r0, 3 + adds r1, r0 + b _080BFB56 + .pool +_080BF97C: + bl sub_80A1A74 + b _080BFB4E +_080BF982: + ldr r0, =0x03005d90 + ldr r0, [r0] + ldrb r0, [r0, 0x8] + bl sub_806F000 + lsls r0, 16 + lsrs r0, 16 + movs r1, 0x98 + movs r2, 0x38 + movs r3, 0 + bl sub_80C0EF8 + lsls r0, 24 + lsrs r6, r0, 24 + ldr r0, =0x02020630 + lsls r4, r6, 4 + adds r4, r6 + lsls r4, 2 + adds r4, r0 + ldrb r1, [r4, 0x1] + movs r0, 0x4 + negs r0, r0 + ands r0, r1 + movs r1, 0x1 + orrs r0, r1 + strb r0, [r4, 0x1] + ldrb r1, [r4, 0x3] + movs r0, 0x3F + negs r0, r0 + ands r0, r1 + movs r1, 0x2 + orrs r0, r1 + strb r0, [r4, 0x3] + ldrb r1, [r4, 0x5] + movs r0, 0xD + negs r0, r0 + ands r0, r1 + strb r0, [r4, 0x5] + ldr r2, =gPokedexEntries + ldr r0, =0x02039b54 + ldr r1, [r0] + ldrh r0, [r1] + lsls r0, 5 + adds r0, r2 + ldrh r0, [r0, 0x1C] + strh r0, [r4, 0x26] + ldrh r0, [r1] + lsls r0, 5 + adds r0, r2 + ldrh r1, [r0, 0x1A] + str r1, [sp] + movs r0, 0x1 + movs r2, 0 + movs r3, 0 + bl SetSpriteTransformationMatrix + ldr r0, =gUnknown_0856E610 + ldrb r1, [r4, 0x5] + lsrs r1, 4 + adds r1, 0x10 + lsls r1, 4 + movs r2, 0x20 + bl gpu_pal_apply + ldr r1, =0x03005e00 + lsls r0, r7, 2 + adds r0, r7 + lsls r0, 3 + adds r0, r1 + strh r6, [r0, 0x12] + ldr r1, =0x030022c0 + movs r0, 0x87 + lsls r0, 3 + adds r1, r0 + b _080BFB56 + .pool +_080BFA34: + ldr r5, =0x02039b54 + ldr r0, [r5] + ldrh r0, [r0] + movs r1, 0x58 + movs r2, 0x38 + movs r3, 0x1 + bl sub_80C0E9C + lsls r0, 24 + lsrs r6, r0, 24 + ldr r0, =0x02020630 + lsls r4, r6, 4 + adds r4, r6 + lsls r4, 2 + adds r4, r0 + ldrb r1, [r4, 0x1] + movs r0, 0x4 + negs r0, r0 + ands r0, r1 + movs r1, 0x1 + orrs r0, r1 + strb r0, [r4, 0x1] + ldrb r1, [r4, 0x3] + movs r0, 0x3F + negs r0, r0 + ands r0, r1 + movs r1, 0x4 + orrs r0, r1 + strb r0, [r4, 0x3] + ldrb r1, [r4, 0x5] + movs r0, 0xD + negs r0, r0 + ands r0, r1 + strb r0, [r4, 0x5] + ldr r2, =gPokedexEntries + ldr r1, [r5] + ldrh r0, [r1] + lsls r0, 5 + adds r0, r2 + ldrh r0, [r0, 0x18] + strh r0, [r4, 0x26] + ldrh r0, [r1] + lsls r0, 5 + adds r0, r2 + ldrh r1, [r0, 0x16] + str r1, [sp] + movs r0, 0x2 + movs r2, 0 + movs r3, 0 + bl SetSpriteTransformationMatrix + ldr r0, =gUnknown_0856E610 + ldrb r1, [r4, 0x5] + lsrs r1, 4 + adds r1, 0x10 + lsls r1, 4 + movs r2, 0x20 + bl gpu_pal_apply + ldr r1, =0x03005e00 + lsls r0, r7, 2 + adds r0, r7 + lsls r0, 3 + adds r0, r1 + strh r6, [r0, 0x10] + movs r0, 0 + movs r1, 0x3 + bl CopyWindowToVram + movs r0, 0x1 + bl CopyBgTilemapBufferToVram + movs r0, 0x2 + bl CopyBgTilemapBufferToVram + movs r0, 0x3 + bl CopyBgTilemapBufferToVram + b _080BFB4E + .pool +_080BFAE8: + movs r0, 0x15 + negs r0, r0 + movs r1, 0 + str r1, [sp] + movs r2, 0x10 + movs r3, 0 + bl pal_fade_maybe + ldr r0, =0x030060b4 + ldr r0, [r0] + bl SetVBlankCallback + ldr r1, =0x030022c0 + movs r0, 0x87 + lsls r0, 3 + adds r1, r0 + b _080BFB56 + .pool +_080BFB14: + movs r0, 0x50 + movs r1, 0 + bl SetGpuReg + movs r0, 0x52 + movs r1, 0 + bl SetGpuReg + movs r0, 0x54 + movs r1, 0 + bl SetGpuReg + movs r1, 0x82 + lsls r1, 5 + movs r0, 0 + bl SetGpuReg + movs r0, 0 + bl HideBg + movs r0, 0x1 + bl ShowBg + movs r0, 0x2 + bl ShowBg + movs r0, 0x3 + bl ShowBg +_080BFB4E: + ldr r1, =0x030022c0 + movs r2, 0x87 + lsls r2, 3 + adds r1, r2 +_080BFB56: + ldrb r0, [r1] + adds r0, 0x1 + strb r0, [r1] + b _080BFB94 + .pool +_080BFB64: + ldr r0, =0x02037fd4 + ldrb r1, [r0, 0x7] + movs r0, 0x80 + ands r0, r1 + lsls r0, 24 + lsrs r2, r0, 24 + cmp r2, 0 + bne _080BFB94 + ldr r0, =0x02039b4c + ldr r0, [r0] + ldr r1, =0x0000064e + adds r0, r1 + strb r2, [r0] + movs r1, 0x87 + lsls r1, 3 + adds r0, r5, r1 + strb r2, [r0] + ldr r1, =0x03005e00 + lsls r0, r7, 2 + adds r0, r7 + lsls r0, 3 + adds r0, r1 + ldr r1, =sub_80BFBB0 + str r1, [r0] +_080BFB94: + add sp, 0x44 + pop {r4-r7} + pop {r0} + bx r0 + .pool + thumb_func_end sub_80BF82C + + thumb_func_start sub_80BFBB0 +sub_80BFBB0: @ 80BFBB0 + push {r4,r5,lr} + sub sp, 0x4 + lsls r0, 24 + lsrs r4, r0, 24 + adds r5, r4, 0 + ldr r0, =0x030022c0 + ldrh r1, [r0, 0x2E] + movs r0, 0x2 + ands r0, r1 + lsls r0, 16 + lsrs r2, r0, 16 + cmp r2, 0 + beq _080BFC10 + movs r0, 0x15 + negs r0, r0 + movs r1, 0 + str r1, [sp] + movs r2, 0 + movs r3, 0x10 + bl pal_fade_maybe + ldr r0, =0x02039b4c + ldr r0, [r0] + ldr r1, =0x0000064e + adds r0, r1 + movs r1, 0x1 + strb r1, [r0] + ldr r1, =0x03005e00 + lsls r0, r4, 2 + adds r0, r4 + lsls r0, 3 + adds r0, r1 + ldr r1, =sub_80BFC78 + str r1, [r0] + movs r0, 0x3 + bl audio_play + b _080BFC5C + .pool +_080BFC10: + movs r0, 0x20 + ands r0, r1 + cmp r0, 0 + bne _080BFC2C + movs r0, 0x80 + lsls r0, 2 + ands r0, r1 + cmp r0, 0 + beq _080BFC5C + ldr r0, =0x03005d90 + ldr r0, [r0] + ldrb r0, [r0, 0x13] + cmp r0, 0x1 + bne _080BFC5C +_080BFC2C: + movs r0, 0x15 + negs r0, r0 + str r2, [sp] + movs r1, 0 + movs r2, 0 + movs r3, 0x10 + bl pal_fade_maybe + ldr r0, =0x02039b4c + ldr r0, [r0] + ldr r1, =0x0000064e + adds r0, r1 + movs r1, 0x2 + strb r1, [r0] + ldr r1, =0x03005e00 + lsls r0, r5, 2 + adds r0, r5 + lsls r0, 3 + adds r0, r1 + ldr r1, =sub_80BFC78 + str r1, [r0] + movs r0, 0x6D + bl audio_play +_080BFC5C: + add sp, 0x4 + pop {r4,r5} + pop {r0} + bx r0 + .pool + thumb_func_end sub_80BFBB0 + + thumb_func_start sub_80BFC78 +sub_80BFC78: @ 80BFC78 + push {r4,lr} + lsls r0, 24 + lsrs r2, r0, 24 + ldr r0, =0x02037fd4 + ldrb r1, [r0, 0x7] + movs r0, 0x80 + ands r0, r1 + cmp r0, 0 + bne _080BFCD0 + ldr r1, =0x03005e00 + lsls r0, r2, 2 + adds r0, r2 + lsls r0, 3 + adds r4, r0, r1 + ldrh r0, [r4, 0x10] + bl sub_818D820 + ldrh r0, [r4, 0x12] + bl sub_818D8F0 + ldr r0, =0x02039b4c + ldr r0, [r0] + ldr r1, =0x0000064e + adds r0, r1 + ldrb r0, [r0] + cmp r0, 0x1 + beq _080BFCB2 + cmp r0, 0x2 + beq _080BFCCC +_080BFCB2: + ldr r0, =sub_80BEA24 + b _080BFCCE + .pool +_080BFCCC: + ldr r0, =sub_80BF250 +_080BFCCE: + str r0, [r4] +_080BFCD0: + pop {r4} + pop {r0} + bx r0 + .pool + thumb_func_end sub_80BFC78 + + thumb_func_start sub_80BFCDC +sub_80BFCDC: @ 80BFCDC + push {lr} + ldr r1, =gUnknown_08DC2F5C + movs r0, 0x1 + movs r2, 0 + movs r3, 0 + bl CopyToBgTilemapBuffer + pop {r0} + bx r0 + .pool + thumb_func_end sub_80BFCDC + + thumb_func_start sub_80BFCF4 +sub_80BFCF4: @ 80BFCF4 + push {lr} + ldr r1, =gUnknown_08DC2FEC + movs r0, 0x1 + movs r2, 0 + movs r3, 0 + bl CopyToBgTilemapBuffer + pop {r0} + bx r0 + .pool + thumb_func_end sub_80BFCF4 + + thumb_func_start sub_80BFD0C +sub_80BFD0C: @ 80BFD0C + push {r4-r7,lr} + mov r7, r8 + push {r7} + lsls r0, 24 + lsrs r0, 24 + mov r8, r0 + movs r0, 0x1 + bl GetBgTilemapBuffer + adds r7, r0, 0 + movs r1, 0 +_080BFD22: + lsls r0, r1, 3 + subs r0, r1 + adds r0, 0x1 + lsls r0, 24 + lsrs r5, r0, 24 + movs r3, 0x80 + lsls r3, 7 + cmp r1, r8 + bne _080BFD38 + movs r3, 0x80 + lsls r3, 6 +_080BFD38: + movs r2, 0 + adds r6, r1, 0x1 + ldr r4, =0x00000fff +_080BFD3E: + adds r1, r5, r2 + lsls r1, 1 + adds r1, r7 + ldrh r0, [r1] + ands r0, r4 + orrs r0, r3 + strh r0, [r1] + adds r1, 0x40 + ldrh r0, [r1] + ands r0, r4 + orrs r0, r3 + strh r0, [r1] + adds r0, r2, 0x1 + lsls r0, 24 + lsrs r2, r0, 24 + cmp r2, 0x6 + bls _080BFD3E + lsls r0, r6, 24 + lsrs r1, r0, 24 + cmp r1, 0x3 + bls _080BFD22 + movs r0, 0x1 + bl CopyBgTilemapBufferToVram + pop {r3} + mov r8, r3 + pop {r4-r7} + pop {r0} + bx r0 + .pool + thumb_func_end sub_80BFD0C + + thumb_func_start sub_80BFD7C +sub_80BFD7C: @ 80BFD7C + push {r4-r7,lr} + mov r7, r8 + push {r7} + lsls r0, 24 + lsrs r0, 24 + mov r8, r0 + movs r0, 0x1 + bl GetBgTilemapBuffer + adds r7, r0, 0 + movs r1, 0 +_080BFD92: + lsls r0, r1, 3 + subs r0, r1 + adds r0, 0x1 + lsls r0, 24 + lsrs r6, r0, 24 + cmp r1, r8 + beq _080BFDA4 + cmp r1, 0x3 + bne _080BFDAA +_080BFDA4: + movs r3, 0x80 + lsls r3, 6 + b _080BFDAE +_080BFDAA: + movs r3, 0x80 + lsls r3, 7 +_080BFDAE: + movs r2, 0 + adds r5, r1, 0x1 + ldr r4, =0x00000fff +_080BFDB4: + adds r1, r6, r2 + lsls r1, 1 + adds r1, r7 + ldrh r0, [r1] + ands r0, r4 + orrs r0, r3 + strh r0, [r1] + adds r1, 0x40 + ldrh r0, [r1] + ands r0, r4 + orrs r0, r3 + strh r0, [r1] + adds r0, r2, 0x1 + lsls r0, 24 + lsrs r2, r0, 24 + cmp r2, 0x6 + bls _080BFDB4 + lsls r0, r5, 24 + lsrs r1, r0, 24 + cmp r1, 0x3 + bls _080BFD92 + movs r0, 0x1 + bl CopyBgTilemapBufferToVram + pop {r3} + mov r8, r3 + pop {r4-r7} + pop {r0} + bx r0 + .pool + thumb_func_end sub_80BFD7C + + thumb_func_start sub_80BFDF4 +sub_80BFDF4: @ 80BFDF4 + push {r4-r6,lr} + adds r4, r0, 0 + adds r5, r1, 0 + adds r6, r2, 0 + lsls r4, 16 + lsrs r4, 16 + ldr r0, =sub_80BFE38 + movs r1, 0 + bl CreateTask + lsls r0, 24 + lsrs r0, 24 + ldr r2, =0x03005e00 + lsls r1, r0, 2 + adds r1, r0 + lsls r1, 3 + adds r1, r2 + movs r2, 0 + strh r2, [r1, 0x8] + strh r4, [r1, 0xA] + strh r5, [r1, 0x20] + lsrs r5, 16 + strh r5, [r1, 0x22] + strh r6, [r1, 0x24] + lsrs r6, 16 + strh r6, [r1, 0x26] + pop {r4-r6} + pop {r1} + bx r1 + .pool + thumb_func_end sub_80BFDF4 + + thumb_func_start sub_80BFE38 +sub_80BFE38: @ 80BFE38 + push {r4-r6,lr} + sub sp, 0x4 + lsls r0, 24 + lsrs r5, r0, 24 + ldr r1, =0x03005e00 + lsls r0, r5, 2 + adds r0, r5 + lsls r0, 3 + adds r0, r1 + ldrh r4, [r0, 0xA] + movs r2, 0x8 + ldrsh r0, [r0, r2] + adds r2, r1, 0 + cmp r0, 0x6 + bhi _080BFE84 + lsls r0, 2 + ldr r1, =_080BFE68 + adds r0, r1 + ldr r0, [r0] + mov pc, r0 + .pool + .align 2, 0 +_080BFE68: + .4byte _080BFE84 + .4byte _080BFF0C + .4byte _080BFF78 + .4byte _080BFF82 + .4byte _080BFFA8 + .4byte _080C0000 + .4byte _080C0044 +_080BFE84: + ldr r0, =0x02037fd4 + ldrb r1, [r0, 0x7] + movs r0, 0x80 + ands r0, r1 + cmp r0, 0 + beq _080BFE92 + b _080C0074 +_080BFE92: + ldr r1, =0x030060b4 + ldr r0, =0x030022c0 + ldr r0, [r0, 0xC] + str r0, [r1] + movs r0, 0 + bl SetVBlankCallback + movs r0, 0x80 + lsls r0, 1 + bl sub_80C09B0 + movs r0, 0 + bl ResetBgsAndClearDma3BusyFlags + ldr r1, =gUnknown_0856E668 + movs r0, 0 + movs r2, 0x2 + bl InitBgsFromTemplates + movs r4, 0x80 + lsls r4, 4 + adds r0, r4, 0 + bl AllocZeroed + adds r1, r0, 0 + movs r0, 0x3 + bl SetBgTilemapBuffer + adds r0, r4, 0 + bl AllocZeroed + adds r1, r0, 0 + movs r0, 0x2 + bl SetBgTilemapBuffer + ldr r0, =gUnknown_0856E670 + bl InitWindows + bl DeactivateAllTextPrinters + ldr r1, =0x03005e00 + lsls r0, r5, 2 + adds r0, r5 + lsls r0, 3 + adds r0, r1 + movs r1, 0x1 + strh r1, [r0, 0x8] + b _080C0074 + .pool +_080BFF0C: + ldr r1, =gUnknown_08DC1934 + movs r2, 0x80 + lsls r2, 6 + movs r0, 0 + str r0, [sp] + movs r0, 0x3 + movs r3, 0 + bl copy_decompressed_tile_data_to_vram_autofree + ldr r1, =gUnknown_08DC3080 + movs r0, 0x3 + movs r2, 0 + movs r3, 0 + bl CopyToBgTilemapBuffer + movs r0, 0 + movs r1, 0 + bl FillWindowPixelBuffer + movs r0, 0 + bl PutWindowTilemap + movs r0, 0x1 + bl PutWindowTilemap + ldr r0, =0x03005e00 + lsls r4, r5, 2 + adds r4, r5 + lsls r4, 3 + adds r4, r0 + ldrh r1, [r4, 0xA] + movs r0, 0x1 + bl sub_80C0D30 + movs r0, 0x1 + movs r1, 0x2 + bl CopyWindowToVram + bl sub_80A1A74 + movs r0, 0 + bl sub_80BC844 + ldrh r0, [r4, 0x8] + adds r0, 0x1 + strh r0, [r4, 0x8] + b _080C0074 + .pool +_080BFF78: + lsls r0, r5, 2 + adds r0, r5 + lsls r0, 3 + adds r0, r2 + b _080C0038 +_080BFF82: + bl sub_809D42C + adds r1, r0, 0 + adds r0, r4, 0 + movs r2, 0x1 + movs r3, 0x1 + bl sub_80C020C + movs r0, 0 + movs r1, 0x3 + bl CopyWindowToVram + movs r0, 0x2 + bl CopyBgTilemapBufferToVram + movs r0, 0x3 + bl CopyBgTilemapBufferToVram + b _080C002E +_080BFFA8: + adds r0, r4, 0 + movs r1, 0x30 + movs r2, 0x38 + movs r3, 0 + bl sub_80C0E9C + adds r4, r0, 0 + lsls r4, 24 + lsrs r4, 24 + ldr r0, =0x02020630 + lsls r1, r4, 4 + adds r1, r4 + lsls r1, 2 + adds r1, r0 + ldrb r2, [r1, 0x5] + movs r0, 0xD + negs r0, r0 + ands r0, r2 + strb r0, [r1, 0x5] + movs r0, 0x1 + negs r0, r0 + movs r1, 0 + str r1, [sp] + movs r2, 0x10 + movs r3, 0 + bl pal_fade_maybe + ldr r0, =0x030060b4 + ldr r0, [r0] + bl SetVBlankCallback + ldr r1, =0x03005e00 + lsls r0, r5, 2 + adds r0, r5 + lsls r0, 3 + adds r0, r1 + strh r4, [r0, 0xE] + b _080C0038 + .pool +_080C0000: + movs r0, 0x50 + movs r1, 0 + bl SetGpuReg + movs r0, 0x52 + movs r1, 0 + bl SetGpuReg + movs r0, 0x54 + movs r1, 0 + bl SetGpuReg + movs r1, 0x82 + lsls r1, 5 + movs r0, 0 + bl SetGpuReg + movs r0, 0x2 + bl ShowBg + movs r0, 0x3 + bl ShowBg +_080C002E: + ldr r1, =0x03005e00 + lsls r0, r5, 2 + adds r0, r5 + lsls r0, 3 + adds r0, r1 +_080C0038: + ldrh r1, [r0, 0x8] + adds r1, 0x1 + strh r1, [r0, 0x8] + b _080C0074 + .pool +_080C0044: + ldr r0, =0x02037fd4 + ldrb r1, [r0, 0x7] + movs r0, 0x80 + ands r0, r1 + lsls r0, 24 + lsrs r6, r0, 24 + cmp r6, 0 + bne _080C0074 + adds r0, r4, 0 + bl NationalPokedexNumToSpecies + lsls r0, 16 + lsrs r0, 16 + movs r1, 0 + bl cry_related + ldr r1, =0x03005e00 + lsls r0, r5, 2 + adds r0, r5 + lsls r0, 3 + adds r0, r1 + strh r6, [r0, 0xC] + ldr r1, =sub_80C0088 + str r1, [r0] +_080C0074: + add sp, 0x4 + pop {r4-r6} + pop {r0} + bx r0 + .pool + thumb_func_end sub_80BFE38 + + thumb_func_start sub_80C0088 +sub_80C0088: @ 80C0088 + push {r4,lr} + sub sp, 0x4 + lsls r0, 24 + lsrs r4, r0, 24 + ldr r0, =0x030022c0 + ldrh r1, [r0, 0x2E] + movs r0, 0x3 + ands r0, r1 + cmp r0, 0 + beq _080C00E8 + ldr r0, =0x0000ffff + movs r1, 0 + str r1, [sp] + movs r2, 0 + movs r3, 0x10 + bl pal_fade_maybe + ldr r3, =0x02020630 + ldr r0, =0x03005e00 + lsls r1, r4, 2 + adds r1, r4 + lsls r1, 3 + adds r1, r0 + movs r0, 0xE + ldrsh r2, [r1, r0] + lsls r0, r2, 4 + adds r0, r2 + lsls r0, 2 + adds r3, 0x1C + adds r0, r3 + ldr r2, =sub_80C01CC + str r2, [r0] + ldr r0, =blockset_load_palette_to_gpu + str r0, [r1] + b _080C011E + .pool +_080C00E8: + ldr r1, =0x03005e00 + lsls r0, r4, 2 + adds r0, r4 + lsls r0, 3 + adds r0, r1 + ldrh r1, [r0, 0xC] + adds r1, 0x1 + strh r1, [r0, 0xC] + movs r0, 0x10 + ands r1, r0 + cmp r1, 0 + beq _080C0114 + ldr r0, =gUnknown_08DC16F6 + movs r1, 0x31 + movs r2, 0xE + bl gpu_pal_apply + b _080C011E + .pool +_080C0114: + ldr r0, =gUnknown_08DC1756 + movs r1, 0x31 + movs r2, 0xE + bl gpu_pal_apply +_080C011E: + add sp, 0x4 + pop {r4} + pop {r0} + bx r0 + .pool + thumb_func_end sub_80C0088 + + thumb_func_start blockset_load_palette_to_gpu +blockset_load_palette_to_gpu: @ 80C012C + push {r4-r6,lr} + lsls r0, 24 + lsrs r6, r0, 24 + ldr r0, =0x02037fd4 + ldrb r1, [r0, 0x7] + movs r0, 0x80 + ands r0, r1 + cmp r0, 0 + bne _080C01BA + movs r1, 0x82 + lsls r1, 5 + movs r0, 0 + bl SetGpuReg + bl FreeAllWindowBuffers + movs r0, 0x2 + bl GetBgTilemapBuffer + cmp r0, 0 + beq _080C015A + bl Free +_080C015A: + movs r0, 0x3 + bl GetBgTilemapBuffer + cmp r0, 0 + beq _080C0168 + bl Free +_080C0168: + ldr r0, =0x03005e00 + lsls r4, r6, 2 + adds r4, r6 + lsls r4, 3 + adds r4, r0 + ldrh r0, [r4, 0xA] + bl NationalPokedexNumToSpecies + lsls r0, 16 + lsrs r0, 16 + ldrh r1, [r4, 0x22] + lsls r1, 16 + ldrh r2, [r4, 0x20] + orrs r1, r2 + ldrh r2, [r4, 0x26] + lsls r2, 16 + ldrh r3, [r4, 0x24] + orrs r2, r3 + ldr r5, =0x02020630 + movs r3, 0xE + ldrsh r4, [r4, r3] + lsls r3, r4, 4 + adds r3, r4 + lsls r3, 2 + adds r3, r5 + ldrb r4, [r3, 0x5] + lsrs r4, 4 + bl species_and_otid_get_pal + lsls r4, 4 + movs r2, 0x80 + lsls r2, 1 + adds r1, r2, 0 + orrs r4, r1 + adds r1, r4, 0 + movs r2, 0x20 + bl decompress_palette + adds r0, r6, 0 + bl DestroyTask +_080C01BA: + pop {r4-r6} + pop {r0} + bx r0 + .pool + thumb_func_end blockset_load_palette_to_gpu + + thumb_func_start sub_80C01CC +sub_80C01CC: @ 80C01CC + push {lr} + adds r1, r0, 0 + ldrh r2, [r1, 0x20] + movs r3, 0x20 + ldrsh r0, [r1, r3] + cmp r0, 0x77 + bgt _080C01DE + adds r0, r2, 0x2 + strh r0, [r1, 0x20] +_080C01DE: + ldrh r2, [r1, 0x20] + movs r3, 0x20 + ldrsh r0, [r1, r3] + cmp r0, 0x78 + ble _080C01EC + subs r0, r2, 0x2 + strh r0, [r1, 0x20] +_080C01EC: + ldrh r2, [r1, 0x22] + movs r3, 0x22 + ldrsh r0, [r1, r3] + cmp r0, 0x4F + bgt _080C01FA + adds r0, r2, 0x1 + strh r0, [r1, 0x22] +_080C01FA: + ldrh r2, [r1, 0x22] + movs r3, 0x22 + ldrsh r0, [r1, r3] + cmp r0, 0x50 + ble _080C0208 + subs r0, r2, 0x1 + strh r0, [r1, 0x22] +_080C0208: + pop {r0} + bx r0 + thumb_func_end sub_80C01CC + + thumb_func_start sub_80C020C +sub_80C020C: @ 80C020C + push {r4-r7,lr} + sub sp, 0x30 + adds r6, r0, 0 + adds r5, r1, 0 + adds r7, r2, 0 + cmp r3, 0 + beq _080C0234 + ldr r4, =gUnknown_085E8735 + movs r0, 0x1 + adds r1, r4, 0 + movs r2, 0xF0 + bl GetStringCenterAlignXOffset + adds r1, r0, 0 + lsls r1, 24 + lsrs r1, 24 + adds r0, r4, 0 + movs r2, 0 + bl sub_80BE8DC +_080C0234: + cmp r5, 0 + bne _080C024C + lsls r4, r6, 16 + lsrs r0, r4, 16 + bl NationalToHoennOrder + lsls r0, 16 + lsrs r5, r0, 16 + b _080C0250 + .pool +_080C024C: + adds r5, r6, 0 + lsls r4, r6, 16 +_080C0250: + ldr r1, =gUnknown_085E8D4F + mov r0, sp + bl CopyString + adds r1, r5, 0 + movs r2, 0x2 + movs r3, 0x3 + bl ConvertIntToDecimalString + mov r0, sp + movs r1, 0x60 + movs r2, 0x19 + bl sub_80BE8DC + lsrs r0, r4, 16 + bl NationalPokedexNumToSpecies + lsls r0, 16 + lsrs r1, r0, 16 + cmp r1, 0 + beq _080C028C + movs r0, 0xB + muls r1, r0 + ldr r0, =gSpeciesNames + adds r0, r1, r0 + b _080C028E + .pool +_080C028C: + ldr r0, =gUnknown_0856E688 +_080C028E: + movs r1, 0x84 + movs r2, 0x19 + bl sub_80BE8DC + cmp r7, 0 + beq _080C02AC + add r4, sp, 0x10 + adds r0, r6, 0 + adds r1, r4, 0 + bl sub_81DB468 + adds r0, r4, 0 + b _080C02AE + .pool +_080C02AC: + ldr r0, =gUnknown_085E86B8 +_080C02AE: + movs r1, 0x64 + movs r2, 0x29 + bl sub_80BE8DC + ldr r0, =gUnknown_085E8755 + movs r1, 0x60 + movs r2, 0x39 + bl sub_80BE8DC + ldr r0, =gUnknown_085E8758 + movs r1, 0x60 + movs r2, 0x49 + bl sub_80BE8DC + cmp r7, 0 + beq _080C02FC + ldr r0, =gPokedexEntries + lsls r4, r6, 5 + adds r4, r0 + ldrh r0, [r4, 0xC] + movs r1, 0x81 + movs r2, 0x39 + bl sub_80C0354 + ldrh r0, [r4, 0xE] + movs r1, 0x81 + movs r2, 0x49 + bl sub_80C0460 + b _080C0310 + .pool +_080C02FC: + ldr r0, =gUnknown_085E86C6 + movs r1, 0x81 + movs r2, 0x39 + bl sub_80BE8DC + ldr r0, =gUnknown_085E86D0 + movs r1, 0x81 + movs r2, 0x49 + bl sub_80BE8DC +_080C0310: + cmp r7, 0 + beq _080C032C + ldr r0, =gPokedexEntries + lsls r1, r6, 5 + adds r0, 0x10 + adds r1, r0 + ldr r4, [r1] + b _080C032E + .pool +_080C032C: + ldr r4, =gUnknown_0855D30C +_080C032E: + movs r0, 0x1 + adds r1, r4, 0 + movs r2, 0xF0 + bl GetStringCenterAlignXOffset + adds r1, r0, 0 + lsls r1, 24 + lsrs r1, 24 + adds r0, r4, 0 + movs r2, 0x5F + bl sub_80BE8DC + add sp, 0x30 + pop {r4-r7} + pop {r0} + bx r0 + .pool + thumb_func_end sub_80C020C + + thumb_func_start sub_80C0354 +sub_80C0354: @ 80C0354 + push {r4-r7,lr} + mov r7, r9 + mov r6, r8 + push {r6,r7} + sub sp, 0x10 + lsls r0, 16 + lsrs r0, 16 + lsls r1, 24 + lsrs r1, 24 + mov r9, r1 + lsls r2, 24 + lsrs r2, 24 + mov r8, r2 + ldr r1, =0x00002710 + muls r0, r1 + movs r1, 0xFE + bl __divsi3 + adds r7, r0, 0 + movs r1, 0xA + bl __umodsi3 + cmp r0, 0x4 + bls _080C0386 + adds r7, 0xA +_080C0386: + adds r0, r7, 0 + movs r1, 0x78 + bl __udivsi3 + adds r6, r0, 0 + lsls r0, r6, 4 + subs r0, r6 + lsls r0, 3 + subs r0, r7, r0 + movs r1, 0xA + bl __udivsi3 + adds r7, r0, 0 + mov r1, sp + movs r0, 0xFC + strb r0, [r1] + adds r1, 0x1 + movs r0, 0x13 + strb r0, [r1] + adds r0, r6, 0 + movs r1, 0xA + bl __udivsi3 + adds r2, r0, 0 + cmp r2, 0 + bne _080C03D4 + mov r1, sp + adds r1, 0x2 + movs r0, 0x12 + strb r0, [r1] + movs r5, 0x4 + adds r1, 0x1 + adds r0, r6, 0 + adds r0, 0xA1 + strb r0, [r1] + b _080C03F4 + .pool +_080C03D4: + mov r1, sp + adds r1, 0x2 + movs r0, 0xC + strb r0, [r1] + adds r1, 0x1 + adds r0, r2, 0 + adds r0, 0xA1 + strb r0, [r1] + movs r5, 0x5 + add r4, sp, 0x4 + adds r0, r6, 0 + movs r1, 0xA + bl __umodsi3 + adds r0, 0xA1 + strb r0, [r4] +_080C03F4: + adds r1, r5, 0 + adds r0, r1, 0x1 + lsls r0, 24 + lsrs r5, r0, 24 + adds r2, r5, 0 + add r1, sp + movs r0, 0xB4 + strb r0, [r1] + adds r0, r2, 0x1 + lsls r0, 24 + lsrs r5, r0, 24 + adds r6, r5, 0 + mov r0, sp + adds r4, r0, r2 + adds r0, r7, 0 + movs r1, 0xA + bl __udivsi3 + adds r0, 0xA1 + strb r0, [r4] + adds r0, r6, 0x1 + lsls r0, 24 + lsrs r5, r0, 24 + mov r1, sp + adds r4, r1, r6 + adds r0, r7, 0 + movs r1, 0xA + bl __umodsi3 + adds r0, 0xA1 + strb r0, [r4] + adds r0, r5, 0x1 + lsls r0, 24 + lsrs r0, 24 + mov r1, sp + adds r2, r1, r5 + movs r1, 0xB2 + strb r1, [r2] + mov r2, sp + adds r1, r2, r0 + movs r0, 0xFF + strb r0, [r1] + mov r0, sp + mov r1, r9 + mov r2, r8 + bl sub_80BE8DC + add sp, 0x10 + pop {r3,r4} + mov r8, r3 + mov r9, r4 + pop {r4-r7} + pop {r0} + bx r0 + thumb_func_end sub_80C0354 + + thumb_func_start sub_80C0460 +sub_80C0460: @ 80C0460 + push {r4-r7,lr} + mov r7, r10 + mov r6, r9 + mov r5, r8 + push {r5-r7} + sub sp, 0x14 + lsls r0, 16 + lsrs r0, 16 + lsls r1, 24 + lsrs r1, 24 + mov r10, r1 + lsls r2, 24 + lsrs r2, 24 + str r2, [sp, 0x10] + ldr r5, =0x000186a0 + muls r0, r5 + ldr r1, =0x000011b8 + bl __divsi3 + adds r7, r0, 0 + movs r1, 0xA + bl __umodsi3 + cmp r0, 0x4 + bls _080C0494 + adds r7, 0xA +_080C0494: + movs r0, 0 + mov r8, r0 + mov r4, sp + adds r0, r7, 0 + adds r1, r5, 0 + bl __udivsi3 + adds r0, 0xA1 + strb r0, [r4] + lsls r0, 24 + lsrs r0, 24 + cmp r0, 0xA1 + bne _080C04C0 + movs r6, 0x1 + mov r1, sp + movs r0, 0x77 + strb r0, [r1] + b _080C04C6 + .pool +_080C04C0: + movs r1, 0x1 + mov r8, r1 + movs r6, 0x1 +_080C04C6: + ldr r1, =0x000186a0 + adds r0, r7, 0 + bl __umodsi3 + adds r7, r0, 0 + mov r4, sp + adds r4, 0x1 + ldr r1, =0x00002710 + bl __udivsi3 + adds r0, 0xA1 + strb r0, [r4] + lsls r0, 24 + lsrs r0, 24 + cmp r0, 0xA1 + bne _080C0504 + mov r2, r8 + cmp r2, 0 + bne _080C0504 + adds r1, r6, 0 + adds r0, r1, 0x1 + lsls r0, 24 + lsrs r6, r0, 24 + add r1, sp + movs r0, 0x77 + strb r0, [r1] + b _080C050E + .pool +_080C0504: + movs r3, 0x1 + mov r8, r3 + adds r0, r6, 0x1 + lsls r0, 24 + lsrs r6, r0, 24 +_080C050E: + ldr r1, =0x00002710 + adds r0, r7, 0 + bl __umodsi3 + adds r7, r0, 0 + mov r0, sp + adds r4, r0, r6 + movs r1, 0xFA + lsls r1, 2 + adds r0, r7, 0 + bl __udivsi3 + adds r0, 0xA1 + strb r0, [r4] + lsls r0, 24 + lsrs r0, 24 + cmp r0, 0xA1 + bne _080C054C + mov r1, r8 + cmp r1, 0 + bne _080C054C + adds r1, r6, 0 + adds r0, r1, 0x1 + lsls r0, 24 + lsrs r6, r0, 24 + add r1, sp + movs r0, 0x77 + strb r0, [r1] + b _080C0552 + .pool +_080C054C: + adds r0, r6, 0x1 + lsls r0, 24 + lsrs r6, r0, 24 +_080C0552: + movs r1, 0xFA + lsls r1, 2 + adds r0, r7, 0 + bl __umodsi3 + adds r7, r0, 0 + adds r1, r6, 0 + adds r0, r1, 0x1 + lsls r0, 24 + lsrs r6, r0, 24 + adds r5, r6, 0 + mov r2, sp + adds r4, r2, r1 + adds r0, r7, 0 + movs r1, 0x64 + bl __udivsi3 + adds r0, 0xA1 + movs r3, 0 + mov r9, r3 + strb r0, [r4] + adds r0, r7, 0 + movs r1, 0x64 + bl __umodsi3 + adds r7, r0, 0 + adds r0, r5, 0x1 + lsls r0, 24 + lsrs r6, r0, 24 + adds r1, r6, 0 + mov r2, sp + adds r0, r2, r5 + movs r3, 0xAD + mov r8, r3 + mov r2, r8 + strb r2, [r0] + adds r0, r1, 0x1 + lsls r0, 24 + lsrs r6, r0, 24 + adds r5, r6, 0 + mov r3, sp + adds r4, r3, r1 + adds r0, r7, 0 + movs r1, 0xA + bl __udivsi3 + adds r0, 0xA1 + strb r0, [r4] + adds r0, r5, 0x1 + lsls r0, 24 + lsrs r6, r0, 24 + adds r1, r6, 0 + mov r2, sp + adds r0, r2, r5 + mov r3, r9 + strb r3, [r0] + adds r0, r1, 0x1 + lsls r0, 24 + lsrs r6, r0, 24 + adds r2, r6, 0 + add r1, sp + movs r0, 0xE0 + strb r0, [r1] + adds r0, r2, 0x1 + lsls r0, 24 + lsrs r6, r0, 24 + adds r3, r6, 0 + mov r0, sp + adds r1, r0, r2 + movs r0, 0xD6 + strb r0, [r1] + adds r0, r3, 0x1 + lsls r0, 24 + lsrs r6, r0, 24 + adds r2, r6, 0 + mov r0, sp + adds r1, r0, r3 + movs r0, 0xE7 + strb r0, [r1] + adds r0, r2, 0x1 + lsls r0, 24 + lsrs r0, 24 + mov r3, sp + adds r1, r3, r2 + mov r2, r8 + strb r2, [r1] + adds r1, r3, r0 + movs r0, 0xFF + strb r0, [r1] + mov r0, sp + mov r1, r10 + ldr r2, [sp, 0x10] + bl sub_80BE8DC + add sp, 0x14 + pop {r3-r5} + mov r8, r3 + mov r9, r4 + mov r10, r5 + pop {r4-r7} + pop {r0} + bx r0 + thumb_func_end sub_80C0460 + + thumb_func_start sub_80C0620 +sub_80C0620: @ 80C0620 + lsls r0, 16 + lsrs r0, 11 + ldr r1, =gPokedexEntries + adds r0, r1 + bx lr + .pool + thumb_func_end sub_80C0620 + + thumb_func_start sub_80C0630 +sub_80C0630: @ 80C0630 + push {lr} + lsls r0, 16 + lsrs r2, r0, 16 + lsls r1, 24 + lsrs r1, 24 + cmp r1, 0 + beq _080C0646 + cmp r1, 0x1 + beq _080C0654 + movs r0, 0x1 + b _080C065C +_080C0646: + ldr r0, =gPokedexEntries + lsls r1, r2, 5 + adds r1, r0 + ldrh r0, [r1, 0xC] + b _080C065C + .pool +_080C0654: + ldr r0, =gPokedexEntries + lsls r1, r2, 5 + adds r1, r0 + ldrh r0, [r1, 0xE] +_080C065C: + pop {r1} + bx r1 + .pool + thumb_func_end sub_80C0630 + + thumb_func_start pokedex_flag_operation +@ u8 pokedex_flag_operation(u16 nationalPokedexNum, u8 op) +pokedex_flag_operation: @ 80C0664 + push {r4-r7,lr} + lsls r0, 16 + lsls r1, 24 + lsrs r2, r1, 24 + adds r3, r2, 0 + ldr r1, =0xffff0000 + adds r0, r1 + lsrs r1, r0, 16 + lsrs r0, 19 + lsls r0, 24 + lsrs r4, r0, 24 + movs r0, 0x7 + ands r1, r0 + movs r0, 0x80 + lsls r0, 17 + lsls r0, r1 + lsrs r5, r0, 24 + movs r6, 0 + cmp r2, 0x1 + beq _080C06FC + cmp r2, 0x1 + bgt _080C069C + cmp r2, 0 + beq _080C06AA + b _080C07E8 + .pool +_080C069C: + cmp r3, 0x2 + bne _080C06A2 + b _080C079C +_080C06A2: + cmp r3, 0x3 + bne _080C06A8 + b _080C07D8 +_080C06A8: + b _080C07E8 +_080C06AA: + ldr r1, =0x03005d90 + ldr r0, [r1] + adds r0, 0x5C + adds r0, r4 + ldrb r2, [r0] + ands r2, r5 + adds r7, r1, 0 + cmp r2, 0 + bne _080C06BE + b _080C07E8 +_080C06BE: + ldr r0, =0x03005d8c + ldr r3, [r0] + ldr r6, =0x00000988 + adds r1, r3, r6 + adds r1, r4 + ldrb r1, [r1] + ands r1, r5 + adds r6, r0, 0 + cmp r2, r1 + bne _080C06E0 + ldr r1, =0x00003b24 + adds r0, r3, r1 + adds r0, r4 + ldrb r0, [r0] + ands r0, r5 + cmp r2, r0 + beq _080C073E +_080C06E0: + ldr r1, [r7] + adds r1, 0x5C + adds r1, r4 + mvns r3, r5 + b _080C076A + .pool +_080C06FC: + ldr r1, =0x03005d90 + ldr r3, [r1] + adds r0, r3, 0 + adds r0, 0x28 + adds r0, r4 + ldrb r2, [r0] + ands r2, r5 + adds r7, r1, 0 + cmp r2, 0 + beq _080C07E8 + adds r0, r3, 0 + adds r0, 0x5C + adds r0, r4 + ldrb r0, [r0] + ands r0, r5 + ldr r6, =0x03005d8c + cmp r2, r0 + bne _080C0754 + ldr r1, [r6] + ldr r3, =0x00000988 + adds r0, r1, r3 + adds r0, r4 + ldrb r0, [r0] + ands r0, r5 + cmp r2, r0 + bne _080C0754 + ldr r3, =0x00003b24 + adds r0, r1, r3 + adds r0, r4 + ldrb r0, [r0] + ands r0, r5 + cmp r2, r0 + bne _080C0754 +_080C073E: + movs r6, 0x1 + b _080C07E8 + .pool +_080C0754: + ldr r1, [r7] + adds r1, 0x28 + adds r1, r4 + mvns r3, r5 + ldrb r2, [r1] + adds r0, r3, 0 + ands r0, r2 + strb r0, [r1] + ldr r1, [r7] + adds r1, 0x5C + adds r1, r4 +_080C076A: + ldrb r2, [r1] + adds r0, r3, 0 + ands r0, r2 + strb r0, [r1] + ldr r1, [r6] + ldr r0, =0x00000988 + adds r1, r0 + adds r1, r4 + ldrb r2, [r1] + adds r0, r3, 0 + ands r0, r2 + strb r0, [r1] + ldr r0, [r6] + ldr r1, =0x00003b24 + adds r0, r1 + adds r0, r4 + ldrb r1, [r0] + ands r3, r1 + strb r3, [r0] + movs r6, 0 + b _080C07E8 + .pool +_080C079C: + ldr r0, =0x03005d90 + ldr r1, [r0] + adds r1, 0x5C + adds r1, r4 + ldrb r2, [r1] + adds r0, r5, 0 + orrs r0, r2 + strb r0, [r1] + ldr r3, =0x03005d8c + ldr r1, [r3] + ldr r0, =0x00000988 + adds r1, r0 + adds r1, r4 + ldrb r2, [r1] + adds r0, r5, 0 + orrs r0, r2 + strb r0, [r1] + ldr r1, [r3] + ldr r3, =0x00003b24 + adds r1, r3 + b _080C07DE + .pool +_080C07D8: + ldr r0, =0x03005d90 + ldr r1, [r0] + adds r1, 0x28 +_080C07DE: + adds r1, r4 + ldrb r2, [r1] + adds r0, r5, 0 + orrs r0, r2 + strb r0, [r1] +_080C07E8: + adds r0, r6, 0 + pop {r4-r7} + pop {r1} + bx r1 + .pool + thumb_func_end pokedex_flag_operation + + thumb_func_start pokedex_count +pokedex_count: @ 80C07F4 + push {r4-r7,lr} + lsls r0, 24 + lsrs r6, r0, 24 + movs r5, 0 + movs r0, 0 + ldr r7, =0x00000181 +_080C0800: + cmp r6, 0 + beq _080C0810 + cmp r6, 0x1 + beq _080C081A + adds r4, r0, 0x1 + b _080C0832 + .pool +_080C0810: + adds r4, r0, 0x1 + lsls r0, r4, 16 + lsrs r0, 16 + movs r1, 0 + b _080C0822 +_080C081A: + adds r4, r0, 0x1 + lsls r0, r4, 16 + lsrs r0, 16 + movs r1, 0x1 +_080C0822: + bl pokedex_flag_operation + lsls r0, 24 + cmp r0, 0 + beq _080C0832 + adds r0, r5, 0x1 + lsls r0, 16 + lsrs r5, r0, 16 +_080C0832: + lsls r0, r4, 16 + lsrs r0, 16 + cmp r0, r7 + bls _080C0800 + adds r0, r5, 0 + pop {r4-r7} + pop {r1} + bx r1 + thumb_func_end pokedex_count + + thumb_func_start sub_80C0844 +sub_80C0844: @ 80C0844 + push {r4-r6,lr} + lsls r0, 24 + lsrs r6, r0, 24 + movs r5, 0 + movs r0, 0 +_080C084E: + cmp r6, 0 + beq _080C085A + cmp r6, 0x1 + beq _080C086C + adds r4, r0, 0x1 + b _080C088C +_080C085A: + adds r4, r0, 0x1 + lsls r0, r4, 16 + lsrs r0, 16 + bl HoennToNationalOrder + lsls r0, 16 + lsrs r0, 16 + movs r1, 0 + b _080C087C +_080C086C: + adds r4, r0, 0x1 + lsls r0, r4, 16 + lsrs r0, 16 + bl HoennToNationalOrder + lsls r0, 16 + lsrs r0, 16 + movs r1, 0x1 +_080C087C: + bl pokedex_flag_operation + lsls r0, 24 + cmp r0, 0 + beq _080C088C + adds r0, r5, 0x1 + lsls r0, 16 + lsrs r5, r0, 16 +_080C088C: + lsls r0, r4, 16 + lsrs r0, 16 + cmp r0, 0xC9 + bls _080C084E + adds r0, r5, 0 + pop {r4-r6} + pop {r1} + bx r1 + thumb_func_end sub_80C0844 + + thumb_func_start sub_80C089C +sub_80C089C: @ 80C089C + push {r4-r6,lr} + lsls r0, 24 + lsrs r6, r0, 24 + movs r5, 0 + movs r0, 0 +_080C08A6: + cmp r6, 0 + beq _080C08B2 + cmp r6, 0x1 + beq _080C08BC + adds r4, r0, 0x1 + b _080C08D4 +_080C08B2: + adds r4, r0, 0x1 + lsls r0, r4, 16 + lsrs r0, 16 + movs r1, 0 + b _080C08C4 +_080C08BC: + adds r4, r0, 0x1 + lsls r0, r4, 16 + lsrs r0, 16 + movs r1, 0x1 +_080C08C4: + bl pokedex_flag_operation + lsls r0, 24 + cmp r0, 0 + beq _080C08D4 + adds r0, r5, 0x1 + lsls r0, 16 + lsrs r5, r0, 16 +_080C08D4: + lsls r0, r4, 16 + lsrs r0, 16 + cmp r0, 0x96 + bls _080C08A6 + adds r0, r5, 0 + pop {r4-r6} + pop {r1} + bx r1 + thumb_func_end sub_80C089C + + thumb_func_start sub_80C08E4 +sub_80C08E4: @ 80C08E4 + push {r4,lr} + movs r0, 0 +_080C08E8: + adds r0, 0x1 + lsls r0, 16 + lsrs r4, r0, 16 + adds r0, r4, 0 + bl HoennToNationalOrder + lsls r0, 16 + lsrs r0, 16 + movs r1, 0x1 + bl pokedex_flag_operation + lsls r0, 24 + cmp r0, 0 + bne _080C0908 + movs r0, 0 + b _080C0910 +_080C0908: + adds r0, r4, 0 + cmp r0, 0xC7 + bls _080C08E8 + movs r0, 0x1 +_080C0910: + pop {r4} + pop {r1} + bx r1 + thumb_func_end sub_80C08E4 + + thumb_func_start sub_80C0918 +sub_80C0918: @ 80C0918 + push {r4,lr} + movs r0, 0 +_080C091C: + adds r0, 0x1 + lsls r0, 16 + lsrs r4, r0, 16 + adds r0, r4, 0 + movs r1, 0x1 + bl pokedex_flag_operation + lsls r0, 24 + cmp r0, 0 + bne _080C0934 + movs r0, 0 + b _080C093C +_080C0934: + adds r0, r4, 0 + cmp r0, 0x95 + bls _080C091C + movs r0, 0x1 +_080C093C: + pop {r4} + pop {r1} + bx r1 + thumb_func_end sub_80C0918 + + thumb_func_start sub_80C0944 +sub_80C0944: @ 80C0944 + push {r4,r5,lr} + movs r0, 0 +_080C0948: + adds r0, 0x1 + lsls r0, 16 + lsrs r4, r0, 16 + adds r0, r4, 0 + movs r1, 0x1 + bl pokedex_flag_operation + lsls r0, 24 + cmp r0, 0 + beq _080C0996 + adds r0, r4, 0 + cmp r0, 0x95 + bls _080C0948 + movs r0, 0x97 +_080C0964: + adds r0, 0x1 + lsls r0, 16 + lsrs r4, r0, 16 + adds r0, r4, 0 + movs r1, 0x1 + bl pokedex_flag_operation + lsls r0, 24 + cmp r0, 0 + beq _080C0996 + adds r0, r4, 0 + cmp r0, 0xF7 + bls _080C0964 + movs r0, 0xFB + ldr r5, =0x0000017f +_080C0982: + adds r0, 0x1 + lsls r0, 16 + lsrs r4, r0, 16 + adds r0, r4, 0 + movs r1, 0x1 + bl pokedex_flag_operation + lsls r0, 24 + cmp r0, 0 + bne _080C09A0 +_080C0996: + movs r0, 0 + b _080C09A8 + .pool +_080C09A0: + adds r0, r4, 0 + cmp r0, r5 + bls _080C0982 + movs r0, 0x1 +_080C09A8: + pop {r4,r5} + pop {r1} + bx r1 + thumb_func_end sub_80C0944 + + thumb_func_start sub_80C09B0 +sub_80C09B0: @ 80C09B0 + push {r4,r5,lr} + lsls r0, 16 + lsrs r4, r0, 16 + adds r5, r4, 0 + movs r1, 0x80 + lsls r1, 1 + adds r0, r4, 0 + ands r0, r1 + cmp r0, 0 + bne _080C09E2 + movs r0, 0 + bl ClearGpuRegBits + movs r0, 0x8 + movs r1, 0 + bl SetGpuReg + movs r0, 0x10 + movs r1, 0 + bl SetGpuReg + movs r0, 0x12 + movs r1, 0 + bl SetGpuReg +_080C09E2: + movs r1, 0x80 + lsls r1, 2 + adds r0, r4, 0 + ands r0, r1 + cmp r0, 0 + bne _080C0A0C + movs r0, 0 + bl ClearGpuRegBits + movs r0, 0xA + movs r1, 0 + bl SetGpuReg + movs r0, 0x14 + movs r1, 0 + bl SetGpuReg + movs r0, 0x16 + movs r1, 0 + bl SetGpuReg +_080C0A0C: + movs r1, 0x80 + lsls r1, 3 + adds r0, r4, 0 + ands r0, r1 + cmp r0, 0 + bne _080C0A36 + movs r0, 0 + bl ClearGpuRegBits + movs r0, 0xC + movs r1, 0 + bl SetGpuReg + movs r0, 0x18 + movs r1, 0 + bl SetGpuReg + movs r0, 0x1A + movs r1, 0 + bl SetGpuReg +_080C0A36: + movs r1, 0x80 + lsls r1, 4 + adds r0, r4, 0 + ands r0, r1 + cmp r0, 0 + bne _080C0A60 + movs r0, 0 + bl ClearGpuRegBits + movs r0, 0xE + movs r1, 0 + bl SetGpuReg + movs r0, 0x1C + movs r1, 0 + bl SetGpuReg + movs r0, 0x1E + movs r1, 0 + bl SetGpuReg +_080C0A60: + movs r1, 0x80 + lsls r1, 5 + ands r5, r1 + cmp r5, 0 + bne _080C0A7E + movs r0, 0 + bl ClearGpuRegBits + bl ResetAllObjectData + bl ResetObjectPaletteAllocator + ldr r1, =0x0300301c + movs r0, 0x8 + strb r0, [r1] +_080C0A7E: + pop {r4,r5} + pop {r0} + bx r0 + .pool + thumb_func_end sub_80C09B0 + + thumb_func_start sub_80C0A88 +sub_80C0A88: @ 80C0A88 + push {r4-r6,lr} + sub sp, 0x18 + lsls r0, 24 + lsrs r0, 24 + lsls r2, 24 + lsrs r2, 24 + lsls r3, 24 + lsrs r3, 24 + add r4, sp, 0x14 + movs r6, 0 + strb r6, [r4] + adds r5, r4, 0 + movs r4, 0xF + strb r4, [r5, 0x1] + movs r4, 0x3 + strb r4, [r5, 0x2] + str r6, [sp] + str r6, [sp, 0x4] + str r5, [sp, 0x8] + subs r4, 0x4 + str r4, [sp, 0xC] + str r1, [sp, 0x10] + movs r1, 0x1 + bl AddTextPrinterParametrized2 + add sp, 0x18 + pop {r4-r6} + pop {r0} + bx r0 + thumb_func_end sub_80C0A88 + + thumb_func_start sub_80C0AC4 +sub_80C0AC4: @ 80C0AC4 + push {r4-r6,lr} + mov r6, r9 + mov r5, r8 + push {r5,r6} + sub sp, 0x4 + adds r6, r0, 0 + adds r4, r1, 0 + mov r8, r2 + mov r9, r3 + lsls r6, 24 + lsrs r6, 24 + lsls r4, 16 + lsrs r4, 16 + mov r0, r8 + lsls r0, 24 + lsrs r0, 24 + mov r8, r0 + mov r0, r9 + lsls r0, 24 + lsrs r0, 24 + mov r9, r0 + mov r5, sp + adds r0, r4, 0 + movs r1, 0x64 + bl __udivsi3 + adds r0, 0xA1 + strb r0, [r5] + mov r5, sp + adds r0, r4, 0 + movs r1, 0x64 + bl __umodsi3 + adds r4, r0, 0 + lsls r4, 16 + lsrs r4, 16 + adds r0, r4, 0 + movs r1, 0xA + bl __udivsi3 + adds r0, 0xA1 + strb r0, [r5, 0x1] + mov r5, sp + adds r0, r4, 0 + movs r1, 0xA + bl __umodsi3 + adds r0, 0xA1 + strb r0, [r5, 0x2] + mov r1, sp + movs r0, 0xFF + strb r0, [r1, 0x3] + adds r0, r6, 0 + mov r2, r8 + mov r3, r9 + bl sub_80C0A88 + add sp, 0x4 + pop {r3,r4} + mov r8, r3 + mov r9, r4 + pop {r4-r6} + pop {r0} + bx r0 + thumb_func_end sub_80C0AC4 + + thumb_func_start sub_80C0B44 +sub_80C0B44: @ 80C0B44 + push {r4-r7,lr} + mov r7, r8 + push {r7} + sub sp, 0xC + lsls r0, 24 + lsrs r0, 24 + mov r8, r0 + lsls r1, 16 + lsrs r5, r1, 16 + lsls r2, 24 + lsrs r7, r2, 24 + lsls r3, 24 + lsrs r6, r3, 24 + movs r4, 0 + movs r2, 0xFF +_080C0B62: + mov r1, sp + adds r0, r1, r4 + ldrb r1, [r0] + orrs r1, r2 + strb r1, [r0] + adds r0, r4, 0x1 + lsls r0, 24 + lsrs r4, r0, 24 + cmp r4, 0xA + bls _080C0B62 + adds r0, r5, 0 + bl NationalPokedexNumToSpecies + adds r5, r0, 0 + cmp r5, 0 + beq _080C0BC0 + movs r4, 0 + ldr r2, =gSpeciesNames + movs r0, 0xB + adds r1, r5, 0 + muls r1, r0 + adds r0, r1, r2 + ldrb r0, [r0] + cmp r0, 0xFF + beq _080C0BD4 + adds r3, r2, 0 + adds r2, r1, 0 +_080C0B98: + mov r0, sp + adds r1, r0, r4 + adds r0, r4, r2 + adds r0, r3 + ldrb r0, [r0] + strb r0, [r1] + adds r0, r4, 0x1 + lsls r0, 24 + lsrs r4, r0, 24 + adds r0, r4, r2 + adds r0, r3 + ldrb r0, [r0] + cmp r0, 0xFF + beq _080C0BD4 + cmp r4, 0x9 + bls _080C0B98 + b _080C0BD4 + .pool +_080C0BC0: + movs r4, 0 + movs r1, 0xAE +_080C0BC4: + mov r2, sp + adds r0, r2, r4 + strb r1, [r0] + adds r0, r4, 0x1 + lsls r0, 24 + lsrs r4, r0, 24 + cmp r4, 0x4 + bls _080C0BC4 +_080C0BD4: + mov r0, r8 + mov r1, sp + adds r2, r7, 0 + adds r3, r6, 0 + bl sub_80C0A88 + adds r0, r4, 0 + add sp, 0xC + pop {r3} + mov r8, r3 + pop {r4-r7} + pop {r1} + bx r1 + thumb_func_end sub_80C0B44 + + thumb_func_start sub_80C0BF0 +sub_80C0BF0: @ 80C0BF0 + push {r4-r7,lr} + sub sp, 0xC + adds r4, r1, 0 + lsls r0, 24 + lsrs r6, r0, 24 + lsls r2, 24 + lsrs r2, 24 + mov r12, r2 + lsls r3, 24 + lsrs r5, r3, 24 + movs r2, 0 + movs r1, 0 +_080C0C08: + mov r3, sp + adds r0, r3, r2 + strb r1, [r0] + adds r0, r2, 0x1 + lsls r0, 24 + lsrs r2, r0, 24 + cmp r2, 0xA + bls _080C0C08 + movs r3, 0 + ldrb r0, [r4] + cmp r0, 0 + beq _080C0C32 +_080C0C20: + adds r0, r3, 0x1 + lsls r0, 24 + lsrs r3, r0, 24 + adds r0, r4, r3 + ldrb r0, [r0] + cmp r0, 0 + beq _080C0C32 + cmp r3, 0xA + bls _080C0C20 +_080C0C32: + movs r2, 0 + cmp r2, r3 + bcs _080C0C52 +_080C0C38: + adds r0, r2, 0 + adds r0, 0xB + subs r0, r3 + mov r7, sp + adds r1, r7, r0 + adds r0, r4, r2 + ldrb r0, [r0] + strb r0, [r1] + adds r0, r2, 0x1 + lsls r0, 24 + lsrs r2, r0, 24 + cmp r2, r3 + bcc _080C0C38 +_080C0C52: + mov r1, sp + movs r0, 0xFF + strb r0, [r1, 0xB] + adds r0, r6, 0 + mov r2, r12 + adds r3, r5, 0 + bl sub_80C0A88 + add sp, 0xC + pop {r4-r7} + pop {r0} + bx r0 + thumb_func_end sub_80C0BF0 + + thumb_func_start sub_80C0C6C +sub_80C0C6C: @ 80C0C6C + push {r4-r7,lr} + mov r7, r8 + push {r7} + sub sp, 0x8 + lsls r0, 24 + lsrs r0, 24 + mov r8, r0 + lsls r1, 16 + lsrs r4, r1, 16 + lsls r2, 24 + lsrs r7, r2, 24 + lsls r3, 24 + lsrs r6, r3, 24 + movs r5, 0 + movs r1, 0xFA + lsls r1, 2 + adds r0, r4, 0 + bl __udivsi3 + lsls r0, 24 + lsrs r0, 24 + cmp r0, 0 + bne _080C0CA2 + mov r1, sp + movs r0, 0x77 + strb r0, [r1] + b _080C0CAA +_080C0CA2: + mov r1, sp + adds r0, 0xA1 + strb r0, [r1] + movs r5, 0x1 +_080C0CAA: + movs r1, 0xFA + lsls r1, 2 + adds r0, r4, 0 + bl __umodsi3 + lsls r0, 16 + lsrs r0, 16 + movs r1, 0x64 + bl __udivsi3 + lsls r0, 24 + lsrs r0, 24 + cmp r0, 0 + bne _080C0CD0 + cmp r5, 0 + bne _080C0CD0 + mov r1, sp + movs r0, 0x77 + b _080C0CD4 +_080C0CD0: + mov r1, sp + adds r0, 0xA1 +_080C0CD4: + strb r0, [r1, 0x1] + mov r5, sp + movs r1, 0xFA + lsls r1, 2 + adds r0, r4, 0 + bl __umodsi3 + lsls r0, 16 + lsrs r0, 16 + movs r1, 0x64 + bl __umodsi3 + adds r4, r0, 0 + lsls r4, 16 + lsrs r4, 16 + adds r0, r4, 0 + movs r1, 0xA + bl __udivsi3 + adds r0, 0xA1 + strb r0, [r5, 0x2] + mov r1, sp + movs r0, 0xAD + strb r0, [r1, 0x3] + mov r5, sp + adds r0, r4, 0 + movs r1, 0xA + bl __umodsi3 + adds r0, 0xA1 + strb r0, [r5, 0x4] + mov r1, sp + movs r0, 0xFF + strb r0, [r1, 0x5] + mov r0, r8 + adds r2, r7, 0 + adds r3, r6, 0 + bl sub_80C0A88 + add sp, 0x8 + pop {r3} + mov r8, r3 + pop {r4-r7} + pop {r0} + bx r0 + thumb_func_end sub_80C0C6C + + thumb_func_start sub_80C0D30 +sub_80C0D30: @ 80C0D30 + push {r4-r7,lr} + mov r7, r8 + push {r7} + sub sp, 0x80 + lsls r0, 24 + lsrs r0, 24 + mov r8, r0 + lsls r1, 16 + lsrs r1, 16 + ldr r4, =gMonFootprintTable + adds r0, r1, 0 + bl NationalPokedexNumToSpecies + lsls r0, 16 + lsrs r0, 14 + adds r0, r4 + ldr r0, [r0] + mov r12, r0 + movs r5, 0 + movs r1, 0 + movs r7, 0x2 +_080C0D5A: + mov r2, r12 + adds r0, r2, r1 + ldrb r3, [r0] + movs r4, 0 + adds r6, r1, 0x1 +_080C0D64: + lsls r2, r4, 1 + adds r1, r3, 0 + asrs r1, r2 + movs r0, 0x1 + ands r1, r0 + negs r0, r1 + orrs r0, r1 + asrs r1, r0, 31 + ands r1, r7 + adds r0, r7, 0 + lsls r0, r2 + ands r0, r3 + cmp r0, 0 + beq _080C0D84 + movs r0, 0x20 + orrs r1, r0 +_080C0D84: + mov r2, sp + adds r0, r2, r5 + strb r1, [r0] + adds r0, r5, 0x1 + lsls r0, 16 + lsrs r5, r0, 16 + adds r0, r4, 0x1 + lsls r0, 16 + lsrs r4, r0, 16 + cmp r4, 0x3 + bls _080C0D64 + lsls r0, r6, 16 + lsrs r1, r0, 16 + cmp r1, 0x1F + bls _080C0D5A + mov r0, r8 + mov r1, sp + movs r2, 0x80 + movs r3, 0 + bl CopyToWindowPixelBuffer + add sp, 0x80 + pop {r3} + mov r8, r3 + pop {r4-r7} + pop {r0} + bx r0 + .pool + thumb_func_end sub_80C0D30 + + thumb_func_start sub_80C0DC0 +sub_80C0DC0: @ 80C0DC0 + push {r4,lr} + lsls r0, 16 + lsls r1, 16 + lsrs r1, 16 + lsrs r0, 5 + ldr r2, =0x06000232 + adds r3, r0, r2 + movs r4, 0xF0 + lsls r4, 8 + adds r2, r1, r4 + strh r2, [r3] + ldr r2, =0x06000234 + adds r3, r0, r2 + adds r4, 0x1 + adds r2, r1, r4 + strh r2, [r3] + ldr r2, =0x06000272 + adds r3, r0, r2 + adds r4, 0x1 + adds r2, r1, r4 + strh r2, [r3] + ldr r2, =0x06000274 + adds r0, r2 + adds r4, 0x1 + adds r1, r4 + strh r1, [r0] + pop {r4} + pop {r0} + bx r0 + .pool + thumb_func_end sub_80C0DC0 + + thumb_func_start sub_80C0E0C +sub_80C0E0C: @ 80C0E0C + push {r4,r5,lr} + lsls r0, 24 + lsrs r4, r0, 24 + adds r5, r4, 0 + lsls r1, 16 + lsrs r0, r1, 16 + lsls r2, 16 + lsrs r2, 16 + lsls r3, 16 + lsrs r3, 16 + cmp r4, 0x1 + beq _080C0E38 + cmp r4, 0x1 + bgt _080C0E2E + cmp r4, 0 + beq _080C0E40 + b _080C0E60 +_080C0E2E: + cmp r5, 0x2 + beq _080C0E52 + cmp r5, 0x3 + beq _080C0E46 + b _080C0E60 +_080C0E38: + cmp r0, r2 + bls _080C0E60 + subs r0, 0x1 + b _080C0E58 +_080C0E40: + cmp r0, r3 + bcs _080C0E60 + b _080C0E56 +_080C0E46: + cmp r0, r2 + bls _080C0E4E + subs r0, 0x1 + b _080C0E58 +_080C0E4E: + adds r0, r3, 0 + b _080C0E60 +_080C0E52: + cmp r0, r3 + bcs _080C0E5E +_080C0E56: + adds r0, 0x1 +_080C0E58: + lsls r0, 16 + lsrs r0, 16 + b _080C0E60 +_080C0E5E: + adds r0, r2, 0 +_080C0E60: + pop {r4,r5} + pop {r1} + bx r1 + thumb_func_end sub_80C0E0C + + thumb_func_start sub_80C0E68 +sub_80C0E68: @ 80C0E68 + push {lr} + lsls r0, 16 + lsrs r1, r0, 16 + cmp r1, 0xC9 + beq _080C0E88 + movs r0, 0x9A + lsls r0, 1 + cmp r1, r0 + bne _080C0E94 + ldr r0, =0x03005d90 + ldr r0, [r0] + ldr r0, [r0, 0x20] + b _080C0E96 + .pool +_080C0E88: + ldr r0, =0x03005d90 + ldr r0, [r0] + ldr r0, [r0, 0x1C] + b _080C0E96 + .pool +_080C0E94: + movs r0, 0 +_080C0E96: + pop {r1} + bx r1 + thumb_func_end sub_80C0E68 + + thumb_func_start sub_80C0E9C +sub_80C0E9C: @ 80C0E9C + push {r4-r6,lr} + sub sp, 0x14 + adds r4, r1, 0 + adds r5, r2, 0 + adds r6, r3, 0 + lsls r0, 16 + lsrs r0, 16 + lsls r4, 16 + lsrs r4, 16 + lsls r5, 16 + lsrs r5, 16 + lsls r6, 16 + lsrs r6, 16 + bl NationalPokedexNumToSpecies + adds r1, r0, 0 + adds r0, r1, 0 + str r1, [sp, 0x10] + bl sub_80C0E68 + adds r2, r0, 0 + lsls r4, 16 + asrs r4, 16 + str r4, [sp] + lsls r5, 16 + asrs r5, 16 + str r5, [sp, 0x4] + lsls r6, 24 + lsrs r6, 24 + str r6, [sp, 0x8] + ldr r0, =0x0000ffff + str r0, [sp, 0xC] + ldr r1, [sp, 0x10] + adds r0, r1, 0 + movs r1, 0x8 + movs r3, 0x1 + bl sub_818D7D8 + lsls r0, 16 + lsrs r0, 16 + add sp, 0x14 + pop {r4-r6} + pop {r1} + bx r1 + .pool + thumb_func_end sub_80C0E9C + + thumb_func_start sub_80C0EF8 +sub_80C0EF8: @ 80C0EF8 + push {r4,r5,lr} + sub sp, 0x8 + adds r4, r1, 0 + adds r5, r2, 0 + lsls r0, 16 + lsrs r0, 16 + lsls r4, 16 + asrs r4, 16 + lsls r5, 16 + asrs r5, 16 + lsls r3, 24 + lsrs r3, 24 + str r3, [sp] + ldr r1, =0x0000ffff + str r1, [sp, 0x4] + movs r1, 0x1 + adds r2, r4, 0 + adds r3, r5, 0 + bl sub_818D8AC + lsls r0, 16 + lsrs r0, 16 + add sp, 0x8 + pop {r4,r5} + pop {r1} + bx r1 + .pool + thumb_func_end sub_80C0EF8 + + thumb_func_start sub_80C0F30 +sub_80C0F30: @ 80C0F30 + push {r4-r7,lr} + mov r7, r10 + mov r6, r9 + mov r5, r8 + push {r5-r7} + sub sp, 0x14 + ldr r4, [sp, 0x34] + ldr r5, [sp, 0x38] + lsls r0, 24 + lsrs r0, 24 + lsls r1, 24 + lsrs r1, 24 + lsls r2, 24 + lsrs r7, r2, 24 + lsls r3, 24 + lsrs r3, 24 + str r3, [sp, 0x4] + lsls r4, 24 + lsrs r4, 24 + str r4, [sp, 0x8] + lsls r5, 24 + lsrs r5, 24 + mov r10, r5 + bl sub_80BC8D4 + movs r5, 0 + movs r6, 0 + ldr r4, =0x00000181 + ldr r3, =0x02039b4c +_080C0F6A: + ldr r2, [r3] + lsls r0, r5, 2 + adds r1, r2, r0 + ldrb r0, [r1, 0x2] + lsls r0, 31 + cmp r0, 0 + beq _080C0F86 + lsls r0, r6, 2 + adds r0, r2, r0 + ldr r1, [r1] + str r1, [r0] + adds r0, r6, 0x1 + lsls r0, 16 + lsrs r6, r0, 16 +_080C0F86: + adds r0, r5, 0x1 + lsls r0, 16 + lsrs r5, r0, 16 + cmp r5, r4 + bls _080C0F6A + ldr r1, =0x02039b4c + ldr r0, [r1] + ldr r2, =0x0000060c + adds r0, r2 + adds r1, r6, 0 + strh r6, [r0] + cmp r7, 0xFF + beq _080C103C + movs r5, 0 + lsls r0, r1, 16 + movs r6, 0 + cmp r0, 0 + beq _080C1032 + lsls r7, 2 + ldr r0, =gUnknown_0856ED08 + adds r0, 0x3 + adds r0, r7, r0 + str r0, [sp, 0xC] + ldr r0, =gUnknown_0856ED08 + adds r0, r7 + mov r9, r0 +_080C0FBA: + ldr r1, =0x02039b4c + ldr r0, [r1] + lsls r4, r5, 2 + adds r0, r4 + ldrh r0, [r0] + bl NationalPokedexNumToSpecies + lsls r0, 16 + lsrs r2, r0, 16 + ldr r1, =gSpeciesNames + movs r0, 0xB + muls r0, r2 + adds r0, r1 + ldrb r2, [r0] + adds r3, r2, 0 + mov r0, r9 + ldrb r0, [r0] + cmp r2, r0 + bcc _080C0FF2 + mov r1, r9 + ldrb r0, [r1] + ldr r1, =gUnknown_0856ED08 + adds r1, 0x1 + adds r1, r7, r1 + ldrb r1, [r1] + adds r0, r1 + cmp r2, r0 + blt _080C100A +_080C0FF2: + ldr r0, =gUnknown_0856ED08 + adds r0, 0x2 + adds r0, r7, r0 + ldrb r2, [r0] + cmp r3, r2 + bcc _080C101E + ldrb r1, [r0] + ldr r2, [sp, 0xC] + ldrb r0, [r2] + adds r1, r0 + cmp r3, r1 + bge _080C101E +_080C100A: + ldr r2, =0x02039b4c + ldr r0, [r2] + lsls r1, r6, 2 + adds r1, r0, r1 + adds r0, r4 + ldr r0, [r0] + str r0, [r1] + adds r0, r6, 0x1 + lsls r0, 16 + lsrs r6, r0, 16 +_080C101E: + adds r0, r5, 0x1 + lsls r0, 16 + lsrs r5, r0, 16 + ldr r1, =0x02039b4c + ldr r0, [r1] + ldr r2, =0x0000060c + adds r0, r2 + ldrh r0, [r0] + cmp r5, r0 + bcc _080C0FBA +_080C1032: + ldr r1, =0x02039b4c + ldr r0, [r1] + ldr r2, =0x0000060c + adds r0, r2 + strh r6, [r0] +_080C103C: + ldr r0, [sp, 0x4] + cmp r0, 0xFF + beq _080C10AC + movs r5, 0 + movs r6, 0 + ldr r1, =0x02039b4c + ldr r0, [r1] + ldr r2, =0x0000060c + adds r0, r2 + ldrh r0, [r0] + cmp r6, r0 + bcs _080C10A2 + adds r7, r1, 0 + ldr r0, =gBaseStats + mov r8, r0 +_080C105A: + ldr r0, [r7] + lsls r4, r5, 2 + adds r0, r4 + ldrh r0, [r0] + bl NationalPokedexNumToSpecies + lsls r0, 16 + lsrs r2, r0, 16 + lsls r0, r2, 3 + subs r0, r2 + lsls r0, 2 + add r0, r8 + ldrb r0, [r0, 0x19] + lsls r0, 25 + lsrs r0, 25 + ldr r1, [sp, 0x4] + cmp r1, r0 + bne _080C1090 + ldr r0, [r7] + lsls r1, r6, 2 + adds r1, r0, r1 + adds r0, r4 + ldr r0, [r0] + str r0, [r1] + adds r0, r6, 0x1 + lsls r0, 16 + lsrs r6, r0, 16 +_080C1090: + adds r0, r5, 0x1 + lsls r0, 16 + lsrs r5, r0, 16 + ldr r0, [r7] + ldr r2, =0x0000060c + adds r0, r2 + ldrh r0, [r0] + cmp r5, r0 + bcc _080C105A +_080C10A2: + ldr r1, =0x02039b4c + ldr r0, [r1] + ldr r2, =0x0000060c + adds r0, r2 + strh r6, [r0] +_080C10AC: + ldr r0, [sp, 0x8] + cmp r0, 0xFF + bne _080C10C2 + mov r1, r10 + cmp r1, 0xFF + bne _080C10BA + b _080C11DE +_080C10BA: + mov r2, r10 + str r2, [sp, 0x8] + movs r0, 0xFF + mov r10, r0 +_080C10C2: + mov r1, r10 + cmp r1, 0xFF + bne _080C1158 + movs r5, 0 + movs r6, 0 + ldr r2, =0x02039b4c + ldr r0, [r2] + ldr r1, =0x0000060c + adds r0, r1 + ldrh r0, [r0] + cmp r6, r0 + bcs _080C11D4 + adds r3, r2, 0 + mov r7, sp + mov r8, r2 +_080C10E0: + ldr r0, [r3] + lsls r4, r5, 2 + adds r1, r0, r4 + ldrb r0, [r1, 0x2] + lsls r0, 30 + cmp r0, 0 + bge _080C112A + ldrh r0, [r1] + str r3, [sp, 0x10] + bl NationalPokedexNumToSpecies + lsls r0, 16 + lsrs r2, r0, 16 + ldr r1, =gBaseStats + lsls r0, r2, 3 + subs r0, r2 + lsls r0, 2 + adds r0, r1 + ldrb r1, [r0, 0x6] + strb r1, [r7] + ldrb r0, [r0, 0x7] + strb r0, [r7, 0x1] + ldr r3, [sp, 0x10] + ldr r2, [sp, 0x8] + cmp r1, r2 + beq _080C1118 + cmp r0, r2 + bne _080C112A +_080C1118: + ldr r0, [r3] + lsls r1, r6, 2 + adds r1, r0, r1 + adds r0, r4 + ldr r0, [r0] + str r0, [r1] + adds r0, r6, 0x1 + lsls r0, 16 + lsrs r6, r0, 16 +_080C112A: + adds r0, r5, 0x1 + lsls r0, 16 + lsrs r5, r0, 16 + mov r1, r8 + ldr r0, [r1] + ldr r2, =0x0000060c + adds r0, r2 + ldrh r0, [r0] + cmp r5, r0 + bcc _080C10E0 + b _080C11D4 + .pool +_080C1158: + movs r5, 0 + movs r6, 0 + ldr r1, =0x02039b4c + ldr r0, [r1] + ldr r2, =0x0000060c + adds r0, r2 + ldrh r0, [r0] + cmp r6, r0 + bcs _080C11D4 + mov r7, sp +_080C116C: + ldr r0, [r1] + lsls r1, r5, 2 + adds r2, r0, r1 + ldrb r0, [r2, 0x2] + lsls r0, 30 + adds r4, r1, 0 + cmp r0, 0 + bge _080C11C0 + ldrh r0, [r2] + bl NationalPokedexNumToSpecies + lsls r0, 16 + lsrs r2, r0, 16 + ldr r1, =gBaseStats + lsls r0, r2, 3 + subs r0, r2 + lsls r0, 2 + adds r0, r1 + ldrb r1, [r0, 0x6] + strb r1, [r7] + ldrb r0, [r0, 0x7] + strb r0, [r7, 0x1] + ldr r2, [sp, 0x8] + cmp r1, r2 + bne _080C11A2 + cmp r0, r10 + beq _080C11AC +_080C11A2: + cmp r1, r10 + bne _080C11C0 + ldr r1, [sp, 0x8] + cmp r0, r1 + bne _080C11C0 +_080C11AC: + ldr r2, =0x02039b4c + ldr r0, [r2] + lsls r1, r6, 2 + adds r1, r0, r1 + adds r0, r4 + ldr r0, [r0] + str r0, [r1] + adds r0, r6, 0x1 + lsls r0, 16 + lsrs r6, r0, 16 +_080C11C0: + adds r0, r5, 0x1 + lsls r0, 16 + lsrs r5, r0, 16 + ldr r1, =0x02039b4c + ldr r0, [r1] + ldr r2, =0x0000060c + adds r0, r2 + ldrh r0, [r0] + cmp r5, r0 + bcc _080C116C +_080C11D4: + ldr r1, =0x02039b4c + ldr r0, [r1] + ldr r2, =0x0000060c + adds r0, r2 + strh r6, [r0] +_080C11DE: + ldr r1, =0x02039b4c + ldr r0, [r1] + ldr r2, =0x0000060c + adds r1, r0, r2 + ldrh r0, [r1] + cmp r0, 0 + beq _080C1232 + adds r5, r0, 0 + ldr r0, =0x00000181 + cmp r5, r0 + bhi _080C1232 + ldr r4, =0x02039b4c + movs r1, 0x2 + negs r1, r1 + mov r10, r1 + movs r2, 0x3 + negs r2, r2 + mov r9, r2 + mov r8, r0 + ldr r0, =0x0000ffff + adds r7, r0, 0 +_080C1208: + ldr r1, [r4] + lsls r3, r5, 2 + adds r1, r3 + ldrh r0, [r1] + orrs r0, r7 + strh r0, [r1] + ldrb r2, [r1, 0x2] + mov r0, r10 + ands r0, r2 + strb r0, [r1, 0x2] + ldr r1, [r4] + adds r1, r3 + ldrb r2, [r1, 0x2] + mov r0, r9 + ands r0, r2 + strb r0, [r1, 0x2] + adds r0, r5, 0x1 + lsls r0, 16 + lsrs r5, r0, 16 + cmp r5, r8 + bls _080C1208 +_080C1232: + adds r0, r6, 0 + add sp, 0x14 + pop {r3-r5} + mov r8, r3 + mov r9, r4 + mov r10, r5 + pop {r4-r7} + pop {r1} + bx r1 + .pool + thumb_func_end sub_80C0F30 + + thumb_func_start sub_80C1258 +sub_80C1258: @ 80C1258 + push {lr} + ldr r0, =sub_80C12E0 + movs r1, 0 + bl CreateTask + lsls r0, 24 + lsrs r0, 24 + pop {r1} + bx r1 + .pool + thumb_func_end sub_80C1258 + + thumb_func_start sub_80C1270 +sub_80C1270: @ 80C1270 + push {r4,r5,lr} + sub sp, 0x18 + adds r5, r1, 0 + adds r3, r2, 0 + add r1, sp, 0x14 + movs r4, 0 + strb r4, [r1] + adds r2, r1, 0 + movs r1, 0xF + strb r1, [r2, 0x1] + movs r1, 0x2 + strb r1, [r2, 0x2] + lsls r5, 24 + lsrs r5, 24 + lsls r3, 24 + lsrs r3, 24 + str r4, [sp] + str r4, [sp, 0x4] + str r2, [sp, 0x8] + subs r1, 0x3 + str r1, [sp, 0xC] + str r0, [sp, 0x10] + movs r0, 0 + movs r1, 0x1 + adds r2, r5, 0 + bl AddTextPrinterParametrized2 + add sp, 0x18 + pop {r4,r5} + pop {r0} + bx r0 + thumb_func_end sub_80C1270 + + thumb_func_start sub_80C12B0 +sub_80C12B0: @ 80C12B0 + push {r4,r5,lr} + sub sp, 0x8 + adds r4, r0, 0 + adds r5, r1, 0 + lsls r4, 16 + lsrs r4, 16 + lsls r5, 16 + lsrs r5, 16 + lsls r2, 16 + lsrs r2, 16 + str r2, [sp] + lsls r3, 16 + lsrs r3, 16 + str r3, [sp, 0x4] + movs r0, 0 + movs r1, 0 + adds r2, r4, 0 + adds r3, r5, 0 + bl FillWindowPixelRect + add sp, 0x8 + pop {r4,r5} + pop {r0} + bx r0 + thumb_func_end sub_80C12B0 + + thumb_func_start sub_80C12E0 +sub_80C12E0: @ 80C12E0 + push {r4,r5,lr} + sub sp, 0x4 + lsls r0, 24 + lsrs r4, r0, 24 + ldr r1, =0x030022c0 + movs r2, 0x87 + lsls r2, 3 + adds r0, r1, r2 + ldrb r0, [r0] + adds r3, r1, 0 + cmp r0, 0x4 + bhi _080C1320 + lsls r0, 2 + ldr r1, =_080C130C + adds r0, r1 + ldr r0, [r0] + mov pc, r0 + .pool + .align 2, 0 +_080C130C: + .4byte _080C1320 + .4byte _080C1414 + .4byte _080C1480 + .4byte _080C14A0 + .4byte _080C14F0 +_080C1320: + ldr r0, =0x02037fd4 + ldrb r1, [r0, 0x7] + movs r0, 0x80 + ands r0, r1 + lsls r0, 24 + lsrs r5, r0, 24 + cmp r5, 0 + beq _080C1332 + b _080C1516 +_080C1332: + ldr r0, =0x02039b4c + ldr r0, [r0] + ldr r1, =0x0000064a + adds r0, r1 + movs r1, 0x2 + strb r1, [r0] + movs r0, 0 + bl sub_80C09B0 + movs r0, 0 + bl ResetBgsAndClearDma3BusyFlags + ldr r1, =gUnknown_0856EFF8 + movs r0, 0 + movs r2, 0x4 + bl InitBgsFromTemplates + movs r4, 0x80 + lsls r4, 4 + adds r0, r4, 0 + bl AllocZeroed + adds r1, r0, 0 + movs r0, 0x3 + bl SetBgTilemapBuffer + adds r0, r4, 0 + bl AllocZeroed + adds r1, r0, 0 + movs r0, 0x2 + bl SetBgTilemapBuffer + adds r0, r4, 0 + bl AllocZeroed + adds r1, r0, 0 + movs r0, 0x1 + bl SetBgTilemapBuffer + adds r0, r4, 0 + bl AllocZeroed + adds r1, r0, 0 + movs r0, 0 + bl SetBgTilemapBuffer + ldr r0, =gUnknown_0856F008 + bl InitWindows + bl DeactivateAllTextPrinters + movs r0, 0 + bl PutWindowTilemap + ldr r1, =gUnknown_08DC3304 + movs r2, 0x80 + lsls r2, 6 + str r5, [sp] + movs r0, 0x3 + movs r3, 0 + bl copy_decompressed_tile_data_to_vram_autofree + bl sub_809D42C + cmp r0, 0 + bne _080C13E4 + ldr r1, =gUnknown_08DC3A0C + movs r0, 0x3 + movs r2, 0 + movs r3, 0 + bl CopyToBgTilemapBuffer + b _080C13F0 + .pool +_080C13E4: + ldr r1, =gUnknown_08DC3870 + movs r0, 0x3 + movs r2, 0 + movs r3, 0 + bl CopyToBgTilemapBuffer +_080C13F0: + ldr r0, =gUnknown_08DC3286 + movs r1, 0x1 + movs r2, 0x7E + bl gpu_pal_apply + ldr r0, =0x030022c0 + movs r2, 0x87 + lsls r2, 3 + adds r0, r2 + movs r1, 0x1 + strb r1, [r0] + b _080C1516 + .pool +_080C1414: + ldr r0, =gUnknown_0855D26C + bl LoadCompressedObjectPic + ldr r0, =gUnknown_0855D27C + bl LoadTaggedObjectPalettes + adds r0, r4, 0 + bl sub_80C2594 + movs r1, 0 + lsls r0, r4, 2 + adds r0, r4 + lsls r2, r0, 3 + ldr r5, =0x03005e08 + movs r3, 0 +_080C1432: + lsls r0, r1, 1 + adds r0, r2 + adds r0, r5 + strh r3, [r0] + adds r0, r1, 0x1 + lsls r0, 16 + lsrs r1, r0, 16 + cmp r1, 0xF + bls _080C1432 + adds r0, r4, 0 + bl sub_80C23B8 + movs r0, 0 + bl sub_80C2040 + adds r0, r4, 0 + bl sub_80C20F8 + movs r0, 0 + movs r1, 0x3 + bl CopyWindowToVram + movs r0, 0x1 + bl CopyBgTilemapBufferToVram + movs r0, 0x2 + bl CopyBgTilemapBufferToVram + movs r0, 0x3 + bl CopyBgTilemapBufferToVram + b _080C14DA + .pool +_080C1480: + movs r0, 0x1 + negs r0, r0 + movs r1, 0 + str r1, [sp] + movs r2, 0x10 + movs r3, 0 + bl pal_fade_maybe + ldr r1, =0x030022c0 + movs r2, 0x87 + lsls r2, 3 + adds r1, r2 + b _080C14E2 + .pool +_080C14A0: + movs r0, 0x50 + movs r1, 0 + bl SetGpuReg + movs r0, 0x52 + movs r1, 0 + bl SetGpuReg + movs r0, 0x54 + movs r1, 0 + bl SetGpuReg + movs r1, 0x82 + lsls r1, 5 + movs r0, 0 + bl SetGpuReg + movs r0, 0 + bl HideBg + movs r0, 0x1 + bl ShowBg + movs r0, 0x2 + bl ShowBg + movs r0, 0x3 + bl ShowBg +_080C14DA: + ldr r1, =0x030022c0 + movs r0, 0x87 + lsls r0, 3 + adds r1, r0 +_080C14E2: + ldrb r0, [r1] + adds r0, 0x1 + strb r0, [r1] + b _080C1516 + .pool +_080C14F0: + ldr r0, =0x02037fd4 + ldrb r1, [r0, 0x7] + movs r0, 0x80 + ands r0, r1 + lsls r0, 24 + lsrs r2, r0, 24 + cmp r2, 0 + bne _080C1516 + ldr r1, =0x03005e00 + lsls r0, r4, 2 + adds r0, r4 + lsls r0, 3 + adds r0, r1 + ldr r1, =sub_80C1570 + str r1, [r0] + movs r1, 0x87 + lsls r1, 3 + adds r0, r3, r1 + strb r2, [r0] +_080C1516: + add sp, 0x4 + pop {r4,r5} + pop {r0} + bx r0 + .pool + thumb_func_end sub_80C12E0 + + thumb_func_start sub_80C152C +sub_80C152C: @ 80C152C + push {lr} + bl FreeAllWindowBuffers + movs r0, 0 + bl GetBgTilemapBuffer + cmp r0, 0 + beq _080C1540 + bl Free +_080C1540: + movs r0, 0x1 + bl GetBgTilemapBuffer + cmp r0, 0 + beq _080C154E + bl Free +_080C154E: + movs r0, 0x2 + bl GetBgTilemapBuffer + cmp r0, 0 + beq _080C155C + bl Free +_080C155C: + movs r0, 0x3 + bl GetBgTilemapBuffer + cmp r0, 0 + beq _080C156A + bl Free +_080C156A: + pop {r0} + bx r0 + thumb_func_end sub_80C152C + + thumb_func_start sub_80C1570 +sub_80C1570: @ 80C1570 + push {r4,r5,lr} + adds r4, r0, 0 + lsls r4, 24 + lsrs r4, 24 + ldr r0, =0x03005e00 + lsls r5, r4, 2 + adds r5, r4 + lsls r5, 3 + adds r5, r0 + ldrb r0, [r5, 0x8] + bl sub_80C2040 + adds r0, r4, 0 + bl sub_80C20F8 + movs r0, 0 + movs r1, 0x2 + bl CopyWindowToVram + movs r0, 0x3 + bl CopyBgTilemapBufferToVram + ldr r0, =sub_80C15B0 + str r0, [r5] + pop {r4,r5} + pop {r0} + bx r0 + .pool + thumb_func_end sub_80C1570 + + thumb_func_start sub_80C15B0 +sub_80C15B0: @ 80C15B0 + push {r4,r5,lr} + lsls r0, 24 + lsrs r5, r0, 24 + ldr r0, =0x030022c0 + ldrh r1, [r0, 0x2E] + movs r0, 0x2 + ands r0, r1 + cmp r0, 0 + beq _080C15E4 + movs r0, 0x3 + bl audio_play + ldr r0, =0x03005e00 + lsls r1, r5, 2 + adds r1, r5 + lsls r1, 3 + adds r1, r0 + ldr r0, =sub_80C1D38 + str r0, [r1] + b _080C16BC + .pool +_080C15E4: + movs r0, 0x1 + ands r0, r1 + cmp r0, 0 + beq _080C1640 + ldr r1, =0x03005e00 + lsls r0, r5, 2 + adds r0, r5 + lsls r0, 3 + adds r5, r0, r1 + movs r0, 0x8 + ldrsh r4, [r5, r0] + cmp r4, 0x1 + beq _080C161C + cmp r4, 0x1 + bgt _080C160C + cmp r4, 0 + beq _080C1612 + b _080C16BC + .pool +_080C160C: + cmp r4, 0x2 + beq _080C1630 + b _080C16BC +_080C1612: + movs r0, 0x15 + bl audio_play + strh r4, [r5, 0xA] + b _080C1626 +_080C161C: + movs r0, 0x15 + bl audio_play + movs r0, 0x4 + strh r0, [r5, 0xA] +_080C1626: + ldr r0, =sub_80C16CC + str r0, [r5] + b _080C16BC + .pool +_080C1630: + movs r0, 0x3 + bl audio_play + ldr r0, =sub_80C1D38 + str r0, [r5] + b _080C16BC + .pool +_080C1640: + movs r0, 0x20 + ands r0, r1 + cmp r0, 0 + beq _080C167C + ldr r0, =0x03005e00 + lsls r1, r5, 2 + adds r1, r5 + lsls r1, 3 + adds r4, r1, r0 + movs r1, 0x8 + ldrsh r0, [r4, r1] + cmp r0, 0 + ble _080C167C + movs r0, 0x6D + bl audio_play + ldrh r0, [r4, 0x8] + subs r0, 0x1 + strh r0, [r4, 0x8] + lsls r0, 24 + lsrs r0, 24 + bl sub_80C2040 + movs r0, 0 + movs r1, 0x2 + bl CopyWindowToVram + movs r0, 0x3 + bl CopyBgTilemapBufferToVram +_080C167C: + ldr r0, =0x030022c0 + ldrh r1, [r0, 0x2E] + movs r0, 0x10 + ands r0, r1 + cmp r0, 0 + beq _080C16BC + ldr r0, =0x03005e00 + lsls r1, r5, 2 + adds r1, r5 + lsls r1, 3 + adds r4, r1, r0 + movs r1, 0x8 + ldrsh r0, [r4, r1] + cmp r0, 0x1 + bgt _080C16BC + movs r0, 0x6D + bl audio_play + ldrh r0, [r4, 0x8] + adds r0, 0x1 + strh r0, [r4, 0x8] + lsls r0, 24 + lsrs r0, 24 + bl sub_80C2040 + movs r0, 0 + movs r1, 0x2 + bl CopyWindowToVram + movs r0, 0x3 + bl CopyBgTilemapBufferToVram +_080C16BC: + pop {r4,r5} + pop {r0} + bx r0 + .pool + thumb_func_end sub_80C15B0 + + thumb_func_start sub_80C16CC +sub_80C16CC: @ 80C16CC + push {r4,r5,lr} + adds r4, r0, 0 + lsls r4, 24 + lsrs r4, 24 + ldr r0, =0x03005e00 + lsls r5, r4, 2 + adds r5, r4 + lsls r5, 3 + adds r5, r0 + ldrb r0, [r5, 0x8] + ldrb r1, [r5, 0xA] + bl sub_80C2064 + adds r0, r4, 0 + bl sub_80C20F8 + movs r0, 0 + movs r1, 0x2 + bl CopyWindowToVram + movs r0, 0x3 + bl CopyBgTilemapBufferToVram + ldr r0, =sub_80C170C + str r0, [r5] + pop {r4,r5} + pop {r0} + bx r0 + .pool + thumb_func_end sub_80C16CC + + thumb_func_start sub_80C170C +sub_80C170C: @ 80C170C + push {r4-r7,lr} + lsls r0, 24 + lsrs r5, r0, 24 + ldr r1, =0x03005e00 + lsls r0, r5, 2 + adds r0, r5 + lsls r0, 3 + adds r0, r1 + movs r1, 0x8 + ldrsh r0, [r0, r1] + cmp r0, 0 + beq _080C1740 + bl sub_809D42C + ldr r6, =gUnknown_0856EDB8 + cmp r0, 0 + bne _080C174C + ldr r6, =gUnknown_0856EDF0 + b _080C174C + .pool +_080C1740: + bl sub_809D42C + ldr r6, =gUnknown_0856ED9C + cmp r0, 0 + bne _080C174C + ldr r6, =gUnknown_0856EDD4 +_080C174C: + ldr r0, =0x030022c0 + ldrh r1, [r0, 0x2E] + movs r0, 0x2 + ands r0, r1 + lsls r0, 16 + lsrs r3, r0, 16 + cmp r3, 0 + beq _080C178C + movs r0, 0x17 + bl audio_play + adds r0, r5, 0 + bl sub_80C23B8 + ldr r0, =0x03005e00 + lsls r1, r5, 2 + adds r1, r5 + lsls r1, 3 + adds r1, r0 + ldr r0, =sub_80C1570 + str r0, [r1] + b _080C1994 + .pool +_080C178C: + movs r0, 0x1 + ands r0, r1 + cmp r0, 0 + beq _080C1870 + ldr r0, =0x03005e00 + lsls r1, r5, 2 + adds r1, r5 + lsls r1, 3 + adds r6, r1, r0 + movs r2, 0xA + ldrsh r0, [r6, r2] + cmp r0, 0x6 + bne _080C1860 + movs r1, 0x8 + ldrsh r0, [r6, r1] + cmp r0, 0 + beq _080C183C + ldr r1, =0x02039b52 + movs r0, 0x40 + strb r0, [r1] + ldr r7, =0x02039b4c + ldr r1, [r7] + ldr r0, =0x0000062a + adds r2, r1, r0 + movs r0, 0x40 + strh r0, [r2] + ldr r0, =0x02039b50 + strh r3, [r0] + movs r2, 0xC2 + lsls r2, 3 + adds r1, r2 + strh r3, [r1] + adds r0, r5, 0 + movs r1, 0x5 + bl sub_80C2318 + ldr r4, =0x03005d90 + ldr r1, [r4] + strb r0, [r1, 0x19] + bl sub_809D42C + cmp r0, 0 + bne _080C17E8 + ldr r1, [r4] + movs r0, 0 + strb r0, [r1, 0x19] +_080C17E8: + ldr r0, [r7] + ldr r1, [r4] + ldrb r1, [r1, 0x19] + ldr r2, =0x00000614 + adds r0, r2 + strh r1, [r0] + adds r0, r5, 0 + movs r1, 0x4 + bl sub_80C2318 + ldr r1, [r4] + strb r0, [r1, 0x18] + ldr r0, [r7] + ldr r1, [r4] + ldrb r1, [r1, 0x18] + movs r2, 0xC3 + lsls r2, 3 + adds r0, r2 + strh r1, [r0] + movs r0, 0x3 + bl audio_play + ldr r0, =sub_80C1D38 + str r0, [r6] + b _080C1994 + .pool +_080C183C: + ldr r0, =gUnknown_085E875B + bl sub_80C2618 + ldr r0, =sub_80C19A4 + str r0, [r6] + movs r0, 0x70 + bl audio_play + movs r0, 0 + movs r1, 0x2 + bl CopyWindowToVram + b _080C1994 + .pool +_080C1860: + movs r0, 0x15 + bl audio_play + ldr r0, =sub_80C1B64 + str r0, [r6] + b _080C1994 + .pool +_080C1870: + movs r0, 0x20 + ands r0, r1 + cmp r0, 0 + beq _080C18B6 + ldr r1, =0x03005e00 + lsls r0, r5, 2 + adds r0, r5 + lsls r0, 3 + adds r4, r0, r1 + movs r1, 0xA + ldrsh r0, [r4, r1] + lsls r0, 2 + adds r0, r6 + ldrb r0, [r0] + cmp r0, 0xFF + beq _080C18B6 + movs r0, 0x5 + bl audio_play + movs r2, 0xA + ldrsh r0, [r4, r2] + lsls r0, 2 + adds r0, r6 + ldrb r1, [r0] + strh r1, [r4, 0xA] + ldrb r0, [r4, 0x8] + bl sub_80C2064 + movs r0, 0 + movs r1, 0x2 + bl CopyWindowToVram + movs r0, 0x3 + bl CopyBgTilemapBufferToVram +_080C18B6: + ldr r0, =0x030022c0 + ldrh r1, [r0, 0x2E] + movs r0, 0x10 + ands r0, r1 + cmp r0, 0 + beq _080C1900 + ldr r1, =0x03005e00 + lsls r0, r5, 2 + adds r0, r5 + lsls r0, 3 + adds r4, r0, r1 + movs r1, 0xA + ldrsh r0, [r4, r1] + lsls r0, 2 + adds r0, r6 + ldrb r0, [r0, 0x1] + cmp r0, 0xFF + beq _080C1900 + movs r0, 0x5 + bl audio_play + movs r2, 0xA + ldrsh r0, [r4, r2] + lsls r0, 2 + adds r0, r6 + ldrb r1, [r0, 0x1] + strh r1, [r4, 0xA] + ldrb r0, [r4, 0x8] + bl sub_80C2064 + movs r0, 0 + movs r1, 0x2 + bl CopyWindowToVram + movs r0, 0x3 + bl CopyBgTilemapBufferToVram +_080C1900: + ldr r0, =0x030022c0 + ldrh r1, [r0, 0x2E] + movs r0, 0x40 + ands r0, r1 + cmp r0, 0 + beq _080C194A + ldr r1, =0x03005e00 + lsls r0, r5, 2 + adds r0, r5 + lsls r0, 3 + adds r4, r0, r1 + movs r1, 0xA + ldrsh r0, [r4, r1] + lsls r0, 2 + adds r0, r6 + ldrb r0, [r0, 0x2] + cmp r0, 0xFF + beq _080C194A + movs r0, 0x5 + bl audio_play + movs r2, 0xA + ldrsh r0, [r4, r2] + lsls r0, 2 + adds r0, r6 + ldrb r1, [r0, 0x2] + strh r1, [r4, 0xA] + ldrb r0, [r4, 0x8] + bl sub_80C2064 + movs r0, 0 + movs r1, 0x2 + bl CopyWindowToVram + movs r0, 0x3 + bl CopyBgTilemapBufferToVram +_080C194A: + ldr r0, =0x030022c0 + ldrh r1, [r0, 0x2E] + movs r0, 0x80 + ands r0, r1 + cmp r0, 0 + beq _080C1994 + ldr r1, =0x03005e00 + lsls r0, r5, 2 + adds r0, r5 + lsls r0, 3 + adds r4, r0, r1 + movs r1, 0xA + ldrsh r0, [r4, r1] + lsls r0, 2 + adds r0, r6 + ldrb r0, [r0, 0x3] + cmp r0, 0xFF + beq _080C1994 + movs r0, 0x5 + bl audio_play + movs r2, 0xA + ldrsh r0, [r4, r2] + lsls r0, 2 + adds r0, r6 + ldrb r1, [r0, 0x3] + strh r1, [r4, 0xA] + ldrb r0, [r4, 0x8] + bl sub_80C2064 + movs r0, 0 + movs r1, 0x2 + bl CopyWindowToVram + movs r0, 0x3 + bl CopyBgTilemapBufferToVram +_080C1994: + pop {r4-r7} + pop {r0} + bx r0 + .pool + thumb_func_end sub_80C170C + + thumb_func_start sub_80C19A4 +sub_80C19A4: @ 80C19A4 + push {r4-r6,lr} + mov r6, r10 + mov r5, r9 + mov r4, r8 + push {r4-r6} + sub sp, 0x8 + adds r5, r0, 0 + lsls r5, 24 + lsrs r5, 24 + adds r0, r5, 0 + movs r1, 0x5 + bl sub_80C2318 + mov r10, r0 + mov r0, r10 + lsls r0, 24 + lsrs r0, 24 + mov r10, r0 + adds r0, r5, 0 + movs r1, 0x4 + bl sub_80C2318 + mov r9, r0 + mov r0, r9 + lsls r0, 24 + lsrs r0, 24 + mov r9, r0 + adds r0, r5, 0 + movs r1, 0 + bl sub_80C2318 + mov r8, r0 + mov r0, r8 + lsls r0, 24 + lsrs r0, 24 + mov r8, r0 + adds r0, r5, 0 + movs r1, 0x1 + bl sub_80C2318 + adds r6, r0, 0 + lsls r6, 24 + lsrs r6, 24 + adds r0, r5, 0 + movs r1, 0x2 + bl sub_80C2318 + adds r4, r0, 0 + lsls r4, 24 + lsrs r4, 24 + adds r0, r5, 0 + movs r1, 0x3 + bl sub_80C2318 + lsls r0, 24 + lsrs r0, 24 + str r4, [sp] + str r0, [sp, 0x4] + mov r0, r10 + mov r1, r9 + mov r2, r8 + adds r3, r6, 0 + bl sub_80C0F30 + ldr r1, =0x03005e00 + lsls r0, r5, 2 + adds r0, r5 + lsls r0, 3 + adds r0, r1 + ldr r1, =sub_80C1A4C + str r1, [r0] + add sp, 0x8 + pop {r3-r5} + mov r8, r3 + mov r9, r4 + mov r10, r5 + pop {r4-r6} + pop {r0} + bx r0 + .pool + thumb_func_end sub_80C19A4 + + thumb_func_start sub_80C1A4C +sub_80C1A4C: @ 80C1A4C + push {r4,lr} + lsls r0, 24 + lsrs r4, r0, 24 + bl mplay_has_finished_maybe + lsls r0, 24 + cmp r0, 0 + bne _080C1AA6 + ldr r0, =0x02039b4c + ldr r0, [r0] + ldr r1, =0x0000060c + adds r0, r1 + ldrh r0, [r0] + cmp r0, 0 + beq _080C1A84 + movs r0, 0x1F + bl audio_play + ldr r0, =gUnknown_085E8773 + bl sub_80C2618 + b _080C1A90 + .pool +_080C1A84: + movs r0, 0x20 + bl audio_play + ldr r0, =gUnknown_085E8785 + bl sub_80C2618 +_080C1A90: + ldr r0, =0x03005e00 + lsls r1, r4, 2 + adds r1, r4 + lsls r1, 3 + adds r1, r0 + ldr r0, =sub_80C1AB8 + str r0, [r1] + movs r0, 0 + movs r1, 0x2 + bl CopyWindowToVram +_080C1AA6: + pop {r4} + pop {r0} + bx r0 + .pool + thumb_func_end sub_80C1A4C + + thumb_func_start sub_80C1AB8 +sub_80C1AB8: @ 80C1AB8 + push {r4,r5,lr} + lsls r0, 24 + lsrs r4, r0, 24 + adds r2, r4, 0 + ldr r0, =0x030022c0 + ldrh r1, [r0, 0x2E] + movs r0, 0x1 + ands r0, r1 + cmp r0, 0 + beq _080C1B54 + ldr r5, =0x02039b4c + ldr r1, [r5] + ldr r3, =0x0000060c + adds r0, r1, r3 + ldrh r0, [r0] + cmp r0, 0 + beq _080C1B40 + ldr r0, =0x0000064e + adds r1, r0 + movs r0, 0x1 + strb r0, [r1] + adds r0, r4, 0 + movs r1, 0x5 + bl sub_80C2318 + ldr r1, [r5] + lsls r0, 24 + lsrs r0, 24 + ldr r2, =0x00000612 + adds r1, r2 + strh r0, [r1] + adds r0, r4, 0 + movs r1, 0x4 + bl sub_80C2318 + ldr r1, [r5] + lsls r0, 24 + lsrs r0, 24 + ldr r3, =0x00000616 + adds r1, r3 + strh r0, [r1] + ldr r1, =0x03005e00 + lsls r0, r4, 2 + adds r0, r4 + lsls r0, 3 + adds r0, r1 + ldr r1, =sub_80C1D38 + str r1, [r0] + movs r0, 0x3 + bl audio_play + b _080C1B54 + .pool +_080C1B40: + ldr r0, =0x03005e00 + lsls r1, r2, 2 + adds r1, r2 + lsls r1, 3 + adds r1, r0 + ldr r0, =sub_80C16CC + str r0, [r1] + movs r0, 0x17 + bl audio_play +_080C1B54: + pop {r4,r5} + pop {r0} + bx r0 + .pool + thumb_func_end sub_80C1AB8 + + thumb_func_start sub_80C1B64 +sub_80C1B64: @ 80C1B64 + push {r4-r6,lr} + adds r5, r0, 0 + lsls r5, 24 + lsrs r5, 24 + movs r0, 0 + bl sub_80C21D4 + ldr r2, =0x03005e00 + lsls r1, r5, 2 + adds r1, r5 + lsls r1, 3 + adds r6, r1, r2 + ldrb r0, [r6, 0xA] + adds r2, 0x8 + adds r1, r2 + ldr r2, =gUnknown_0856EFC8 + lsls r0, 3 + adds r0, r2 + ldrb r4, [r0, 0x4] + lsls r4, 1 + adds r4, r1, r4 + ldrb r0, [r0, 0x5] + lsls r0, 1 + adds r1, r0 + ldrh r0, [r4] + strh r0, [r6, 0x24] + ldrh r0, [r1] + strh r0, [r6, 0x26] + adds r0, r5, 0 + bl sub_80C2294 + ldrh r0, [r4] + bl sub_80C2650 + ldr r0, =sub_80C1BCC + str r0, [r6] + movs r0, 0 + movs r1, 0x2 + bl CopyWindowToVram + movs r0, 0x3 + bl CopyBgTilemapBufferToVram + pop {r4-r6} + pop {r0} + bx r0 + .pool + thumb_func_end sub_80C1B64 + + thumb_func_start sub_80C1BCC +sub_80C1BCC: @ 80C1BCC + push {r4-r7,lr} + mov r7, r8 + push {r7} + lsls r0, 24 + lsrs r7, r0, 24 + ldr r3, =0x03005e00 + lsls r2, r7, 2 + adds r2, r7 + lsls r2, 3 + adds r5, r2, r3 + ldrb r1, [r5, 0xA] + ldr r0, =gUnknown_0856EFC8 + lsls r1, 3 + adds r1, r0 + ldr r0, [r1] + mov r8, r0 + adds r3, 0x8 + adds r2, r3 + ldrb r0, [r1, 0x4] + lsls r0, 1 + adds r4, r2, r0 + ldrb r0, [r1, 0x5] + lsls r0, 1 + adds r6, r2, r0 + ldrh r0, [r1, 0x6] + subs r0, 0x1 + lsls r0, 16 + lsrs r2, r0, 16 + ldr r0, =0x030022c0 + mov r12, r0 + ldrh r1, [r0, 0x2E] + movs r0, 0x1 + ands r0, r1 + cmp r0, 0 + beq _080C1C30 + movs r0, 0x15 + bl audio_play + bl sub_80C267C + movs r0, 0x1 + bl sub_80C21D4 + b _080C1C50 + .pool +_080C1C30: + movs r0, 0x2 + ands r0, r1 + cmp r0, 0 + beq _080C1C68 + movs r0, 0x17 + bl audio_play + bl sub_80C267C + movs r0, 0x1 + bl sub_80C21D4 + ldrh r0, [r5, 0x24] + strh r0, [r4] + ldrh r0, [r5, 0x26] + strh r0, [r6] +_080C1C50: + ldr r0, =sub_80C16CC + str r0, [r5] + movs r0, 0 + movs r1, 0x2 + bl CopyWindowToVram + movs r0, 0x3 + bl CopyBgTilemapBufferToVram + b _080C1D2E + .pool +_080C1C68: + movs r3, 0 + mov r0, r12 + ldrh r1, [r0, 0x30] + movs r0, 0x40 + ands r0, r1 + cmp r0, 0 + beq _080C1CCA + ldrh r0, [r4] + cmp r0, 0 + beq _080C1C8E + bl sub_80C2638 + ldrh r0, [r4] + subs r0, 0x1 + strh r0, [r4] + ldrh r0, [r4] + bl sub_80C2650 + b _080C1CAA +_080C1C8E: + ldrh r0, [r6] + cmp r0, 0 + beq _080C1CA6 + subs r0, 0x1 + strh r0, [r6] + adds r0, r7, 0 + bl sub_80C2294 + ldrh r0, [r4] + bl sub_80C2650 + movs r3, 0x1 +_080C1CA6: + cmp r3, 0 + beq _080C1D2E +_080C1CAA: + movs r0, 0x5 + bl audio_play + ldrh r0, [r4] + ldrh r1, [r6] + adds r0, r1 + lsls r0, 3 + add r0, r8 + ldr r0, [r0] + bl sub_80C2618 + movs r0, 0 + movs r1, 0x2 + bl CopyWindowToVram + b _080C1D2E +_080C1CCA: + movs r0, 0x80 + ands r0, r1 + cmp r0, 0 + beq _080C1D2E + ldrh r0, [r4] + cmp r0, 0x4 + bhi _080C1CEE + cmp r0, r2 + bcs _080C1CEE + bl sub_80C2638 + ldrh r0, [r4] + adds r0, 0x1 + strh r0, [r4] + ldrh r0, [r4] + bl sub_80C2650 + b _080C1D10 +_080C1CEE: + cmp r2, 0x5 + bls _080C1D0C + ldrh r1, [r6] + subs r0, r2, 0x5 + cmp r1, r0 + bge _080C1D0C + adds r0, r1, 0x1 + strh r0, [r6] + adds r0, r7, 0 + bl sub_80C2294 + movs r0, 0x5 + bl sub_80C2650 + movs r3, 0x1 +_080C1D0C: + cmp r3, 0 + beq _080C1D2E +_080C1D10: + movs r0, 0x5 + bl audio_play + ldrh r0, [r4] + ldrh r1, [r6] + adds r0, r1 + lsls r0, 3 + add r0, r8 + ldr r0, [r0] + bl sub_80C2618 + movs r0, 0 + movs r1, 0x2 + bl CopyWindowToVram +_080C1D2E: + pop {r3} + mov r8, r3 + pop {r4-r7} + pop {r0} + bx r0 + thumb_func_end sub_80C1BCC + + thumb_func_start sub_80C1D38 +sub_80C1D38: @ 80C1D38 + push {r4,lr} + sub sp, 0x4 + adds r4, r0, 0 + lsls r4, 24 + lsrs r4, 24 + movs r0, 0x1 + negs r0, r0 + movs r1, 0 + str r1, [sp] + movs r2, 0 + movs r3, 0x10 + bl pal_fade_maybe + ldr r1, =0x03005e00 + lsls r0, r4, 2 + adds r0, r4 + lsls r0, 3 + adds r0, r1 + ldr r1, =sub_80C1D70 + str r1, [r0] + add sp, 0x4 + pop {r4} + pop {r0} + bx r0 + .pool + thumb_func_end sub_80C1D38 + + thumb_func_start sub_80C1D70 +sub_80C1D70: @ 80C1D70 + push {r4,lr} + lsls r0, 24 + lsrs r4, r0, 24 + ldr r0, =0x02037fd4 + ldrb r1, [r0, 0x7] + movs r0, 0x80 + ands r0, r1 + cmp r0, 0 + bne _080C1D8C + bl sub_80C152C + adds r0, r4, 0 + bl DestroyTask +_080C1D8C: + pop {r4} + pop {r0} + bx r0 + .pool + thumb_func_end sub_80C1D70 + + thumb_func_start sub_80C1D98 +sub_80C1D98: @ 80C1D98 + push {r4-r7,lr} + mov r7, r8 + push {r7} + adds r4, r3, 0 + lsls r0, 24 + lsrs r6, r0, 24 + lsls r1, 24 + lsrs r1, 24 + mov r8, r1 + lsls r2, 24 + lsrs r5, r2, 24 + lsls r4, 24 + lsrs r4, 24 + movs r0, 0x3 + bl GetBgTilemapBuffer + adds r2, r0, 0 + movs r3, 0 + cmp r3, r4 + bcs _080C1DEC + lsls r0, r5, 6 + adds r7, r0, r2 + ldr r5, =0x00000fff + lsls r2, r6, 12 +_080C1DC8: + mov r0, r8 + adds r1, r0, r3 + lsls r1, 1 + adds r1, r7 + ldrh r0, [r1] + ands r0, r5 + orrs r0, r2 + strh r0, [r1] + adds r1, 0x40 + ldrh r0, [r1] + ands r0, r5 + orrs r0, r2 + strh r0, [r1] + adds r0, r3, 0x1 + lsls r0, 16 + lsrs r3, r0, 16 + cmp r3, r4 + bcc _080C1DC8 +_080C1DEC: + pop {r3} + mov r8, r3 + pop {r4-r7} + pop {r0} + bx r0 + .pool + thumb_func_end sub_80C1D98 + + thumb_func_start sub_80C1DFC +sub_80C1DFC: @ 80C1DFC + push {r4,r5,lr} + lsls r0, 24 + lsrs r4, r0, 24 + lsls r1, 24 + lsrs r5, r1, 24 + lsls r2, 24 + lsrs r2, 24 + movs r0, 0x1 + ands r5, r0 + ands r2, r0 + lsls r2, 1 + orrs r5, r2 + cmp r4, 0xA + bhi _080C1EE8 + lsls r0, r4, 2 + ldr r1, =_080C1E28 + adds r0, r1 + ldr r0, [r0] + mov pc, r0 + .pool + .align 2, 0 +_080C1E28: + .4byte _080C1E54 + .4byte _080C1E54 + .4byte _080C1E54 + .4byte _080C1E64 + .4byte _080C1E64 + .4byte _080C1E7C + .4byte _080C1E7C + .4byte _080C1E64 + .4byte _080C1E64 + .4byte _080C1EA4 + .4byte _080C1E94 +_080C1E54: + ldr r1, =gUnknown_0856ED30 + lsls r0, r4, 3 + adds r0, r1 + ldrb r1, [r0, 0x4] + ldrb r2, [r0, 0x5] + b _080C1EC2 + .pool +_080C1E64: + ldr r2, =gUnknown_0856ED48 + subs r1, r4, 0x3 + lsls r0, r1, 1 + adds r0, r1 + lsls r0, 2 + adds r0, r2 + ldrb r1, [r0, 0x4] + ldrb r2, [r0, 0x5] + ldrb r3, [r0, 0x6] + adds r0, r5, 0 + bl sub_80C1D98 +_080C1E7C: + ldr r2, =gUnknown_0856ED48 + subs r1, r4, 0x3 + lsls r0, r1, 1 + adds r0, r1 + lsls r0, 2 + adds r0, r2 + ldrb r1, [r0, 0x7] + ldrb r2, [r0, 0x8] + ldrb r3, [r0, 0x9] + b _080C1EC4 + .pool +_080C1E94: + ldr r0, =gUnknown_0856ED48 + ldrb r1, [r0, 0x1C] + ldrb r2, [r0, 0x1D] + ldrb r3, [r0, 0x1E] + b _080C1EC4 + .pool +_080C1EA4: + bl sub_809D42C + cmp r0, 0 + bne _080C1ED0 + ldr r2, =gUnknown_0856ED48 + subs r1, r4, 0x3 + lsls r0, r1, 1 + adds r0, r1 + lsls r0, 2 + adds r0, r2 + ldrb r1, [r0, 0x4] + ldrb r2, [r0, 0x5] + subs r2, 0x2 + lsls r2, 24 + lsrs r2, 24 +_080C1EC2: + ldrb r3, [r0, 0x6] +_080C1EC4: + adds r0, r5, 0 + bl sub_80C1D98 + b _080C1EE8 + .pool +_080C1ED0: + ldr r2, =gUnknown_0856ED48 + subs r1, r4, 0x3 + lsls r0, r1, 1 + adds r0, r1 + lsls r0, 2 + adds r0, r2 + ldrb r1, [r0, 0x4] + ldrb r2, [r0, 0x5] + ldrb r3, [r0, 0x6] + adds r0, r5, 0 + bl sub_80C1D98 +_080C1EE8: + pop {r4,r5} + pop {r0} + bx r0 + .pool + thumb_func_end sub_80C1DFC + + thumb_func_start sub_80C1EF4 +sub_80C1EF4: @ 80C1EF4 + push {lr} + lsls r0, 24 + lsrs r0, 24 + adds r1, r0, 0 + cmp r0, 0x1 + beq _080C1F5E + cmp r0, 0x1 + bgt _080C1F0A + cmp r0, 0 + beq _080C1F10 + b _080C203C +_080C1F0A: + cmp r1, 0x2 + beq _080C1FCE + b _080C203C +_080C1F10: + movs r0, 0 + movs r1, 0 + movs r2, 0 + bl sub_80C1DFC + movs r0, 0x1 + movs r1, 0x1 + movs r2, 0 + bl sub_80C1DFC + movs r0, 0x2 + movs r1, 0x1 + movs r2, 0 + bl sub_80C1DFC + movs r0, 0x3 + movs r1, 0x1 + movs r2, 0 + bl sub_80C1DFC + movs r0, 0x4 + movs r1, 0x1 + movs r2, 0 + bl sub_80C1DFC + movs r0, 0xA + movs r1, 0x1 + movs r2, 0 + bl sub_80C1DFC + movs r0, 0x5 + movs r1, 0x1 + movs r2, 0 + bl sub_80C1DFC + movs r0, 0x6 + movs r1, 0x1 + movs r2, 0 + b _080C1FAA +_080C1F5E: + movs r0, 0 + movs r1, 0x1 + movs r2, 0 + bl sub_80C1DFC + movs r0, 0x1 + movs r1, 0 + movs r2, 0 + bl sub_80C1DFC + movs r0, 0x2 + movs r1, 0x1 + movs r2, 0 + bl sub_80C1DFC + movs r0, 0x3 + movs r1, 0x1 + movs r2, 0x1 + bl sub_80C1DFC + movs r0, 0x4 + movs r1, 0x1 + movs r2, 0x1 + bl sub_80C1DFC + movs r0, 0xA + movs r1, 0x1 + movs r2, 0x1 + bl sub_80C1DFC + movs r0, 0x5 + movs r1, 0x1 + movs r2, 0x1 + bl sub_80C1DFC + movs r0, 0x6 + movs r1, 0x1 + movs r2, 0x1 +_080C1FAA: + bl sub_80C1DFC + movs r0, 0x7 + movs r1, 0x1 + movs r2, 0 + bl sub_80C1DFC + movs r0, 0x8 + movs r1, 0x1 + movs r2, 0 + bl sub_80C1DFC + movs r0, 0x9 + movs r1, 0x1 + movs r2, 0 + bl sub_80C1DFC + b _080C203C +_080C1FCE: + movs r0, 0 + movs r1, 0x1 + movs r2, 0 + bl sub_80C1DFC + movs r0, 0x1 + movs r1, 0x1 + movs r2, 0 + bl sub_80C1DFC + movs r0, 0x2 + movs r1, 0 + movs r2, 0 + bl sub_80C1DFC + movs r0, 0x3 + movs r1, 0x1 + movs r2, 0x1 + bl sub_80C1DFC + movs r0, 0x4 + movs r1, 0x1 + movs r2, 0x1 + bl sub_80C1DFC + movs r0, 0xA + movs r1, 0x1 + movs r2, 0x1 + bl sub_80C1DFC + movs r0, 0x5 + movs r1, 0x1 + movs r2, 0x1 + bl sub_80C1DFC + movs r0, 0x6 + movs r1, 0x1 + movs r2, 0x1 + bl sub_80C1DFC + movs r0, 0x7 + movs r1, 0x1 + movs r2, 0x1 + bl sub_80C1DFC + movs r0, 0x8 + movs r1, 0x1 + movs r2, 0x1 + bl sub_80C1DFC + movs r0, 0x9 + movs r1, 0x1 + movs r2, 0x1 + bl sub_80C1DFC +_080C203C: + pop {r0} + bx r0 + thumb_func_end sub_80C1EF4 + + thumb_func_start sub_80C2040 +sub_80C2040: @ 80C2040 + push {r4,lr} + adds r4, r0, 0 + lsls r4, 24 + lsrs r4, 24 + adds r0, r4, 0 + bl sub_80C1EF4 + ldr r0, =gUnknown_0856ED30 + lsls r4, 3 + adds r4, r0 + ldr r0, [r4] + bl sub_80C2618 + pop {r4} + pop {r0} + bx r0 + .pool + thumb_func_end sub_80C2040 + + thumb_func_start sub_80C2064 +sub_80C2064: @ 80C2064 + push {r4,lr} + lsls r0, 24 + lsrs r0, 24 + lsls r1, 24 + lsrs r4, r1, 24 + bl sub_80C1EF4 + cmp r4, 0x6 + bhi _080C20DE + lsls r0, r4, 2 + ldr r1, =_080C2084 + adds r0, r1 + ldr r0, [r0] + mov pc, r0 + .pool + .align 2, 0 +_080C2084: + .4byte _080C20A0 + .4byte _080C20A4 + .4byte _080C20A8 + .4byte _080C20B6 + .4byte _080C20C4 + .4byte _080C20C8 + .4byte _080C20D4 +_080C20A0: + movs r0, 0x3 + b _080C20CA +_080C20A4: + movs r0, 0x4 + b _080C20CA +_080C20A8: + movs r0, 0xA + movs r1, 0 + movs r2, 0 + bl sub_80C1DFC + movs r0, 0x5 + b _080C20CA +_080C20B6: + movs r0, 0xA + movs r1, 0 + movs r2, 0 + bl sub_80C1DFC + movs r0, 0x6 + b _080C20CA +_080C20C4: + movs r0, 0x7 + b _080C20CA +_080C20C8: + movs r0, 0x8 +_080C20CA: + movs r1, 0 + movs r2, 0 + bl sub_80C1DFC + b _080C20DE +_080C20D4: + movs r0, 0x9 + movs r1, 0 + movs r2, 0 + bl sub_80C1DFC +_080C20DE: + ldr r0, =gUnknown_0856ED48 + lsls r1, r4, 1 + adds r1, r4 + lsls r1, 2 + adds r1, r0 + ldr r0, [r1] + bl sub_80C2618 + pop {r4} + pop {r0} + bx r0 + .pool + thumb_func_end sub_80C2064 + + thumb_func_start sub_80C20F8 +sub_80C20F8: @ 80C20F8 + push {r4,r5,lr} + adds r4, r0, 0 + lsls r4, 24 + lsrs r4, 24 + movs r0, 0x28 + movs r1, 0x10 + movs r2, 0x60 + movs r3, 0x50 + bl sub_80C12B0 + ldr r1, =0x03005e00 + lsls r0, r4, 2 + adds r0, r4 + lsls r0, 3 + adds r5, r0, r1 + ldrh r0, [r5, 0x16] + ldrh r1, [r5, 0x14] + adds r0, r1 + lsls r0, 16 + ldr r1, =gUnknown_0856EE5C + lsrs r0, 13 + adds r1, 0x4 + adds r0, r1 + ldr r0, [r0] + movs r1, 0x2D + movs r2, 0x11 + bl sub_80C1270 + ldrh r0, [r5, 0x1A] + ldrh r1, [r5, 0x18] + adds r0, r1 + lsls r0, 16 + ldr r1, =gUnknown_0856EEB4 + lsrs r0, 13 + adds r1, 0x4 + adds r0, r1 + ldr r0, [r0] + movs r1, 0x2D + movs r2, 0x21 + bl sub_80C1270 + ldrh r0, [r5, 0x1E] + ldrh r1, [r5, 0x1C] + adds r0, r1 + lsls r0, 16 + ldr r4, =gUnknown_0856EF14 + lsrs r0, 13 + adds r4, 0x4 + adds r0, r4 + ldr r0, [r0] + movs r1, 0x2D + movs r2, 0x31 + bl sub_80C1270 + ldrh r0, [r5, 0x22] + ldrh r1, [r5, 0x20] + adds r0, r1 + lsls r0, 16 + lsrs r0, 13 + adds r0, r4 + ldr r0, [r0] + movs r1, 0x5D + movs r2, 0x31 + bl sub_80C1270 + ldrh r0, [r5, 0x12] + ldrh r1, [r5, 0x10] + adds r0, r1 + lsls r0, 16 + ldr r1, =gUnknown_0856EE24 + lsrs r0, 13 + adds r1, 0x4 + adds r0, r1 + ldr r0, [r0] + movs r1, 0x2D + movs r2, 0x41 + bl sub_80C1270 + bl sub_809D42C + cmp r0, 0 + beq _080C21B6 + ldrh r0, [r5, 0xE] + ldrh r5, [r5, 0xC] + adds r0, r5 + lsls r0, 16 + ldr r1, =gUnknown_0856EE0C + lsrs r0, 13 + adds r1, 0x4 + adds r0, r1 + ldr r0, [r0] + movs r1, 0x2D + movs r2, 0x51 + bl sub_80C1270 +_080C21B6: + pop {r4,r5} + pop {r0} + bx r0 + .pool + thumb_func_end sub_80C20F8 + + thumb_func_start sub_80C21D4 +sub_80C21D4: @ 80C21D4 + push {r4-r6,lr} + adds r4, r0, 0 + lsls r4, 24 + lsrs r4, 24 + movs r0, 0x3 + bl GetBgTilemapBuffer + adds r5, r0, 0 + cmp r4, 0 + bne _080C2268 + ldr r1, =0x00000c0b + adds r0, r1, 0 + strh r0, [r5, 0x22] + movs r1, 0x12 + ldr r0, =0x0000080d + adds r2, r0, 0 +_080C21F4: + lsls r0, r1, 1 + adds r0, r5 + strh r2, [r0] + adds r0, r1, 0x1 + lsls r0, 16 + lsrs r1, r0, 16 + cmp r1, 0x1E + bls _080C21F4 + movs r2, 0x1 + ldr r1, =0x0000040a + adds r6, r1, 0 + movs r4, 0x2 +_080C220C: + lsls r0, r2, 6 + adds r0, r5 + strh r6, [r0, 0x22] + movs r1, 0x12 + adds r3, r2, 0x1 + adds r2, r0, 0 +_080C2218: + lsls r0, r1, 1 + adds r0, r2 + strh r4, [r0] + adds r0, r1, 0x1 + lsls r0, 16 + lsrs r1, r0, 16 + cmp r1, 0x1E + bls _080C2218 + lsls r0, r3, 16 + lsrs r2, r0, 16 + cmp r2, 0xC + bls _080C220C + ldr r2, =0x00000362 + adds r1, r5, r2 + adds r2, 0xA9 + adds r0, r2, 0 + strh r0, [r1] + movs r1, 0x12 + movs r3, 0xD0 + lsls r3, 2 + movs r2, 0xD +_080C2242: + lsls r0, r1, 1 + adds r0, r5 + adds r0, r3 + strh r2, [r0] + adds r0, r1, 0x1 + lsls r0, 16 + lsrs r1, r0, 16 + cmp r1, 0x1E + bls _080C2242 + b _080C228C + .pool +_080C2268: + movs r2, 0 + movs r4, 0x4F +_080C226C: + movs r1, 0x11 + lsls r0, r2, 6 + adds r3, r2, 0x1 + adds r2, r0, r5 +_080C2274: + lsls r0, r1, 1 + adds r0, r2 + strh r4, [r0] + adds r0, r1, 0x1 + lsls r0, 16 + lsrs r1, r0, 16 + cmp r1, 0x1D + bls _080C2274 + lsls r0, r3, 16 + lsrs r2, r0, 16 + cmp r2, 0xD + bls _080C226C +_080C228C: + pop {r4-r6} + pop {r0} + bx r0 + thumb_func_end sub_80C21D4 + + thumb_func_start sub_80C2294 +sub_80C2294: @ 80C2294 + push {r4-r7,lr} + mov r7, r8 + push {r7} + lsls r0, 24 + lsrs r0, 24 + ldr r4, =gUnknown_0856EFC8 + ldr r3, =0x03005e00 + lsls r2, r0, 2 + adds r2, r0 + lsls r2, 3 + adds r0, r2, r3 + movs r5, 0xA + ldrsh r1, [r0, r5] + lsls r1, 3 + adds r1, r4 + ldr r6, [r1] + adds r3, 0x8 + adds r2, r3 + ldrb r0, [r1, 0x4] + lsls r0, 1 + adds r0, r2 + mov r8, r0 + ldrb r0, [r1, 0x5] + lsls r0, 1 + adds r7, r2, r0 + bl sub_80C267C + movs r5, 0 + ldrh r4, [r7] + b _080C22F2 + .pool +_080C22D8: + adds r0, r1, r6 + ldr r1, [r0, 0x4] + adds r0, r5, 0 + bl sub_80C2668 + adds r0, r5, 0x1 + lsls r0, 16 + lsrs r5, r0, 16 + adds r0, r4, 0x1 + lsls r0, 16 + lsrs r4, r0, 16 + cmp r5, 0x5 + bhi _080C22FC +_080C22F2: + lsls r1, r4, 3 + adds r0, r1, r6 + ldr r0, [r0, 0x4] + cmp r0, 0 + bne _080C22D8 +_080C22FC: + mov r1, r8 + ldrh r0, [r1] + ldrh r1, [r7] + adds r0, r1 + lsls r0, 3 + adds r0, r6 + ldr r0, [r0] + bl sub_80C2618 + pop {r3} + mov r8, r3 + pop {r4-r7} + pop {r0} + bx r0 + thumb_func_end sub_80C2294 + + thumb_func_start sub_80C2318 +sub_80C2318: @ 80C2318 + push {lr} + lsls r0, 24 + lsrs r0, 24 + lsls r1, 24 + lsrs r3, r1, 24 + lsls r1, r0, 2 + adds r1, r0 + lsls r1, 3 + ldr r0, =0x03005e08 + adds r1, r0 + ldr r2, =gUnknown_0856EFC8 + lsls r0, r3, 3 + adds r0, r2 + ldrb r2, [r0, 0x4] + lsls r2, 1 + adds r2, r1, r2 + ldrb r0, [r0, 0x5] + lsls r0, 1 + adds r1, r0 + ldrh r0, [r1] + ldrh r2, [r2] + adds r0, r2 + lsls r0, 16 + lsrs r2, r0, 16 + cmp r3, 0x5 + bhi _080C237C + lsls r0, r3, 2 + ldr r1, =_080C2364 + adds r0, r1 + ldr r0, [r0] + mov pc, r0 + .pool + .align 2, 0 +_080C2364: + .4byte _080C2390 + .4byte _080C239A + .4byte _080C23AA + .4byte _080C23AA + .4byte _080C2388 + .4byte _080C2380 +_080C237C: + movs r0, 0 + b _080C23B0 +_080C2380: + ldr r0, =gUnknown_0856EFAC + b _080C23AC + .pool +_080C2388: + ldr r0, =gUnknown_0856EFAE + b _080C23AC + .pool +_080C2390: + cmp r2, 0 + beq _080C239E + lsls r0, r2, 24 + lsrs r0, 24 + b _080C23B0 +_080C239A: + cmp r2, 0 + bne _080C23A2 +_080C239E: + movs r0, 0xFF + b _080C23B0 +_080C23A2: + subs r0, r2, 0x1 + lsls r0, 24 + lsrs r0, 24 + b _080C23B0 +_080C23AA: + ldr r0, =gUnknown_0856EFB4 +_080C23AC: + adds r0, r2, r0 + ldrb r0, [r0] +_080C23B0: + pop {r1} + bx r1 + .pool + thumb_func_end sub_80C2318 + + thumb_func_start sub_80C23B8 +sub_80C23B8: @ 80C23B8 + push {r4,r5,lr} + lsls r0, 24 + lsrs r4, r0, 24 + ldr r1, =0x02039b4c + ldr r0, [r1] + ldr r2, =0x00000614 + adds r0, r2 + ldrh r0, [r0] + adds r5, r1, 0 + cmp r0, 0 + beq _080C23D2 + cmp r0, 0x1 + beq _080C23E0 +_080C23D2: + movs r3, 0 + b _080C23E2 + .pool +_080C23E0: + movs r3, 0x1 +_080C23E2: + ldr r1, =0x03005e00 + lsls r2, r4, 2 + adds r0, r2, r4 + lsls r0, 3 + adds r0, r1 + strh r3, [r0, 0xC] + ldr r0, [r5] + movs r3, 0xC3 + lsls r3, 3 + adds r0, r3 + ldrh r0, [r0] + adds r5, r1, 0 + cmp r0, 0x5 + bhi _080C2428 + lsls r0, 2 + ldr r1, =_080C2410 + adds r0, r1 + ldr r0, [r0] + mov pc, r0 + .pool + .align 2, 0 +_080C2410: + .4byte _080C2428 + .4byte _080C242C + .4byte _080C2430 + .4byte _080C2434 + .4byte _080C2438 + .4byte _080C243C +_080C2428: + movs r3, 0 + b _080C243E +_080C242C: + movs r3, 0x1 + b _080C243E +_080C2430: + movs r3, 0x2 + b _080C243E +_080C2434: + movs r3, 0x3 + b _080C243E +_080C2438: + movs r3, 0x4 + b _080C243E +_080C243C: + movs r3, 0x5 +_080C243E: + adds r0, r2, r4 + lsls r0, 3 + adds r0, r5 + strh r3, [r0, 0x10] + pop {r4,r5} + pop {r0} + bx r0 + thumb_func_end sub_80C23B8 + + thumb_func_start sub_80C244C +sub_80C244C: @ 80C244C + push {lr} + lsls r0, 24 + lsrs r0, 24 + ldr r3, =0x03005e00 + lsls r1, r0, 2 + adds r1, r0 + lsls r1, 3 + adds r0, r1, r3 + ldrb r2, [r0, 0xA] + adds r3, 0x8 + adds r1, r3 + ldr r0, =gUnknown_0856EFC8 + lsls r2, 3 + adds r2, r0 + ldrb r0, [r2, 0x5] + lsls r0, 1 + adds r1, r0 + ldrh r0, [r2, 0x6] + subs r0, 0x1 + lsls r0, 16 + lsrs r0, 16 + cmp r0, 0x5 + bls _080C248C + ldrh r0, [r1] + cmp r0, 0 + beq _080C248C + movs r0, 0 + b _080C248E + .pool +_080C248C: + movs r0, 0x1 +_080C248E: + pop {r1} + bx r1 + thumb_func_end sub_80C244C + + thumb_func_start sub_80C2494 +sub_80C2494: @ 80C2494 + push {lr} + lsls r0, 24 + lsrs r0, 24 + ldr r3, =0x03005e00 + lsls r1, r0, 2 + adds r1, r0 + lsls r1, 3 + adds r0, r1, r3 + ldrb r2, [r0, 0xA] + adds r3, 0x8 + adds r1, r3 + ldr r0, =gUnknown_0856EFC8 + lsls r2, 3 + adds r2, r0 + ldrb r0, [r2, 0x5] + lsls r0, 1 + adds r1, r0 + ldrh r0, [r2, 0x6] + subs r0, 0x1 + lsls r0, 16 + lsrs r0, 16 + cmp r0, 0x5 + bls _080C24D8 + ldrh r1, [r1] + subs r0, 0x5 + cmp r1, r0 + bge _080C24D8 + movs r0, 0 + b _080C24DA + .pool +_080C24D8: + movs r0, 0x1 +_080C24DA: + pop {r1} + bx r1 + thumb_func_end sub_80C2494 + + thumb_func_start sub_80C24E0 +sub_80C24E0: @ 80C24E0 + push {r4,lr} + adds r4, r0, 0 + ldr r2, =0x03005e00 + movs r0, 0x2E + ldrsh r1, [r4, r0] + lsls r0, r1, 2 + adds r0, r1 + lsls r0, 3 + adds r0, r2 + ldr r1, [r0] + ldr r0, =sub_80C1BCC + cmp r1, r0 + bne _080C2580 + movs r1, 0x30 + ldrsh r0, [r4, r1] + cmp r0, 0 + beq _080C2528 + ldrh r0, [r4, 0x2E] + lsls r0, 24 + lsrs r0, 24 + bl sub_80C2494 + lsls r0, 24 + cmp r0, 0 + beq _080C2544 + adds r2, r4, 0 + adds r2, 0x3E + ldrb r0, [r2] + movs r1, 0x4 + orrs r0, r1 + b _080C2550 + .pool +_080C2528: + ldrh r0, [r4, 0x2E] + lsls r0, 24 + lsrs r0, 24 + bl sub_80C244C + lsls r0, 24 + cmp r0, 0 + beq _080C2544 + adds r2, r4, 0 + adds r2, 0x3E + ldrb r0, [r2] + movs r1, 0x4 + orrs r0, r1 + b _080C2550 +_080C2544: + adds r2, r4, 0 + adds r2, 0x3E + ldrb r1, [r2] + movs r0, 0x5 + negs r0, r0 + ands r0, r1 +_080C2550: + strb r0, [r2] + ldrh r2, [r4, 0x32] + movs r1, 0x30 + ldrsh r0, [r4, r1] + lsls r0, 7 + adds r0, r2, r0 + lsls r0, 24 + ldr r1, =gUnknown_08329F40 + lsrs r0, 23 + adds r0, r1 + movs r1, 0 + ldrsh r0, [r0, r1] + cmp r0, 0 + bge _080C256E + adds r0, 0x7F +_080C256E: + asrs r0, 7 + strh r0, [r4, 0x26] + adds r0, r2, 0 + adds r0, 0x8 + strh r0, [r4, 0x32] + b _080C258C + .pool +_080C2580: + adds r0, r4, 0 + adds r0, 0x3E + ldrb r1, [r0] + movs r2, 0x4 + orrs r1, r2 + strb r1, [r0] +_080C258C: + pop {r4} + pop {r0} + bx r0 + thumb_func_end sub_80C24E0 + + thumb_func_start sub_80C2594 +sub_80C2594: @ 80C2594 + push {r4-r6,lr} + mov r6, r9 + mov r5, r8 + push {r5,r6} + adds r5, r0, 0 + lsls r5, 24 + lsrs r5, 24 + ldr r6, =gUnknown_0855D1AC + adds r0, r6, 0 + movs r1, 0xB8 + movs r2, 0x4 + movs r3, 0 + bl AddObjectToFront + lsls r0, 24 + lsrs r0, 24 + ldr r4, =0x02020630 + lsls r1, r0, 4 + adds r1, r0 + lsls r1, 2 + adds r0, r1, r4 + movs r2, 0 + strh r5, [r0, 0x2E] + strh r2, [r0, 0x30] + movs r0, 0x1C + adds r0, r4 + mov r9, r0 + add r1, r9 + ldr r0, =sub_80C24E0 + mov r8, r0 + str r0, [r1] + adds r0, r6, 0 + movs r1, 0xB8 + movs r2, 0x6C + movs r3, 0 + bl AddObjectToFront + lsls r0, 24 + lsrs r0, 24 + lsls r1, r0, 4 + adds r1, r0 + lsls r1, 2 + adds r4, r1, r4 + strh r5, [r4, 0x2E] + movs r0, 0x1 + strh r0, [r4, 0x30] + adds r4, 0x3F + ldrb r0, [r4] + movs r2, 0x2 + orrs r0, r2 + strb r0, [r4] + add r1, r9 + mov r0, r8 + str r0, [r1] + pop {r3,r4} + mov r8, r3 + mov r9, r4 + pop {r4-r6} + pop {r0} + bx r0 + .pool + thumb_func_end sub_80C2594 + + thumb_func_start sub_80C2618 +sub_80C2618: @ 80C2618 + push {r4,lr} + adds r4, r0, 0 + movs r0, 0x8 + movs r1, 0x78 + movs r2, 0xE0 + movs r3, 0x20 + bl sub_80C12B0 + adds r0, r4, 0 + movs r1, 0x8 + movs r2, 0x79 + bl sub_80C1270 + pop {r4} + pop {r0} + bx r0 + thumb_func_end sub_80C2618 + + thumb_func_start sub_80C2638 +sub_80C2638: @ 80C2638 + push {lr} + adds r1, r0, 0 + lsls r1, 4 + adds r1, 0x8 + movs r0, 0x90 + movs r2, 0x8 + movs r3, 0x10 + bl sub_80C12B0 + pop {r0} + bx r0 + thumb_func_end sub_80C2638 + + thumb_func_start sub_80C2650 +sub_80C2650: @ 80C2650 + push {lr} + adds r2, r0, 0 + ldr r0, =gUnknown_085E8B3A + lsls r2, 4 + adds r2, 0x9 + movs r1, 0x90 + bl sub_80C1270 + pop {r0} + bx r0 + .pool + thumb_func_end sub_80C2650 + + thumb_func_start sub_80C2668 +sub_80C2668: @ 80C2668 + push {lr} + adds r2, r0, 0 + adds r0, r1, 0 + lsls r2, 4 + adds r2, 0x9 + movs r1, 0x98 + bl sub_80C1270 + pop {r0} + bx r0 + thumb_func_end sub_80C2668 + + thumb_func_start sub_80C267C +sub_80C267C: @ 80C267C + push {lr} + movs r0, 0x90 + movs r1, 0x8 + movs r2, 0x60 + movs r3, 0x60 + bl sub_80C12B0 + pop {r0} + bx r0 + thumb_func_end sub_80C267C + + .align 2, 0 @ Don't pad with nop. |