diff options
Diffstat (limited to 'asm/pokenav.s')
-rw-r--r-- | asm/pokenav.s | 23155 |
1 files changed, 23155 insertions, 0 deletions
diff --git a/asm/pokenav.s b/asm/pokenav.s new file mode 100644 index 000000000..7790b9d6e --- /dev/null +++ b/asm/pokenav.s @@ -0,0 +1,23155 @@ + .include "constants/gba_constants.s" + .include "constants/species_constants.s" + .include "asm/macros.s" + + .syntax unified + + .text + + thumb_func_start sub_80EBA5C +sub_80EBA5C: @ 80EBA5C + push {lr} + ldr r0, _080EBA74 @ =gMain + ldr r2, _080EBA78 @ =0x0000043c + adds r1, r0, r2 + ldrb r0, [r1] + cmp r0, 0xE + bhi _080EBABC + lsls r0, 2 + ldr r1, _080EBA7C @ =_080EBA80 + adds r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_080EBA74: .4byte gMain +_080EBA78: .4byte 0x0000043c +_080EBA7C: .4byte _080EBA80 + .align 2, 0 +_080EBA80: + .4byte _080EBAC0 + .4byte _080EBB08 + .4byte _080EBB10 + .4byte _080EBB16 + .4byte _080EBB1C + .4byte _080EBB22 + .4byte _080EBB28 + .4byte _080EBB2E + .4byte _080EBB3E + .4byte _080EBB4C + .4byte _080EBB5C + .4byte _080EBB6C + .4byte _080EBB7C + .4byte _080EBB90 + .4byte _080EBBA0 +_080EBABC: + movs r0, 0 + strb r0, [r1] +_080EBAC0: + bl is_c1_link_related_active + ldr r3, _080EBAF0 @ =0x02000000 + ldr r2, _080EBAF4 @ =0x00006dac + adds r1, r3, r2 + strb r0, [r1] + lsls r0, 24 + lsrs r2, r0, 24 + cmp r2, 0 + bne _080EBBC0 + ldr r1, _080EBAF8 @ =0x00006dab + adds r0, r3, r1 + strb r2, [r0] + ldr r1, _080EBAFC @ =gMain + ldr r2, _080EBB00 @ =0x0000043c + adds r1, r2 + ldrb r0, [r1] + adds r0, 0x1 + strb r0, [r1] + ldr r0, _080EBB04 @ =sub_80EBBE8 + bl SetMainCallback2 + b _080EBBC0 + .align 2, 0 +_080EBAF0: .4byte 0x02000000 +_080EBAF4: .4byte 0x00006dac +_080EBAF8: .4byte 0x00006dab +_080EBAFC: .4byte gMain +_080EBB00: .4byte 0x0000043c +_080EBB04: .4byte sub_80EBBE8 +_080EBB08: + movs r0, 0 + bl SetVBlankCallback + b _080EBBC0 +_080EBB10: + bl ResetPaletteFade + b _080EBBC0 +_080EBB16: + bl ResetSpriteData + b _080EBBC0 +_080EBB1C: + bl FreeAllSpritePalettes + b _080EBBC0 +_080EBB22: + bl ResetTasks + b _080EBBC0 +_080EBB28: + bl remove_some_task + b _080EBBC0 +_080EBB2E: + bl sub_80F1A90 + ldr r1, _080EBB44 @ =gMain + ldr r0, _080EBB48 @ =0x0000043c + adds r1, r0 + ldrb r0, [r1] + adds r0, 0x1 + strb r0, [r1] +_080EBB3E: + bl sub_80F1AC4 + b _080EBB80 + .align 2, 0 +_080EBB44: .4byte gMain +_080EBB48: .4byte 0x0000043c +_080EBB4C: + bl sub_80F2688 + ldr r1, _080EBB64 @ =gMain + ldr r2, _080EBB68 @ =0x0000043c + adds r1, r2 + ldrb r0, [r1] + adds r0, 0x1 + strb r0, [r1] +_080EBB5C: + bl sub_80F26BC + b _080EBB80 + .align 2, 0 +_080EBB64: .4byte gMain +_080EBB68: .4byte 0x0000043c +_080EBB6C: + bl sub_80F36F0 + ldr r1, _080EBB88 @ =gMain + ldr r0, _080EBB8C @ =0x0000043c + adds r1, r0 + ldrb r0, [r1] + adds r0, 0x1 + strb r0, [r1] +_080EBB7C: + bl sub_80F3724 +_080EBB80: + lsls r0, 24 + cmp r0, 0 + bne _080EBBCC + b _080EBBC0 + .align 2, 0 +_080EBB88: .4byte gMain +_080EBB8C: .4byte 0x0000043c +_080EBB90: + bl sub_80EBC10 + ldr r0, _080EBB9C @ =sub_80EBDD8 + bl sub_80EBDBC + b _080EBBC0 + .align 2, 0 +_080EBB9C: .4byte sub_80EBDD8 +_080EBBA0: + ldr r0, _080EBBD0 @ =0x02000000 + ldr r1, _080EBBD4 @ =0x00006dab + adds r0, r1 + movs r1, 0x1 + strb r1, [r0] + movs r0, 0x6E + bl PlaySE + ldr r0, _080EBBD8 @ =sub_80EBD90 + bl SetMainCallback2 + ldr r0, _080EBBDC @ =sub_80EBD18 + bl SetVBlankCallback + bl sub_80F1A74 +_080EBBC0: + ldr r1, _080EBBE0 @ =gMain + ldr r2, _080EBBE4 @ =0x0000043c + adds r1, r2 + ldrb r0, [r1] + adds r0, 0x1 + strb r0, [r1] +_080EBBCC: + pop {r0} + bx r0 + .align 2, 0 +_080EBBD0: .4byte 0x02000000 +_080EBBD4: .4byte 0x00006dab +_080EBBD8: .4byte sub_80EBD90 +_080EBBDC: .4byte sub_80EBD18 +_080EBBE0: .4byte gMain +_080EBBE4: .4byte 0x0000043c + thumb_func_end sub_80EBA5C + + thumb_func_start sub_80EBBE8 +sub_80EBBE8: @ 80EBBE8 + push {r4,lr} + ldr r0, _080EBC08 @ =0x02000000 + ldr r2, _080EBC0C @ =0x00006dab + adds r1, r0, r2 + ldrb r0, [r1] + cmp r0, 0 + bne _080EBC02 + adds r4, r1, 0 +_080EBBF8: + bl sub_80EBA5C + ldrb r0, [r4] + cmp r0, 0 + beq _080EBBF8 +_080EBC02: + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_080EBC08: .4byte 0x02000000 +_080EBC0C: .4byte 0x00006dab + thumb_func_end sub_80EBBE8 + + thumb_func_start sub_80EBC10 +sub_80EBC10: @ 80EBC10 + push {r4-r7,lr} + ldr r1, _080EBC7C @ =gKeyRepeatStartDelay + movs r0, 0x14 + strh r0, [r1] + bl CalculatePlayerPartyCount + ldr r2, _080EBC80 @ =0x02000000 + ldr r1, _080EBC84 @ =0x00008828 + adds r3, r2, r1 + movs r1, 0 + strb r0, [r3] + ldr r3, _080EBC88 @ =0x00006ddc + adds r0, r2, r3 + strb r1, [r0] + ldr r3, _080EBC8C @ =0x00009344 + adds r0, r2, r3 + strb r1, [r0] + ldr r3, _080EBC90 @ =0x00008768 + adds r0, r2, r3 + str r1, [r0] + ldr r3, _080EBC94 @ =0x0000ced0 + adds r0, r2, r3 + str r1, [r0] + movs r3, 0 + ldr r0, _080EBC98 @ =0x00008fff + adds r7, r2, r0 + mov r12, r2 + movs r6, 0 + ldr r5, _080EBC9C @ =0x00009040 + movs r4, 0x9B +_080EBC4C: + adds r0, r3, r7 + strb r6, [r0] + lsls r1, r3, 2 + adds r1, r2 + adds r0, r1, r5 + strh r4, [r0] + ldr r0, _080EBCA0 @ =0x00009042 + adds r1, r0 + movs r0, 0x5B + strh r0, [r1] + adds r0, r3, 0x1 + lsls r0, 16 + lsrs r3, r0, 16 + cmp r3, 0x4 + bls _080EBC4C + ldr r1, _080EBCA4 @ =0x00006e95 + add r1, r12 + movs r0, 0 + strb r0, [r1] + bl sub_80EBCA8 + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_080EBC7C: .4byte gKeyRepeatStartDelay +_080EBC80: .4byte 0x02000000 +_080EBC84: .4byte 0x00008828 +_080EBC88: .4byte 0x00006ddc +_080EBC8C: .4byte 0x00009344 +_080EBC90: .4byte 0x00008768 +_080EBC94: .4byte 0x0000ced0 +_080EBC98: .4byte 0x00008fff +_080EBC9C: .4byte 0x00009040 +_080EBCA0: .4byte 0x00009042 +_080EBCA4: .4byte 0x00006e95 + thumb_func_end sub_80EBC10 + + thumb_func_start sub_80EBCA8 +sub_80EBCA8: @ 80EBCA8 + push {r4,lr} + ldr r4, _080EBCDC @ =0x02000000 + ldr r0, _080EBCE0 @ =0x00006db2 + adds r1, r4, r0 + movs r0, 0x1 + strb r0, [r1] + ldr r0, _080EBCE4 @ =0x00006db3 + adds r1, r4, r0 + movs r0, 0x2 + strb r0, [r1] + ldr r0, _080EBCE8 @ =0x00006db4 + adds r1, r4, r0 + movs r0, 0x3 + strb r0, [r1] + ldr r0, _080EBCEC @ =0x0000083b + bl FlagGet + lsls r0, 24 + lsrs r2, r0, 24 + cmp r2, 0 + beq _080EBCF4 + ldr r0, _080EBCF0 @ =0x00006db5 + adds r1, r4, r0 + movs r0, 0x4 + strb r0, [r1] + b _080EBCFA + .align 2, 0 +_080EBCDC: .4byte 0x02000000 +_080EBCE0: .4byte 0x00006db2 +_080EBCE4: .4byte 0x00006db3 +_080EBCE8: .4byte 0x00006db4 +_080EBCEC: .4byte 0x0000083b +_080EBCF0: .4byte 0x00006db5 +_080EBCF4: + ldr r1, _080EBD0C @ =0x00006db5 + adds r0, r4, r1 + strb r2, [r0] +_080EBCFA: + ldr r0, _080EBD10 @ =0x02000000 + ldr r1, _080EBD14 @ =0x00006db6 + adds r0, r1 + movs r1, 0x5 + strb r1, [r0] + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_080EBD0C: .4byte 0x00006db5 +_080EBD10: .4byte 0x02000000 +_080EBD14: .4byte 0x00006db6 + thumb_func_end sub_80EBCA8 + + thumb_func_start sub_80EBD18 +sub_80EBD18: @ 80EBD18 + push {lr} + bl LoadOam + bl ProcessSpriteCopyRequests + bl TransferPlttBuffer + bl sub_80F1FF0 + pop {r0} + bx r0 + thumb_func_end sub_80EBD18 + + thumb_func_start sub_80EBD30 +sub_80EBD30: @ 80EBD30 + push {lr} + bl LoadOam + bl ProcessSpriteCopyRequests + bl TransferPlttBuffer + bl sub_80FB260 + bl sub_80EFE7C + pop {r0} + bx r0 + thumb_func_end sub_80EBD30 + + thumb_func_start sub_80EBD4C +sub_80EBD4C: @ 80EBD4C + push {lr} + bl LoadOam + bl ProcessSpriteCopyRequests + bl TransferPlttBuffer + bl sub_80F5BF0 + bl sub_8089668 + pop {r0} + bx r0 + thumb_func_end sub_80EBD4C + + thumb_func_start sub_80EBD68 +sub_80EBD68: @ 80EBD68 + push {lr} + bl LoadOam + bl ProcessSpriteCopyRequests + bl TransferPlttBuffer + bl sub_80F6F64 + pop {r0} + bx r0 + thumb_func_end sub_80EBD68 + + thumb_func_start sub_80EBD80 +sub_80EBD80: @ 80EBD80 + push {lr} + bl LoadOam + bl ProcessSpriteCopyRequests + pop {r0} + bx r0 + thumb_func_end sub_80EBD80 + + thumb_func_start sub_80EBD90 +sub_80EBD90: @ 80EBD90 + push {lr} + ldr r0, _080EBDB8 @ =0x02000000 + movs r1, 0xC0 + lsls r1, 2 + adds r0, r1 + ldr r0, [r0] + bl _call_via_r0 + bl AnimateSprites + bl BuildOamBuffer + bl RunTasks + bl UpdatePaletteFade + bl sub_80F19FC + pop {r0} + bx r0 + .align 2, 0 +_080EBDB8: .4byte 0x02000000 + thumb_func_end sub_80EBD90 + + thumb_func_start sub_80EBDBC +sub_80EBDBC: @ 80EBDBC + ldr r2, _080EBDD4 @ =0x02000000 + movs r3, 0xC0 + lsls r3, 2 + adds r1, r2, r3 + str r0, [r1] + movs r0, 0xC1 + lsls r0, 2 + adds r1, r2, r0 + movs r0, 0 + strh r0, [r1] + bx lr + .align 2, 0 +_080EBDD4: .4byte 0x02000000 + thumb_func_end sub_80EBDBC + + thumb_func_start sub_80EBDD8 +sub_80EBDD8: @ 80EBDD8 + push {lr} + sub sp, 0x4 + ldr r1, _080EBDF8 @ =0x02000000 + movs r2, 0xC1 + lsls r2, 2 + adds r0, r1, r2 + ldrh r0, [r0] + adds r2, r1, 0 + cmp r0, 0x11 + bls _080EBDEE + b _080EC000 +_080EBDEE: + lsls r0, 2 + ldr r1, _080EBDFC @ =_080EBE00 + adds r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_080EBDF8: .4byte 0x02000000 +_080EBDFC: .4byte _080EBE00 + .align 2, 0 +_080EBE00: + .4byte _080EBE48 + .4byte _080EBE80 + .4byte _080EBE92 + .4byte _080EBEAC + .4byte _080EBEC0 + .4byte _080EBED2 + .4byte _080EBEF0 + .4byte _080EBF04 + .4byte _080EBF18 + .4byte _080EBF2C + .4byte _080EBF48 + .4byte _080EBF54 + .4byte _080EBF74 + .4byte _080EBF88 + .4byte _080EBFA0 + .4byte _080EBFB4 + .4byte _080EBFD0 + .4byte _080EBFE8 +_080EBE48: + movs r0, 0 + bl SetVBlankCallback + movs r1, 0x80 + lsls r1, 19 + movs r0, 0 + strh r0, [r1] + ldr r1, _080EBE74 @ =0x02000000 + ldr r3, _080EBE78 @ =0x00006ddc + adds r0, r1, r3 + ldrb r2, [r0] + subs r3, 0x2F + adds r0, r1, r3 + strb r2, [r0] + ldr r0, _080EBE7C @ =0x00006dae + adds r2, r1, r0 + movs r0, 0x5 + strb r0, [r2] + movs r2, 0xC1 + lsls r2, 2 + adds r1, r2 + b _080EBFDC + .align 2, 0 +_080EBE74: .4byte 0x02000000 +_080EBE78: .4byte 0x00006ddc +_080EBE7C: .4byte 0x00006dae +_080EBE80: + bl sub_80F3FF0 + ldr r1, _080EBEA8 @ =0x02000000 + movs r3, 0xC1 + lsls r3, 2 + adds r1, r3 + ldrh r0, [r1] + adds r0, 0x1 + strh r0, [r1] +_080EBE92: + bl sub_80F4024 + lsls r0, 24 + cmp r0, 0 + beq _080EBE9E + b _080EC000 +_080EBE9E: + ldr r1, _080EBEA8 @ =0x02000000 + movs r0, 0xC1 + lsls r0, 2 + adds r1, r0 + b _080EBFDC + .align 2, 0 +_080EBEA8: .4byte 0x02000000 +_080EBEAC: + bl sub_80F2598 + ldr r1, _080EBEBC @ =0x02000000 + movs r2, 0xC1 + lsls r2, 2 + adds r1, r2 + b _080EBFDC + .align 2, 0 +_080EBEBC: .4byte 0x02000000 +_080EBEC0: + bl sub_80EEE20 + ldr r1, _080EBEEC @ =0x02000000 + movs r3, 0xC1 + lsls r3, 2 + adds r1, r3 + ldrh r0, [r1] + adds r0, 0x1 + strh r0, [r1] +_080EBED2: + bl sub_80EEE54 + lsls r0, 24 + cmp r0, 0 + beq _080EBEDE + b _080EC000 +_080EBEDE: + bl sub_80EEE08 + ldr r1, _080EBEEC @ =0x02000000 + movs r0, 0xC1 + lsls r0, 2 + adds r1, r0 + b _080EBFDC + .align 2, 0 +_080EBEEC: .4byte 0x02000000 +_080EBEF0: + movs r0, 0 + bl sub_80EF248 + ldr r1, _080EBF14 @ =0x02000000 + movs r2, 0xC1 + lsls r2, 2 + adds r1, r2 + ldrh r0, [r1] + adds r0, 0x1 + strh r0, [r1] +_080EBF04: + movs r0, 0 + bl sub_80EF284 + lsls r0, 24 + cmp r0, 0 + beq _080EBF12 + b _080EC000 +_080EBF12: + b _080EBFD4 + .align 2, 0 +_080EBF14: .4byte 0x02000000 +_080EBF18: + movs r0, 0 + bl sub_80F1B8C + ldr r1, _080EBF44 @ =0x02000000 + movs r0, 0xC1 + lsls r0, 2 + adds r1, r0 + ldrh r0, [r1] + adds r0, 0x1 + strh r0, [r1] +_080EBF2C: + movs r0, 0 + bl sub_80F1BC8 + lsls r0, 24 + cmp r0, 0 + bne _080EC000 + ldr r1, _080EBF44 @ =0x02000000 + movs r2, 0xC1 + lsls r2, 2 + adds r1, r2 + b _080EBFDC + .align 2, 0 +_080EBF44: .4byte 0x02000000 +_080EBF48: + ldr r0, _080EBF50 @ =sub_80EBD18 + bl SetVBlankCallback + b _080EBFD4 + .align 2, 0 +_080EBF50: .4byte sub_80EBD18 +_080EBF54: + movs r0, 0x1 + negs r0, r0 + movs r1, 0 + str r1, [sp] + movs r2, 0x10 + movs r3, 0 + bl BeginNormalPaletteFade + ldr r1, _080EBF70 @ =0x02000000 + movs r0, 0xC1 + lsls r0, 2 + adds r1, r0 + b _080EBFDC + .align 2, 0 +_080EBF70: .4byte 0x02000000 +_080EBF74: + movs r0, 0 + bl sub_80EED2C + ldr r1, _080EBF84 @ =0x02000000 + movs r2, 0xC1 + lsls r2, 2 + adds r1, r2 + b _080EBFDC + .align 2, 0 +_080EBF84: .4byte 0x02000000 +_080EBF88: + ldr r0, _080EBF9C @ =gPaletteFade + ldrb r1, [r0, 0x7] + movs r0, 0x80 + ands r0, r1 + cmp r0, 0 + bne _080EC000 + movs r3, 0xC1 + lsls r3, 2 + adds r1, r2, r3 + b _080EBFDC + .align 2, 0 +_080EBF9C: .4byte gPaletteFade +_080EBFA0: + movs r0, 0 + bl sub_80F2C80 + ldr r1, _080EBFCC @ =0x02000000 + movs r0, 0xC1 + lsls r0, 2 + adds r1, r0 + ldrh r0, [r1] + adds r0, 0x1 + strh r0, [r1] +_080EBFB4: + movs r0, 0 + bl sub_80F2CBC + lsls r0, 24 + cmp r0, 0 + bne _080EC000 + ldr r1, _080EBFCC @ =0x02000000 + movs r2, 0xC1 + lsls r2, 2 + adds r1, r2 + b _080EBFDC + .align 2, 0 +_080EBFCC: .4byte 0x02000000 +_080EBFD0: + bl sub_80F1DF0 +_080EBFD4: + ldr r1, _080EBFE4 @ =0x02000000 + movs r3, 0xC1 + lsls r3, 2 + adds r1, r3 +_080EBFDC: + ldrh r0, [r1] + adds r0, 0x1 + strh r0, [r1] + b _080EC000 + .align 2, 0 +_080EBFE4: .4byte 0x02000000 +_080EBFE8: + bl sub_80F1E50 + lsls r0, 24 + cmp r0, 0 + bne _080EC000 + movs r0, 0 + movs r1, 0 + bl sub_80EF428 + ldr r0, _080EC008 @ =sub_80EC268 + bl sub_80EBDBC +_080EC000: + add sp, 0x4 + pop {r0} + bx r0 + .align 2, 0 +_080EC008: .4byte sub_80EC268 + thumb_func_end sub_80EBDD8 + + thumb_func_start sub_80EC00C +sub_80EC00C: @ 80EC00C + push {r4,lr} + sub sp, 0x4 + ldr r1, _080EC02C @ =0x02000000 + movs r2, 0xC1 + lsls r2, 2 + adds r0, r1, r2 + ldrh r0, [r0] + adds r4, r1, 0 + cmp r0, 0xD + bls _080EC022 + b _080EC1FA +_080EC022: + lsls r0, 2 + ldr r1, _080EC030 @ =_080EC034 + adds r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_080EC02C: .4byte 0x02000000 +_080EC030: .4byte _080EC034 + .align 2, 0 +_080EC034: + .4byte _080EC06C + .4byte _080EC0C0 + .4byte _080EC0D4 + .4byte _080EC0F0 + .4byte _080EC104 + .4byte _080EC120 + .4byte _080EC12A + .4byte _080EC154 + .4byte _080EC168 + .4byte _080EC180 + .4byte _080EC194 + .4byte _080EC1A8 + .4byte _080EC1C4 + .4byte _080EC1DC +_080EC06C: + bl sub_80EEF78 + lsls r0, 24 + cmp r0, 0 + beq _080EC078 + b _080EC1FA +_080EC078: + ldr r0, _080EC0AC @ =sub_80EBD80 + bl SetVBlankCallback + bl sub_80EED1C + ldr r4, _080EC0B0 @ =0x02000000 + ldr r1, _080EC0B4 @ =0x00006ddc + adds r0, r4, r1 + ldrb r1, [r0] + ldr r2, _080EC0B8 @ =0x00006dad + adds r0, r4, r2 + strb r1, [r0] + ldr r0, _080EC0BC @ =0x00006dae + adds r1, r4, r0 + movs r0, 0x5 + strb r0, [r1] + bl sub_80EEE08 + movs r1, 0xC1 + lsls r1, 2 + adds r4, r1 + ldrh r0, [r4] + adds r0, 0x1 + strh r0, [r4] + b _080EC1FA + .align 2, 0 +_080EC0AC: .4byte sub_80EBD80 +_080EC0B0: .4byte 0x02000000 +_080EC0B4: .4byte 0x00006ddc +_080EC0B8: .4byte 0x00006dad +_080EC0BC: .4byte 0x00006dae +_080EC0C0: + movs r0, 0 + bl sub_80EF248 + ldr r1, _080EC0EC @ =0x02000000 + movs r2, 0xC1 + lsls r2, 2 + adds r1, r2 + ldrh r0, [r1] + adds r0, 0x1 + strh r0, [r1] +_080EC0D4: + movs r0, 0 + bl sub_80EF284 + lsls r0, 24 + cmp r0, 0 + beq _080EC0E2 + b _080EC1FA +_080EC0E2: + ldr r1, _080EC0EC @ =0x02000000 + movs r0, 0xC1 + lsls r0, 2 + adds r1, r0 + b _080EC1D0 + .align 2, 0 +_080EC0EC: .4byte 0x02000000 +_080EC0F0: + movs r0, 0 + bl sub_80F1B8C + ldr r1, _080EC11C @ =0x02000000 + movs r2, 0xC1 + lsls r2, 2 + adds r1, r2 + ldrh r0, [r1] + adds r0, 0x1 + strh r0, [r1] +_080EC104: + movs r0, 0 + bl sub_80F1BC8 + lsls r0, 24 + cmp r0, 0 + beq _080EC112 + b _080EC1FA +_080EC112: + ldr r1, _080EC11C @ =0x02000000 + movs r0, 0xC1 + lsls r0, 2 + adds r1, r0 + b _080EC1D0 + .align 2, 0 +_080EC11C: .4byte 0x02000000 +_080EC120: + bl sub_8055870 + cmp r0, 0 + bne _080EC1FA + b _080EC1C8 +_080EC12A: + movs r1, 0xC2 + lsls r1, 2 + adds r0, r4, r1 + ldr r0, [r0] + movs r1, 0x1 + negs r1, r1 + movs r2, 0 + str r2, [sp] + movs r2, 0x10 + movs r3, 0 + bl BeginNormalPaletteFade + ldr r0, _080EC150 @ =sub_80EBD18 + bl SetVBlankCallback + movs r2, 0xC1 + lsls r2, 2 + adds r1, r4, r2 + b _080EC1D0 + .align 2, 0 +_080EC150: .4byte sub_80EBD18 +_080EC154: + movs r0, 0 + bl sub_80EED2C + ldr r1, _080EC164 @ =0x02000000 + movs r0, 0xC1 + lsls r0, 2 + adds r1, r0 + b _080EC1D0 + .align 2, 0 +_080EC164: .4byte 0x02000000 +_080EC168: + ldr r0, _080EC17C @ =gPaletteFade + ldrb r1, [r0, 0x7] + movs r0, 0x80 + ands r0, r1 + cmp r0, 0 + bne _080EC1FA + movs r2, 0xC1 + lsls r2, 2 + adds r1, r4, r2 + b _080EC1D0 + .align 2, 0 +_080EC17C: .4byte gPaletteFade +_080EC180: + bl sub_80F2598 + ldr r1, _080EC190 @ =0x02000000 + movs r0, 0xC1 + lsls r0, 2 + adds r1, r0 + b _080EC1D0 + .align 2, 0 +_080EC190: .4byte 0x02000000 +_080EC194: + movs r0, 0 + bl sub_80F2C80 + ldr r1, _080EC1C0 @ =0x02000000 + movs r2, 0xC1 + lsls r2, 2 + adds r1, r2 + ldrh r0, [r1] + adds r0, 0x1 + strh r0, [r1] +_080EC1A8: + movs r0, 0 + bl sub_80F2CBC + lsls r0, 24 + cmp r0, 0 + bne _080EC1FA + ldr r1, _080EC1C0 @ =0x02000000 + movs r0, 0xC1 + lsls r0, 2 + adds r1, r0 + b _080EC1D0 + .align 2, 0 +_080EC1C0: .4byte 0x02000000 +_080EC1C4: + bl sub_80F1DF0 +_080EC1C8: + ldr r1, _080EC1D8 @ =0x02000000 + movs r2, 0xC1 + lsls r2, 2 + adds r1, r2 +_080EC1D0: + ldrh r0, [r1] + adds r0, 0x1 + strh r0, [r1] + b _080EC1FA + .align 2, 0 +_080EC1D8: .4byte 0x02000000 +_080EC1DC: + bl sub_80F1E50 + lsls r0, 24 + cmp r0, 0 + bne _080EC1FA + ldr r0, _080EC204 @ =0x02000000 + ldr r1, _080EC208 @ =0x00006dad + adds r0, r1 + ldrb r1, [r0] + movs r0, 0 + bl sub_80EF428 + ldr r0, _080EC20C @ =sub_80EC268 + bl sub_80EBDBC +_080EC1FA: + add sp, 0x4 + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_080EC204: .4byte 0x02000000 +_080EC208: .4byte 0x00006dad +_080EC20C: .4byte sub_80EC268 + thumb_func_end sub_80EC00C + + thumb_func_start sub_80EC210 +sub_80EC210: @ 80EC210 + push {r4,r5,lr} + ldr r5, _080EC228 @ =0x02000000 + movs r0, 0xC1 + lsls r0, 2 + adds r4, r5, r0 + ldrh r0, [r4] + cmp r0, 0 + beq _080EC22C + cmp r0, 0x1 + beq _080EC24C + b _080EC25C + .align 2, 0 +_080EC228: .4byte 0x02000000 +_080EC22C: + movs r0, 0x1 + bl sub_80F2D04 + ldr r1, _080EC248 @ =0x00006ddc + adds r0, r5, r1 + ldrb r1, [r0] + movs r0, 0 + movs r2, 0 + bl sub_80EE9C0 + ldrh r0, [r4] + adds r0, 0x1 + strh r0, [r4] + b _080EC25C + .align 2, 0 +_080EC248: .4byte 0x00006ddc +_080EC24C: + bl sub_80EEA0C + lsls r0, 24 + cmp r0, 0 + bne _080EC25C + ldr r0, _080EC264 @ =sub_80EC268 + bl sub_80EBDBC +_080EC25C: + pop {r4,r5} + pop {r0} + bx r0 + .align 2, 0 +_080EC264: .4byte sub_80EC268 + thumb_func_end sub_80EC210 + + thumb_func_start sub_80EC268 +sub_80EC268: @ 80EC268 + push {r4-r6,lr} + ldr r4, _080EC290 @ =0x02000000 + movs r0, 0xC1 + lsls r0, 2 + adds r6, r4, r0 + ldrh r0, [r6] + cmp r0, 0x3 + bne _080EC27A + b _080EC3BE +_080EC27A: + cmp r0, 0x3 + bgt _080EC294 + cmp r0, 0x1 + bne _080EC284 + b _080EC3A2 +_080EC284: + cmp r0, 0x1 + ble _080EC28A + b _080EC3B4 +_080EC28A: + cmp r0, 0 + beq _080EC2AE + b _080EC492 + .align 2, 0 +_080EC290: .4byte 0x02000000 +_080EC294: + cmp r0, 0x6 + bne _080EC29A + b _080EC414 +_080EC29A: + cmp r0, 0x6 + bgt _080EC2A6 + cmp r0, 0x4 + bne _080EC2A4 + b _080EC3DC +_080EC2A4: + b _080EC492 +_080EC2A6: + cmp r0, 0xFF + bne _080EC2AC + b _080EC44C +_080EC2AC: + b _080EC492 +_080EC2AE: + bl sub_80EEC10 + lsls r0, 24 + cmp r0, 0 + beq _080EC2D4 + movs r0, 0x5 + bl PlaySE + ldr r1, _080EC2D0 @ =0x00006dad + adds r0, r4, r1 + ldrb r1, [r0] + movs r0, 0 + bl sub_80EF428 + bl sub_80EED9C + b _080EC492 + .align 2, 0 +_080EC2D0: .4byte 0x00006dad +_080EC2D4: + ldr r0, _080EC310 @ =gMain + ldrh r1, [r0, 0x2E] + movs r2, 0x1 + adds r0, r2, 0 + ands r0, r1 + cmp r0, 0 + beq _080EC394 + ldr r2, _080EC314 @ =0x00006dad + adds r0, r4, r2 + ldrb r1, [r0] + adds r2, 0x2F + adds r0, r4, r2 + strb r1, [r0] + ldrb r0, [r0] + lsls r0, 24 + asrs r0, 24 + subs r2, 0x2A + adds r1, r4, r2 + adds r0, r1 + ldrb r0, [r0] + subs r0, 0x1 + cmp r0, 0x4 + bls _080EC304 + b _080EC492 +_080EC304: + lsls r0, 2 + ldr r1, _080EC318 @ =_080EC31C + adds r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_080EC310: .4byte gMain +_080EC314: .4byte 0x00006dad +_080EC318: .4byte _080EC31C + .align 2, 0 +_080EC31C: + .4byte _080EC330 + .4byte _080EC344 + .4byte _080EC380 + .4byte _080EC36C + .4byte _080EC358 +_080EC330: + movs r0, 0x5 + bl PlaySE + ldr r0, _080EC340 @ =sub_80EC4A0 + bl sub_80EBDBC + b _080EC492 + .align 2, 0 +_080EC340: .4byte sub_80EC4A0 +_080EC344: + movs r0, 0x5 + bl PlaySE + ldr r0, _080EC354 @ =sub_80EC81C + bl sub_80EBDBC + b _080EC492 + .align 2, 0 +_080EC354: .4byte sub_80EC81C +_080EC358: + ldr r0, _080EC368 @ =0x02000000 + movs r1, 0xC1 + lsls r1, 2 + adds r0, r1 + movs r1, 0x1 + strh r1, [r0] + b _080EC492 + .align 2, 0 +_080EC368: .4byte 0x02000000 +_080EC36C: + ldr r0, _080EC37C @ =0x02000000 + movs r2, 0xC1 + lsls r2, 2 + adds r0, r2 + movs r1, 0x2 + strh r1, [r0] + b _080EC492 + .align 2, 0 +_080EC37C: .4byte 0x02000000 +_080EC380: + ldr r0, _080EC390 @ =0x02000000 + movs r1, 0xC1 + lsls r1, 2 + adds r0, r1 + movs r1, 0x6 + strh r1, [r0] + b _080EC492 + .align 2, 0 +_080EC390: .4byte 0x02000000 +_080EC394: + movs r0, 0x2 + ands r0, r1 + cmp r0, 0 + bne _080EC39E + b _080EC492 +_080EC39E: + strh r2, [r6] + b _080EC492 +_080EC3A2: + bl sub_80F208C + ldr r0, _080EC3B0 @ =sub_80EE96C + bl sub_80EBDBC + b _080EC492 + .align 2, 0 +_080EC3B0: .4byte sub_80EE96C +_080EC3B4: + bl sub_80F6208 + ldrh r0, [r6] + adds r0, 0x1 + strh r0, [r6] +_080EC3BE: + bl sub_80F6250 + lsls r0, 24 + cmp r0, 0 + bne _080EC492 + ldr r1, _080EC3D8 @ =0x02000000 + movs r2, 0xC1 + lsls r2, 2 + adds r1, r2 + ldrh r0, [r1] + adds r0, 0x1 + strh r0, [r1] + b _080EC492 + .align 2, 0 +_080EC3D8: .4byte 0x02000000 +_080EC3DC: + bl sub_8055870 + cmp r0, 0 + bne _080EC492 + ldr r1, _080EC400 @ =0x00008fe8 + adds r0, r4, r1 + ldrb r0, [r0] + lsls r0, 24 + asrs r0, 24 + cmp r0, 0 + beq _080EC408 + movs r0, 0x5 + bl PlaySE + ldr r0, _080EC404 @ =sub_80EDB88 + bl sub_80EBDBC + b _080EC492 + .align 2, 0 +_080EC400: .4byte 0x00008fe8 +_080EC404: .4byte sub_80EDB88 +_080EC408: + movs r0, 0x20 + bl PlaySE + movs r0, 0 + movs r1, 0x5 + b _080EC442 +_080EC414: + bl sub_80F6C20 + ldr r2, _080EC430 @ =0x0000d158 + adds r0, r4, r2 + ldrh r0, [r0] + cmp r0, 0 + beq _080EC438 + movs r0, 0x5 + bl PlaySE + ldr r0, _080EC434 @ =sub_80EE3D8 + bl sub_80EBDBC + b _080EC492 + .align 2, 0 +_080EC430: .4byte 0x0000d158 +_080EC434: .4byte sub_80EE3D8 +_080EC438: + movs r0, 0x20 + bl PlaySE + movs r0, 0 + movs r1, 0x6 +_080EC442: + bl sub_80EF428 + movs r0, 0xFF + strh r0, [r6] + b _080EC492 +_080EC44C: + bl sub_80EEC10 + lsls r0, 24 + lsrs r5, r0, 24 + cmp r5, 0 + beq _080EC478 + movs r0, 0x5 + bl PlaySE + ldr r1, _080EC474 @ =0x00006dad + adds r0, r4, r1 + ldrb r1, [r0] + movs r0, 0 + bl sub_80EF428 + movs r0, 0 + strh r0, [r6] + bl sub_80EED9C + b _080EC492 + .align 2, 0 +_080EC474: .4byte 0x00006dad +_080EC478: + ldr r0, _080EC498 @ =gMain + ldrh r1, [r0, 0x2E] + movs r0, 0x3 + ands r0, r1 + cmp r0, 0 + beq _080EC492 + ldr r2, _080EC49C @ =0x00006dad + adds r0, r4, r2 + ldrb r1, [r0] + movs r0, 0 + bl sub_80EF428 + strh r5, [r6] +_080EC492: + pop {r4-r6} + pop {r0} + bx r0 + .align 2, 0 +_080EC498: .4byte gMain +_080EC49C: .4byte 0x00006dad + thumb_func_end sub_80EC268 + + thumb_func_start sub_80EC4A0 +sub_80EC4A0: @ 80EC4A0 + push {r4,lr} + sub sp, 0x4 + ldr r1, _080EC4C0 @ =0x02000000 + movs r2, 0xC1 + lsls r2, 2 + adds r0, r1, r2 + ldrh r0, [r0] + adds r4, r1, 0 + cmp r0, 0xE + bls _080EC4B6 + b _080EC66A +_080EC4B6: + lsls r0, 2 + ldr r1, _080EC4C4 @ =_080EC4C8 + adds r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_080EC4C0: .4byte 0x02000000 +_080EC4C4: .4byte _080EC4C8 + .align 2, 0 +_080EC4C8: + .4byte _080EC504 + .4byte _080EC510 + .4byte _080EC544 + .4byte _080EC578 + .4byte _080EC594 + .4byte _080EC5A8 + .4byte _080EC5AE + .4byte _080EC5C0 + .4byte _080EC5D0 + .4byte _080EC5E4 + .4byte _080EC5F8 + .4byte _080EC614 + .4byte _080EC61E + .4byte _080EC63E + .4byte _080EC658 +_080EC504: + bl sub_80F1E84 + movs r0, 0 + bl sub_80F2D04 + b _080EC644 +_080EC510: + bl sub_80F1F10 + lsls r0, 24 + cmp r0, 0 + beq _080EC51C + b _080EC66A +_080EC51C: + ldr r0, _080EC53C @ =gSaveBlock2 + ldrb r1, [r0, 0x15] + movs r0, 0x8 + ands r0, r1 + movs r1, 0x8 + cmp r0, 0 + beq _080EC52C + movs r1, 0x7 +_080EC52C: + adds r0, r1, 0 + bl sub_80EEFBC + ldr r1, _080EC540 @ =0x02000000 + movs r2, 0xC1 + lsls r2, 2 + adds r1, r2 + b _080EC64C + .align 2, 0 +_080EC53C: .4byte gSaveBlock2 +_080EC540: .4byte 0x02000000 +_080EC544: + bl sub_80EEF34 + lsls r0, 24 + lsrs r2, r0, 24 + cmp r2, 0 + beq _080EC552 + b _080EC66A +_080EC552: + ldr r4, _080EC574 @ =0x02000000 + movs r1, 0xC2 + lsls r1, 2 + adds r0, r4, r1 + ldr r0, [r0] + movs r1, 0x1 + negs r1, r1 + str r2, [sp] + movs r2, 0 + movs r3, 0x10 + bl BeginNormalPaletteFade + movs r2, 0xC1 + lsls r2, 2 + adds r1, r4, r2 + b _080EC64C + .align 2, 0 +_080EC574: .4byte 0x02000000 +_080EC578: + ldr r0, _080EC590 @ =gPaletteFade + ldrb r1, [r0, 0x7] + movs r0, 0x80 + ands r0, r1 + cmp r0, 0 + bne _080EC66A + movs r0, 0 + bl SetVBlankCallback + bl sub_80EED0C + b _080EC644 + .align 2, 0 +_080EC590: .4byte gPaletteFade +_080EC594: + bl sub_80F2620 + ldr r1, _080EC5A4 @ =0x02000000 + movs r2, 0xC1 + lsls r2, 2 + adds r1, r2 + b _080EC64C + .align 2, 0 +_080EC5A4: .4byte 0x02000000 +_080EC5A8: + bl sub_80EF814 + b _080EC644 +_080EC5AE: + bl sub_80EF840 + ldr r1, _080EC5CC @ =0x02000000 + movs r2, 0xC1 + lsls r2, 2 + adds r1, r2 + ldrh r0, [r1] + adds r0, 0x1 + strh r0, [r1] +_080EC5C0: + bl sub_80EF874 + lsls r0, 24 + cmp r0, 0 + bne _080EC66A + b _080EC644 + .align 2, 0 +_080EC5CC: .4byte 0x02000000 +_080EC5D0: + movs r0, 0x4 + bl sub_80F2C80 + ldr r1, _080EC5F4 @ =0x02000000 + movs r2, 0xC1 + lsls r2, 2 + adds r1, r2 + ldrh r0, [r1] + adds r0, 0x1 + strh r0, [r1] +_080EC5E4: + movs r0, 0x4 + bl sub_80F2CBC + lsls r0, 24 + cmp r0, 0 + bne _080EC66A + b _080EC644 + .align 2, 0 +_080EC5F4: .4byte 0x02000000 +_080EC5F8: + bl sub_80F2DD8 + ldr r0, _080EC60C @ =sub_80EBD30 + bl SetVBlankCallback + ldr r1, _080EC610 @ =0x02000000 + movs r2, 0xC1 + lsls r2, 2 + adds r1, r2 + b _080EC64C + .align 2, 0 +_080EC60C: .4byte sub_80EBD30 +_080EC610: .4byte 0x02000000 +_080EC614: + bl sub_8055870 + cmp r0, 0 + bne _080EC66A + b _080EC644 +_080EC61E: + movs r1, 0xC2 + lsls r1, 2 + adds r0, r4, r1 + ldr r0, [r0] + movs r1, 0x1 + negs r1, r1 + movs r2, 0 + str r2, [sp] + movs r2, 0x10 + movs r3, 0 + bl BeginNormalPaletteFade + movs r2, 0xC1 + lsls r2, 2 + adds r1, r4, r2 + b _080EC64C +_080EC63E: + movs r0, 0x1 + bl sub_80EED2C +_080EC644: + ldr r1, _080EC654 @ =0x02000000 + movs r0, 0xC1 + lsls r0, 2 + adds r1, r0 +_080EC64C: + ldrh r0, [r1] + adds r0, 0x1 + strh r0, [r1] + b _080EC66A + .align 2, 0 +_080EC654: .4byte 0x02000000 +_080EC658: + ldr r0, _080EC674 @ =gPaletteFade + ldrb r1, [r0, 0x7] + movs r0, 0x80 + ands r0, r1 + cmp r0, 0 + bne _080EC66A + ldr r0, _080EC678 @ =sub_80EC67C + bl sub_80EBDBC +_080EC66A: + add sp, 0x4 + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_080EC674: .4byte gPaletteFade +_080EC678: .4byte sub_80EC67C + thumb_func_end sub_80EC4A0 + + thumb_func_start sub_80EC67C +sub_80EC67C: @ 80EC67C + push {r4,r5,lr} + sub sp, 0x4 + ldr r1, _080EC69C @ =0x02000000 + movs r2, 0xC1 + lsls r2, 2 + adds r0, r1, r2 + ldrh r0, [r0] + adds r4, r1, 0 + cmp r0, 0x5 + bls _080EC692 + b _080EC800 +_080EC692: + lsls r0, 2 + ldr r1, _080EC6A0 @ =_080EC6A4 + adds r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_080EC69C: .4byte 0x02000000 +_080EC6A0: .4byte _080EC6A4 + .align 2, 0 +_080EC6A4: + .4byte _080EC6BC + .4byte _080EC718 + .4byte _080EC746 + .4byte _080EC77C + .4byte _080EC7A0 + .4byte _080EC7C4 +_080EC6BC: + bl sub_80FAB60 + lsls r0, 24 + lsrs r0, 24 + cmp r0, 0x3 + beq _080EC6E2 + cmp r0, 0x3 + bgt _080EC6D2 + cmp r0, 0x1 + beq _080EC6DC + b _080EC800 +_080EC6D2: + cmp r0, 0x4 + beq _080EC6E8 + cmp r0, 0x5 + beq _080EC700 + b _080EC800 +_080EC6DC: + bl sub_80EED9C + b _080EC800 +_080EC6E2: + bl sub_80EF9F8 + b _080EC800 +_080EC6E8: + movs r0, 0x5 + bl PlaySE + ldr r0, _080EC6FC @ =0x02000000 + movs r1, 0xC1 + lsls r1, 2 + adds r0, r1 + movs r1, 0x1 + strh r1, [r0] + b _080EC800 + .align 2, 0 +_080EC6FC: .4byte 0x02000000 +_080EC700: + movs r0, 0x5 + bl PlaySE + ldr r0, _080EC714 @ =0x02000000 + movs r2, 0xC1 + lsls r2, 2 + adds r0, r2 + movs r1, 0x4 + strh r1, [r0] + b _080EC800 + .align 2, 0 +_080EC714: .4byte 0x02000000 +_080EC718: + ldr r1, _080EC730 @ =0x00006e90 + adds r0, r4, r1 + ldrb r0, [r0] + cmp r0, 0 + bne _080EC734 + bl sub_80FAEC4 + movs r2, 0xC1 + lsls r2, 2 + adds r1, r4, r2 + b _080EC7BC + .align 2, 0 +_080EC730: .4byte 0x00006e90 +_080EC734: + movs r0, 0x1 + bl sub_80EFBDC + lsls r0, 24 + cmp r0, 0 + bne _080EC800 + bl sub_80FAEC4 + b _080EC7B6 +_080EC746: + bl sub_80FAFC0 + lsls r0, 24 + cmp r0, 0 + bne _080EC800 + ldr r5, _080EC76C @ =0x02000000 + ldr r1, _080EC770 @ =0x00006e90 + adds r0, r5, r1 + ldrb r4, [r0] + cmp r4, 0 + bne _080EC774 + bl sub_80EFBB0 + movs r2, 0xC1 + lsls r2, 2 + adds r0, r5, r2 + strh r4, [r0] + b _080EC800 + .align 2, 0 +_080EC76C: .4byte 0x02000000 +_080EC770: .4byte 0x00006e90 +_080EC774: + movs r0, 0xC1 + lsls r0, 2 + adds r1, r5, r0 + b _080EC7BC +_080EC77C: + movs r0, 0 + bl sub_80EFBDC + lsls r0, 24 + lsrs r4, r0, 24 + cmp r4, 0 + bne _080EC800 + bl sub_80EFBB0 + ldr r0, _080EC79C @ =0x02000000 + movs r1, 0xC1 + lsls r1, 2 + adds r0, r1 + strh r4, [r0] + b _080EC800 + .align 2, 0 +_080EC79C: .4byte 0x02000000 +_080EC7A0: + movs r2, 0xC2 + lsls r2, 2 + adds r0, r4, r2 + ldr r0, [r0] + movs r1, 0x1 + negs r1, r1 + movs r2, 0 + str r2, [sp] + movs r3, 0x10 + bl BeginNormalPaletteFade +_080EC7B6: + movs r0, 0xC1 + lsls r0, 2 + adds r1, r4, r0 +_080EC7BC: + ldrh r0, [r1] + adds r0, 0x1 + strh r0, [r1] + b _080EC800 +_080EC7C4: + ldr r0, _080EC808 @ =gPaletteFade + ldrb r1, [r0, 0x7] + movs r0, 0x80 + ands r0, r1 + cmp r0, 0 + bne _080EC800 + bl sub_80F2DF4 + movs r0, 0x4 + bl sub_80F2D04 + ldr r3, _080EC80C @ =gSaveBlock2 + movs r2, 0 + ldr r0, _080EC810 @ =0x02000000 + ldr r1, _080EC814 @ =0x00006e90 + adds r0, r1 + ldrb r0, [r0] + cmp r0, 0x1 + bne _080EC7EC + movs r2, 0x1 +_080EC7EC: + lsls r2, 3 + ldrb r1, [r3, 0x15] + movs r0, 0x9 + negs r0, r0 + ands r0, r1 + orrs r0, r2 + strb r0, [r3, 0x15] + ldr r0, _080EC818 @ =sub_80EC00C + bl sub_80EBDBC +_080EC800: + add sp, 0x4 + pop {r4,r5} + pop {r0} + bx r0 + .align 2, 0 +_080EC808: .4byte gPaletteFade +_080EC80C: .4byte gSaveBlock2 +_080EC810: .4byte 0x02000000 +_080EC814: .4byte 0x00006e90 +_080EC818: .4byte sub_80EC00C + thumb_func_end sub_80EC67C + + thumb_func_start sub_80EC81C +sub_80EC81C: @ 80EC81C + push {r4,lr} + ldr r0, _080EC834 @ =0x02000000 + movs r1, 0xC1 + lsls r1, 2 + adds r4, r0, r1 + ldrh r0, [r4] + cmp r0, 0 + beq _080EC838 + cmp r0, 0x1 + beq _080EC850 + b _080EC860 + .align 2, 0 +_080EC834: .4byte 0x02000000 +_080EC838: + movs r0, 0 + bl sub_80F2D04 + movs r0, 0x1 + movs r1, 0 + movs r2, 0x1 + bl sub_80EE9C0 + ldrh r0, [r4] + adds r0, 0x1 + strh r0, [r4] + b _080EC860 +_080EC850: + bl sub_80EEA0C + lsls r0, 24 + cmp r0, 0 + bne _080EC860 + ldr r0, _080EC868 @ =sub_80EC86C + bl sub_80EBDBC +_080EC860: + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_080EC868: .4byte sub_80EC86C + thumb_func_end sub_80EC81C + + thumb_func_start sub_80EC86C +sub_80EC86C: @ 80EC86C + push {r4-r6,lr} + ldr r4, _080EC884 @ =0x02000000 + movs r0, 0xC1 + lsls r0, 2 + adds r5, r4, r0 + ldrh r0, [r5] + cmp r0, 0 + beq _080EC888 + cmp r0, 0x1 + beq _080EC944 + b _080EC954 + .align 2, 0 +_080EC884: .4byte 0x02000000 +_080EC888: + bl sub_80EEC90 + lsls r0, 24 + cmp r0, 0 + beq _080EC8B0 + movs r0, 0x5 + bl PlaySE + ldr r1, _080EC8AC @ =0x00006dad + adds r0, r4, r1 + ldrb r1, [r0] + movs r0, 0x1 + bl sub_80EF428 + bl sub_80EED9C + b _080EC954 + .align 2, 0 +_080EC8AC: .4byte 0x00006dad +_080EC8B0: + ldr r0, _080EC8E4 @ =gMain + ldrh r1, [r0, 0x2E] + movs r0, 0x1 + ands r0, r1 + cmp r0, 0 + beq _080EC918 + movs r0, 0x5 + bl PlaySE + ldr r2, _080EC8E8 @ =0x00006dad + adds r0, r4, r2 + ldrb r1, [r0] + adds r2, 0x43 + adds r0, r4, r2 + strb r1, [r0] + ldrb r0, [r0] + lsls r0, 24 + asrs r0, 24 + cmp r0, 0x1 + beq _080EC900 + cmp r0, 0x1 + bgt _080EC8EC + cmp r0, 0 + beq _080EC8F2 + b _080EC954 + .align 2, 0 +_080EC8E4: .4byte gMain +_080EC8E8: .4byte 0x00006dad +_080EC8EC: + cmp r0, 0x2 + beq _080EC90C + b _080EC954 +_080EC8F2: + ldr r0, _080EC8FC @ =sub_80ED620 + bl sub_80EBDBC + b _080EC954 + .align 2, 0 +_080EC8FC: .4byte sub_80ED620 +_080EC900: + ldr r0, _080EC908 @ =sub_80EC960 + bl sub_80EBDBC + b _080EC954 + .align 2, 0 +_080EC908: .4byte sub_80EC960 +_080EC90C: + ldr r0, _080EC914 @ =sub_80EC210 + bl sub_80EBDBC + b _080EC954 + .align 2, 0 +_080EC914: .4byte sub_80EC210 +_080EC918: + movs r6, 0x2 + movs r0, 0x2 + ands r0, r1 + cmp r0, 0 + beq _080EC954 + movs r0, 0x5 + bl PlaySE + ldr r1, _080EC93C @ =0x00006df0 + adds r0, r4, r1 + strb r6, [r0] + ldr r2, _080EC940 @ =0x00006dad + adds r0, r4, r2 + strb r6, [r0] + ldrh r0, [r5] + adds r0, 0x1 + strh r0, [r5] + b _080EC954 + .align 2, 0 +_080EC93C: .4byte 0x00006df0 +_080EC940: .4byte 0x00006dad +_080EC944: + bl sub_80F1E6C + lsls r0, 24 + cmp r0, 0 + bne _080EC954 + ldr r0, _080EC95C @ =sub_80EC210 + bl sub_80EBDBC +_080EC954: + pop {r4-r6} + pop {r0} + bx r0 + .align 2, 0 +_080EC95C: .4byte sub_80EC210 + thumb_func_end sub_80EC86C + + thumb_func_start sub_80EC960 +sub_80EC960: @ 80EC960 + push {r4,lr} + ldr r0, _080EC978 @ =0x02000000 + movs r1, 0xC1 + lsls r1, 2 + adds r4, r0, r1 + ldrh r0, [r4] + cmp r0, 0 + beq _080EC97C + cmp r0, 0x1 + beq _080EC98E + b _080EC99E + .align 2, 0 +_080EC978: .4byte 0x02000000 +_080EC97C: + movs r0, 0x2 + movs r1, 0 + movs r2, 0x5 + bl sub_80EE9C0 + ldrh r0, [r4] + adds r0, 0x1 + strh r0, [r4] + b _080EC99E +_080EC98E: + bl sub_80EEA0C + lsls r0, 24 + cmp r0, 0 + bne _080EC99E + ldr r0, _080EC9A4 @ =sub_80ECC08 + bl sub_80EBDBC +_080EC99E: + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_080EC9A4: .4byte sub_80ECC08 + thumb_func_end sub_80EC960 + + thumb_func_start sub_80EC9A8 +sub_80EC9A8: @ 80EC9A8 + push {r4,r5,lr} + ldr r5, _080EC9C0 @ =0x02000000 + movs r0, 0xC1 + lsls r0, 2 + adds r4, r5, r0 + ldrh r0, [r4] + cmp r0, 0 + beq _080EC9C4 + cmp r0, 0x1 + beq _080EC9E4 + b _080ECA00 + .align 2, 0 +_080EC9C0: .4byte 0x02000000 +_080EC9C4: + movs r0, 0x5 + bl sub_80F2D04 + ldr r1, _080EC9E0 @ =0x00006df0 + adds r0, r5, r1 + ldrb r1, [r0] + movs r0, 0x1 + movs r2, 0xC + bl sub_80EE9C0 + ldrh r0, [r4] + adds r0, 0x1 + strh r0, [r4] + b _080ECA00 + .align 2, 0 +_080EC9E0: .4byte 0x00006df0 +_080EC9E4: + bl sub_80EEA0C + lsls r0, 24 + cmp r0, 0 + bne _080ECA00 + ldr r0, _080ECA08 @ =sub_80EC86C + bl sub_80EBDBC + ldr r1, _080ECA0C @ =0x00006dad + adds r0, r5, r1 + ldrb r1, [r0] + movs r0, 0x1 + bl sub_80EF428 +_080ECA00: + pop {r4,r5} + pop {r0} + bx r0 + .align 2, 0 +_080ECA08: .4byte sub_80EC86C +_080ECA0C: .4byte 0x00006dad + thumb_func_end sub_80EC9A8 + + thumb_func_start sub_80ECA10 +sub_80ECA10: @ 80ECA10 + push {r4,lr} + sub sp, 0x4 + ldr r1, _080ECA30 @ =0x02000000 + movs r2, 0xC1 + lsls r2, 2 + adds r0, r1, r2 + ldrh r0, [r0] + adds r4, r1, 0 + cmp r0, 0xD + bls _080ECA26 + b _080ECBF2 +_080ECA26: + lsls r0, 2 + ldr r1, _080ECA34 @ =_080ECA38 + adds r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_080ECA30: .4byte 0x02000000 +_080ECA34: .4byte _080ECA38 + .align 2, 0 +_080ECA38: + .4byte _080ECA70 + .4byte _080ECAC4 + .4byte _080ECAD8 + .4byte _080ECAF4 + .4byte _080ECB08 + .4byte _080ECB24 + .4byte _080ECB2E + .4byte _080ECB58 + .4byte _080ECB6C + .4byte _080ECB72 + .4byte _080ECB8C + .4byte _080ECBA0 + .4byte _080ECBBC + .4byte _080ECBD4 +_080ECA70: + bl sub_80EEF78 + lsls r0, 24 + cmp r0, 0 + beq _080ECA7C + b _080ECBF2 +_080ECA7C: + ldr r0, _080ECAB0 @ =sub_80EBD80 + bl SetVBlankCallback + bl sub_80EED1C + ldr r4, _080ECAB4 @ =0x02000000 + ldr r1, _080ECAB8 @ =0x00006df0 + adds r0, r4, r1 + ldrb r1, [r0] + ldr r2, _080ECABC @ =0x00006dad + adds r0, r4, r2 + strb r1, [r0] + ldr r0, _080ECAC0 @ =0x00006dae + adds r1, r4, r0 + movs r0, 0x3 + strb r0, [r1] + bl sub_80EEE08 + movs r1, 0xC1 + lsls r1, 2 + adds r4, r1 + ldrh r0, [r4] + adds r0, 0x1 + strh r0, [r4] + b _080ECBF2 + .align 2, 0 +_080ECAB0: .4byte sub_80EBD80 +_080ECAB4: .4byte 0x02000000 +_080ECAB8: .4byte 0x00006df0 +_080ECABC: .4byte 0x00006dad +_080ECAC0: .4byte 0x00006dae +_080ECAC4: + movs r0, 0x1 + bl sub_80EF248 + ldr r1, _080ECAF0 @ =0x02000000 + movs r2, 0xC1 + lsls r2, 2 + adds r1, r2 + ldrh r0, [r1] + adds r0, 0x1 + strh r0, [r1] +_080ECAD8: + movs r0, 0x1 + bl sub_80EF284 + lsls r0, 24 + cmp r0, 0 + beq _080ECAE6 + b _080ECBF2 +_080ECAE6: + ldr r1, _080ECAF0 @ =0x02000000 + movs r0, 0xC1 + lsls r0, 2 + adds r1, r0 + b _080ECBC8 + .align 2, 0 +_080ECAF0: .4byte 0x02000000 +_080ECAF4: + movs r0, 0x1 + bl sub_80F1B8C + ldr r1, _080ECB20 @ =0x02000000 + movs r2, 0xC1 + lsls r2, 2 + adds r1, r2 + ldrh r0, [r1] + adds r0, 0x1 + strh r0, [r1] +_080ECB08: + movs r0, 0x1 + bl sub_80F1BC8 + lsls r0, 24 + cmp r0, 0 + bne _080ECBF2 + ldr r1, _080ECB20 @ =0x02000000 + movs r0, 0xC1 + lsls r0, 2 + adds r1, r0 + b _080ECBC8 + .align 2, 0 +_080ECB20: .4byte 0x02000000 +_080ECB24: + bl sub_8055870 + cmp r0, 0 + bne _080ECBF2 + b _080ECBC0 +_080ECB2E: + movs r1, 0xC2 + lsls r1, 2 + adds r0, r4, r1 + ldr r0, [r0] + movs r1, 0x1 + negs r1, r1 + movs r2, 0 + str r2, [sp] + movs r2, 0x10 + movs r3, 0 + bl BeginNormalPaletteFade + ldr r0, _080ECB54 @ =sub_80EBD18 + bl SetVBlankCallback + movs r2, 0xC1 + lsls r2, 2 + adds r1, r4, r2 + b _080ECBC8 + .align 2, 0 +_080ECB54: .4byte sub_80EBD18 +_080ECB58: + movs r0, 0 + bl sub_80EED2C + ldr r1, _080ECB68 @ =0x02000000 + movs r0, 0xC1 + lsls r0, 2 + adds r1, r0 + b _080ECBC8 + .align 2, 0 +_080ECB68: .4byte 0x02000000 +_080ECB6C: + bl sub_80F2598 + b _080ECBC0 +_080ECB72: + ldr r0, _080ECB88 @ =gPaletteFade + ldrb r1, [r0, 0x7] + movs r0, 0x80 + ands r0, r1 + cmp r0, 0 + bne _080ECBF2 + movs r0, 0xC1 + lsls r0, 2 + adds r1, r4, r0 + b _080ECBC8 + .align 2, 0 +_080ECB88: .4byte gPaletteFade +_080ECB8C: + movs r0, 0x1 + bl sub_80F2C80 + ldr r1, _080ECBB8 @ =0x02000000 + movs r2, 0xC1 + lsls r2, 2 + adds r1, r2 + ldrh r0, [r1] + adds r0, 0x1 + strh r0, [r1] +_080ECBA0: + movs r0, 0x1 + bl sub_80F2CBC + lsls r0, 24 + cmp r0, 0 + bne _080ECBF2 + ldr r1, _080ECBB8 @ =0x02000000 + movs r0, 0xC1 + lsls r0, 2 + adds r1, r0 + b _080ECBC8 + .align 2, 0 +_080ECBB8: .4byte 0x02000000 +_080ECBBC: + bl sub_80F1DF0 +_080ECBC0: + ldr r1, _080ECBD0 @ =0x02000000 + movs r2, 0xC1 + lsls r2, 2 + adds r1, r2 +_080ECBC8: + ldrh r0, [r1] + adds r0, 0x1 + strh r0, [r1] + b _080ECBF2 + .align 2, 0 +_080ECBD0: .4byte 0x02000000 +_080ECBD4: + bl sub_80F1E50 + lsls r0, 24 + cmp r0, 0 + bne _080ECBF2 + ldr r0, _080ECBFC @ =0x02000000 + ldr r1, _080ECC00 @ =0x00006dad + adds r0, r1 + ldrb r1, [r0] + movs r0, 0x1 + bl sub_80EF428 + ldr r0, _080ECC04 @ =sub_80EC86C + bl sub_80EBDBC +_080ECBF2: + add sp, 0x4 + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_080ECBFC: .4byte 0x02000000 +_080ECC00: .4byte 0x00006dad +_080ECC04: .4byte sub_80EC86C + thumb_func_end sub_80ECA10 + + thumb_func_start sub_80ECC08 +sub_80ECC08: @ 80ECC08 + push {r4,r5,lr} + ldr r4, _080ECC20 @ =0x02000000 + movs r0, 0xC1 + lsls r0, 2 + adds r5, r4, r0 + ldrh r0, [r5] + cmp r0, 0 + beq _080ECC24 + cmp r0, 0x1 + bne _080ECC1E + b _080ECD64 +_080ECC1E: + b _080ECD74 + .align 2, 0 +_080ECC20: .4byte 0x02000000 +_080ECC24: + bl sub_80EEC90 + lsls r0, 24 + cmp r0, 0 + beq _080ECC4C + movs r0, 0x5 + bl PlaySE + ldr r1, _080ECC48 @ =0x00006dad + adds r0, r4, r1 + ldrb r1, [r0] + movs r0, 0x2 + bl sub_80EF428 + bl sub_80EED9C + b _080ECD74 + .align 2, 0 +_080ECC48: .4byte 0x00006dad +_080ECC4C: + ldr r0, _080ECC78 @ =gMain + ldrh r1, [r0, 0x2E] + movs r0, 0x1 + ands r0, r1 + cmp r0, 0 + bne _080ECC5A + b _080ECD40 +_080ECC5A: + movs r0, 0x5 + bl PlaySE + ldr r2, _080ECC7C @ =0x00006dad + adds r0, r4, r2 + ldrb r0, [r0] + lsls r0, 24 + asrs r0, 24 + cmp r0, 0x5 + bhi _080ECD0C + lsls r0, 2 + ldr r1, _080ECC80 @ =_080ECC84 + adds r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_080ECC78: .4byte gMain +_080ECC7C: .4byte 0x00006dad +_080ECC80: .4byte _080ECC84 + .align 2, 0 +_080ECC84: + .4byte _080ECC9C + .4byte _080ECCB0 + .4byte _080ECCC4 + .4byte _080ECCD8 + .4byte _080ECCEC + .4byte _080ECD00 +_080ECC9C: + ldr r0, _080ECCA8 @ =0x02000000 + ldr r3, _080ECCAC @ =0x000087d8 + adds r0, r3 + movs r1, 0x16 + strb r1, [r0] + b _080ECD0C + .align 2, 0 +_080ECCA8: .4byte 0x02000000 +_080ECCAC: .4byte 0x000087d8 +_080ECCB0: + ldr r0, _080ECCBC @ =0x02000000 + ldr r1, _080ECCC0 @ =0x000087d8 + adds r0, r1 + movs r1, 0x17 + strb r1, [r0] + b _080ECD0C + .align 2, 0 +_080ECCBC: .4byte 0x02000000 +_080ECCC0: .4byte 0x000087d8 +_080ECCC4: + ldr r0, _080ECCD0 @ =0x02000000 + ldr r2, _080ECCD4 @ =0x000087d8 + adds r0, r2 + movs r1, 0x18 + strb r1, [r0] + b _080ECD0C + .align 2, 0 +_080ECCD0: .4byte 0x02000000 +_080ECCD4: .4byte 0x000087d8 +_080ECCD8: + ldr r0, _080ECCE4 @ =0x02000000 + ldr r3, _080ECCE8 @ =0x000087d8 + adds r0, r3 + movs r1, 0x21 + strb r1, [r0] + b _080ECD0C + .align 2, 0 +_080ECCE4: .4byte 0x02000000 +_080ECCE8: .4byte 0x000087d8 +_080ECCEC: + ldr r0, _080ECCF8 @ =0x02000000 + ldr r1, _080ECCFC @ =0x000087d8 + adds r0, r1 + movs r1, 0x2F + strb r1, [r0] + b _080ECD0C + .align 2, 0 +_080ECCF8: .4byte 0x02000000 +_080ECCFC: .4byte 0x000087d8 +_080ECD00: + ldr r0, _080ECD08 @ =sub_80EC9A8 + bl sub_80EBDBC + b _080ECD74 + .align 2, 0 +_080ECD08: .4byte sub_80EC9A8 +_080ECD0C: + ldr r1, _080ECD2C @ =0x02000000 + ldr r2, _080ECD30 @ =0x00006dad + adds r0, r1, r2 + ldrb r2, [r0] + ldr r3, _080ECD34 @ =0x00006dfc + adds r0, r1, r3 + strb r2, [r0] + ldr r0, _080ECD38 @ =0x000076aa + adds r1, r0 + movs r0, 0x1 + strb r0, [r1] + ldr r0, _080ECD3C @ =sub_80ED01C + bl sub_80EBDBC + b _080ECD74 + .align 2, 0 +_080ECD2C: .4byte 0x02000000 +_080ECD30: .4byte 0x00006dad +_080ECD34: .4byte 0x00006dfc +_080ECD38: .4byte 0x000076aa +_080ECD3C: .4byte sub_80ED01C +_080ECD40: + movs r0, 0x2 + ands r0, r1 + cmp r0, 0 + beq _080ECD74 + movs r0, 0x5 + bl PlaySE + ldr r2, _080ECD60 @ =0x00006dad + adds r1, r4, r2 + movs r0, 0x5 + strb r0, [r1] + ldrh r0, [r5] + adds r0, 0x1 + strh r0, [r5] + b _080ECD74 + .align 2, 0 +_080ECD60: .4byte 0x00006dad +_080ECD64: + bl sub_80F1E6C + lsls r0, 24 + cmp r0, 0 + bne _080ECD74 + ldr r0, _080ECD7C @ =sub_80EC9A8 + bl sub_80EBDBC +_080ECD74: + pop {r4,r5} + pop {r0} + bx r0 + .align 2, 0 +_080ECD7C: .4byte sub_80EC9A8 + thumb_func_end sub_80ECC08 + + thumb_func_start sub_80ECD80 +sub_80ECD80: @ 80ECD80 + push {r4,lr} + sub sp, 0x4 + ldr r1, _080ECDA0 @ =0x02000000 + movs r2, 0xC1 + lsls r2, 2 + adds r0, r1, r2 + ldrh r0, [r0] + adds r4, r1, 0 + cmp r0, 0x14 + bls _080ECD96 + b _080ED006 +_080ECD96: + lsls r0, 2 + ldr r1, _080ECDA4 @ =_080ECDA8 + adds r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_080ECDA0: .4byte 0x02000000 +_080ECDA4: .4byte _080ECDA8 + .align 2, 0 +_080ECDA8: + .4byte _080ECDFC + .4byte _080ECE1A + .4byte _080ECE34 + .4byte _080ECE4C + .4byte _080ECE64 + .4byte _080ECE78 + .4byte _080ECE80 + .4byte _080ECEAC + .4byte _080ECEC0 + .4byte _080ECED4 + .4byte _080ECEE8 + .4byte _080ECF04 + .4byte _080ECF10 + .4byte _080ECF3C + .4byte _080ECF44 + .4byte _080ECF58 + .4byte _080ECF70 + .4byte _080ECF84 + .4byte _080ECFB0 + .4byte _080ECFC4 + .4byte _080ECFE8 +_080ECDFC: + movs r3, 0xC2 + lsls r3, 2 + adds r0, r4, r3 + ldr r0, [r0] + movs r1, 0x1 + negs r1, r1 + movs r2, 0 + str r2, [sp] + movs r3, 0x10 + bl BeginNormalPaletteFade + movs r0, 0xC1 + lsls r0, 2 + adds r1, r4, r0 + b _080ECFDC +_080ECE1A: + ldr r0, _080ECE30 @ =gPaletteFade + ldrb r1, [r0, 0x7] + movs r0, 0x80 + ands r0, r1 + cmp r0, 0 + beq _080ECE28 + b _080ED006 +_080ECE28: + movs r2, 0xC1 + lsls r2, 2 + adds r1, r4, r2 + b _080ECFDC + .align 2, 0 +_080ECE30: .4byte gPaletteFade +_080ECE34: + bl sub_80EEF78 + lsls r0, 24 + cmp r0, 0 + beq _080ECE40 + b _080ED006 +_080ECE40: + ldr r0, _080ECE48 @ =sub_80EBD80 + bl SetVBlankCallback + b _080ECFD4 + .align 2, 0 +_080ECE48: .4byte sub_80EBD80 +_080ECE4C: + bl sub_80EED1C + bl sub_80F3130 + ldr r1, _080ECE60 @ =0x02000000 + movs r0, 0xC1 + lsls r0, 2 + adds r1, r0 + b _080ECFDC + .align 2, 0 +_080ECE60: .4byte 0x02000000 +_080ECE64: + movs r0, 0x1 + bl sub_80F2D6C + ldr r1, _080ECE74 @ =0x02000000 + movs r2, 0xC1 + lsls r2, 2 + adds r1, r2 + b _080ECFDC + .align 2, 0 +_080ECE74: .4byte 0x02000000 +_080ECE78: + movs r0, 0x5 + bl sub_80F2D6C + b _080ECFD4 +_080ECE80: + ldr r1, _080ECEA0 @ =0x00006dfc + adds r0, r4, r1 + ldrb r1, [r0] + ldr r2, _080ECEA4 @ =0x00006dad + adds r0, r4, r2 + strb r1, [r0] + ldr r3, _080ECEA8 @ =0x00006dae + adds r1, r4, r3 + movs r0, 0x6 + strb r0, [r1] + bl sub_80EEE08 + movs r0, 0xC1 + lsls r0, 2 + adds r1, r4, r0 + b _080ECFDC + .align 2, 0 +_080ECEA0: .4byte 0x00006dfc +_080ECEA4: .4byte 0x00006dad +_080ECEA8: .4byte 0x00006dae +_080ECEAC: + movs r0, 0x2 + bl sub_80EF248 + ldr r1, _080ECED0 @ =0x02000000 + movs r2, 0xC1 + lsls r2, 2 + adds r1, r2 + ldrh r0, [r1] + adds r0, 0x1 + strh r0, [r1] +_080ECEC0: + movs r0, 0x2 + bl sub_80EF284 + lsls r0, 24 + cmp r0, 0 + beq _080ECECE + b _080ED006 +_080ECECE: + b _080ECFD4 + .align 2, 0 +_080ECED0: .4byte 0x02000000 +_080ECED4: + movs r0, 0x2 + bl sub_80F1B8C + ldr r1, _080ECF00 @ =0x02000000 + movs r0, 0xC1 + lsls r0, 2 + adds r1, r0 + ldrh r0, [r1] + adds r0, 0x1 + strh r0, [r1] +_080ECEE8: + movs r0, 0x2 + bl sub_80F1BC8 + lsls r0, 24 + cmp r0, 0 + beq _080ECEF6 + b _080ED006 +_080ECEF6: + ldr r1, _080ECF00 @ =0x02000000 + movs r2, 0xC1 + lsls r2, 2 + adds r1, r2 + b _080ECFDC + .align 2, 0 +_080ECF00: .4byte 0x02000000 +_080ECF04: + bl sub_8055870 + cmp r0, 0 + beq _080ECF0E + b _080ED006 +_080ECF0E: + b _080ECFD4 +_080ECF10: + movs r1, 0xC2 + lsls r1, 2 + adds r0, r4, r1 + ldr r0, [r0] + movs r1, 0x1 + negs r1, r1 + movs r2, 0 + str r2, [sp] + movs r2, 0x10 + movs r3, 0 + bl BeginNormalPaletteFade + ldr r0, _080ECF38 @ =sub_80EBD18 + bl SetVBlankCallback + movs r2, 0xC1 + lsls r2, 2 + adds r1, r4, r2 + b _080ECFDC + .align 2, 0 +_080ECF38: .4byte sub_80EBD18 +_080ECF3C: + movs r0, 0 + bl sub_80EED2C + b _080ECFD4 +_080ECF44: + bl sub_80F2598 + ldr r1, _080ECF54 @ =0x02000000 + movs r0, 0xC1 + lsls r0, 2 + adds r1, r0 + b _080ECFDC + .align 2, 0 +_080ECF54: .4byte 0x02000000 +_080ECF58: + ldr r0, _080ECF6C @ =gPaletteFade + ldrb r1, [r0, 0x7] + movs r0, 0x80 + ands r0, r1 + cmp r0, 0 + bne _080ED006 + movs r2, 0xC1 + lsls r2, 2 + adds r1, r4, r2 + b _080ECFDC + .align 2, 0 +_080ECF6C: .4byte gPaletteFade +_080ECF70: + movs r0, 0x1 + bl sub_80F2C80 + ldr r1, _080ECFA8 @ =0x02000000 + movs r3, 0xC1 + lsls r3, 2 + adds r1, r3 + ldrh r0, [r1] + adds r0, 0x1 + strh r0, [r1] +_080ECF84: + movs r0, 0x1 + bl sub_80F2CBC + lsls r0, 24 + lsrs r2, r0, 24 + cmp r2, 0 + bne _080ED006 + ldr r0, _080ECFA8 @ =0x02000000 + ldr r3, _080ECFAC @ =0x00000306 + adds r1, r0, r3 + strh r2, [r1] + movs r1, 0xC1 + lsls r1, 2 + adds r0, r1 + ldrh r1, [r0] + adds r1, 0x1 + strh r1, [r0] + b _080ED006 + .align 2, 0 +_080ECFA8: .4byte 0x02000000 +_080ECFAC: .4byte 0x00000306 +_080ECFB0: + movs r0, 0x5 + bl sub_80F2C80 + ldr r1, _080ECFE4 @ =0x02000000 + movs r2, 0xC1 + lsls r2, 2 + adds r1, r2 + ldrh r0, [r1] + adds r0, 0x1 + strh r0, [r1] +_080ECFC4: + movs r0, 0x5 + bl sub_80F2CBC + lsls r0, 24 + cmp r0, 0 + bne _080ED006 + bl sub_80F1DF0 +_080ECFD4: + ldr r1, _080ECFE4 @ =0x02000000 + movs r3, 0xC1 + lsls r3, 2 + adds r1, r3 +_080ECFDC: + ldrh r0, [r1] + adds r0, 0x1 + strh r0, [r1] + b _080ED006 + .align 2, 0 +_080ECFE4: .4byte 0x02000000 +_080ECFE8: + bl sub_80F1E50 + lsls r0, 24 + cmp r0, 0 + bne _080ED006 + ldr r0, _080ED010 @ =0x02000000 + ldr r1, _080ED014 @ =0x00006dad + adds r0, r1 + ldrb r1, [r0] + movs r0, 0x2 + bl sub_80EF428 + ldr r0, _080ED018 @ =sub_80ECC08 + bl sub_80EBDBC +_080ED006: + add sp, 0x4 + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_080ED010: .4byte 0x02000000 +_080ED014: .4byte 0x00006dad +_080ED018: .4byte sub_80ECC08 + thumb_func_end sub_80ECD80 + + thumb_func_start sub_80ED01C +sub_80ED01C: @ 80ED01C + push {r4,lr} + sub sp, 0x4 + ldr r1, _080ED03C @ =0x02000000 + movs r2, 0xC1 + lsls r2, 2 + adds r0, r1, r2 + ldrh r0, [r0] + adds r4, r1, 0 + cmp r0, 0x13 + bls _080ED032 + b _080ED308 +_080ED032: + lsls r0, 2 + ldr r1, _080ED040 @ =_080ED044 + adds r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_080ED03C: .4byte 0x02000000 +_080ED040: .4byte _080ED044 + .align 2, 0 +_080ED044: + .4byte _080ED094 + .4byte _080ED0B4 + .4byte _080ED0D4 + .4byte _080ED108 + .4byte _080ED138 + .4byte _080ED14C + .4byte _080ED15E + .4byte _080ED18C + .4byte _080ED1AC + .4byte _080ED1C4 + .4byte _080ED1D8 + .4byte _080ED1F4 + .4byte _080ED208 + .4byte _080ED220 + .4byte _080ED24C + .4byte _080ED260 + .4byte _080ED28C + .4byte _080ED2A0 + .4byte _080ED2CC + .4byte _080ED2EA +_080ED094: + bl sub_80F1E84 + movs r0, 0x1 + bl sub_80F2D04 + movs r0, 0x5 + bl sub_80F2D04 + ldr r1, _080ED0B0 @ =0x02000000 + movs r3, 0xC1 + lsls r3, 2 + adds r1, r3 + b _080ED27C + .align 2, 0 +_080ED0B0: .4byte 0x02000000 +_080ED0B4: + bl sub_80F1F10 + lsls r0, 24 + cmp r0, 0 + beq _080ED0C0 + b _080ED308 +_080ED0C0: + movs r0, 0 + bl sub_80EEFBC + ldr r1, _080ED0D0 @ =0x02000000 + movs r0, 0xC1 + lsls r0, 2 + adds r1, r0 + b _080ED27C + .align 2, 0 +_080ED0D0: .4byte 0x02000000 +_080ED0D4: + bl sub_80EEF34 + lsls r0, 24 + lsrs r2, r0, 24 + cmp r2, 0 + beq _080ED0E2 + b _080ED308 +_080ED0E2: + ldr r4, _080ED104 @ =0x02000000 + movs r1, 0xC2 + lsls r1, 2 + adds r0, r4, r1 + ldr r0, [r0] + movs r1, 0x1 + negs r1, r1 + str r2, [sp] + movs r2, 0 + movs r3, 0x10 + bl BeginNormalPaletteFade + movs r2, 0xC1 + lsls r2, 2 + adds r1, r4, r2 + b _080ED27C + .align 2, 0 +_080ED104: .4byte 0x02000000 +_080ED108: + ldr r0, _080ED130 @ =gPaletteFade + ldrb r1, [r0, 0x7] + movs r0, 0x80 + ands r0, r1 + cmp r0, 0 + beq _080ED116 + b _080ED308 +_080ED116: + movs r0, 0 + bl SetVBlankCallback + bl sub_80EED0C + bl sub_80EF814 + ldr r1, _080ED134 @ =0x02000000 + movs r3, 0xC1 + lsls r3, 2 + adds r1, r3 + b _080ED27C + .align 2, 0 +_080ED130: .4byte gPaletteFade +_080ED134: .4byte 0x02000000 +_080ED138: + bl sub_80F2620 + ldr r1, _080ED148 @ =0x02000000 + movs r0, 0xC1 + lsls r0, 2 + adds r1, r0 + b _080ED27C + .align 2, 0 +_080ED148: .4byte 0x02000000 +_080ED14C: + bl sub_80F4D44 + ldr r1, _080ED178 @ =0x02000000 + movs r2, 0xC1 + lsls r2, 2 + adds r1, r2 + ldrh r0, [r1] + adds r0, 0x1 + strh r0, [r1] +_080ED15E: + bl sub_80F4D88 + lsls r0, 24 + cmp r0, 0 + bne _080ED17C + ldr r1, _080ED178 @ =0x02000000 + movs r3, 0xC1 + lsls r3, 2 + adds r1, r3 + ldrh r0, [r1] + adds r0, 0x2 + strh r0, [r1] + b _080ED308 + .align 2, 0 +_080ED178: .4byte 0x02000000 +_080ED17C: + ldr r1, _080ED188 @ =0x02000000 + movs r0, 0xC1 + lsls r0, 2 + adds r1, r0 + b _080ED27C + .align 2, 0 +_080ED188: .4byte 0x02000000 +_080ED18C: + bl sub_8055870 + cmp r0, 0 + beq _080ED196 + b _080ED308 +_080ED196: + ldr r1, _080ED1A8 @ =0x02000000 + movs r2, 0xC1 + lsls r2, 2 + adds r1, r2 + ldrh r0, [r1] + subs r0, 0x1 + strh r0, [r1] + b _080ED308 + .align 2, 0 +_080ED1A8: .4byte 0x02000000 +_080ED1AC: + bl sub_8055870 + cmp r0, 0 + beq _080ED1B6 + b _080ED308 +_080ED1B6: + ldr r1, _080ED1C0 @ =0x02000000 + movs r3, 0xC1 + lsls r3, 2 + adds r1, r3 + b _080ED27C + .align 2, 0 +_080ED1C0: .4byte 0x02000000 +_080ED1C4: + movs r0, 0 + bl sub_80F0264 + ldr r1, _080ED1F0 @ =0x02000000 + movs r0, 0xC1 + lsls r0, 2 + adds r1, r0 + ldrh r0, [r1] + adds r0, 0x1 + strh r0, [r1] +_080ED1D8: + bl sub_80F02A0 + lsls r0, 24 + cmp r0, 0 + beq _080ED1E4 + b _080ED308 +_080ED1E4: + ldr r1, _080ED1F0 @ =0x02000000 + movs r2, 0xC1 + lsls r2, 2 + adds r1, r2 + b _080ED27C + .align 2, 0 +_080ED1F0: .4byte 0x02000000 +_080ED1F4: + movs r0, 0 + bl sub_80F3008 + ldr r1, _080ED204 @ =0x02000000 + movs r3, 0xC1 + lsls r3, 2 + adds r1, r3 + b _080ED27C + .align 2, 0 +_080ED204: .4byte 0x02000000 +_080ED208: + bl sub_8055870 + cmp r0, 0 + beq _080ED212 + b _080ED308 +_080ED212: + ldr r1, _080ED21C @ =0x02000000 + movs r0, 0xC1 + lsls r0, 2 + adds r1, r0 + b _080ED27C + .align 2, 0 +_080ED21C: .4byte 0x02000000 +_080ED220: + movs r1, 0xC2 + lsls r1, 2 + adds r0, r4, r1 + ldr r0, [r0] + movs r1, 0x1 + negs r1, r1 + movs r2, 0 + str r2, [sp] + movs r2, 0x10 + movs r3, 0 + bl BeginNormalPaletteFade + ldr r0, _080ED248 @ =sub_80EBD18 + bl SetVBlankCallback + movs r2, 0xC1 + lsls r2, 2 + adds r1, r4, r2 + b _080ED27C + .align 2, 0 +_080ED248: .4byte sub_80EBD18 +_080ED24C: + movs r0, 0x4 + bl sub_80EED2C + ldr r1, _080ED25C @ =0x02000000 + movs r3, 0xC1 + lsls r3, 2 + adds r1, r3 + b _080ED27C + .align 2, 0 +_080ED25C: .4byte 0x02000000 +_080ED260: + ldr r0, _080ED284 @ =gPaletteFade + ldrb r1, [r0, 0x7] + movs r0, 0x80 + ands r0, r1 + lsls r0, 24 + lsrs r1, r0, 24 + cmp r1, 0 + bne _080ED308 + ldr r2, _080ED288 @ =0x00000306 + adds r0, r4, r2 + strh r1, [r0] + movs r3, 0xC1 + lsls r3, 2 + adds r1, r4, r3 +_080ED27C: + ldrh r0, [r1] + adds r0, 0x1 + strh r0, [r1] + b _080ED308 + .align 2, 0 +_080ED284: .4byte gPaletteFade +_080ED288: .4byte 0x00000306 +_080ED28C: + movs r0, 0x1 + bl sub_80F2C80 + ldr r1, _080ED2C4 @ =0x02000000 + movs r0, 0xC1 + lsls r0, 2 + adds r1, r0 + ldrh r0, [r1] + adds r0, 0x1 + strh r0, [r1] +_080ED2A0: + movs r0, 0x1 + bl sub_80F2CBC + lsls r0, 24 + lsrs r2, r0, 24 + cmp r2, 0 + bne _080ED308 + ldr r0, _080ED2C4 @ =0x02000000 + ldr r3, _080ED2C8 @ =0x00000306 + adds r1, r0, r3 + strh r2, [r1] + movs r1, 0xC1 + lsls r1, 2 + adds r0, r1 + ldrh r1, [r0] + adds r1, 0x1 + strh r1, [r0] + b _080ED308 + .align 2, 0 +_080ED2C4: .4byte 0x02000000 +_080ED2C8: .4byte 0x00000306 +_080ED2CC: + ldr r4, _080ED310 @ =0x02000000 + ldr r2, _080ED314 @ =0x00006dfc + adds r0, r4, r2 + ldrb r0, [r0] + adds r0, 0x7 + lsls r0, 24 + lsrs r0, 24 + bl sub_80F2C80 + movs r3, 0xC1 + lsls r3, 2 + adds r4, r3 + ldrh r0, [r4] + adds r0, 0x1 + strh r0, [r4] +_080ED2EA: + ldr r0, _080ED310 @ =0x02000000 + ldr r1, _080ED314 @ =0x00006dfc + adds r0, r1 + ldrb r0, [r0] + adds r0, 0x7 + lsls r0, 24 + lsrs r0, 24 + bl sub_80F2CBC + lsls r0, 24 + cmp r0, 0 + bne _080ED308 + ldr r0, _080ED318 @ =sub_80ED31C + bl sub_80EBDBC +_080ED308: + add sp, 0x4 + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_080ED310: .4byte 0x02000000 +_080ED314: .4byte 0x00006dfc +_080ED318: .4byte sub_80ED31C + thumb_func_end sub_80ED01C + + thumb_func_start sub_80ED31C +sub_80ED31C: @ 80ED31C + push {r4,lr} + ldr r0, _080ED338 @ =0x02000000 + movs r1, 0xC1 + lsls r1, 2 + adds r4, r0, r1 + ldrh r0, [r4] + cmp r0, 0x1 + beq _080ED3A8 + cmp r0, 0x1 + bgt _080ED33C + cmp r0, 0 + beq _080ED342 + b _080ED3CA + .align 2, 0 +_080ED338: .4byte 0x02000000 +_080ED33C: + cmp r0, 0x2 + beq _080ED3C0 + b _080ED3CA +_080ED342: + bl sub_80F5DD4 + lsls r0, 24 + lsrs r0, 24 + cmp r0, 0x1 + beq _080ED374 + cmp r0, 0x2 + beq _080ED380 + ldr r0, _080ED36C @ =gMain + ldrh r1, [r0, 0x2E] + movs r0, 0x1 + ands r0, r1 + cmp r0, 0 + beq _080ED38C + movs r0, 0x5 + bl PlaySE + ldr r0, _080ED370 @ =sub_80ED4D8 + bl sub_80EBDBC + b _080ED3CA + .align 2, 0 +_080ED36C: .4byte gMain +_080ED370: .4byte sub_80ED4D8 +_080ED374: + movs r0, 0x5 + bl PlaySE + bl ShowMapNamePopUpWindow + b _080ED3CA +_080ED380: + movs r0, 0x5 + bl PlaySE + ldrh r0, [r4] + adds r0, 0x1 + b _080ED3C8 +_080ED38C: + movs r0, 0x2 + ands r0, r1 + cmp r0, 0 + beq _080ED3CA + movs r0, 0x5 + bl PlaySE + ldr r0, _080ED3A4 @ =sub_80ECD80 + bl sub_80EBDBC + b _080ED3CA + .align 2, 0 +_080ED3A4: .4byte sub_80ECD80 +_080ED3A8: + bl sub_80F0718 + lsls r0, 24 + cmp r0, 0 + bne _080ED3CA + bl ShowMapNamePopUpWindow + bl sub_80F3264 + ldrh r0, [r4] + adds r0, 0x1 + b _080ED3C8 +_080ED3C0: + bl sub_8055870 + cmp r0, 0 + bne _080ED3CA +_080ED3C8: + strh r0, [r4] +_080ED3CA: + pop {r4} + pop {r0} + bx r0 + thumb_func_end sub_80ED31C + + thumb_func_start sub_80ED3D0 +sub_80ED3D0: @ 80ED3D0 + push {r4,lr} + sub sp, 0x4 + ldr r0, _080ED3EC @ =0x02000000 + movs r1, 0xC1 + lsls r1, 2 + adds r0, r1 + ldrh r0, [r0] + cmp r0, 0x8 + bhi _080ED4C6 + lsls r0, 2 + ldr r1, _080ED3F0 @ =_080ED3F4 + adds r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_080ED3EC: .4byte 0x02000000 +_080ED3F0: .4byte _080ED3F4 + .align 2, 0 +_080ED3F4: + .4byte _080ED418 + .4byte _080ED420 + .4byte _080ED42A + .4byte _080ED432 + .4byte _080ED446 + .4byte _080ED458 + .4byte _080ED462 + .4byte _080ED498 + .4byte _080ED4B4 +_080ED418: + movs r0, 0 + bl SetVBlankCallback + b _080ED49E +_080ED420: + bl sub_80EED0C + bl sub_80F6134 + b _080ED49E +_080ED42A: + movs r0, 0 + bl sub_80EEFBC + b _080ED49E +_080ED432: + movs r0, 0 + bl sub_80F0264 + ldr r1, _080ED454 @ =0x02000000 + movs r0, 0xC1 + lsls r0, 2 + adds r1, r0 + ldrh r0, [r1] + adds r0, 0x1 + strh r0, [r1] +_080ED446: + bl sub_80F02A0 + lsls r0, 24 + cmp r0, 0 + bne _080ED4C6 + b _080ED49E + .align 2, 0 +_080ED454: .4byte 0x02000000 +_080ED458: + bl sub_8055870 + cmp r0, 0 + bne _080ED4C6 + b _080ED49E +_080ED462: + movs r0, 0 + bl sub_80F3008 + ldr r4, _080ED490 @ =0x02000000 + movs r1, 0xC2 + lsls r1, 2 + adds r0, r4, r1 + ldr r0, [r0] + movs r1, 0x1 + negs r1, r1 + movs r2, 0 + str r2, [sp] + movs r2, 0x10 + movs r3, 0 + bl BeginNormalPaletteFade + ldr r0, _080ED494 @ =sub_80EBD18 + bl SetVBlankCallback + movs r0, 0xC1 + lsls r0, 2 + adds r1, r4, r0 + b _080ED4A6 + .align 2, 0 +_080ED490: .4byte 0x02000000 +_080ED494: .4byte sub_80EBD18 +_080ED498: + movs r0, 0x4 + bl sub_80EED2C +_080ED49E: + ldr r1, _080ED4B0 @ =0x02000000 + movs r0, 0xC1 + lsls r0, 2 + adds r1, r0 +_080ED4A6: + ldrh r0, [r1] + adds r0, 0x1 + strh r0, [r1] + b _080ED4C6 + .align 2, 0 +_080ED4B0: .4byte 0x02000000 +_080ED4B4: + ldr r0, _080ED4D0 @ =gPaletteFade + ldrb r1, [r0, 0x7] + movs r0, 0x80 + ands r0, r1 + cmp r0, 0 + bne _080ED4C6 + ldr r0, _080ED4D4 @ =sub_80ED31C + bl sub_80EBDBC +_080ED4C6: + add sp, 0x4 + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_080ED4D0: .4byte gPaletteFade +_080ED4D4: .4byte sub_80ED31C + thumb_func_end sub_80ED3D0 + + thumb_func_start sub_80ED4D8 +sub_80ED4D8: @ 80ED4D8 + push {r4,lr} + sub sp, 0x4 + ldr r1, _080ED4F8 @ =0x02000000 + movs r2, 0xC1 + lsls r2, 2 + adds r0, r1, r2 + ldrh r0, [r0] + adds r4, r1, 0 + cmp r0, 0x8 + bls _080ED4EE + b _080ED60E +_080ED4EE: + lsls r0, 2 + ldr r1, _080ED4FC @ =_080ED500 + adds r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_080ED4F8: .4byte 0x02000000 +_080ED4FC: .4byte _080ED500 + .align 2, 0 +_080ED500: + .4byte _080ED524 + .4byte _080ED542 + .4byte _080ED564 + .4byte _080ED57C + .4byte _080ED582 + .4byte _080ED594 + .4byte _080ED5A4 + .4byte _080ED5E0 + .4byte _080ED5FC +_080ED524: + movs r1, 0xC2 + lsls r1, 2 + adds r0, r4, r1 + ldr r0, [r0] + movs r1, 0x1 + negs r1, r1 + movs r2, 0 + str r2, [sp] + movs r3, 0x10 + bl BeginNormalPaletteFade + movs r2, 0xC1 + lsls r2, 2 + adds r1, r4, r2 + b _080ED5EE +_080ED542: + ldr r0, _080ED560 @ =gPaletteFade + ldrb r1, [r0, 0x7] + movs r0, 0x80 + ands r0, r1 + cmp r0, 0 + bne _080ED60E + movs r0, 0 + bl SetVBlankCallback + bl sub_80EED0C + bl sub_80F3130 + b _080ED5E6 + .align 2, 0 +_080ED560: .4byte gPaletteFade +_080ED564: + bl sub_8055870 + cmp r0, 0 + bne _080ED60E + ldr r1, _080ED578 @ =0x02000000 + movs r2, 0xC1 + lsls r2, 2 + adds r1, r2 + b _080ED5EE + .align 2, 0 +_080ED578: .4byte 0x02000000 +_080ED57C: + bl sub_80F4CF0 + b _080ED5E6 +_080ED582: + bl sub_80EFF34 + ldr r1, _080ED5A0 @ =0x02000000 + movs r2, 0xC1 + lsls r2, 2 + adds r1, r2 + ldrh r0, [r1] + adds r0, 0x1 + strh r0, [r1] +_080ED594: + bl sub_80EFF68 + lsls r0, 24 + cmp r0, 0 + bne _080ED60E + b _080ED5E6 + .align 2, 0 +_080ED5A0: .4byte 0x02000000 +_080ED5A4: + bl sub_80F35B4 + movs r0, 0x2 + bl sub_80EEFBC + ldr r4, _080ED5D8 @ =0x02000000 + movs r1, 0xC2 + lsls r1, 2 + adds r0, r4, r1 + ldr r0, [r0] + movs r1, 0x1 + negs r1, r1 + movs r2, 0 + str r2, [sp] + movs r2, 0x10 + movs r3, 0 + bl BeginNormalPaletteFade + ldr r0, _080ED5DC @ =sub_80EBD4C + bl SetVBlankCallback + movs r2, 0xC1 + lsls r2, 2 + adds r1, r4, r2 + b _080ED5EE + .align 2, 0 +_080ED5D8: .4byte 0x02000000 +_080ED5DC: .4byte sub_80EBD4C +_080ED5E0: + movs r0, 0x2 + bl sub_80EED2C +_080ED5E6: + ldr r1, _080ED5F8 @ =0x02000000 + movs r0, 0xC1 + lsls r0, 2 + adds r1, r0 +_080ED5EE: + ldrh r0, [r1] + adds r0, 0x1 + strh r0, [r1] + b _080ED60E + .align 2, 0 +_080ED5F8: .4byte 0x02000000 +_080ED5FC: + ldr r0, _080ED618 @ =gPaletteFade + ldrb r1, [r0, 0x7] + movs r0, 0x80 + ands r0, r1 + cmp r0, 0 + bne _080ED60E + ldr r0, _080ED61C @ =sub_80ED858 + bl sub_80EBDBC +_080ED60E: + add sp, 0x4 + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_080ED618: .4byte gPaletteFade +_080ED61C: .4byte sub_80ED858 + thumb_func_end sub_80ED4D8 + + thumb_func_start sub_80ED620 +sub_80ED620: @ 80ED620 + push {r4,lr} + sub sp, 0x4 + ldr r1, _080ED640 @ =0x02000000 + movs r2, 0xC1 + lsls r2, 2 + adds r0, r1, r2 + ldrh r0, [r0] + adds r4, r1, 0 + cmp r0, 0x10 + bls _080ED636 + b _080ED846 +_080ED636: + lsls r0, 2 + ldr r1, _080ED644 @ =_080ED648 + adds r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_080ED640: .4byte 0x02000000 +_080ED644: .4byte _080ED648 + .align 2, 0 +_080ED648: + .4byte _080ED68C + .4byte _080ED6A4 + .4byte _080ED6B8 + .4byte _080ED6EC + .4byte _080ED730 + .4byte _080ED736 + .4byte _080ED750 + .4byte _080ED762 + .4byte _080ED76C + .4byte _080ED784 + .4byte _080ED78A + .4byte _080ED7C0 + .4byte _080ED7D4 + .4byte _080ED7EC + .4byte _080ED800 + .4byte _080ED820 + .4byte _080ED834 +_080ED68C: + bl sub_80F1E84 + movs r0, 0x1 + bl sub_80F2D04 + ldr r1, _080ED6A0 @ =0x02000000 + movs r0, 0xC1 + lsls r0, 2 + adds r1, r0 + b _080ED814 + .align 2, 0 +_080ED6A0: .4byte 0x02000000 +_080ED6A4: + bl sub_80F1F10 + lsls r0, 24 + cmp r0, 0 + beq _080ED6B0 + b _080ED846 +_080ED6B0: + movs r0, 0x1 + bl sub_80EEFBC + b _080ED80C +_080ED6B8: + bl sub_80EEF34 + lsls r0, 24 + lsrs r2, r0, 24 + cmp r2, 0 + beq _080ED6C6 + b _080ED846 +_080ED6C6: + ldr r4, _080ED6E8 @ =0x02000000 + movs r1, 0xC2 + lsls r1, 2 + adds r0, r4, r1 + ldr r0, [r0] + movs r1, 0x1 + negs r1, r1 + str r2, [sp] + movs r2, 0 + movs r3, 0x10 + bl BeginNormalPaletteFade + movs r2, 0xC1 + lsls r2, 2 + adds r1, r4, r2 + b _080ED814 + .align 2, 0 +_080ED6E8: .4byte 0x02000000 +_080ED6EC: + ldr r0, _080ED724 @ =gPaletteFade + ldrb r1, [r0, 0x7] + movs r0, 0x80 + ands r0, r1 + lsls r0, 24 + lsrs r4, r0, 24 + cmp r4, 0 + beq _080ED6FE + b _080ED846 +_080ED6FE: + movs r0, 0 + bl SetVBlankCallback + bl sub_80EED0C + bl sub_80EF814 + ldr r0, _080ED728 @ =0x02000000 + ldr r2, _080ED72C @ =0x000076aa + adds r1, r0, r2 + strb r4, [r1] + movs r1, 0xC1 + lsls r1, 2 + adds r0, r1 + ldrh r1, [r0] + adds r1, 0x1 + strh r1, [r0] + b _080ED846 + .align 2, 0 +_080ED724: .4byte gPaletteFade +_080ED728: .4byte 0x02000000 +_080ED72C: .4byte 0x000076aa +_080ED730: + bl sub_80F2620 + b _080ED80C +_080ED736: + ldr r0, _080ED74C @ =0x0000d162 + adds r1, r4, r0 + movs r0, 0x2 + strb r0, [r1] + bl sub_80F4BD0 + movs r2, 0xC1 + lsls r2, 2 + adds r1, r4, r2 + b _080ED814 + .align 2, 0 +_080ED74C: .4byte 0x0000d162 +_080ED750: + bl sub_80EFF34 + ldr r1, _080ED768 @ =0x02000000 + movs r0, 0xC1 + lsls r0, 2 + adds r1, r0 + ldrh r0, [r1] + adds r0, 0x1 + strh r0, [r1] +_080ED762: + bl sub_80EFF68 + b _080ED806 + .align 2, 0 +_080ED768: .4byte 0x02000000 +_080ED76C: + bl sub_8055870 + cmp r0, 0 + bne _080ED846 + ldr r1, _080ED780 @ =0x02000000 + movs r0, 0xC1 + lsls r0, 2 + adds r1, r0 + b _080ED814 + .align 2, 0 +_080ED780: .4byte 0x02000000 +_080ED784: + bl sub_8055870 + b _080ED808 +_080ED78A: + bl sub_80F33A8 + ldr r4, _080ED7B8 @ =0x02000000 + movs r1, 0xC2 + lsls r1, 2 + adds r0, r4, r1 + ldr r0, [r0] + movs r1, 0x1 + negs r1, r1 + movs r2, 0 + str r2, [sp] + movs r2, 0x10 + movs r3, 0 + bl BeginNormalPaletteFade + ldr r0, _080ED7BC @ =sub_80EBD4C + bl SetVBlankCallback + movs r2, 0xC1 + lsls r2, 2 + adds r1, r4, r2 + b _080ED814 + .align 2, 0 +_080ED7B8: .4byte 0x02000000 +_080ED7BC: .4byte sub_80EBD4C +_080ED7C0: + movs r0, 0x2 + bl sub_80EED2C + ldr r1, _080ED7D0 @ =0x02000000 + movs r0, 0xC1 + lsls r0, 2 + adds r1, r0 + b _080ED814 + .align 2, 0 +_080ED7D0: .4byte 0x02000000 +_080ED7D4: + ldr r0, _080ED7E8 @ =gPaletteFade + ldrb r1, [r0, 0x7] + movs r0, 0x80 + ands r0, r1 + cmp r0, 0 + bne _080ED846 + movs r2, 0xC1 + lsls r2, 2 + adds r1, r4, r2 + b _080ED814 + .align 2, 0 +_080ED7E8: .4byte gPaletteFade +_080ED7EC: + movs r0, 0x1 + bl sub_80F2C80 + ldr r1, _080ED81C @ =0x02000000 + movs r0, 0xC1 + lsls r0, 2 + adds r1, r0 + ldrh r0, [r1] + adds r0, 0x1 + strh r0, [r1] +_080ED800: + movs r0, 0x1 + bl sub_80F2CBC +_080ED806: + lsls r0, 24 +_080ED808: + cmp r0, 0 + bne _080ED846 +_080ED80C: + ldr r1, _080ED81C @ =0x02000000 + movs r2, 0xC1 + lsls r2, 2 + adds r1, r2 +_080ED814: + ldrh r0, [r1] + adds r0, 0x1 + strh r0, [r1] + b _080ED846 + .align 2, 0 +_080ED81C: .4byte 0x02000000 +_080ED820: + movs r0, 0x6 + bl sub_80F2C80 + ldr r1, _080ED850 @ =0x02000000 + movs r0, 0xC1 + lsls r0, 2 + adds r1, r0 + ldrh r0, [r1] + adds r0, 0x1 + strh r0, [r1] +_080ED834: + movs r0, 0x6 + bl sub_80F2CBC + lsls r0, 24 + cmp r0, 0 + bne _080ED846 + ldr r0, _080ED854 @ =sub_80ED858 + bl sub_80EBDBC +_080ED846: + add sp, 0x4 + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_080ED850: .4byte 0x02000000 +_080ED854: .4byte sub_80ED858 + thumb_func_end sub_80ED620 + + thumb_func_start sub_80ED858 +sub_80ED858: @ 80ED858 + push {r4,r5,lr} + sub sp, 0x4 + ldr r1, _080ED878 @ =0x02000000 + movs r2, 0xC1 + lsls r2, 2 + adds r0, r1, r2 + ldrh r0, [r0] + adds r5, r1, 0 + cmp r0, 0xB + bls _080ED86E + b _080EDB7A +_080ED86E: + lsls r0, 2 + ldr r1, _080ED87C @ =_080ED880 + adds r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_080ED878: .4byte 0x02000000 +_080ED87C: .4byte _080ED880 + .align 2, 0 +_080ED880: + .4byte _080ED8B0 + .4byte _080ED8CC + .4byte _080ED8EC + .4byte _080ED904 + .4byte _080ED91A + .4byte _080EDA68 + .4byte _080EDA8C + .4byte _080EDAA4 + .4byte _080EDAC0 + .4byte _080EDAE8 + .4byte _080EDB7A + .4byte _080EDB28 +_080ED8B0: + bl sub_80F4F78 + bl sub_80F5B38 + ldr r0, _080ED8C8 @ =0x02000000 + movs r4, 0xC1 + lsls r4, 2 + adds r0, r4 + movs r1, 0x1 + strh r1, [r0] + b _080EDB7A + .align 2, 0 +_080ED8C8: .4byte 0x02000000 +_080ED8CC: + bl sub_80F5B50 + lsls r0, 24 + cmp r0, 0 + beq _080ED8D8 + b _080EDB7A +_080ED8D8: + ldr r0, _080ED8E8 @ =0x02000000 + movs r1, 0xC1 + lsls r1, 2 + adds r0, r1 + movs r1, 0x2 + strh r1, [r0] + b _080EDB7A + .align 2, 0 +_080ED8E8: .4byte 0x02000000 +_080ED8EC: + movs r0, 0x1 + bl sub_80F0174 + ldr r0, _080ED900 @ =0x02000000 + movs r2, 0xC1 + lsls r2, 2 + adds r0, r2 + movs r1, 0x3 + strh r1, [r0] + b _080EDB7A + .align 2, 0 +_080ED900: .4byte 0x02000000 +_080ED904: + bl sub_80F4FB4 + lsls r0, 24 + cmp r0, 0 + beq _080ED910 + b _080EDB7A +_080ED910: + bl sub_80F3C94 + bl sub_80F3D00 + b _080EDAD4 +_080ED91A: + ldr r2, _080ED960 @ =gMain + ldrh r1, [r2, 0x2C] + movs r0, 0x40 + ands r0, r1 + adds r3, r2, 0 + cmp r0, 0 + beq _080ED970 + ldr r1, _080ED964 @ =0x000087cb + adds r0, r5, r1 + ldrb r0, [r0] + cmp r0, 0 + beq _080ED970 + ldr r2, _080ED968 @ =0x000076aa + adds r0, r5, r2 + ldrb r0, [r0] + cmp r0, 0 + beq _080ED948 + ldr r4, _080ED96C @ =0x000087dc + adds r0, r5, r4 + movs r1, 0 + ldrsh r0, [r0, r1] + cmp r0, 0 + beq _080ED970 +_080ED948: + movs r0, 0x5 + bl PlaySE + movs r0, 0x1 + bl sub_80F5060 + bl move_anim_execute + movs r2, 0xC1 + lsls r2, 2 + adds r1, r5, r2 + b _080ED9B8 + .align 2, 0 +_080ED960: .4byte gMain +_080ED964: .4byte 0x000087cb +_080ED968: .4byte 0x000076aa +_080ED96C: .4byte 0x000087dc +_080ED970: + ldrh r1, [r3, 0x2C] + movs r0, 0x80 + ands r0, r1 + cmp r0, 0 + beq _080ED9CC + ldr r4, _080ED9C0 @ =0x000087cb + adds r0, r5, r4 + ldrb r0, [r0] + cmp r0, 0 + beq _080ED9CC + ldr r1, _080ED9C4 @ =0x000076aa + adds r0, r5, r1 + ldrb r0, [r0] + cmp r0, 0 + beq _080ED9A2 + ldr r2, _080ED9C8 @ =0x000087dc + adds r0, r5, r2 + subs r4, 0x57 + adds r1, r5, r4 + movs r4, 0 + ldrsh r2, [r0, r4] + movs r4, 0 + ldrsh r0, [r1, r4] + cmp r2, r0 + bge _080ED9CC +_080ED9A2: + movs r0, 0x5 + bl PlaySE + movs r0, 0 + bl sub_80F5060 + bl move_anim_execute + movs r0, 0xC1 + lsls r0, 2 + adds r1, r5, r0 +_080ED9B8: + movs r0, 0x5 + strh r0, [r1] + b _080EDB7A + .align 2, 0 +_080ED9C0: .4byte 0x000087cb +_080ED9C4: .4byte 0x000076aa +_080ED9C8: .4byte 0x000087dc +_080ED9CC: + ldrh r2, [r3, 0x2E] + movs r0, 0x2 + ands r0, r2 + cmp r0, 0 + beq _080ED9F8 + movs r0, 0x5 + bl PlaySE + bl sub_80F4FDC + bl move_anim_execute + ldr r0, _080ED9F4 @ =0x02000000 + movs r1, 0xC1 + lsls r1, 2 + adds r0, r1 + movs r1, 0x9 + strh r1, [r0] + b _080EDB7A + .align 2, 0 +_080ED9F4: .4byte 0x02000000 +_080ED9F8: + movs r0, 0x1 + ands r0, r2 + cmp r0, 0 + bne _080EDA02 + b _080EDB7A +_080EDA02: + adds r4, r5, 0 + ldr r2, _080EDA38 @ =0x000076aa + adds r0, r4, r2 + ldrb r0, [r0] + cmp r0, 0 + bne _080EDA44 + ldr r1, _080EDA3C @ =0x000087dc + adds r0, r4, r1 + movs r2, 0 + ldrsh r1, [r0, r2] + ldr r2, _080EDA40 @ =0x000087da + adds r0, r4, r2 + movs r2, 0 + ldrsh r0, [r0, r2] + subs r0, 0x1 + cmp r1, r0 + beq _080EDA26 + b _080EDB7A +_080EDA26: + movs r0, 0x5 + bl PlaySE + movs r0, 0xC1 + lsls r0, 2 + adds r1, r4, r0 + movs r0, 0x9 + strh r0, [r1] + b _080EDB7A + .align 2, 0 +_080EDA38: .4byte 0x000076aa +_080EDA3C: .4byte 0x000087dc +_080EDA40: .4byte 0x000087da +_080EDA44: + ldr r1, _080EDA64 @ =0x00006dac + adds r0, r5, r1 + ldrb r0, [r0] + cmp r0, 0 + beq _080EDA50 + b _080EDB7A +_080EDA50: + movs r0, 0x5 + bl PlaySE + movs r2, 0xC1 + lsls r2, 2 + adds r1, r5, r2 + movs r0, 0x7 + strh r0, [r1] + b _080EDB7A + .align 2, 0 +_080EDA64: .4byte 0x00006dac +_080EDA68: + bl gpu_sync_bg_show + lsls r0, 24 + cmp r0, 0 + beq _080EDA74 + b _080EDB7A +_080EDA74: + bl sub_80F3D00 + ldr r0, _080EDA88 @ =0x02000000 + movs r4, 0xC1 + lsls r4, 2 + adds r0, r4 + movs r1, 0x6 + strh r1, [r0] + b _080EDB7A + .align 2, 0 +_080EDA88: .4byte 0x02000000 +_080EDA8C: + bl sub_8055870 + cmp r0, 0 + bne _080EDB7A + ldr r0, _080EDAA0 @ =0x02000000 + movs r1, 0xC1 + lsls r1, 2 + adds r0, r1 + b _080EDADC + .align 2, 0 +_080EDAA0: .4byte 0x02000000 +_080EDAA4: + movs r0, 0x3 + bl sub_80EEFBC + bl sub_80F3668 + ldr r0, _080EDABC @ =0x02000000 + movs r2, 0xC1 + lsls r2, 2 + adds r0, r2 + movs r1, 0x8 + strh r1, [r0] + b _080EDB7A + .align 2, 0 +_080EDABC: .4byte 0x02000000 +_080EDAC0: + bl sub_80F7500 + lsls r0, 24 + cmp r0, 0 + bne _080EDB7A + movs r0, 0x2 + bl sub_80EEFBC + bl sub_80F3698 +_080EDAD4: + ldr r0, _080EDAE4 @ =0x02000000 + movs r4, 0xC1 + lsls r4, 2 + adds r0, r4 +_080EDADC: + movs r1, 0x4 + strh r1, [r0] + b _080EDB7A + .align 2, 0 +_080EDAE4: .4byte 0x02000000 +_080EDAE8: + bl sub_80F5038 + lsls r0, 24 + lsrs r4, r0, 24 + cmp r4, 0 + bne _080EDB7A + movs r0, 0 + bl sub_80F0174 + bl sub_80F2F48 + ldr r5, _080EDB24 @ =0x02000000 + movs r1, 0xC2 + lsls r1, 2 + adds r0, r5, r1 + ldr r0, [r0] + movs r1, 0x1 + negs r1, r1 + str r4, [sp] + movs r2, 0 + movs r3, 0x10 + bl BeginNormalPaletteFade + movs r2, 0xC1 + lsls r2, 2 + adds r1, r5, r2 + movs r0, 0xB + strh r0, [r1] + b _080EDB7A + .align 2, 0 +_080EDB24: .4byte 0x02000000 +_080EDB28: + ldr r0, _080EDB60 @ =gPaletteFade + ldrb r1, [r0, 0x7] + movs r0, 0x80 + ands r0, r1 + cmp r0, 0 + bne _080EDB7A + bl sub_80F3CE8 + bl sub_80F5BDC + ldr r0, _080EDB64 @ =0x02000000 + ldr r4, _080EDB68 @ =0x000076aa + adds r0, r4 + ldrb r0, [r0] + cmp r0, 0 + bne _080EDB70 + bl sub_80F357C + movs r0, 0x1 + bl sub_80F2D6C + movs r0, 0x6 + bl sub_80F2D6C + ldr r0, _080EDB6C @ =sub_80ECA10 + bl sub_80EBDBC + b _080EDB7A + .align 2, 0 +_080EDB60: .4byte gPaletteFade +_080EDB64: .4byte 0x02000000 +_080EDB68: .4byte 0x000076aa +_080EDB6C: .4byte sub_80ECA10 +_080EDB70: + bl sub_80F3614 + ldr r0, _080EDB84 @ =sub_80ED3D0 + bl sub_80EBDBC +_080EDB7A: + add sp, 0x4 + pop {r4,r5} + pop {r0} + bx r0 + .align 2, 0 +_080EDB84: .4byte sub_80ED3D0 + thumb_func_end sub_80ED858 + + thumb_func_start sub_80EDB88 +sub_80EDB88: @ 80EDB88 + push {r4,lr} + sub sp, 0x4 + ldr r1, _080EDBA8 @ =0x02000000 + movs r2, 0xC1 + lsls r2, 2 + adds r0, r1, r2 + ldrh r0, [r0] + adds r4, r1, 0 + cmp r0, 0x11 + bls _080EDB9E + b _080EDDAA +_080EDB9E: + lsls r0, 2 + ldr r1, _080EDBAC @ =_080EDBB0 + adds r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_080EDBA8: .4byte 0x02000000 +_080EDBAC: .4byte _080EDBB0 + .align 2, 0 +_080EDBB0: + .4byte _080EDBF8 + .4byte _080EDC04 + .4byte _080EDC24 + .4byte _080EDC58 + .4byte _080EDC7C + .4byte _080EDC90 + .4byte _080EDCA2 + .4byte _080EDCC0 + .4byte _080EDCDC + .4byte _080EDCE6 + .4byte _080EDCFA + .4byte _080EDD0C + .4byte _080EDD20 + .4byte _080EDD34 + .4byte _080EDD48 + .4byte _080EDD52 + .4byte _080EDD7C + .4byte _080EDD98 +_080EDBF8: + bl sub_80F1E84 + movs r0, 0 + bl sub_80F2D04 + b _080EDD82 +_080EDC04: + bl sub_80F1F10 + lsls r0, 24 + cmp r0, 0 + beq _080EDC10 + b _080EDDAA +_080EDC10: + movs r0, 0x4 + bl sub_80EEFBC + ldr r1, _080EDC20 @ =0x02000000 + movs r2, 0xC1 + lsls r2, 2 + adds r1, r2 + b _080EDD8A + .align 2, 0 +_080EDC20: .4byte 0x02000000 +_080EDC24: + bl sub_80EEF34 + lsls r0, 24 + lsrs r2, r0, 24 + cmp r2, 0 + beq _080EDC32 + b _080EDDAA +_080EDC32: + ldr r4, _080EDC54 @ =0x02000000 + movs r1, 0xC2 + lsls r1, 2 + adds r0, r4, r1 + ldr r0, [r0] + movs r1, 0x1 + negs r1, r1 + str r2, [sp] + movs r2, 0 + movs r3, 0x10 + bl BeginNormalPaletteFade + movs r2, 0xC1 + lsls r2, 2 + adds r1, r4, r2 + b _080EDD8A + .align 2, 0 +_080EDC54: .4byte 0x02000000 +_080EDC58: + ldr r0, _080EDC78 @ =gPaletteFade + ldrb r1, [r0, 0x7] + movs r0, 0x80 + ands r0, r1 + cmp r0, 0 + beq _080EDC66 + b _080EDDAA +_080EDC66: + movs r0, 0 + bl SetVBlankCallback + bl sub_80EED0C + bl sub_80EF814 + b _080EDD82 + .align 2, 0 +_080EDC78: .4byte gPaletteFade +_080EDC7C: + bl sub_80F2620 + ldr r1, _080EDC8C @ =0x02000000 + movs r2, 0xC1 + lsls r2, 2 + adds r1, r2 + b _080EDD8A + .align 2, 0 +_080EDC8C: .4byte 0x02000000 +_080EDC90: + bl sub_80F638C + ldr r1, _080EDCBC @ =0x02000000 + movs r0, 0xC1 + lsls r0, 2 + adds r1, r0 + ldrh r0, [r1] + adds r0, 0x1 + strh r0, [r1] +_080EDCA2: + bl sub_80F63D0 + lsls r0, 24 + cmp r0, 0 + bne _080EDD82 + ldr r1, _080EDCBC @ =0x02000000 + movs r2, 0xC1 + lsls r2, 2 + adds r1, r2 + ldrh r0, [r1] + adds r0, 0x2 + strh r0, [r1] + b _080EDDAA + .align 2, 0 +_080EDCBC: .4byte 0x02000000 +_080EDCC0: + bl sub_8055870 + cmp r0, 0 + bne _080EDDAA + ldr r1, _080EDCD8 @ =0x02000000 + movs r2, 0xC1 + lsls r2, 2 + adds r1, r2 + ldrh r0, [r1] + subs r0, 0x1 + strh r0, [r1] + b _080EDDAA + .align 2, 0 +_080EDCD8: .4byte 0x02000000 +_080EDCDC: + bl sub_8055870 + cmp r0, 0 + bne _080EDDAA + b _080EDD82 +_080EDCE6: + movs r0, 0x1 + bl sub_80F0264 + ldr r1, _080EDD08 @ =0x02000000 + movs r2, 0xC1 + lsls r2, 2 + adds r1, r2 + ldrh r0, [r1] + adds r0, 0x1 + strh r0, [r1] +_080EDCFA: + bl sub_80F02A0 + lsls r0, 24 + cmp r0, 0 + bne _080EDDAA + b _080EDD82 + .align 2, 0 +_080EDD08: .4byte 0x02000000 +_080EDD0C: + movs r0, 0x2 + bl sub_80F2C80 + ldr r1, _080EDD30 @ =0x02000000 + movs r2, 0xC1 + lsls r2, 2 + adds r1, r2 + ldrh r0, [r1] + adds r0, 0x1 + strh r0, [r1] +_080EDD20: + movs r0, 0x2 + bl sub_80F2CBC + lsls r0, 24 + cmp r0, 0 + bne _080EDDAA + b _080EDD82 + .align 2, 0 +_080EDD30: .4byte 0x02000000 +_080EDD34: + movs r0, 0x1 + bl sub_80F3008 + ldr r1, _080EDD44 @ =0x02000000 + movs r2, 0xC1 + lsls r2, 2 + adds r1, r2 + b _080EDD8A + .align 2, 0 +_080EDD44: .4byte 0x02000000 +_080EDD48: + bl sub_8055870 + cmp r0, 0 + bne _080EDDAA + b _080EDD82 +_080EDD52: + movs r1, 0xC2 + lsls r1, 2 + adds r0, r4, r1 + ldr r0, [r0] + movs r1, 0x1 + negs r1, r1 + movs r2, 0 + str r2, [sp] + movs r2, 0x10 + movs r3, 0 + bl BeginNormalPaletteFade + ldr r0, _080EDD78 @ =sub_80EBD18 + bl SetVBlankCallback + movs r2, 0xC1 + lsls r2, 2 + adds r1, r4, r2 + b _080EDD8A + .align 2, 0 +_080EDD78: .4byte sub_80EBD18 +_080EDD7C: + movs r0, 0x4 + bl sub_80EED2C +_080EDD82: + ldr r1, _080EDD94 @ =0x02000000 + movs r0, 0xC1 + lsls r0, 2 + adds r1, r0 +_080EDD8A: + ldrh r0, [r1] + adds r0, 0x1 + strh r0, [r1] + b _080EDDAA + .align 2, 0 +_080EDD94: .4byte 0x02000000 +_080EDD98: + ldr r0, _080EDDB4 @ =gPaletteFade + ldrb r1, [r0, 0x7] + movs r0, 0x80 + ands r0, r1 + cmp r0, 0 + bne _080EDDAA + ldr r0, _080EDDB8 @ =sub_80EDDBC + bl sub_80EBDBC +_080EDDAA: + add sp, 0x4 + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_080EDDB4: .4byte gPaletteFade +_080EDDB8: .4byte sub_80EDDBC + thumb_func_end sub_80EDB88 + + thumb_func_start sub_80EDDBC +sub_80EDDBC: @ 80EDDBC + push {r4,lr} + ldr r0, _080EDDD8 @ =0x02000000 + movs r1, 0xC1 + lsls r1, 2 + adds r4, r0, r1 + ldrh r0, [r4] + cmp r0, 0x1 + beq _080EDE48 + cmp r0, 0x1 + bgt _080EDDDC + cmp r0, 0 + beq _080EDDE2 + b _080EDE6A + .align 2, 0 +_080EDDD8: .4byte 0x02000000 +_080EDDDC: + cmp r0, 0x2 + beq _080EDE60 + b _080EDE6A +_080EDDE2: + bl sub_80F5DD4 + lsls r0, 24 + lsrs r0, 24 + cmp r0, 0x1 + beq _080EDE14 + cmp r0, 0x2 + beq _080EDE20 + ldr r0, _080EDE0C @ =gMain + ldrh r1, [r0, 0x2E] + movs r0, 0x1 + ands r0, r1 + cmp r0, 0 + beq _080EDE2C + movs r0, 0x5 + bl PlaySE + ldr r0, _080EDE10 @ =sub_80EDEE4 + bl sub_80EBDBC + b _080EDE6A + .align 2, 0 +_080EDE0C: .4byte gMain +_080EDE10: .4byte sub_80EDEE4 +_080EDE14: + movs r0, 0x5 + bl PlaySE + bl ShowMapNamePopUpWindow + b _080EDE6A +_080EDE20: + movs r0, 0x5 + bl PlaySE + ldrh r0, [r4] + adds r0, 0x1 + b _080EDE68 +_080EDE2C: + movs r0, 0x2 + ands r0, r1 + cmp r0, 0 + beq _080EDE6A + movs r0, 0x5 + bl PlaySE + ldr r0, _080EDE44 @ =sub_80EDE70 + bl sub_80EBDBC + b _080EDE6A + .align 2, 0 +_080EDE44: .4byte sub_80EDE70 +_080EDE48: + bl sub_80F0718 + lsls r0, 24 + cmp r0, 0 + bne _080EDE6A + bl ShowMapNamePopUpWindow + bl sub_80F3264 + ldrh r0, [r4] + adds r0, 0x1 + b _080EDE68 +_080EDE60: + bl sub_8055870 + cmp r0, 0 + bne _080EDE6A +_080EDE68: + strh r0, [r4] +_080EDE6A: + pop {r4} + pop {r0} + bx r0 + thumb_func_end sub_80EDDBC + + thumb_func_start sub_80EDE70 +sub_80EDE70: @ 80EDE70 + push {r4,lr} + sub sp, 0x4 + ldr r0, _080EDE8C @ =0x02000000 + movs r1, 0xC1 + lsls r1, 2 + adds r4, r0, r1 + ldrh r2, [r4] + cmp r2, 0x1 + beq _080EDEAE + cmp r2, 0x1 + bgt _080EDE90 + cmp r2, 0 + beq _080EDE96 + b _080EDED6 + .align 2, 0 +_080EDE8C: .4byte 0x02000000 +_080EDE90: + cmp r2, 0x2 + beq _080EDED0 + b _080EDED6 +_080EDE96: + movs r1, 0xC2 + lsls r1, 2 + adds r0, r1 + ldr r0, [r0] + movs r1, 0x1 + negs r1, r1 + str r2, [sp] + movs r2, 0 + movs r3, 0x10 + bl BeginNormalPaletteFade + b _080EDEC4 +_080EDEAE: + ldr r0, _080EDECC @ =gPaletteFade + ldrb r1, [r0, 0x7] + movs r0, 0x80 + ands r0, r1 + cmp r0, 0 + bne _080EDED6 + bl sub_80F3130 + movs r0, 0x2 + bl sub_80F2D6C +_080EDEC4: + ldrh r0, [r4] + adds r0, 0x1 + strh r0, [r4] + b _080EDED6 + .align 2, 0 +_080EDECC: .4byte gPaletteFade +_080EDED0: + ldr r0, _080EDEE0 @ =sub_80EC00C + bl sub_80EBDBC +_080EDED6: + add sp, 0x4 + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_080EDEE0: .4byte sub_80EC00C + thumb_func_end sub_80EDE70 + + thumb_func_start sub_80EDEE4 +sub_80EDEE4: @ 80EDEE4 + push {r4,lr} + sub sp, 0x4 + ldr r1, _080EDF04 @ =0x02000000 + movs r2, 0xC1 + lsls r2, 2 + adds r0, r1, r2 + ldrh r0, [r0] + adds r4, r1, 0 + cmp r0, 0xA + bls _080EDEFA + b _080EE060 +_080EDEFA: + lsls r0, 2 + ldr r1, _080EDF08 @ =_080EDF0C + adds r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_080EDF04: .4byte 0x02000000 +_080EDF08: .4byte _080EDF0C + .align 2, 0 +_080EDF0C: + .4byte _080EDF38 + .4byte _080EDF50 + .4byte _080EDF80 + .4byte _080EDF98 + .4byte _080EDFB0 + .4byte _080EDFC8 + .4byte _080EDFE0 + .4byte _080EDFF8 + .4byte _080EE01C + .4byte _080EE030 + .4byte _080EE050 +_080EDF38: + movs r1, 0xC2 + lsls r1, 2 + adds r0, r4, r1 + ldr r0, [r0] + movs r1, 0x1 + negs r1, r1 + movs r2, 0 + str r2, [sp] + movs r3, 0x10 + bl BeginNormalPaletteFade + b _080EE03C +_080EDF50: + ldr r0, _080EDF78 @ =gPaletteFade + ldrb r1, [r0, 0x7] + movs r0, 0x80 + ands r0, r1 + cmp r0, 0 + beq _080EDF5E + b _080EE060 +_080EDF5E: + movs r0, 0 + bl SetVBlankCallback + bl sub_80EED0C + bl sub_80F3130 + ldr r1, _080EDF7C @ =0x02000000 + movs r0, 0xC1 + lsls r0, 2 + adds r1, r0 + b _080EE042 + .align 2, 0 +_080EDF78: .4byte gPaletteFade +_080EDF7C: .4byte 0x02000000 +_080EDF80: + bl sub_80F66E0 + bl sub_80EEE08 + ldr r1, _080EDF94 @ =0x02000000 + movs r2, 0xC1 + lsls r2, 2 + adds r1, r2 + b _080EE042 + .align 2, 0 +_080EDF94: .4byte 0x02000000 +_080EDF98: + bl sub_80F1080 + lsls r0, 24 + cmp r0, 0 + bne _080EE060 + ldr r1, _080EDFAC @ =0x02000000 + movs r0, 0xC1 + lsls r0, 2 + adds r1, r0 + b _080EE042 + .align 2, 0 +_080EDFAC: .4byte 0x02000000 +_080EDFB0: + movs r0, 0x5 + bl sub_80EEFBC + bl sub_80F38B8 + ldr r1, _080EDFDC @ =0x02000000 + movs r2, 0xC1 + lsls r2, 2 + adds r1, r2 + ldrh r0, [r1] + adds r0, 0x1 + strh r0, [r1] +_080EDFC8: + bl sub_80F38EC + lsls r0, 24 + cmp r0, 0 + bne _080EE060 + ldr r1, _080EDFDC @ =0x02000000 + movs r0, 0xC1 + lsls r0, 2 + adds r1, r0 + b _080EE042 + .align 2, 0 +_080EDFDC: .4byte 0x02000000 +_080EDFE0: + bl sub_8055870 + cmp r0, 0 + bne _080EE060 + ldr r1, _080EDFF4 @ =0x02000000 + movs r2, 0xC1 + lsls r2, 2 + adds r1, r2 + b _080EE042 + .align 2, 0 +_080EDFF4: .4byte 0x02000000 +_080EDFF8: + movs r1, 0xC2 + lsls r1, 2 + adds r0, r4, r1 + ldr r0, [r0] + movs r1, 0x1 + negs r1, r1 + movs r2, 0 + str r2, [sp] + movs r2, 0x10 + movs r3, 0 + bl BeginNormalPaletteFade + ldr r0, _080EE018 @ =sub_80EBD18 + bl SetVBlankCallback + b _080EE03C + .align 2, 0 +_080EE018: .4byte sub_80EBD18 +_080EE01C: + movs r0, 0x3 + bl sub_80EED2C + ldr r1, _080EE02C @ =0x02000000 + movs r0, 0xC1 + lsls r0, 2 + adds r1, r0 + b _080EE042 + .align 2, 0 +_080EE02C: .4byte 0x02000000 +_080EE030: + ldr r0, _080EE04C @ =gPaletteFade + ldrb r1, [r0, 0x7] + movs r0, 0x80 + ands r0, r1 + cmp r0, 0 + bne _080EE060 +_080EE03C: + movs r2, 0xC1 + lsls r2, 2 + adds r1, r4, r2 +_080EE042: + ldrh r0, [r1] + adds r0, 0x1 + strh r0, [r1] + b _080EE060 + .align 2, 0 +_080EE04C: .4byte gPaletteFade +_080EE050: + bl sub_80F170C + lsls r0, 24 + cmp r0, 0 + bne _080EE060 + ldr r0, _080EE068 @ =sub_80EE06C + bl sub_80EBDBC +_080EE060: + add sp, 0x4 + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_080EE068: .4byte sub_80EE06C + thumb_func_end sub_80EDEE4 + + thumb_func_start sub_80EE06C +sub_80EE06C: @ 80EE06C + push {r4,r5,lr} + ldr r1, _080EE08C @ =0x02000000 + movs r2, 0xC1 + lsls r2, 2 + adds r0, r1, r2 + ldrh r0, [r0] + adds r4, r1, 0 + cmp r0, 0x8 + bls _080EE080 + b _080EE288 +_080EE080: + lsls r0, 2 + ldr r1, _080EE090 @ =_080EE094 + adds r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_080EE08C: .4byte 0x02000000 +_080EE090: .4byte _080EE094 + .align 2, 0 +_080EE094: + .4byte _080EE0B8 + .4byte _080EE0CC + .4byte _080EE180 + .4byte _080EE19C + .4byte _080EE1B8 + .4byte _080EE1D0 + .4byte _080EE1F8 + .4byte _080EE250 + .4byte _080EE26C +_080EE0B8: + bl sub_80F15A8 + ldr r1, _080EE0C8 @ =0x02000000 + movs r5, 0xC1 + lsls r5, 2 + adds r1, r5 + b _080EE1C4 + .align 2, 0 +_080EE0C8: .4byte 0x02000000 +_080EE0CC: + ldr r2, _080EE0FC @ =gMain + ldrh r1, [r2, 0x30] + movs r0, 0x40 + ands r0, r1 + adds r3, r2, 0 + cmp r0, 0 + beq _080EE104 + ldr r1, _080EE100 @ =0x000087dc + adds r0, r4, r1 + movs r2, 0 + ldrsh r0, [r0, r2] + cmp r0, 0 + beq _080EE104 + movs r0, 0x5 + bl PlaySE + movs r0, 0x1 + negs r0, r0 + bl sub_80F6A4C + movs r5, 0xC1 + lsls r5, 2 + adds r1, r4, r5 + b _080EE1C4 + .align 2, 0 +_080EE0FC: .4byte gMain +_080EE100: .4byte 0x000087dc +_080EE104: + ldrh r1, [r3, 0x30] + movs r0, 0x80 + ands r0, r1 + cmp r0, 0 + beq _080EE140 + ldr r1, _080EE138 @ =0x000087dc + adds r0, r4, r1 + ldr r2, _080EE13C @ =0x00008774 + adds r1, r4, r2 + movs r5, 0 + ldrsh r2, [r0, r5] + movs r5, 0 + ldrsh r0, [r1, r5] + cmp r2, r0 + bge _080EE140 + movs r0, 0x5 + bl PlaySE + movs r0, 0x1 + bl sub_80F6A4C + movs r0, 0xC1 + lsls r0, 2 + adds r1, r4, r0 + b _080EE1C4 + .align 2, 0 +_080EE138: .4byte 0x000087dc +_080EE13C: .4byte 0x00008774 +_080EE140: + ldrh r2, [r3, 0x2E] + movs r0, 0x1 + ands r0, r2 + cmp r0, 0 + beq _080EE164 + movs r0, 0x5 + bl PlaySE + movs r0, 0xB + bl sub_80EEFBC + ldr r0, _080EE160 @ =0x02000000 + movs r1, 0xC1 + lsls r1, 2 + adds r0, r1 + b _080EE262 + .align 2, 0 +_080EE160: .4byte 0x02000000 +_080EE164: + movs r0, 0x2 + ands r0, r2 + cmp r0, 0 + bne _080EE16E + b _080EE288 +_080EE16E: + movs r0, 0x5 + bl PlaySE + ldr r0, _080EE17C @ =sub_80EE294 + bl sub_80EBDBC + b _080EE288 + .align 2, 0 +_080EE17C: .4byte sub_80EE294 +_080EE180: + bl sub_80F6AF0 + lsls r0, 24 + cmp r0, 0 + beq _080EE18C + b _080EE288 +_080EE18C: + ldr r1, _080EE198 @ =0x02000000 + movs r2, 0xC1 + lsls r2, 2 + adds r1, r2 + b _080EE1C4 + .align 2, 0 +_080EE198: .4byte 0x02000000 +_080EE19C: + bl sub_8055870 + adds r1, r0, 0 + cmp r1, 0 + bne _080EE288 + ldr r0, _080EE1B4 @ =0x02000000 + movs r5, 0xC1 + lsls r5, 2 + adds r0, r5 + strh r1, [r0] + b _080EE288 + .align 2, 0 +_080EE1B4: .4byte 0x02000000 +_080EE1B8: + bl sub_80F3B00 + ldr r1, _080EE1CC @ =0x02000000 + movs r0, 0xC1 + lsls r0, 2 + adds r1, r0 +_080EE1C4: + ldrh r0, [r1] + adds r0, 0x1 + strh r0, [r1] + b _080EE288 + .align 2, 0 +_080EE1CC: .4byte 0x02000000 +_080EE1D0: + bl sub_80F3B58 + lsls r0, 24 + cmp r0, 0 + bne _080EE288 + bl sub_80F1494 + ldr r1, _080EE1F4 @ =0x02000000 + movs r2, 0xC1 + lsls r2, 2 + adds r1, r2 + ldrh r0, [r1] + adds r0, 0x1 + strh r0, [r1] + bl sub_80EED9C + b _080EE288 + .align 2, 0 +_080EE1F4: .4byte 0x02000000 +_080EE1F8: + bl sub_80F68E8 + lsls r0, 24 + lsrs r0, 24 + cmp r0, 0 + beq _080EE224 + cmp r0, 0x1 + bne _080EE224 + movs r0, 0x5 + bl PlaySE + bl sub_80F3B94 + ldr r0, _080EE220 @ =0x02000000 + movs r5, 0xC1 + lsls r5, 2 + adds r0, r5 + movs r1, 0x7 + strh r1, [r0] + b _080EE288 + .align 2, 0 +_080EE220: .4byte 0x02000000 +_080EE224: + ldr r0, _080EE248 @ =gMain + ldrh r1, [r0, 0x2E] + movs r0, 0x2 + ands r0, r1 + cmp r0, 0 + beq _080EE288 + movs r0, 0x5 + bl PlaySE + bl sub_80F3B94 + ldr r0, _080EE24C @ =0x02000000 + movs r1, 0xC1 + lsls r1, 2 + adds r0, r1 + movs r1, 0x8 + strh r1, [r0] + b _080EE288 + .align 2, 0 +_080EE248: .4byte gMain +_080EE24C: .4byte 0x02000000 +_080EE250: + bl sub_80F3BD4 + lsls r0, 24 + cmp r0, 0 + bne _080EE288 + ldr r0, _080EE268 @ =0x02000000 + movs r2, 0xC1 + lsls r2, 2 + adds r0, r2 +_080EE262: + movs r1, 0x4 + strh r1, [r0] + b _080EE288 + .align 2, 0 +_080EE268: .4byte 0x02000000 +_080EE26C: + bl sub_80F3BD4 + lsls r0, 24 + lsrs r4, r0, 24 + cmp r4, 0 + bne _080EE288 + movs r0, 0x5 + bl sub_80EEFBC + ldr r0, _080EE290 @ =0x02000000 + movs r5, 0xC1 + lsls r5, 2 + adds r0, r5 + strh r4, [r0] +_080EE288: + pop {r4,r5} + pop {r0} + bx r0 + .align 2, 0 +_080EE290: .4byte 0x02000000 + thumb_func_end sub_80EE06C + + thumb_func_start sub_80EE294 +sub_80EE294: @ 80EE294 + push {r4,lr} + sub sp, 0x4 + ldr r1, _080EE2B4 @ =0x02000000 + movs r2, 0xC1 + lsls r2, 2 + adds r0, r1, r2 + ldrh r0, [r0] + adds r4, r1, 0 + cmp r0, 0x8 + bls _080EE2AA + b _080EE3C6 +_080EE2AA: + lsls r0, 2 + ldr r1, _080EE2B8 @ =_080EE2BC + adds r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_080EE2B4: .4byte 0x02000000 +_080EE2B8: .4byte _080EE2BC + .align 2, 0 +_080EE2BC: + .4byte _080EE2E0 + .4byte _080EE2FE + .4byte _080EE324 + .4byte _080EE33C + .4byte _080EE34C + .4byte _080EE370 + .4byte _080EE37A + .4byte _080EE39A + .4byte _080EE3B4 +_080EE2E0: + movs r1, 0xC2 + lsls r1, 2 + adds r0, r4, r1 + ldr r0, [r0] + movs r1, 0x1 + negs r1, r1 + movs r2, 0 + str r2, [sp] + movs r3, 0x10 + bl BeginNormalPaletteFade + movs r2, 0xC1 + lsls r2, 2 + adds r1, r4, r2 + b _080EE3A8 +_080EE2FE: + ldr r0, _080EE320 @ =gPaletteFade + ldrb r1, [r0, 0x7] + movs r0, 0x80 + ands r0, r1 + cmp r0, 0 + bne _080EE3C6 + movs r0, 0 + bl SetVBlankCallback + bl sub_80EED0C + bl sub_80F3C2C + bl sub_80EEE08 + b _080EE3A0 + .align 2, 0 +_080EE320: .4byte gPaletteFade +_080EE324: + bl sub_80F6134 + movs r0, 0x1 + bl sub_80F0264 + ldr r1, _080EE348 @ =0x02000000 + movs r2, 0xC1 + lsls r2, 2 + adds r1, r2 + ldrh r0, [r1] + adds r0, 0x1 + strh r0, [r1] +_080EE33C: + bl sub_80F02A0 + lsls r0, 24 + cmp r0, 0 + bne _080EE3C6 + b _080EE3A0 + .align 2, 0 +_080EE348: .4byte 0x02000000 +_080EE34C: + movs r0, 0x4 + bl sub_80EEFBC + movs r0, 0x1 + bl sub_80F3008 + ldr r0, _080EE368 @ =sub_80EBD18 + bl SetVBlankCallback + ldr r1, _080EE36C @ =0x02000000 + movs r2, 0xC1 + lsls r2, 2 + adds r1, r2 + b _080EE3A8 + .align 2, 0 +_080EE368: .4byte sub_80EBD18 +_080EE36C: .4byte 0x02000000 +_080EE370: + bl sub_8055870 + cmp r0, 0 + bne _080EE3C6 + b _080EE3A0 +_080EE37A: + movs r1, 0xC2 + lsls r1, 2 + adds r0, r4, r1 + ldr r0, [r0] + movs r1, 0x1 + negs r1, r1 + movs r2, 0 + str r2, [sp] + movs r2, 0x10 + movs r3, 0 + bl BeginNormalPaletteFade + movs r2, 0xC1 + lsls r2, 2 + adds r1, r4, r2 + b _080EE3A8 +_080EE39A: + movs r0, 0x4 + bl sub_80EED2C +_080EE3A0: + ldr r1, _080EE3B0 @ =0x02000000 + movs r0, 0xC1 + lsls r0, 2 + adds r1, r0 +_080EE3A8: + ldrh r0, [r1] + adds r0, 0x1 + strh r0, [r1] + b _080EE3C6 + .align 2, 0 +_080EE3B0: .4byte 0x02000000 +_080EE3B4: + ldr r0, _080EE3D0 @ =gPaletteFade + ldrb r1, [r0, 0x7] + movs r0, 0x80 + ands r0, r1 + cmp r0, 0 + bne _080EE3C6 + ldr r0, _080EE3D4 @ =sub_80EDDBC + bl sub_80EBDBC +_080EE3C6: + add sp, 0x4 + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_080EE3D0: .4byte gPaletteFade +_080EE3D4: .4byte sub_80EDDBC + thumb_func_end sub_80EE294 + + thumb_func_start sub_80EE3D8 +sub_80EE3D8: @ 80EE3D8 + push {r4,lr} + sub sp, 0x4 + ldr r0, _080EE3F8 @ =0x02000000 + movs r1, 0xC1 + lsls r1, 2 + adds r0, r1 + ldrh r0, [r0] + cmp r0, 0xD + bls _080EE3EC + b _080EE57A +_080EE3EC: + lsls r0, 2 + ldr r1, _080EE3FC @ =_080EE400 + adds r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_080EE3F8: .4byte 0x02000000 +_080EE3FC: .4byte _080EE400 + .align 2, 0 +_080EE400: + .4byte _080EE438 + .4byte _080EE444 + .4byte _080EE458 + .4byte _080EE48C + .4byte _080EE4B0 + .4byte _080EE4B6 + .4byte _080EE4CA + .4byte _080EE4DC + .4byte _080EE4F0 + .4byte _080EE504 + .4byte _080EE50C + .4byte _080EE516 + .4byte _080EE54C + .4byte _080EE568 +_080EE438: + bl sub_80F1E84 + movs r0, 0 + bl sub_80F2D04 + b _080EE552 +_080EE444: + bl sub_80F1F10 + lsls r0, 24 + cmp r0, 0 + beq _080EE450 + b _080EE57A +_080EE450: + movs r0, 0x9 + bl sub_80EEFBC + b _080EE552 +_080EE458: + bl sub_80EEF34 + lsls r0, 24 + lsrs r2, r0, 24 + cmp r2, 0 + beq _080EE466 + b _080EE57A +_080EE466: + ldr r4, _080EE488 @ =0x02000000 + movs r1, 0xC2 + lsls r1, 2 + adds r0, r4, r1 + ldr r0, [r0] + movs r1, 0x1 + negs r1, r1 + str r2, [sp] + movs r2, 0 + movs r3, 0x10 + bl BeginNormalPaletteFade + movs r0, 0xC1 + lsls r0, 2 + adds r1, r4, r0 + b _080EE55A + .align 2, 0 +_080EE488: .4byte 0x02000000 +_080EE48C: + ldr r0, _080EE4AC @ =gPaletteFade + ldrb r1, [r0, 0x7] + movs r0, 0x80 + ands r0, r1 + cmp r0, 0 + bne _080EE57A + movs r0, 0 + bl SetVBlankCallback + bl sub_80EED0C + bl sub_80EF814 + bl sub_80EEE08 + b _080EE552 + .align 2, 0 +_080EE4AC: .4byte gPaletteFade +_080EE4B0: + bl sub_80F2620 + b _080EE552 +_080EE4B6: + movs r0, 0x2 + bl sub_80F0264 + ldr r1, _080EE4D8 @ =0x02000000 + movs r0, 0xC1 + lsls r0, 2 + adds r1, r0 + ldrh r0, [r1] + adds r0, 0x1 + strh r0, [r1] +_080EE4CA: + bl sub_80F02A0 + lsls r0, 24 + cmp r0, 0 + bne _080EE57A + b _080EE552 + .align 2, 0 +_080EE4D8: .4byte 0x02000000 +_080EE4DC: + movs r0, 0x3 + bl sub_80F2C80 + ldr r1, _080EE500 @ =0x02000000 + movs r0, 0xC1 + lsls r0, 2 + adds r1, r0 + ldrh r0, [r1] + adds r0, 0x1 + strh r0, [r1] +_080EE4F0: + movs r0, 0x3 + bl sub_80F2CBC + lsls r0, 24 + cmp r0, 0 + bne _080EE57A + b _080EE552 + .align 2, 0 +_080EE500: .4byte 0x02000000 +_080EE504: + movs r0, 0x2 + bl sub_80F3008 + b _080EE552 +_080EE50C: + bl sub_8055870 + cmp r0, 0 + bne _080EE57A + b _080EE552 +_080EE516: + bl sub_80F6F10 + ldr r4, _080EE544 @ =0x02000000 + movs r1, 0xC2 + lsls r1, 2 + adds r0, r4, r1 + ldr r0, [r0] + movs r1, 0x1 + negs r1, r1 + movs r2, 0 + str r2, [sp] + movs r2, 0x10 + movs r3, 0 + bl BeginNormalPaletteFade + ldr r0, _080EE548 @ =sub_80EBD68 + bl SetVBlankCallback + movs r0, 0xC1 + lsls r0, 2 + adds r1, r4, r0 + b _080EE55A + .align 2, 0 +_080EE544: .4byte 0x02000000 +_080EE548: .4byte sub_80EBD68 +_080EE54C: + movs r0, 0x5 + bl sub_80EED2C +_080EE552: + ldr r1, _080EE564 @ =0x02000000 + movs r0, 0xC1 + lsls r0, 2 + adds r1, r0 +_080EE55A: + ldrh r0, [r1] + adds r0, 0x1 + strh r0, [r1] + b _080EE57A + .align 2, 0 +_080EE564: .4byte 0x02000000 +_080EE568: + ldr r0, _080EE584 @ =gPaletteFade + ldrb r1, [r0, 0x7] + movs r0, 0x80 + ands r0, r1 + cmp r0, 0 + bne _080EE57A + ldr r0, _080EE588 @ =sub_80EE58C + bl sub_80EBDBC +_080EE57A: + add sp, 0x4 + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_080EE584: .4byte gPaletteFade +_080EE588: .4byte sub_80EE58C + thumb_func_end sub_80EE3D8 + + thumb_func_start sub_80EE58C +sub_80EE58C: @ 80EE58C + push {r4,r5,lr} + ldr r5, _080EE5A8 @ =0x02000000 + movs r0, 0xC1 + lsls r0, 2 + adds r4, r5, r0 + ldrh r0, [r4] + cmp r0, 0x1 + beq _080EE624 + cmp r0, 0x1 + bgt _080EE5AC + cmp r0, 0 + beq _080EE5B2 + b _080EE652 + .align 2, 0 +_080EE5A8: .4byte 0x02000000 +_080EE5AC: + cmp r0, 0x2 + beq _080EE648 + b _080EE652 +_080EE5B2: + bl sub_80F5DD4 + lsls r0, 24 + lsrs r0, 24 + cmp r0, 0x1 + beq _080EE5E4 + cmp r0, 0x2 + beq _080EE5FC + ldr r0, _080EE5DC @ =gMain + ldrh r1, [r0, 0x2E] + movs r0, 0x1 + ands r0, r1 + cmp r0, 0 + beq _080EE608 + movs r0, 0x5 + bl PlaySE + ldr r0, _080EE5E0 @ =sub_80EE658 + bl sub_80EBDBC + b _080EE652 + .align 2, 0 +_080EE5DC: .4byte gMain +_080EE5E0: .4byte sub_80EE658 +_080EE5E4: + movs r0, 0x5 + bl PlaySE + ldr r1, _080EE5F8 @ =0x0000876e + adds r0, r5, r1 + ldrb r0, [r0] + bl sub_80F0FFC + b _080EE652 + .align 2, 0 +_080EE5F8: .4byte 0x0000876e +_080EE5FC: + movs r0, 0x5 + bl PlaySE + ldrh r0, [r4] + adds r0, 0x1 + b _080EE650 +_080EE608: + movs r0, 0x2 + ands r0, r1 + cmp r0, 0 + beq _080EE652 + movs r0, 0x5 + bl PlaySE + ldr r0, _080EE620 @ =sub_80EE8F4 + bl sub_80EBDBC + b _080EE652 + .align 2, 0 +_080EE620: .4byte sub_80EE8F4 +_080EE624: + bl sub_80F0718 + lsls r0, 24 + cmp r0, 0 + bne _080EE652 + ldr r1, _080EE644 @ =0x0000876e + adds r0, r5, r1 + ldrb r0, [r0] + bl sub_80F0FFC + bl sub_80F3264 + ldrh r0, [r4] + adds r0, 0x1 + b _080EE650 + .align 2, 0 +_080EE644: .4byte 0x0000876e +_080EE648: + bl sub_8055870 + cmp r0, 0 + bne _080EE652 +_080EE650: + strh r0, [r4] +_080EE652: + pop {r4,r5} + pop {r0} + bx r0 + thumb_func_end sub_80EE58C + + thumb_func_start sub_80EE658 +sub_80EE658: @ 80EE658 + push {r4,r5,lr} + ldr r1, _080EE678 @ =0x02000000 + movs r2, 0xC1 + lsls r2, 2 + adds r0, r1, r2 + ldrh r0, [r0] + adds r4, r1, 0 + cmp r0, 0x11 + bls _080EE66C + b _080EE8E8 +_080EE66C: + lsls r0, 2 + ldr r1, _080EE67C @ =_080EE680 + adds r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_080EE678: .4byte 0x02000000 +_080EE67C: .4byte _080EE680 + .align 2, 0 +_080EE680: + .4byte _080EE6C8 + .4byte _080EE6DA + .4byte _080EE6F4 + .4byte _080EE708 + .4byte _080EE71C + .4byte _080EE730 + .4byte _080EE758 + .4byte _080EE76A + .4byte _080EE780 + .4byte _080EE820 + .4byte _080EE840 + .4byte _080EE854 + .4byte _080EE868 + .4byte _080EE86E + .4byte _080EE880 + .4byte _080EE898 + .4byte _080EE8B4 + .4byte _080EE8D4 +_080EE6C8: + movs r0, 0x1 + bl sub_80F3294 + movs r0, 0xA + bl sub_80EEFBC + bl sub_80F0B24 + b _080EE8BE +_080EE6DA: + bl sub_80F0B44 + lsls r0, 24 + cmp r0, 0 + beq _080EE6E6 + b _080EE8E8 +_080EE6E6: + ldr r1, _080EE6F0 @ =0x02000000 + movs r0, 0xC1 + lsls r0, 2 + adds r1, r0 + b _080EE8C6 + .align 2, 0 +_080EE6F0: .4byte 0x02000000 +_080EE6F4: + bl sub_80F0F64 + ldr r1, _080EE704 @ =0x02000000 + movs r2, 0xC1 + lsls r2, 2 + adds r1, r2 + b _080EE8C6 + .align 2, 0 +_080EE704: .4byte 0x02000000 +_080EE708: + bl sub_80F0FEC + lsls r0, 24 + cmp r0, 0 + beq _080EE714 + b _080EE8E8 +_080EE714: + movs r0, 0x1 + bl sub_80F6FB8 + b _080EE8BE +_080EE71C: + bl sub_80F6DB8 + ldr r1, _080EE72C @ =0x02000000 + movs r0, 0xC1 + lsls r0, 2 + adds r1, r0 + b _080EE8C6 + .align 2, 0 +_080EE72C: .4byte 0x02000000 +_080EE730: + ldr r4, _080EE750 @ =0x02008788 + adds r0, r4, 0 + subs r0, 0x1A + ldrh r1, [r0] + adds r0, r4, 0 + bl sub_80F700C + adds r0, r4, 0 + bl sub_80F42C4 + ldr r1, _080EE754 @ =0xffff7b7c + adds r4, r1 + ldrh r0, [r4] + adds r0, 0x1 + strh r0, [r4] + b _080EE8E8 + .align 2, 0 +_080EE750: .4byte 0x02008788 +_080EE754: .4byte 0xffff7b7c +_080EE758: + bl sub_80F0CD8 + ldr r1, _080EE77C @ =0x02000000 + movs r2, 0xC1 + lsls r2, 2 + adds r1, r2 + ldrh r0, [r1] + adds r0, 0x1 + strh r0, [r1] +_080EE76A: + bl sub_80F6E9C + lsls r0, 24 + cmp r0, 0 + beq _080EE776 + b _080EE8E8 +_080EE776: + bl sub_80F0D5C + b _080EE8B8 + .align 2, 0 +_080EE77C: .4byte 0x02000000 +_080EE780: + ldr r2, _080EE7B0 @ =gMain + ldrh r1, [r2, 0x2C] + movs r0, 0x40 + ands r0, r1 + adds r3, r2, 0 + cmp r0, 0 + beq _080EE7B8 + ldr r1, _080EE7B4 @ =0x000087dc + adds r0, r4, r1 + movs r2, 0 + ldrsh r0, [r0, r2] + cmp r0, 0 + beq _080EE7B8 + movs r0, 0x5 + bl PlaySE + movs r0, 0x1 + negs r0, r0 + bl sub_80F708C + movs r5, 0xC1 + lsls r5, 2 + adds r1, r4, r5 + b _080EE7E8 + .align 2, 0 +_080EE7B0: .4byte gMain +_080EE7B4: .4byte 0x000087dc +_080EE7B8: + ldrh r1, [r3, 0x2C] + movs r0, 0x80 + ands r0, r1 + cmp r0, 0 + beq _080EE7F8 + ldr r1, _080EE7F0 @ =0x000087dc + adds r0, r4, r1 + ldr r2, _080EE7F4 @ =0x00008774 + adds r1, r4, r2 + movs r5, 0 + ldrsh r2, [r0, r5] + movs r5, 0 + ldrsh r0, [r1, r5] + cmp r2, r0 + bge _080EE7F8 + movs r0, 0x5 + bl PlaySE + movs r0, 0x1 + bl sub_80F708C + movs r0, 0xC1 + lsls r0, 2 + adds r1, r4, r0 +_080EE7E8: + movs r0, 0x10 + strh r0, [r1] + b _080EE8E8 + .align 2, 0 +_080EE7F0: .4byte 0x000087dc +_080EE7F4: .4byte 0x00008774 +_080EE7F8: + ldrh r1, [r3, 0x2E] + movs r0, 0x2 + ands r0, r1 + cmp r0, 0 + beq _080EE8E8 + movs r0, 0x5 + bl PlaySE + bl sub_80F4394 + bl sub_80F0EC0 + ldr r1, _080EE81C @ =0x02000000 + movs r2, 0xC1 + lsls r2, 2 + adds r1, r2 + b _080EE8C6 + .align 2, 0 +_080EE81C: .4byte 0x02000000 +_080EE820: + bl sub_80F6ED4 + lsls r0, 24 + cmp r0, 0 + bne _080EE8E8 + bl sub_80F0EF4 + lsls r0, 24 + cmp r0, 0 + bne _080EE8E8 + movs r0, 0 + bl sub_80F6FB8 + bl sub_80F2FB0 + b _080EE8BE +_080EE840: + bl sub_80F6134 + ldr r1, _080EE850 @ =0x02000000 + movs r0, 0xC1 + lsls r0, 2 + adds r1, r0 + b _080EE8C6 + .align 2, 0 +_080EE850: .4byte 0x02000000 +_080EE854: + bl sub_80F0FA0 + ldr r1, _080EE864 @ =0x02000000 + movs r2, 0xC1 + lsls r2, 2 + adds r1, r2 + b _080EE8C6 + .align 2, 0 +_080EE864: .4byte 0x02000000 +_080EE868: + bl sub_80F0FEC + b _080EE8B8 +_080EE86E: + bl sub_80F0C28 + ldr r1, _080EE87C @ =0x02000000 + movs r0, 0xC1 + lsls r0, 2 + adds r1, r0 + b _080EE8C6 + .align 2, 0 +_080EE87C: .4byte 0x02000000 +_080EE880: + bl sub_80F0C48 + lsls r0, 24 + cmp r0, 0 + bne _080EE8E8 + ldr r1, _080EE894 @ =0x02000000 + movs r2, 0xC1 + lsls r2, 2 + adds r1, r2 + b _080EE8C6 + .align 2, 0 +_080EE894: .4byte 0x02000000 +_080EE898: + movs r0, 0x9 + bl sub_80EEFBC + movs r0, 0 + bl sub_80F3294 + ldr r0, _080EE8B0 @ =sub_80EE58C + bl sub_80EBDBC + bl sub_80EED9C + b _080EE8E8 + .align 2, 0 +_080EE8B0: .4byte sub_80EE58C +_080EE8B4: + bl sub_80F70FC +_080EE8B8: + lsls r0, 24 + cmp r0, 0 + bne _080EE8E8 +_080EE8BE: + ldr r1, _080EE8D0 @ =0x02000000 + movs r5, 0xC1 + lsls r5, 2 + adds r1, r5 +_080EE8C6: + ldrh r0, [r1] + adds r0, 0x1 + strh r0, [r1] + b _080EE8E8 + .align 2, 0 +_080EE8D0: .4byte 0x02000000 +_080EE8D4: + bl sub_8055870 + cmp r0, 0 + bne _080EE8E8 + ldr r0, _080EE8F0 @ =0x02000000 + movs r1, 0xC1 + lsls r1, 2 + adds r0, r1 + movs r1, 0x8 + strh r1, [r0] +_080EE8E8: + pop {r4,r5} + pop {r0} + bx r0 + .align 2, 0 +_080EE8F0: .4byte 0x02000000 + thumb_func_end sub_80EE658 + + thumb_func_start sub_80EE8F4 +sub_80EE8F4: @ 80EE8F4 + push {r4,lr} + sub sp, 0x4 + ldr r0, _080EE910 @ =0x02000000 + movs r1, 0xC1 + lsls r1, 2 + adds r4, r0, r1 + ldrh r2, [r4] + cmp r2, 0x1 + beq _080EE932 + cmp r2, 0x1 + bgt _080EE914 + cmp r2, 0 + beq _080EE91A + b _080EE95E + .align 2, 0 +_080EE910: .4byte 0x02000000 +_080EE914: + cmp r2, 0x2 + beq _080EE958 + b _080EE95E +_080EE91A: + movs r1, 0xC2 + lsls r1, 2 + adds r0, r1 + ldr r0, [r0] + movs r1, 0x1 + negs r1, r1 + str r2, [sp] + movs r2, 0 + movs r3, 0x10 + bl BeginNormalPaletteFade + b _080EE94C +_080EE932: + ldr r0, _080EE954 @ =gPaletteFade + ldrb r1, [r0, 0x7] + movs r0, 0x80 + ands r0, r1 + cmp r0, 0 + bne _080EE95E + bl sub_80F3130 + movs r0, 0x2 + bl sub_80F2D6C + bl sub_80F6FFC +_080EE94C: + ldrh r0, [r4] + adds r0, 0x1 + strh r0, [r4] + b _080EE95E + .align 2, 0 +_080EE954: .4byte gPaletteFade +_080EE958: + ldr r0, _080EE968 @ =sub_80EC00C + bl sub_80EBDBC +_080EE95E: + add sp, 0x4 + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_080EE968: .4byte sub_80EC00C + thumb_func_end sub_80EE8F4 + + thumb_func_start sub_80EE96C +sub_80EE96C: @ 80EE96C + push {r4,r5,lr} + sub sp, 0x4 + ldr r0, _080EE99C @ =0x02000000 + movs r1, 0xC1 + lsls r1, 2 + adds r5, r0, r1 + ldrh r4, [r5] + cmp r4, 0 + bne _080EE9A0 + movs r0, 0x6F + bl PlaySE + movs r0, 0x1 + negs r0, r0 + str r4, [sp] + movs r1, 0 + movs r2, 0 + movs r3, 0x10 + bl BeginNormalPaletteFade + ldrh r0, [r5] + adds r0, 0x1 + strh r0, [r5] + b _080EE9B4 + .align 2, 0 +_080EE99C: .4byte 0x02000000 +_080EE9A0: + ldr r0, _080EE9BC @ =gPaletteFade + ldrb r1, [r0, 0x7] + movs r0, 0x80 + ands r0, r1 + cmp r0, 0 + bne _080EE9B4 + bl sub_80F5BDC + bl sub_805469C +_080EE9B4: + add sp, 0x4 + pop {r4,r5} + pop {r0} + bx r0 + .align 2, 0 +_080EE9BC: .4byte gPaletteFade + thumb_func_end sub_80EE96C + + thumb_func_start sub_80EE9C0 +sub_80EE9C0: @ 80EE9C0 + push {r4-r6,lr} + adds r4, r0, 0 + adds r5, r1, 0 + adds r6, r2, 0 + lsls r4, 24 + lsrs r4, 24 + lsls r5, 24 + lsrs r5, 24 + lsls r6, 24 + lsrs r6, 24 + bl sub_80F1E84 + ldr r1, _080EE9FC @ =0x02000000 + ldr r2, _080EEA00 @ =0x00006e14 + adds r0, r1, r2 + movs r2, 0 + strb r4, [r0] + ldr r3, _080EEA04 @ =0x00006e15 + adds r0, r1, r3 + strb r5, [r0] + adds r3, 0x1 + adds r0, r1, r3 + strb r2, [r0] + ldr r0, _080EEA08 @ =0x00006e17 + adds r1, r0 + strb r6, [r1] + pop {r4-r6} + pop {r0} + bx r0 + .align 2, 0 +_080EE9FC: .4byte 0x02000000 +_080EEA00: .4byte 0x00006e14 +_080EEA04: .4byte 0x00006e15 +_080EEA08: .4byte 0x00006e17 + thumb_func_end sub_80EE9C0 + + thumb_func_start sub_80EEA0C +sub_80EEA0C: @ 80EEA0C + push {r4,lr} + ldr r1, _080EEA28 @ =0x02000000 + ldr r2, _080EEA2C @ =0x00006e16 + adds r0, r1, r2 + ldrb r0, [r0] + adds r3, r1, 0 + cmp r0, 0x8 + bls _080EEA1E + b _080EEBFA +_080EEA1E: + lsls r0, 2 + ldr r1, _080EEA30 @ =_080EEA34 + adds r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_080EEA28: .4byte 0x02000000 +_080EEA2C: .4byte 0x00006e16 +_080EEA30: .4byte _080EEA34 + .align 2, 0 +_080EEA34: + .4byte _080EEA58 + .4byte _080EEA98 + .4byte _080EEAAE + .4byte _080EEAD4 + .4byte _080EEB3E + .4byte _080EEB68 + .4byte _080EEB88 + .4byte _080EEBAC + .4byte _080EEBE4 +_080EEA58: + bl sub_80F1F10 + lsls r0, 24 + cmp r0, 0 + beq _080EEA64 + b _080EEC08 +_080EEA64: + ldr r1, _080EEA7C @ =0x02000000 + ldr r4, _080EEA80 @ =0x00006e17 + adds r0, r1, r4 + ldrb r0, [r0] + cmp r0, 0xC + beq _080EEA88 + ldr r0, _080EEA84 @ =0x00006e16 + adds r1, r0 + movs r0, 0x1 + strb r0, [r1] + b _080EEC08 + .align 2, 0 +_080EEA7C: .4byte 0x02000000 +_080EEA80: .4byte 0x00006e17 +_080EEA84: .4byte 0x00006e16 +_080EEA88: + ldr r2, _080EEA94 @ =0x00006e16 + adds r1, r2 + movs r0, 0x3 + strb r0, [r1] + b _080EEC08 + .align 2, 0 +_080EEA94: .4byte 0x00006e16 +_080EEA98: + ldr r4, _080EEAC8 @ =0x02000000 + ldr r1, _080EEACC @ =0x00006e17 + adds r0, r4, r1 + ldrb r0, [r0] + bl sub_80F2C80 + ldr r2, _080EEAD0 @ =0x00006e16 + adds r4, r2 + ldrb r0, [r4] + adds r0, 0x1 + strb r0, [r4] +_080EEAAE: + ldr r4, _080EEAC8 @ =0x02000000 + ldr r1, _080EEACC @ =0x00006e17 + adds r0, r4, r1 + ldrb r0, [r0] + bl sub_80F2CBC + lsls r0, 24 + cmp r0, 0 + beq _080EEAC2 + b _080EEC08 +_080EEAC2: + ldr r2, _080EEAD0 @ =0x00006e16 + adds r1, r4, r2 + b _080EEB76 + .align 2, 0 +_080EEAC8: .4byte 0x02000000 +_080EEACC: .4byte 0x00006e17 +_080EEAD0: .4byte 0x00006e16 +_080EEAD4: + adds r2, r3, 0 + ldr r4, _080EEAF8 @ =0x00006e15 + adds r0, r2, r4 + ldrb r1, [r0] + subs r4, 0x68 + adds r0, r2, r4 + strb r1, [r0] + ldr r1, _080EEAFC @ =0x00006e14 + adds r0, r2, r1 + ldrb r0, [r0] + cmp r0, 0x1 + beq _080EEB14 + cmp r0, 0x1 + bgt _080EEB00 + cmp r0, 0 + beq _080EEB06 + b _080EEB28 + .align 2, 0 +_080EEAF8: .4byte 0x00006e15 +_080EEAFC: .4byte 0x00006e14 +_080EEB00: + cmp r0, 0x2 + beq _080EEB20 + b _080EEB28 +_080EEB06: + ldr r4, _080EEB10 @ =0x00006dae + adds r1, r2, r4 + movs r0, 0x5 + b _080EEB26 + .align 2, 0 +_080EEB10: .4byte 0x00006dae +_080EEB14: + ldr r0, _080EEB1C @ =0x00006dae + adds r1, r2, r0 + movs r0, 0x3 + b _080EEB26 + .align 2, 0 +_080EEB1C: .4byte 0x00006dae +_080EEB20: + ldr r2, _080EEB58 @ =0x00006dae + adds r1, r3, r2 + movs r0, 0x6 +_080EEB26: + strb r0, [r1] +_080EEB28: + ldr r4, _080EEB5C @ =0x02000000 + ldr r1, _080EEB60 @ =0x00006e14 + adds r0, r4, r1 + ldrb r0, [r0] + bl sub_80F1B8C + ldr r2, _080EEB64 @ =0x00006e16 + adds r4, r2 + ldrb r0, [r4] + adds r0, 0x1 + strb r0, [r4] +_080EEB3E: + ldr r4, _080EEB5C @ =0x02000000 + ldr r1, _080EEB60 @ =0x00006e14 + adds r0, r4, r1 + ldrb r0, [r0] + bl sub_80F1BC8 + lsls r0, 24 + cmp r0, 0 + bne _080EEC08 + ldr r2, _080EEB64 @ =0x00006e16 + adds r1, r4, r2 + b _080EEB76 + .align 2, 0 +_080EEB58: .4byte 0x00006dae +_080EEB5C: .4byte 0x02000000 +_080EEB60: .4byte 0x00006e14 +_080EEB64: .4byte 0x00006e16 +_080EEB68: + bl sub_8055870 + cmp r0, 0 + bne _080EEC08 + ldr r1, _080EEB80 @ =0x02000000 + ldr r4, _080EEB84 @ =0x00006e16 + adds r1, r4 +_080EEB76: + ldrb r0, [r1] + adds r0, 0x1 + strb r0, [r1] + b _080EEC08 + .align 2, 0 +_080EEB80: .4byte 0x02000000 +_080EEB84: .4byte 0x00006e16 +_080EEB88: + bl sub_80F1DF0 + ldr r4, _080EEBA0 @ =0x02000000 + ldr r1, _080EEBA4 @ =0x00006e14 + adds r0, r4, r1 + ldrb r0, [r0] + bl sub_80EF490 + ldr r2, _080EEBA8 @ =0x00006e16 + adds r4, r2 + b _080EEBCC + .align 2, 0 +_080EEBA0: .4byte 0x02000000 +_080EEBA4: .4byte 0x00006e14 +_080EEBA8: .4byte 0x00006e16 +_080EEBAC: + bl sub_80F1E50 + lsls r0, 24 + cmp r0, 0 + bne _080EEC08 + ldr r4, _080EEBD4 @ =0x02000000 + ldr r1, _080EEBD8 @ =0x00006e14 + adds r0, r4, r1 + ldrb r0, [r0] + ldr r2, _080EEBDC @ =0x00006dad + adds r1, r4, r2 + ldrb r1, [r1] + bl sub_80EF428 + ldr r0, _080EEBE0 @ =0x00006e16 + adds r4, r0 +_080EEBCC: + ldrb r0, [r4] + adds r0, 0x1 + strb r0, [r4] + b _080EEC08 + .align 2, 0 +_080EEBD4: .4byte 0x02000000 +_080EEBD8: .4byte 0x00006e14 +_080EEBDC: .4byte 0x00006dad +_080EEBE0: .4byte 0x00006e16 +_080EEBE4: + bl sub_80EF4F8 + lsls r0, 24 + cmp r0, 0 + bne _080EEC08 + ldr r1, _080EEC00 @ =0x02000000 + ldr r2, _080EEC04 @ =0x00006e16 + adds r1, r2 + ldrb r0, [r1] + adds r0, 0x1 + strb r0, [r1] +_080EEBFA: + movs r0, 0 + b _080EEC0A + .align 2, 0 +_080EEC00: .4byte 0x02000000 +_080EEC04: .4byte 0x00006e16 +_080EEC08: + movs r0, 0x1 +_080EEC0A: + pop {r4} + pop {r1} + bx r1 + thumb_func_end sub_80EEA0C + + thumb_func_start sub_80EEC10 +sub_80EEC10: @ 80EEC10 + push {r4,lr} + ldr r0, _080EEC48 @ =gMain + ldrh r1, [r0, 0x2E] + movs r0, 0x40 + ands r0, r1 + cmp r0, 0 + beq _080EEC50 + ldr r1, _080EEC4C @ =0x02006dad + adds r3, r1, 0x1 + adds r2, r1, 0x5 +_080EEC24: + ldrb r0, [r1] + subs r0, 0x1 + strb r0, [r1] + lsls r0, 24 + cmp r0, 0 + bge _080EEC36 + ldrb r0, [r3] + subs r0, 0x1 + strb r0, [r1] +_080EEC36: + movs r0, 0 + ldrsb r0, [r1, r0] + adds r0, r2 + ldrb r0, [r0] + cmp r0, 0 + beq _080EEC24 + movs r0, 0x1 + b _080EEC8A + .align 2, 0 +_080EEC48: .4byte gMain +_080EEC4C: .4byte 0x02006dad +_080EEC50: + movs r0, 0x80 + ands r0, r1 + cmp r0, 0 + beq _080EEC88 + ldr r1, _080EEC84 @ =0x02006dad + movs r4, 0 + movs r2, 0x1 + ldrsb r2, [r1, r2] + adds r3, r1, 0x5 +_080EEC62: + ldrb r0, [r1] + adds r0, 0x1 + strb r0, [r1] + lsls r0, 24 + asrs r0, 24 + cmp r0, r2 + blt _080EEC72 + strb r4, [r1] +_080EEC72: + movs r0, 0 + ldrsb r0, [r1, r0] + adds r0, r3 + ldrb r0, [r0] + cmp r0, 0 + beq _080EEC62 + movs r0, 0x1 + b _080EEC8A + .align 2, 0 +_080EEC84: .4byte 0x02006dad +_080EEC88: + movs r0, 0 +_080EEC8A: + pop {r4} + pop {r1} + bx r1 + thumb_func_end sub_80EEC10 + + thumb_func_start sub_80EEC90 +sub_80EEC90: @ 80EEC90 + push {r4,lr} + ldr r0, _080EECC0 @ =gMain + ldrh r1, [r0, 0x2E] + movs r0, 0x40 + ands r0, r1 + lsls r0, 16 + lsrs r3, r0, 16 + cmp r3, 0 + beq _080EECD0 + ldr r2, _080EECC4 @ =0x02000000 + ldr r0, _080EECC8 @ =0x00006dad + adds r1, r2, r0 + ldrb r0, [r1] + subs r0, 0x1 + strb r0, [r1] + lsls r0, 24 + cmp r0, 0 + bge _080EECF8 + ldr r3, _080EECCC @ =0x00006dae + adds r0, r2, r3 + ldrb r0, [r0] + subs r0, 0x1 + strb r0, [r1] + b _080EECF8 + .align 2, 0 +_080EECC0: .4byte gMain +_080EECC4: .4byte 0x02000000 +_080EECC8: .4byte 0x00006dad +_080EECCC: .4byte 0x00006dae +_080EECD0: + movs r0, 0x80 + ands r0, r1 + cmp r0, 0 + beq _080EED04 + ldr r0, _080EECFC @ =0x02000000 + ldr r4, _080EED00 @ =0x00006dad + adds r2, r0, r4 + ldrb r1, [r2] + adds r1, 0x1 + strb r1, [r2] + adds r4, 0x1 + adds r0, r4 + lsls r1, 24 + asrs r1, 24 + ldrb r0, [r0] + lsls r0, 24 + asrs r0, 24 + cmp r1, r0 + blt _080EECF8 + strb r3, [r2] +_080EECF8: + movs r0, 0x1 + b _080EED06 + .align 2, 0 +_080EECFC: .4byte 0x02000000 +_080EED00: .4byte 0x00006dad +_080EED04: + movs r0, 0 +_080EED06: + pop {r4} + pop {r1} + bx r1 + thumb_func_end sub_80EEC90 + + thumb_func_start sub_80EED0C +sub_80EED0C: @ 80EED0C + movs r1, 0x80 + lsls r1, 19 + movs r2, 0x80 + lsls r2, 2 + adds r0, r2, 0 + strh r0, [r1] + bx lr + thumb_func_end sub_80EED0C + + thumb_func_start sub_80EED1C +sub_80EED1C: @ 80EED1C + movs r1, 0x80 + lsls r1, 19 + movs r2, 0x92 + lsls r2, 5 + adds r0, r2, 0 + strh r0, [r1] + bx lr + thumb_func_end sub_80EED1C + + thumb_func_start sub_80EED2C +sub_80EED2C: @ 80EED2C + push {lr} + lsls r0, 24 + lsrs r0, 24 + cmp r0, 0x5 + bhi _080EED98 + lsls r0, 2 + ldr r1, _080EED40 @ =_080EED44 + adds r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_080EED40: .4byte _080EED44 + .align 2, 0 +_080EED44: + .4byte _080EED5C + .4byte _080EED66 + .4byte _080EED7E + .4byte _080EED74 + .4byte _080EED74 + .4byte _080EED8C +_080EED5C: + movs r1, 0x80 + lsls r1, 19 + movs r2, 0xFA + lsls r2, 5 + b _080EED94 +_080EED66: + movs r1, 0x80 + lsls r1, 19 + ldr r2, _080EED70 @ =0x00001741 + b _080EED94 + .align 2, 0 +_080EED70: .4byte 0x00001741 +_080EED74: + movs r1, 0x80 + lsls r1, 19 + movs r2, 0xFA + lsls r2, 5 + b _080EED94 +_080EED7E: + movs r1, 0x80 + lsls r1, 19 + ldr r2, _080EED88 @ =0x00007b40 + b _080EED94 + .align 2, 0 +_080EED88: .4byte 0x00007b40 +_080EED8C: + movs r1, 0x80 + lsls r1, 19 + movs r2, 0xFD + lsls r2, 6 +_080EED94: + adds r0, r2, 0 + strh r0, [r1] +_080EED98: + pop {r0} + bx r0 + thumb_func_end sub_80EED2C + + thumb_func_start sub_80EED9C +sub_80EED9C: @ 80EED9C + push {lr} + ldr r2, _080EEDB8 @ =gUnknown_03000744 + ldr r0, _080EEDBC @ =0x02000000 + movs r1, 0xC0 + lsls r1, 2 + adds r0, r1 + ldr r1, [r0] + str r1, [r2] + ldr r1, _080EEDC0 @ =sub_80EEDC4 + str r1, [r0] + bl _call_via_r1 + pop {r0} + bx r0 + .align 2, 0 +_080EEDB8: .4byte gUnknown_03000744 +_080EEDBC: .4byte 0x02000000 +_080EEDC0: .4byte sub_80EEDC4 + thumb_func_end sub_80EED9C + + thumb_func_start sub_80EEDC4 +sub_80EEDC4: @ 80EEDC4 + push {lr} + bl sub_8055870 + cmp r0, 0x1 + beq _080EEDDC + ldr r0, _080EEDE0 @ =0x02000000 + movs r1, 0xC0 + lsls r1, 2 + adds r0, r1 + ldr r1, _080EEDE4 @ =gUnknown_03000744 + ldr r1, [r1] + str r1, [r0] +_080EEDDC: + pop {r0} + bx r0 + .align 2, 0 +_080EEDE0: .4byte 0x02000000 +_080EEDE4: .4byte gUnknown_03000744 + thumb_func_end sub_80EEDC4 + + thumb_func_start sub_80EEDE8 +sub_80EEDE8: @ 80EEDE8 + ldr r0, _080EEE04 @ =REG_BG0HOFS + movs r1, 0 + strh r1, [r0] + adds r0, 0x2 + strh r1, [r0] + adds r0, 0x8 + strh r1, [r0] + subs r0, 0x2 + strh r1, [r0] + adds r0, 0x4 + strh r1, [r0] + adds r0, 0x2 + strh r1, [r0] + bx lr + .align 2, 0 +_080EEE04: .4byte REG_BG0HOFS + thumb_func_end sub_80EEDE8 + + thumb_func_start sub_80EEE08 +sub_80EEE08: @ 80EEE08 + ldr r0, _080EEE18 @ =gUnknown_083DFEC4 + ldr r0, [r0] + ldr r1, _080EEE1C @ =0x0000d160 + adds r0, r1 + movs r1, 0 + strh r1, [r0] + bx lr + .align 2, 0 +_080EEE18: .4byte gUnknown_083DFEC4 +_080EEE1C: .4byte 0x0000d160 + thumb_func_end sub_80EEE08 + + thumb_func_start sub_80EEE20 +sub_80EEE20: @ 80EEE20 + push {lr} + ldr r0, _080EEE48 @ =gUnknown_083DFEC4 + ldr r0, [r0] + ldr r1, _080EEE4C @ =0x0000d160 + adds r2, r0, r1 + movs r1, 0 + strh r1, [r2] + ldr r1, _080EEE50 @ =0x00006dac + adds r0, r1 + ldrb r0, [r0] + cmp r0, 0 + bne _080EEE42 +_080EEE38: + bl sub_80EEE54 + lsls r0, 24 + cmp r0, 0 + bne _080EEE38 +_080EEE42: + pop {r0} + bx r0 + .align 2, 0 +_080EEE48: .4byte gUnknown_083DFEC4 +_080EEE4C: .4byte 0x0000d160 +_080EEE50: .4byte 0x00006dac + thumb_func_end sub_80EEE20 + + thumb_func_start sub_80EEE54 +sub_80EEE54: @ 80EEE54 + push {lr} + ldr r1, _080EEE70 @ =gUnknown_083DFEC4 + ldr r0, [r1] + ldr r2, _080EEE74 @ =0x0000d160 + adds r0, r2 + ldrh r0, [r0] + adds r2, r1, 0 + cmp r0, 0x4 + bhi _080EEF02 + lsls r0, 2 + ldr r1, _080EEE78 @ =_080EEE7C + adds r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_080EEE70: .4byte gUnknown_083DFEC4 +_080EEE74: .4byte 0x0000d160 +_080EEE78: .4byte _080EEE7C + .align 2, 0 +_080EEE7C: + .4byte _080EEE90 + .4byte _080EEEA4 + .4byte _080EEEB8 + .4byte _080EEEC8 + .4byte _080EEEDC +_080EEE90: + ldr r0, _080EEE9C @ =gPokenavHoennMapMisc_Gfx + ldr r1, _080EEEA0 @ =0x0600c000 + bl LZ77UnCompVram + b _080EEF18 + .align 2, 0 +_080EEE9C: .4byte gPokenavHoennMapMisc_Gfx +_080EEEA0: .4byte 0x0600c000 +_080EEEA4: + ldr r0, _080EEEB0 @ =gUnknown_08E99FB0 + ldr r1, _080EEEB4 @ =0x0600d800 + bl LZ77UnCompVram + b _080EEF18 + .align 2, 0 +_080EEEB0: .4byte gUnknown_08E99FB0 +_080EEEB4: .4byte 0x0600d800 +_080EEEB8: + ldr r0, _080EEEC4 @ =gPokenavHoennMap1_Pal + movs r1, 0x10 + movs r2, 0x20 + bl LoadPalette + b _080EEF18 + .align 2, 0 +_080EEEC4: .4byte gPokenavHoennMap1_Pal +_080EEEC8: + movs r0, 0 + bl sub_80EF58C + movs r0, 0x1 + bl sub_80EF58C + movs r0, 0x2 + bl sub_80EF58C + b _080EEF18 +_080EEEDC: + ldr r2, [r2] + movs r3, 0xC3 + lsls r3, 2 + adds r0, r2, r3 + movs r1, 0 + strh r1, [r0] + ldr r0, _080EEF08 @ =REG_BG1HOFS + strh r1, [r0] + adds r0, 0x2 + strh r1, [r0] + ldr r1, _080EEF0C @ =REG_BG1CNT + ldr r3, _080EEF10 @ =0x00001b0c + adds r0, r3, 0 + strh r0, [r1] + ldr r0, _080EEF14 @ =0x0000d160 + adds r2, r0 + ldrh r0, [r2] + adds r0, 0x1 + strh r0, [r2] +_080EEF02: + movs r0, 0 + b _080EEF28 + .align 2, 0 +_080EEF08: .4byte REG_BG1HOFS +_080EEF0C: .4byte REG_BG1CNT +_080EEF10: .4byte 0x00001b0c +_080EEF14: .4byte 0x0000d160 +_080EEF18: + ldr r0, _080EEF2C @ =gUnknown_083DFEC4 + ldr r1, [r0] + ldr r2, _080EEF30 @ =0x0000d160 + adds r1, r2 + ldrh r0, [r1] + adds r0, 0x1 + strh r0, [r1] + movs r0, 0x1 +_080EEF28: + pop {r1} + bx r1 + .align 2, 0 +_080EEF2C: .4byte gUnknown_083DFEC4 +_080EEF30: .4byte 0x0000d160 + thumb_func_end sub_80EEE54 + + thumb_func_start sub_80EEF34 +sub_80EEF34: @ 80EEF34 + push {r4,lr} + movs r3, 0x1 + ldr r0, _080EEF50 @ =gUnknown_083DFEC4 + ldr r0, [r0] + movs r1, 0xC3 + lsls r1, 2 + adds r2, r0, r1 + ldrh r1, [r2] + movs r4, 0 + ldrsh r0, [r2, r4] + cmp r0, 0x20 + bne _080EEF54 + movs r0, 0 + b _080EEF6E + .align 2, 0 +_080EEF50: .4byte gUnknown_083DFEC4 +_080EEF54: + adds r0, r1, 0x2 + strh r0, [r2] + lsls r0, 16 + asrs r0, 16 + cmp r0, 0x1F + ble _080EEF66 + movs r0, 0x20 + strh r0, [r2] + movs r3, 0 +_080EEF66: + ldr r1, _080EEF74 @ =REG_BG1VOFS + ldrh r0, [r2] + strh r0, [r1] + adds r0, r3, 0 +_080EEF6E: + pop {r4} + pop {r1} + bx r1 + .align 2, 0 +_080EEF74: .4byte REG_BG1VOFS + thumb_func_end sub_80EEF34 + + thumb_func_start sub_80EEF78 +sub_80EEF78: @ 80EEF78 + push {r4,lr} + movs r3, 0x1 + ldr r0, _080EEF94 @ =gUnknown_083DFEC4 + ldr r0, [r0] + movs r1, 0xC3 + lsls r1, 2 + adds r2, r0, r1 + ldrh r1, [r2] + movs r4, 0 + ldrsh r0, [r2, r4] + cmp r0, 0 + bne _080EEF98 + movs r0, 0 + b _080EEFB0 + .align 2, 0 +_080EEF94: .4byte gUnknown_083DFEC4 +_080EEF98: + subs r0, r1, 0x2 + strh r0, [r2] + lsls r0, 16 + cmp r0, 0 + bgt _080EEFA8 + movs r0, 0 + strh r0, [r2] + movs r3, 0 +_080EEFA8: + ldr r1, _080EEFB8 @ =REG_BG1VOFS + ldrh r0, [r2] + strh r0, [r1] + adds r0, r3, 0 +_080EEFB0: + pop {r4} + pop {r1} + bx r1 + .align 2, 0 +_080EEFB8: .4byte REG_BG1VOFS + thumb_func_end sub_80EEF78 + + thumb_func_start sub_80EEFBC +sub_80EEFBC: @ 80EEFBC + push {r4-r7,lr} + mov r7, r8 + push {r7} + sub sp, 0x10 + lsls r0, 24 + lsrs r4, r0, 24 + ldr r0, _080EEFF4 @ =0x0600d800 + ldr r3, _080EEFF8 @ =gUnknown_08E9A100 + movs r1, 0 + str r1, [sp] + str r1, [sp, 0x4] + movs r1, 0x11 + str r1, [sp, 0x8] + movs r1, 0x2 + str r1, [sp, 0xC] + movs r1, 0 + movs r2, 0x16 + bl sub_809D104 + cmp r4, 0xB + bls _080EEFE8 + b _080EF234 +_080EEFE8: + lsls r0, r4, 2 + ldr r1, _080EEFFC @ =_080EF000 + adds r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_080EEFF4: .4byte 0x0600d800 +_080EEFF8: .4byte gUnknown_08E9A100 +_080EEFFC: .4byte _080EF000 + .align 2, 0 +_080EF000: + .4byte _080EF030 + .4byte _080EF234 + .4byte _080EF08C + .4byte _080EF100 + .4byte _080EF13C + .4byte _080EF1D4 + .4byte _080EF234 + .4byte _080EF178 + .4byte _080EF190 + .4byte _080EF1D4 + .4byte _080EF218 + .4byte _080EF06C +_080EF030: + ldr r6, _080EF064 @ =0x0600d800 + ldr r0, _080EF068 @ =gUnknown_08E9A100 + mov r8, r0 + movs r0, 0x11 + str r0, [sp] + movs r4, 0 + str r4, [sp, 0x4] + movs r0, 0xA + str r0, [sp, 0x8] + movs r5, 0x2 + str r5, [sp, 0xC] + adds r0, r6, 0 + movs r1, 0 + movs r2, 0x16 + mov r3, r8 + bl sub_809D104 + str r4, [sp] + movs r0, 0x6 + str r0, [sp, 0x4] + movs r0, 0x7 + str r0, [sp, 0x8] + str r5, [sp, 0xC] + adds r0, r6, 0 + movs r1, 0xA + b _080EF204 + .align 2, 0 +_080EF064: .4byte 0x0600d800 +_080EF068: .4byte gUnknown_08E9A100 +_080EF06C: + ldr r0, _080EF084 @ =0x0600d800 + ldr r3, _080EF088 @ =gUnknown_08E9A100 + movs r1, 0 + str r1, [sp] + movs r1, 0x6 + str r1, [sp, 0x4] + movs r1, 0x7 + str r1, [sp, 0x8] + movs r1, 0x2 + str r1, [sp, 0xC] + movs r1, 0x8 + b _080EF0EE + .align 2, 0 +_080EF084: .4byte 0x0600d800 +_080EF088: .4byte gUnknown_08E9A100 +_080EF08C: + ldr r0, _080EF0C8 @ =gUnknown_083DFEC4 + ldr r0, [r0] + ldr r1, _080EF0CC @ =0x00006dac + adds r0, r1 + ldrb r7, [r0] + cmp r7, 0 + bne _080EF0D8 + ldr r5, _080EF0D0 @ =0x0600d800 + ldr r6, _080EF0D4 @ =gUnknown_08E9A100 + movs r0, 0xA + str r0, [sp] + movs r4, 0x2 + str r4, [sp, 0x4] + str r0, [sp, 0x8] + str r4, [sp, 0xC] + adds r0, r5, 0 + movs r1, 0 + movs r2, 0x16 + adds r3, r6, 0 + bl sub_809D104 + str r7, [sp] + movs r0, 0x6 + str r0, [sp, 0x4] + movs r0, 0x7 + str r0, [sp, 0x8] + str r4, [sp, 0xC] + adds r0, r5, 0 + movs r1, 0xA + b _080EF1C2 + .align 2, 0 +_080EF0C8: .4byte gUnknown_083DFEC4 +_080EF0CC: .4byte 0x00006dac +_080EF0D0: .4byte 0x0600d800 +_080EF0D4: .4byte gUnknown_08E9A100 +_080EF0D8: + ldr r0, _080EF0F8 @ =0x0600d800 + ldr r3, _080EF0FC @ =gUnknown_08E9A100 + movs r1, 0 + str r1, [sp] + movs r1, 0x6 + str r1, [sp, 0x4] + movs r1, 0x7 + str r1, [sp, 0x8] + movs r1, 0x2 + str r1, [sp, 0xC] + movs r1, 0xA +_080EF0EE: + movs r2, 0x16 + bl sub_809D104 + b _080EF234 + .align 2, 0 +_080EF0F8: .4byte 0x0600d800 +_080EF0FC: .4byte gUnknown_08E9A100 +_080EF100: + ldr r6, _080EF134 @ =0x0600d800 + ldr r0, _080EF138 @ =gUnknown_08E9A100 + mov r8, r0 + movs r5, 0 + str r5, [sp] + movs r0, 0x4 + str r0, [sp, 0x4] + movs r0, 0xA + str r0, [sp, 0x8] + movs r4, 0x2 + str r4, [sp, 0xC] + adds r0, r6, 0 + movs r1, 0 + movs r2, 0x16 + mov r3, r8 + bl sub_809D104 + str r5, [sp] + movs r0, 0x6 + str r0, [sp, 0x4] + movs r0, 0x7 + str r0, [sp, 0x8] + str r4, [sp, 0xC] + adds r0, r6, 0 + movs r1, 0xA + b _080EF204 + .align 2, 0 +_080EF134: .4byte 0x0600d800 +_080EF138: .4byte gUnknown_08E9A100 +_080EF13C: + ldr r5, _080EF170 @ =0x0600d800 + ldr r6, _080EF174 @ =gUnknown_08E9A100 + movs r0, 0x14 + str r0, [sp] + movs r4, 0x2 + str r4, [sp, 0x4] + movs r0, 0xA + str r0, [sp, 0x8] + str r4, [sp, 0xC] + adds r0, r5, 0 + movs r1, 0 + movs r2, 0x16 + adds r3, r6, 0 + bl sub_809D104 + movs r0, 0 + str r0, [sp] + movs r0, 0x6 + str r0, [sp, 0x4] + movs r0, 0x7 + str r0, [sp, 0x8] + str r4, [sp, 0xC] + adds r0, r5, 0 + movs r1, 0xA + b _080EF1C2 + .align 2, 0 +_080EF170: .4byte 0x0600d800 +_080EF174: .4byte gUnknown_08E9A100 +_080EF178: + ldr r5, _080EF188 @ =0x0600d800 + ldr r6, _080EF18C @ =gUnknown_08E9A100 + movs r1, 0xA + str r1, [sp] + movs r0, 0x4 + str r0, [sp, 0x4] + str r1, [sp, 0x8] + b _080EF1A0 + .align 2, 0 +_080EF188: .4byte 0x0600d800 +_080EF18C: .4byte gUnknown_08E9A100 +_080EF190: + ldr r5, _080EF1CC @ =0x0600d800 + ldr r6, _080EF1D0 @ =gUnknown_08E9A100 + movs r0, 0x14 + str r0, [sp] + movs r0, 0x4 + str r0, [sp, 0x4] + movs r0, 0xA + str r0, [sp, 0x8] +_080EF1A0: + movs r4, 0x2 + str r4, [sp, 0xC] + adds r0, r5, 0 + movs r1, 0 + movs r2, 0x16 + adds r3, r6, 0 + bl sub_809D104 + movs r0, 0 + str r0, [sp] + movs r0, 0x6 + str r0, [sp, 0x4] + movs r0, 0x7 + str r0, [sp, 0x8] + str r4, [sp, 0xC] + adds r0, r5, 0 + movs r1, 0x7 +_080EF1C2: + movs r2, 0x16 + adds r3, r6, 0 + bl sub_809D104 + b _080EF234 + .align 2, 0 +_080EF1CC: .4byte 0x0600d800 +_080EF1D0: .4byte gUnknown_08E9A100 +_080EF1D4: + ldr r6, _080EF210 @ =0x0600d800 + ldr r1, _080EF214 @ =gUnknown_08E9A100 + mov r8, r1 + movs r5, 0 + str r5, [sp] + movs r4, 0x2 + str r4, [sp, 0x4] + movs r0, 0xA + str r0, [sp, 0x8] + str r4, [sp, 0xC] + adds r0, r6, 0 + movs r1, 0 + movs r2, 0x16 + mov r3, r8 + bl sub_809D104 + str r5, [sp] + movs r0, 0x6 + str r0, [sp, 0x4] + movs r0, 0x7 + str r0, [sp, 0x8] + str r4, [sp, 0xC] + adds r0, r6, 0 + movs r1, 0x8 +_080EF204: + movs r2, 0x16 + mov r3, r8 + bl sub_809D104 + b _080EF234 + .align 2, 0 +_080EF210: .4byte 0x0600d800 +_080EF214: .4byte gUnknown_08E9A100 +_080EF218: + ldr r0, _080EF240 @ =0x0600d800 + ldr r3, _080EF244 @ =gUnknown_08E9A100 + movs r1, 0 + str r1, [sp] + movs r1, 0x6 + str r1, [sp, 0x4] + movs r1, 0x7 + str r1, [sp, 0x8] + movs r1, 0x2 + str r1, [sp, 0xC] + movs r1, 0x8 + movs r2, 0x16 + bl sub_809D104 +_080EF234: + add sp, 0x10 + pop {r3} + mov r8, r3 + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_080EF240: .4byte 0x0600d800 +_080EF244: .4byte gUnknown_08E9A100 + thumb_func_end sub_80EEFBC + + thumb_func_start sub_80EF248 +sub_80EF248: @ 80EF248 + push {r4,lr} + lsls r0, 24 + lsrs r4, r0, 24 + ldr r0, _080EF278 @ =gUnknown_083DFEC4 + ldr r0, [r0] + ldr r1, _080EF27C @ =0x0000d160 + adds r2, r0, r1 + movs r1, 0 + strh r1, [r2] + ldr r1, _080EF280 @ =0x00006dac + adds r0, r1 + ldrb r0, [r0] + cmp r0, 0 + bne _080EF270 +_080EF264: + adds r0, r4, 0 + bl sub_80EF284 + lsls r0, 24 + cmp r0, 0 + bne _080EF264 +_080EF270: + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_080EF278: .4byte gUnknown_083DFEC4 +_080EF27C: .4byte 0x0000d160 +_080EF280: .4byte 0x00006dac + thumb_func_end sub_80EF248 + + thumb_func_start sub_80EF284 +sub_80EF284: @ 80EF284 + push {lr} + lsls r0, 24 + lsrs r2, r0, 24 + ldr r1, _080EF2A8 @ =gUnknown_083DFEC4 + ldr r0, [r1] + ldr r3, _080EF2AC @ =0x0000d160 + adds r0, r3 + ldrh r0, [r0] + adds r3, r1, 0 + cmp r0, 0xB + bls _080EF29C + b _080EF3F6 +_080EF29C: + lsls r0, 2 + ldr r1, _080EF2B0 @ =_080EF2B4 + adds r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_080EF2A8: .4byte gUnknown_083DFEC4 +_080EF2AC: .4byte 0x0000d160 +_080EF2B0: .4byte _080EF2B4 + .align 2, 0 +_080EF2B4: + .4byte _080EF2E4 + .4byte _080EF2EA + .4byte _080EF2F8 + .4byte _080EF304 + .4byte _080EF310 + .4byte _080EF330 + .4byte _080EF344 + .4byte _080EF368 + .4byte _080EF37C + .4byte _080EF390 + .4byte _080EF3A4 + .4byte _080EF3CC +_080EF2E4: + bl sub_80EEDE8 + b _080EF40C +_080EF2EA: + ldr r0, _080EF2F4 @ =gWindowConfig_81E7224 + bl SetUpWindowConfig + b _080EF40C + .align 2, 0 +_080EF2F4: .4byte gWindowConfig_81E7224 +_080EF2F8: + ldr r0, _080EF300 @ =gWindowConfig_81E7224 + bl MultistepInitMenuWindowBegin + b _080EF40C + .align 2, 0 +_080EF300: .4byte gWindowConfig_81E7224 +_080EF304: + bl MultistepInitMenuWindowContinue + cmp r0, 0 + beq _080EF30E + b _080EF40C +_080EF30E: + b _080EF41A +_080EF310: + ldr r1, _080EF320 @ =gUnknown_083DFEEC + ldr r2, _080EF324 @ =0x06005000 + ldr r0, _080EF328 @ =0x040000d4 + str r1, [r0] + str r2, [r0, 0x4] + ldr r1, _080EF32C @ =0x80000050 + b _080EF350 + .align 2, 0 +_080EF320: .4byte gUnknown_083DFEEC +_080EF324: .4byte 0x06005000 +_080EF328: .4byte 0x040000d4 +_080EF32C: .4byte 0x80000050 +_080EF330: + ldr r0, _080EF33C @ =gUnknown_083DFF8C + ldr r1, _080EF340 @ =0x0600f800 + bl LZ77UnCompVram + b _080EF40C + .align 2, 0 +_080EF33C: .4byte gUnknown_083DFF8C +_080EF340: .4byte 0x0600f800 +_080EF344: + ldr r1, _080EF358 @ =gUnknown_083E005C + ldr r2, _080EF35C @ =0x06008000 + ldr r0, _080EF360 @ =0x040000d4 + str r1, [r0] + str r2, [r0, 0x4] + ldr r1, _080EF364 @ =0x80000010 +_080EF350: + str r1, [r0, 0x8] + ldr r0, [r0, 0x8] + b _080EF40C + .align 2, 0 +_080EF358: .4byte gUnknown_083E005C +_080EF35C: .4byte 0x06008000 +_080EF360: .4byte 0x040000d4 +_080EF364: .4byte 0x80000010 +_080EF368: + ldr r0, _080EF374 @ =gUnknown_083E007C + ldr r1, _080EF378 @ =0x0600e000 + bl LZ77UnCompVram + b _080EF40C + .align 2, 0 +_080EF374: .4byte gUnknown_083E007C +_080EF378: .4byte 0x0600e000 +_080EF37C: + ldr r0, _080EF388 @ =gPokenavOutlineTilemap + ldr r1, _080EF38C @ =0x0600e800 + bl LZ77UnCompVram + b _080EF40C + .align 2, 0 +_080EF388: .4byte gPokenavOutlineTilemap +_080EF38C: .4byte 0x0600e800 +_080EF390: + ldr r0, _080EF39C @ =gPokenavOutlineTiles + ldr r1, _080EF3A0 @ =0x06008020 + bl LZ77UnCompVram + b _080EF40C + .align 2, 0 +_080EF39C: .4byte gPokenavOutlineTiles +_080EF3A0: .4byte 0x06008020 +_080EF3A4: + adds r0, r2, 0 + bl sub_80EF54C + ldr r0, _080EF3C4 @ =gUnknown_083DFECC + movs r1, 0xF0 + movs r2, 0x20 + bl LoadPalette + ldr r0, _080EF3C8 @ =gPokenavOutlinePalette + movs r1, 0x40 + movs r2, 0x20 + bl LoadPalette + bl sub_80EF7D4 + b _080EF40C + .align 2, 0 +_080EF3C4: .4byte gUnknown_083DFECC +_080EF3C8: .4byte gPokenavOutlinePalette +_080EF3CC: + ldr r1, _080EF3FC @ =REG_BG0CNT + ldr r2, _080EF400 @ =0x00001f01 + adds r0, r2, 0 + strh r0, [r1] + adds r1, 0x4 + ldr r2, _080EF404 @ =0x00001d0a + adds r0, r2, 0 + strh r0, [r1] + adds r1, 0x2 + subs r2, 0xFF + adds r0, r2, 0 + strh r0, [r1] + adds r1, 0x42 + movs r0, 0 + strh r0, [r1] + ldr r1, [r3] + ldr r3, _080EF408 @ =0x0000d160 + adds r1, r3 + ldrh r0, [r1] + adds r0, 0x1 + strh r0, [r1] +_080EF3F6: + movs r0, 0 + b _080EF41C + .align 2, 0 +_080EF3FC: .4byte REG_BG0CNT +_080EF400: .4byte 0x00001f01 +_080EF404: .4byte 0x00001d0a +_080EF408: .4byte 0x0000d160 +_080EF40C: + ldr r0, _080EF420 @ =gUnknown_083DFEC4 + ldr r1, [r0] + ldr r0, _080EF424 @ =0x0000d160 + adds r1, r0 + ldrh r0, [r1] + adds r0, 0x1 + strh r0, [r1] +_080EF41A: + movs r0, 0x1 +_080EF41C: + pop {r1} + bx r1 + .align 2, 0 +_080EF420: .4byte gUnknown_083DFEC4 +_080EF424: .4byte 0x0000d160 + thumb_func_end sub_80EF284 + + thumb_func_start sub_80EF428 +sub_80EF428: @ 80EF428 + push {r4,lr} + lsls r0, 24 + lsrs r0, 24 + adds r3, r0, 0 + lsls r1, 24 + lsrs r2, r1, 24 + movs r1, 0 + cmp r0, 0x1 + beq _080EF454 + cmp r0, 0x1 + bgt _080EF444 + cmp r0, 0 + beq _080EF44A + b _080EF464 +_080EF444: + cmp r3, 0x2 + beq _080EF45C + b _080EF464 +_080EF44A: + ldr r1, _080EF450 @ =gUnknown_083E31B0 + b _080EF45E + .align 2, 0 +_080EF450: .4byte gUnknown_083E31B0 +_080EF454: + ldr r1, _080EF458 @ =gUnknown_083E31CC + b _080EF45E + .align 2, 0 +_080EF458: .4byte gUnknown_083E31CC +_080EF45C: + ldr r1, _080EF488 @ =gUnknown_083E31D8 +_080EF45E: + lsls r0, r2, 2 + adds r0, r1 + ldr r1, [r0] +_080EF464: + ldr r0, _080EF48C @ =gUnknown_083DFEC8 + ldr r4, [r0] + movs r0, 0x80 + lsls r0, 4 + adds r4, r0 + adds r0, r4, 0 + movs r2, 0xC0 + movs r3, 0x2 + bl sub_8072C74 + adds r0, r4, 0 + movs r1, 0x3 + movs r2, 0x11 + bl MenuPrint + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_080EF488: .4byte gUnknown_083E31D8 +_080EF48C: .4byte gUnknown_083DFEC8 + thumb_func_end sub_80EF428 + + thumb_func_start sub_80EF490 +sub_80EF490: @ 80EF490 + push {r4,lr} + lsls r0, 24 + lsrs r2, r0, 24 + cmp r2, 0x2 + bne _080EF49C + movs r2, 0x1 +_080EF49C: + ldr r0, _080EF4C4 @ =gUnknown_083DFEC4 + ldr r3, [r0] + lsls r1, r2, 4 + subs r1, r2 + lsls r2, r1, 1 + ldr r4, _080EF4C8 @ =0x0000ce4e + adds r0, r3, r4 + strh r2, [r0] + ldr r2, _080EF4CC @ =0x0000ce4c + adds r0, r3, r2 + ldrh r2, [r0] + lsls r1, 17 + lsrs r0, r1, 16 + cmp r2, r0 + bcs _080EF4D0 + adds r4, 0x2 + adds r1, r3, r4 + movs r0, 0x2 + b _080EF4EA + .align 2, 0 +_080EF4C4: .4byte gUnknown_083DFEC4 +_080EF4C8: .4byte 0x0000ce4e +_080EF4CC: .4byte 0x0000ce4c +_080EF4D0: + cmp r2, r0 + bls _080EF4E4 + ldr r0, _080EF4DC @ =0x0000ce50 + adds r1, r3, r0 + ldr r0, _080EF4E0 @ =0x0000fffe + b _080EF4EA + .align 2, 0 +_080EF4DC: .4byte 0x0000ce50 +_080EF4E0: .4byte 0x0000fffe +_080EF4E4: + ldr r2, _080EF4F4 @ =0x0000ce50 + adds r1, r3, r2 + movs r0, 0 +_080EF4EA: + strh r0, [r1] + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_080EF4F4: .4byte 0x0000ce50 + thumb_func_end sub_80EF490 + + thumb_func_start sub_80EF4F8 +sub_80EF4F8: @ 80EF4F8 + push {r4,lr} + ldr r0, _080EF530 @ =gUnknown_083DFEC4 + ldr r1, [r0] + ldr r0, _080EF534 @ =0x0000ce4c + adds r2, r1, r0 + ldr r3, _080EF538 @ =0x0000ce4e + adds r0, r1, r3 + ldrh r3, [r2] + ldrh r0, [r0] + cmp r3, r0 + beq _080EF544 + ldr r4, _080EF53C @ =0x0000ce50 + adds r0, r1, r4 + ldrh r0, [r0] + adds r0, r3, r0 + strh r0, [r2] + ldr r3, _080EF540 @ =0x0000ce52 + adds r0, r1, r3 + ldrh r1, [r2] + lsls r1, 1 + adds r0, r1 + movs r1, 0x31 + movs r2, 0x4 + bl LoadPalette + movs r0, 0x1 + b _080EF546 + .align 2, 0 +_080EF530: .4byte gUnknown_083DFEC4 +_080EF534: .4byte 0x0000ce4c +_080EF538: .4byte 0x0000ce4e +_080EF53C: .4byte 0x0000ce50 +_080EF540: .4byte 0x0000ce52 +_080EF544: + movs r0, 0 +_080EF546: + pop {r4} + pop {r1} + bx r1 + thumb_func_end sub_80EF4F8 + + thumb_func_start sub_80EF54C +sub_80EF54C: @ 80EF54C + push {lr} + lsls r0, 24 + lsrs r2, r0, 24 + cmp r2, 0x2 + bne _080EF558 + movs r2, 0x1 +_080EF558: + ldr r0, _080EF580 @ =gUnknown_083DFEC4 + ldr r0, [r0] + lsls r1, r2, 4 + subs r1, r2 + lsls r1, 1 + ldr r3, _080EF584 @ =0x0000ce4c + adds r2, r0, r3 + strh r1, [r2] + ldrh r1, [r2] + lsls r1, 1 + ldr r2, _080EF588 @ =0x0000ce52 + adds r1, r2 + adds r0, r1 + movs r1, 0x31 + movs r2, 0x4 + bl LoadPalette + pop {r0} + bx r0 + .align 2, 0 +_080EF580: .4byte gUnknown_083DFEC4 +_080EF584: .4byte 0x0000ce4c +_080EF588: .4byte 0x0000ce52 + thumb_func_end sub_80EF54C + + thumb_func_start sub_80EF58C +sub_80EF58C: @ 80EF58C + push {lr} + sub sp, 0x4 + lsls r0, 24 + lsrs r0, 24 + adds r1, r0, 0 + cmp r0, 0x1 + beq _080EF5D0 + cmp r0, 0x1 + bgt _080EF5A4 + cmp r0, 0 + beq _080EF5AA + b _080EF610 +_080EF5A4: + cmp r1, 0x2 + beq _080EF5F8 + b _080EF610 +_080EF5AA: + movs r1, 0 + ldr r0, _080EF5C8 @ =gUnknown_083DFEC4 + ldr r0, [r0] + ldr r3, _080EF5CC @ =0x0000ce52 + adds r2, r0, r3 + movs r3, 0 +_080EF5B6: + lsls r0, r1, 1 + adds r0, r2, r0 + strh r3, [r0] + adds r0, r1, 0x1 + lsls r0, 16 + lsrs r1, r0, 16 + cmp r1, 0x3D + bls _080EF5B6 + b _080EF610 + .align 2, 0 +_080EF5C8: .4byte gUnknown_083DFEC4 +_080EF5CC: .4byte 0x0000ce52 +_080EF5D0: + ldr r0, _080EF5EC @ =gUnknown_083DFEC4 + ldr r0, [r0] + ldr r1, _080EF5F0 @ =0x0000ce52 + adds r2, r0, r1 + ldr r1, _080EF5F4 @ =gUnknown_083E003C + adds r0, r1, 0x2 + adds r1, 0x6 + str r2, [sp] + movs r2, 0x10 + movs r3, 0x2 + bl sub_80EF624 + b _080EF610 + .align 2, 0 +_080EF5EC: .4byte gUnknown_083DFEC4 +_080EF5F0: .4byte 0x0000ce52 +_080EF5F4: .4byte gUnknown_083E003C +_080EF5F8: + ldr r0, _080EF618 @ =gUnknown_083DFEC4 + ldr r0, [r0] + ldr r3, _080EF61C @ =0x0000ce8e + adds r2, r0, r3 + ldr r1, _080EF620 @ =gUnknown_083E003C + adds r0, r1, 0x6 + adds r1, 0xE + str r2, [sp] + movs r2, 0x10 + movs r3, 0x2 + bl sub_80EF624 +_080EF610: + add sp, 0x4 + pop {r0} + bx r0 + .align 2, 0 +_080EF618: .4byte gUnknown_083DFEC4 +_080EF61C: .4byte 0x0000ce8e +_080EF620: .4byte gUnknown_083E003C + thumb_func_end sub_80EF58C + + thumb_func_start sub_80EF624 +sub_80EF624: @ 80EF624 + push {r4-r7,lr} + mov r7, r10 + mov r6, r9 + mov r5, r8 + push {r5-r7} + sub sp, 0x38 + str r0, [sp] + str r1, [sp, 0x4] + ldr r4, [sp, 0x58] + lsls r2, 24 + lsrs r2, 24 + str r2, [sp, 0x8] + lsls r3, 24 + lsrs r3, 24 + str r3, [sp, 0xC] + movs r0, 0 + str r0, [sp, 0x10] + lsls r0, r3, 16 + ldr r1, [sp, 0x10] + cmp r1, r3 + bcs _080EF72E + subs r2, 0x1 + str r2, [sp, 0x20] + str r0, [sp, 0x2C] +_080EF654: + ldr r2, [sp] + ldrh r1, [r2] + movs r0, 0x1F + ands r0, r1 + lsls r7, r0, 8 + lsls r1, 16 + lsrs r0, r1, 21 + movs r2, 0x1F + ands r0, r2 + lsls r6, r0, 8 + lsrs r1, 26 + ands r1, r2 + lsls r5, r1, 8 + ldr r0, [sp, 0x4] + ldrh r1, [r0] + movs r0, 0x1F + ands r0, r1 + lsls r0, 8 + str r0, [sp, 0x14] + lsls r1, 16 + lsrs r0, r1, 21 + ands r0, r2 + lsls r0, 8 + str r0, [sp, 0x18] + lsrs r1, 26 + ands r1, r2 + lsls r1, 8 + str r1, [sp, 0x1C] + ldr r1, [sp, 0x14] + subs r0, r1, r7 + ldr r1, [sp, 0x8] + bl __divsi3 + mov r10, r0 + ldr r2, [sp, 0x18] + subs r0, r2, r6 + ldr r1, [sp, 0x8] + bl __divsi3 + mov r9, r0 + ldr r1, [sp, 0x1C] + subs r0, r1, r5 + ldr r1, [sp, 0x8] + bl __divsi3 + mov r8, r0 + adds r3, r4, 0 + movs r4, 0 + ldr r2, [sp] + adds r2, 0x2 + str r2, [sp, 0x30] + ldr r0, [sp, 0x4] + adds r0, 0x2 + str r0, [sp, 0x34] + adds r1, r3, 0x2 + str r1, [sp, 0x24] + ldr r2, [sp, 0x10] + adds r2, 0x1 + str r2, [sp, 0x28] + ldr r0, [sp, 0x20] + cmp r4, r0 + bge _080EF700 + ldr r1, [sp, 0xC] + lsls r1, 1 + mov r12, r1 +_080EF6D6: + lsls r0, r7, 8 + lsrs r2, r0, 16 + lsls r0, r6, 8 + lsrs r1, r0, 16 + lsls r0, r5, 8 + lsrs r0, 16 + lsls r0, 10 + lsls r1, 5 + orrs r0, r1 + orrs r2, r0 + strh r2, [r3] + add r3, r12 + add r7, r10 + add r6, r9 + add r5, r8 + adds r0, r4, 0x1 + lsls r0, 16 + lsrs r4, r0, 16 + ldr r2, [sp, 0x20] + cmp r4, r2 + blt _080EF6D6 +_080EF700: + ldr r4, [sp, 0x14] + lsrs r2, r4, 8 + ldr r1, [sp, 0x1C] + lsls r0, r1, 2 + ldr r4, [sp, 0x18] + lsrs r1, r4, 3 + orrs r0, r1 + orrs r2, r0 + strh r2, [r3] + ldr r0, [sp, 0x30] + str r0, [sp] + ldr r1, [sp, 0x34] + str r1, [sp, 0x4] + ldr r4, [sp, 0x24] + ldr r2, [sp, 0x28] + lsls r0, r2, 16 + lsrs r0, 16 + str r0, [sp, 0x10] + ldr r1, [sp, 0x2C] + lsrs r0, r1, 16 + ldr r2, [sp, 0x10] + cmp r2, r0 + bcc _080EF654 +_080EF72E: + add sp, 0x38 + pop {r3-r5} + mov r8, r3 + mov r9, r4 + mov r10, r5 + pop {r4-r7} + pop {r0} + bx r0 + thumb_func_end sub_80EF624 + + thumb_func_start sub_80EF740 +sub_80EF740: @ 80EF740 + push {lr} + ldr r0, _080EF770 @ =gUnknown_083DFEC4 + ldr r3, [r0] + ldr r0, _080EF774 @ =0x00006da0 + adds r2, r3, r0 + ldrh r0, [r2] + adds r0, 0x1 + movs r1, 0x1 + ands r0, r1 + strh r0, [r2] + cmp r0, 0 + beq _080EF762 + ldr r2, _080EF778 @ =0x00006da2 + adds r1, r3, r2 + ldrh r0, [r1] + adds r0, 0x1 + strh r0, [r1] +_080EF762: + ldr r0, _080EF77C @ =REG_BG3HOFS + ldr r2, _080EF778 @ =0x00006da2 + adds r1, r3, r2 + ldrh r1, [r1] + strh r1, [r0] + pop {r0} + bx r0 + .align 2, 0 +_080EF770: .4byte gUnknown_083DFEC4 +_080EF774: .4byte 0x00006da0 +_080EF778: .4byte 0x00006da2 +_080EF77C: .4byte REG_BG3HOFS + thumb_func_end sub_80EF740 + + thumb_func_start sub_80EF780 +sub_80EF780: @ 80EF780 + push {lr} + lsls r0, 24 + lsrs r0, 24 + ldr r2, _080EF7B0 @ =gTasks + lsls r1, r0, 2 + adds r1, r0 + lsls r1, 3 + adds r1, r2 + movs r2, 0x8 + ldrsh r0, [r1, r2] + cmp r0, 0 + beq _080EF7AA + ldr r0, _080EF7B4 @ =gUnknown_083DFEC4 + ldr r3, [r0] + ldr r0, _080EF7B8 @ =0x00006da2 + adds r2, r3, r0 + ldrh r0, [r2] + movs r1, 0x7 + ands r1, r0 + cmp r1, 0 + beq _080EF7BC +_080EF7AA: + bl sub_80EF740 + b _080EF7C8 + .align 2, 0 +_080EF7B0: .4byte gTasks +_080EF7B4: .4byte gUnknown_083DFEC4 +_080EF7B8: .4byte 0x00006da2 +_080EF7BC: + strh r1, [r2] + ldr r2, _080EF7CC @ =0x00006da0 + adds r0, r3, r2 + strh r1, [r0] + ldr r0, _080EF7D0 @ =REG_BG3HOFS + strh r1, [r0] +_080EF7C8: + pop {r0} + bx r0 + .align 2, 0 +_080EF7CC: .4byte 0x00006da0 +_080EF7D0: .4byte REG_BG3HOFS + thumb_func_end sub_80EF780 + + thumb_func_start sub_80EF7D4 +sub_80EF7D4: @ 80EF7D4 + push {r4,lr} + ldr r0, _080EF800 @ =gUnknown_083DFEC4 + ldr r4, [r0] + ldr r1, _080EF804 @ =0x00006da2 + adds r0, r4, r1 + movs r1, 0 + strh r1, [r0] + ldr r2, _080EF808 @ =0x00006da0 + adds r0, r4, r2 + strh r1, [r0] + ldr r0, _080EF80C @ =sub_80EF780 + movs r1, 0x50 + bl CreateTask + lsls r0, 24 + lsrs r0, 24 + ldr r1, _080EF810 @ =0x00006da4 + adds r4, r1 + strh r0, [r4] + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_080EF800: .4byte gUnknown_083DFEC4 +_080EF804: .4byte 0x00006da2 +_080EF808: .4byte 0x00006da0 +_080EF80C: .4byte sub_80EF780 +_080EF810: .4byte 0x00006da4 + thumb_func_end sub_80EF7D4 + + thumb_func_start sub_80EF814 +sub_80EF814: @ 80EF814 + push {lr} + ldr r0, _080EF834 @ =sub_80EF780 + bl FuncIsActiveTask + lsls r0, 24 + cmp r0, 0 + beq _080EF830 + ldr r0, _080EF838 @ =gUnknown_083DFEC4 + ldr r0, [r0] + ldr r1, _080EF83C @ =0x00006da4 + adds r0, r1 + ldrb r0, [r0] + bl DestroyTask +_080EF830: + pop {r0} + bx r0 + .align 2, 0 +_080EF834: .4byte sub_80EF780 +_080EF838: .4byte gUnknown_083DFEC4 +_080EF83C: .4byte 0x00006da4 + thumb_func_end sub_80EF814 + + thumb_func_start sub_80EF840 +sub_80EF840: @ 80EF840 + push {lr} + ldr r0, _080EF868 @ =gUnknown_083DFEC4 + ldr r0, [r0] + ldr r1, _080EF86C @ =0x0000d160 + adds r2, r0, r1 + movs r1, 0 + strh r1, [r2] + ldr r1, _080EF870 @ =0x00006dac + adds r0, r1 + ldrb r0, [r0] + cmp r0, 0 + bne _080EF862 +_080EF858: + bl sub_80EF874 + lsls r0, 24 + cmp r0, 0 + bne _080EF858 +_080EF862: + pop {r0} + bx r0 + .align 2, 0 +_080EF868: .4byte gUnknown_083DFEC4 +_080EF86C: .4byte 0x0000d160 +_080EF870: .4byte 0x00006dac + thumb_func_end sub_80EF840 + + thumb_func_start sub_80EF874 +sub_80EF874: @ 80EF874 + push {lr} + ldr r0, _080EF890 @ =gUnknown_083DFEC4 + ldr r0, [r0] + ldr r1, _080EF894 @ =0x0000d160 + adds r0, r1 + ldrh r0, [r0] + cmp r0, 0xB + bls _080EF886 + b _080EF9D8 +_080EF886: + lsls r0, 2 + ldr r1, _080EF898 @ =_080EF89C + adds r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_080EF890: .4byte gUnknown_083DFEC4 +_080EF894: .4byte 0x0000d160 +_080EF898: .4byte _080EF89C + .align 2, 0 +_080EF89C: + .4byte _080EF8CC + .4byte _080EF8D2 + .4byte _080EF8E0 + .4byte _080EF8EC + .4byte _080EF8F6 + .4byte _080EF8FC + .4byte _080EF920 + .4byte _080EF92C + .4byte _080EF940 + .4byte _080EF954 + .4byte _080EF960 + .4byte _080EF972 +_080EF8CC: + bl sub_80EEDE8 + b _080EF9DC +_080EF8D2: + ldr r0, _080EF8DC @ =gWindowConfig_81E7224 + bl SetUpWindowConfig + b _080EF9DC + .align 2, 0 +_080EF8DC: .4byte gWindowConfig_81E7224 +_080EF8E0: + ldr r0, _080EF8E8 @ =gWindowConfig_81E7224 + bl MultistepInitMenuWindowBegin + b _080EF9DC + .align 2, 0 +_080EF8E8: .4byte gWindowConfig_81E7224 +_080EF8EC: + bl MultistepInitMenuWindowContinue + cmp r0, 0 + bne _080EF9DC + b _080EF9EA +_080EF8F6: + bl MenuZeroFillScreen + b _080EF9DC +_080EF8FC: + ldr r0, _080EF914 @ =gUnknown_083DFEC4 + ldr r0, [r0] + ldr r2, _080EF918 @ =0x00006e18 + adds r0, r2 + ldr r1, _080EF91C @ =gSaveBlock2 + ldrb r1, [r1, 0x15] + lsrs r1, 3 + movs r2, 0x1 + ands r1, r2 + bl sub_80FA904 + b _080EF9DC + .align 2, 0 +_080EF914: .4byte gUnknown_083DFEC4 +_080EF918: .4byte 0x00006e18 +_080EF91C: .4byte gSaveBlock2 +_080EF920: + bl sub_80FA940 + lsls r0, 24 + cmp r0, 0 + beq _080EF9DC + b _080EF9EA +_080EF92C: + ldr r0, _080EF938 @ =gPokenavHoennMapSquares_Gfx + ldr r1, _080EF93C @ =0x06005000 + bl LZ77UnCompVram + b _080EF9DC + .align 2, 0 +_080EF938: .4byte gPokenavHoennMapSquares_Gfx +_080EF93C: .4byte 0x06005000 +_080EF940: + ldr r0, _080EF950 @ =gPokenavHoennMapSquares_Pal + movs r1, 0x30 + movs r2, 0x20 + bl LoadPalette + bl sub_80EFC3C + b _080EF9DC + .align 2, 0 +_080EF950: .4byte gPokenavHoennMapSquares_Pal +_080EF954: + bl sub_80EFC64 + lsls r0, 24 + cmp r0, 0 + beq _080EF9DC + b _080EF9EA +_080EF960: + movs r0, 0xD + movs r1, 0x3 + movs r2, 0x1D + movs r3, 0x11 + bl MenuDrawTextWindow + bl sub_80EF9F8 + b _080EF9DC +_080EF972: + ldr r0, _080EF990 @ =gUnknown_083DFEC4 + ldr r1, [r0] + ldr r2, _080EF994 @ =0x00006e90 + adds r0, r1, r2 + ldrb r0, [r0] + cmp r0, 0 + bne _080EF9A0 + ldr r2, _080EF998 @ =0x00007698 + adds r0, r1, r2 + movs r1, 0xA0 + strh r1, [r0] + ldr r0, _080EF99C @ =REG_BG0VOFS + strh r1, [r0] + b _080EF9B0 + .align 2, 0 +_080EF990: .4byte gUnknown_083DFEC4 +_080EF994: .4byte 0x00006e90 +_080EF998: .4byte 0x00007698 +_080EF99C: .4byte REG_BG0VOFS +_080EF9A0: + ldr r0, _080EF9C8 @ =0x00007698 + adds r1, r0 + movs r2, 0 + movs r0, 0x80 + lsls r0, 1 + strh r0, [r1] + ldr r0, _080EF9CC @ =REG_BG0VOFS + strh r2, [r0] +_080EF9B0: + ldr r2, _080EF9D0 @ =REG_BG0CNT + ldrh r0, [r2] + strh r0, [r2] + ldrh r0, [r2] + movs r1, 0x1 + orrs r0, r1 + strh r0, [r2] + ldr r1, _080EF9D4 @ =REG_BLDCNT + movs r0, 0 + strh r0, [r1] + b _080EF9DC + .align 2, 0 +_080EF9C8: .4byte 0x00007698 +_080EF9CC: .4byte REG_BG0VOFS +_080EF9D0: .4byte REG_BG0CNT +_080EF9D4: .4byte REG_BLDCNT +_080EF9D8: + movs r0, 0 + b _080EF9EC +_080EF9DC: + ldr r0, _080EF9F0 @ =gUnknown_083DFEC4 + ldr r1, [r0] + ldr r2, _080EF9F4 @ =0x0000d160 + adds r1, r2 + ldrh r0, [r1] + adds r0, 0x1 + strh r0, [r1] +_080EF9EA: + movs r0, 0x1 +_080EF9EC: + pop {r1} + bx r1 + .align 2, 0 +_080EF9F0: .4byte gUnknown_083DFEC4 +_080EF9F4: .4byte 0x0000d160 + thumb_func_end sub_80EF874 + + thumb_func_start sub_80EF9F8 +sub_80EF9F8: @ 80EF9F8 + push {r4-r6,lr} + sub sp, 0x14 + movs r5, 0x4 + ldr r0, _080EFA18 @ =gUnknown_083DFEC4 + ldr r0, [r0] + ldr r1, _080EFA1C @ =0x00006e2e + adds r0, r1 + ldrb r0, [r0] + cmp r0, 0x4 + bls _080EFA0E + b _080EFB6A +_080EFA0E: + lsls r0, 2 + ldr r1, _080EFA20 @ =_080EFA24 + adds r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_080EFA18: .4byte gUnknown_083DFEC4 +_080EFA1C: .4byte 0x00006e2e +_080EFA20: .4byte _080EFA24 + .align 2, 0 +_080EFA24: + .4byte _080EFB6A + .4byte _080EFA38 + .4byte _080EFAC0 + .4byte _080EFB4C + .4byte _080EFA38 +_080EFA38: + ldr r0, _080EFA64 @ =gUnknown_083DFEC4 + ldr r0, [r0] + ldr r2, _080EFA68 @ =0x00006e18 + adds r0, r2 + lsls r2, r5, 19 + lsrs r2, 16 + movs r1, 0x1 + str r1, [sp] + movs r1, 0x70 + movs r3, 0x78 + bl sub_8072A18 + adds r0, r5, 0x2 + lsls r0, 16 + lsrs r5, r0, 16 + ldr r0, _080EFA6C @ =gLinkOpen + ldrb r0, [r0] + cmp r0, 0x1 + bne _080EFA70 + bl sub_80F1A80 + b _080EFB82 + .align 2, 0 +_080EFA64: .4byte gUnknown_083DFEC4 +_080EFA68: .4byte 0x00006e18 +_080EFA6C: .4byte gLinkOpen +_080EFA70: + movs r4, 0 + b _080EFA92 +_080EFA74: + lsls r2, r5, 19 + lsrs r2, 16 + movs r0, 0x1 + str r0, [sp] + adds r0, r1, 0 + movs r1, 0x70 + movs r3, 0x78 + bl sub_8072A18 + adds r0, r5, 0x2 + lsls r0, 16 + lsrs r5, r0, 16 + adds r0, r4, 0x1 + lsls r0, 16 + lsrs r4, r0, 16 +_080EFA92: + cmp r4, 0x3 + bhi _080EFB6A + ldr r0, _080EFAB8 @ =gUnknown_083DFEC4 + ldr r1, [r0] + ldr r2, _080EFABC @ =0x00006e2c + adds r0, r1, r2 + ldrb r0, [r0] + adds r2, 0x3 + adds r1, r2 + ldrb r1, [r1] + lsls r2, r4, 24 + lsrs r2, 24 + bl sub_811A8CC + adds r1, r0, 0 + cmp r1, 0 + bne _080EFA74 + b _080EFB6A + .align 2, 0 +_080EFAB8: .4byte gUnknown_083DFEC4 +_080EFABC: .4byte 0x00006e2c +_080EFAC0: + ldr r0, _080EFB38 @ =gUnknown_083DFEC4 + ldr r4, [r0] + ldr r1, _080EFB3C @ =0x00006e18 + adds r0, r4, r1 + lsls r2, r5, 19 + lsrs r2, 16 + movs r1, 0x1 + str r1, [sp] + movs r1, 0x70 + movs r3, 0x78 + bl sub_8072A18 + adds r0, r5, 0x2 + lsls r0, 16 + lsrs r5, r0, 16 + ldr r2, _080EFB40 @ =0x00006e2c + adds r0, r4, r2 + ldrh r1, [r0] + adds r2, 0x3 + adds r0, r4, r2 + ldrb r0, [r0] + lsls r0, 2 + lsls r1, 3 + adds r0, r1 + ldr r1, _080EFB44 @ =0x0000cdcc + adds r4, r1 + adds r6, r4, r0 + ldr r0, [r6] + cmp r0, 0 + beq _080EFB6A + lsls r4, r5, 24 + lsrs r4, 24 + movs r0, 0xE + adds r1, r4, 0 + movs r2, 0xF + movs r3, 0xF + bl MenuFillWindowRectWithBlankTile + movs r0, 0x1A + adds r1, r4, 0 + movs r2, 0x1C + movs r3, 0xF + bl MenuFillWindowRectWithBlankTile + ldr r0, _080EFB48 @ =0x0600f800 + ldr r3, [r6] + movs r1, 0 + str r1, [sp] + str r1, [sp, 0x4] + movs r1, 0xA + str r1, [sp, 0x8] + str r1, [sp, 0xC] + str r1, [sp, 0x10] + movs r1, 0x10 + movs r2, 0x6 + bl sub_8095C8C + adds r0, r5, 0 + adds r0, 0xB + b _080EFB66 + .align 2, 0 +_080EFB38: .4byte gUnknown_083DFEC4 +_080EFB3C: .4byte 0x00006e18 +_080EFB40: .4byte 0x00006e2c +_080EFB44: .4byte 0x0000cdcc +_080EFB48: .4byte 0x0600f800 +_080EFB4C: + ldr r0, _080EFB98 @ =gUnknown_083DFEC4 + ldr r0, [r0] + ldr r2, _080EFB9C @ =0x00006e18 + adds r0, r2 + lsls r2, r5, 19 + lsrs r2, 16 + movs r1, 0x1 + str r1, [sp] + movs r1, 0x70 + movs r3, 0x78 + bl sub_8072A18 + adds r0, r5, 0x2 +_080EFB66: + lsls r0, 16 + lsrs r5, r0, 16 +_080EFB6A: + movs r0, 0 + cmp r0, 0 + bne _080EFB82 + cmp r5, 0xF + bhi _080EFB82 + lsls r1, r5, 24 + lsrs r1, 24 + movs r0, 0xE + movs r2, 0x1C + movs r3, 0xF + bl MenuFillWindowRectWithBlankTile +_080EFB82: + ldr r0, _080EFB98 @ =gUnknown_083DFEC4 + ldr r0, [r0] + ldr r1, _080EFBA0 @ =0x00006e2e + adds r0, r1 + ldrb r0, [r0] + cmp r0, 0x2 + bne _080EFBA4 + bl sub_80EFD74 + b _080EFBA8 + .align 2, 0 +_080EFB98: .4byte gUnknown_083DFEC4 +_080EFB9C: .4byte 0x00006e18 +_080EFBA0: .4byte 0x00006e2e +_080EFBA4: + bl sub_80EFDA0 +_080EFBA8: + add sp, 0x14 + pop {r4-r6} + pop {r0} + bx r0 + thumb_func_end sub_80EF9F8 + + thumb_func_start sub_80EFBB0 +sub_80EFBB0: @ 80EFBB0 + push {lr} + ldr r0, _080EFBC8 @ =gUnknown_083DFEC4 + ldr r0, [r0] + ldr r1, _080EFBCC @ =0x00006e90 + adds r0, r1 + ldrb r0, [r0] + cmp r0, 0 + bne _080EFBD0 + movs r0, 0x8 + bl sub_80EEFBC + b _080EFBD6 + .align 2, 0 +_080EFBC8: .4byte gUnknown_083DFEC4 +_080EFBCC: .4byte 0x00006e90 +_080EFBD0: + movs r0, 0x7 + bl sub_80EEFBC +_080EFBD6: + pop {r0} + bx r0 + thumb_func_end sub_80EFBB0 + + thumb_func_start sub_80EFBDC +sub_80EFBDC: @ 80EFBDC + push {r4,lr} + lsls r0, 24 + movs r4, 0x1 + ldr r2, _080EFBFC @ =gUnknown_083DFEC4 + ldr r1, [r2] + ldr r3, _080EFC00 @ =0x00007698 + adds r1, r3 + ldrh r3, [r1] + cmp r0, 0 + beq _080EFC08 + cmp r3, 0xA8 + bls _080EFC04 + adds r0, r3, 0 + subs r0, 0x8 + b _080EFC10 + .align 2, 0 +_080EFBFC: .4byte gUnknown_083DFEC4 +_080EFC00: .4byte 0x00007698 +_080EFC04: + movs r3, 0xA0 + b _080EFC1A +_080EFC08: + cmp r3, 0xF7 + bhi _080EFC16 + adds r0, r3, 0 + adds r0, 0x8 +_080EFC10: + lsls r0, 16 + lsrs r3, r0, 16 + b _080EFC1C +_080EFC16: + movs r3, 0x80 + lsls r3, 1 +_080EFC1A: + movs r4, 0 +_080EFC1C: + ldr r0, [r2] + ldr r1, _080EFC34 @ =0x00007698 + adds r0, r1 + strh r3, [r0] + ldr r1, _080EFC38 @ =REG_BG0VOFS + movs r0, 0xFF + ands r3, r0 + strh r3, [r1] + adds r0, r4, 0 + pop {r4} + pop {r1} + bx r1 + .align 2, 0 +_080EFC34: .4byte 0x00007698 +_080EFC38: .4byte REG_BG0VOFS + thumb_func_end sub_80EFBDC + + thumb_func_start sub_80EFC3C +sub_80EFC3C: @ 80EFC3C + push {lr} + ldr r0, _080EFC58 @ =gUnknown_083DFEC4 + ldr r0, [r0] + ldr r2, _080EFC5C @ =0x0000bc9a + adds r1, r0, r2 + movs r2, 0 + strb r2, [r1] + ldr r1, _080EFC60 @ =0x0000bc9b + adds r0, r1 + strb r2, [r0] + bl sub_80EFD3C + pop {r0} + bx r0 + .align 2, 0 +_080EFC58: .4byte gUnknown_083DFEC4 +_080EFC5C: .4byte 0x0000bc9a +_080EFC60: .4byte 0x0000bc9b + thumb_func_end sub_80EFC3C + + thumb_func_start sub_80EFC64 +sub_80EFC64: @ 80EFC64 + push {r4-r7,lr} + mov r7, r9 + mov r6, r8 + push {r6,r7} + sub sp, 0x8 + ldr r4, _080EFCD0 @ =gUnknown_083DFEC4 + ldr r2, [r4] + ldr r0, _080EFCD4 @ =0x0000bc9a + adds r1, r2, r0 + ldrb r0, [r1] + cmp r0, 0xF + bhi _080EFD2C + ldrb r1, [r1] + mov r8, r1 + ldr r1, _080EFCD8 @ =0x0000bc9b + adds r0, r2, r1 + ldrb r7, [r0] + movs r2, 0 + ldr r0, _080EFCDC @ =gPokenavCityMaps + mov r9, r0 + adds r3, r4, 0 +_080EFC8E: + lsls r0, r2, 2 + mov r4, r8 + lsls r1, r4, 3 + adds r6, r0, r1 + mov r1, r9 + adds r0, r6, r1 + ldr r1, [r0] + cmp r1, 0 + beq _080EFCE8 + movs r0, 0xC8 + adds r5, r7, 0 + muls r5, r0 + ldr r4, _080EFCE0 @ =0x0000bc9c + adds r5, r4 + ldr r4, [r3] + adds r5, r4, r5 + adds r0, r1, 0 + adds r1, r5, 0 + str r2, [sp] + str r3, [sp, 0x4] + bl LZ77UnCompVram + ldr r0, _080EFCE4 @ =0x0000cdcc + adds r4, r0 + adds r4, r6 + str r5, [r4] + adds r0, r7, 0x1 + lsls r0, 16 + lsrs r7, r0, 16 + ldr r2, [sp] + ldr r3, [sp, 0x4] + b _080EFCF2 + .align 2, 0 +_080EFCD0: .4byte gUnknown_083DFEC4 +_080EFCD4: .4byte 0x0000bc9a +_080EFCD8: .4byte 0x0000bc9b +_080EFCDC: .4byte gPokenavCityMaps +_080EFCE0: .4byte 0x0000bc9c +_080EFCE4: .4byte 0x0000cdcc +_080EFCE8: + ldr r0, [r3] + ldr r4, _080EFD1C @ =0x0000cdcc + adds r0, r4 + adds r0, r6 + str r1, [r0] +_080EFCF2: + adds r0, r2, 0x1 + lsls r0, 16 + lsrs r2, r0, 16 + cmp r2, 0x1 + bls _080EFC8E + ldr r0, _080EFD20 @ =gUnknown_083DFEC4 + ldr r2, [r0] + ldr r0, _080EFD24 @ =0x0000bc9a + adds r1, r2, r0 + ldrb r0, [r1] + adds r0, 0x1 + strb r0, [r1] + lsls r0, 24 + lsrs r0, 24 + cmp r0, 0xF + bhi _080EFD2C + ldr r1, _080EFD28 @ =0x0000bc9b + adds r0, r2, r1 + strb r7, [r0] + movs r0, 0x1 + b _080EFD2E + .align 2, 0 +_080EFD1C: .4byte 0x0000cdcc +_080EFD20: .4byte gUnknown_083DFEC4 +_080EFD24: .4byte 0x0000bc9a +_080EFD28: .4byte 0x0000bc9b +_080EFD2C: + movs r0, 0 +_080EFD2E: + add sp, 0x8 + pop {r3,r4} + mov r8, r3 + mov r9, r4 + pop {r4-r7} + pop {r1} + bx r1 + thumb_func_end sub_80EFC64 + + thumb_func_start sub_80EFD3C +sub_80EFD3C: @ 80EFD3C + ldr r0, _080EFD60 @ =gUnknown_083DFEC4 + ldr r1, [r0] + ldr r2, _080EFD64 @ =0x0000769e + adds r0, r1, r2 + movs r2, 0 + strb r2, [r0] + ldr r0, _080EFD68 @ =0x0000769c + adds r3, r1, r0 + movs r0, 0x2F + strb r0, [r3] + ldr r3, _080EFD6C @ =0x0000769d + adds r0, r1, r3 + strb r2, [r0] + ldr r0, _080EFD70 @ =0x0000769a + adds r1, r0 + strh r2, [r1] + bx lr + .align 2, 0 +_080EFD60: .4byte gUnknown_083DFEC4 +_080EFD64: .4byte 0x0000769e +_080EFD68: .4byte 0x0000769c +_080EFD6C: .4byte 0x0000769d +_080EFD70: .4byte 0x0000769a + thumb_func_end sub_80EFD3C + + thumb_func_start sub_80EFD74 +sub_80EFD74: @ 80EFD74 + push {lr} + ldr r0, _080EFD94 @ =gUnknown_083DFEC4 + ldr r2, [r0] + ldr r0, _080EFD98 @ =0x0000769e + adds r1, r2, r0 + movs r0, 0x1 + strb r0, [r1] + ldr r0, _080EFD9C @ =0x0000769d + adds r2, r0 + ldrb r0, [r2] + cmp r0, 0x1 + bne _080EFD90 + movs r0, 0x2 + strb r0, [r2] +_080EFD90: + pop {r0} + bx r0 + .align 2, 0 +_080EFD94: .4byte gUnknown_083DFEC4 +_080EFD98: .4byte 0x0000769e +_080EFD9C: .4byte 0x0000769d + thumb_func_end sub_80EFD74 + + thumb_func_start sub_80EFDA0 +sub_80EFDA0: @ 80EFDA0 + push {r4,lr} + sub sp, 0x14 + ldr r0, _080EFDD4 @ =0x0600f800 + ldr r3, _080EFDD8 @ =gUnknown_08E9AC2C + movs r4, 0 + str r4, [sp] + str r4, [sp, 0x4] + movs r2, 0xF + str r2, [sp, 0x8] + movs r1, 0x1 + str r1, [sp, 0xC] + str r2, [sp, 0x10] + movs r1, 0xE + movs r2, 0x10 + bl sub_8095C8C + ldr r0, _080EFDDC @ =gUnknown_083DFEC4 + ldr r0, [r0] + ldr r1, _080EFDE0 @ =0x0000769e + adds r0, r1 + strb r4, [r0] + add sp, 0x14 + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_080EFDD4: .4byte 0x0600f800 +_080EFDD8: .4byte gUnknown_08E9AC2C +_080EFDDC: .4byte gUnknown_083DFEC4 +_080EFDE0: .4byte 0x0000769e + thumb_func_end sub_80EFDA0 + + thumb_func_start sub_80EFDE4 +sub_80EFDE4: @ 80EFDE4 + push {r4-r7,lr} + mov r7, r9 + mov r6, r8 + push {r6,r7} + sub sp, 0x14 + ldr r0, _080EFE68 @ =gUnknown_083DFEC4 + ldr r1, [r0] + ldr r2, _080EFE6C @ =0x0000769c + adds r0, r1, r2 + ldrb r2, [r0] + movs r0, 0x3C + subs r0, r2 + lsls r0, 16 + lsrs r4, r0, 16 + cmp r4, 0xF + bls _080EFE06 + movs r4, 0xF +_080EFE06: + ldr r3, _080EFE70 @ =0x0000769e + adds r0, r1, r3 + ldrb r0, [r0] + cmp r0, 0 + beq _080EFE58 + ldr r0, _080EFE74 @ =0x0600f800 + mov r8, r0 + ldr r3, _080EFE78 @ =gUnknown_08E9ABB4 + mov r9, r3 + str r2, [sp] + movs r5, 0 + str r5, [sp, 0x4] + str r4, [sp, 0x8] + movs r7, 0x1 + str r7, [sp, 0xC] + movs r6, 0x3C + str r6, [sp, 0x10] + movs r1, 0xE + movs r2, 0x10 + bl sub_8095C8C + cmp r4, 0xE + bhi _080EFE58 + adds r1, r4, 0 + adds r1, 0xE + lsls r1, 16 + lsrs r1, 16 + str r5, [sp] + str r5, [sp, 0x4] + movs r0, 0xF + subs r0, r4 + lsls r0, 16 + lsrs r0, 16 + str r0, [sp, 0x8] + str r7, [sp, 0xC] + str r6, [sp, 0x10] + mov r0, r8 + movs r2, 0x10 + mov r3, r9 + bl sub_8095C8C +_080EFE58: + add sp, 0x14 + pop {r3,r4} + mov r8, r3 + mov r9, r4 + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_080EFE68: .4byte gUnknown_083DFEC4 +_080EFE6C: .4byte 0x0000769c +_080EFE70: .4byte 0x0000769e +_080EFE74: .4byte 0x0600f800 +_080EFE78: .4byte gUnknown_08E9ABB4 + thumb_func_end sub_80EFDE4 + + thumb_func_start sub_80EFE7C +sub_80EFE7C: @ 80EFE7C + push {r4,lr} + ldr r0, _080EFE98 @ =gUnknown_083DFEC4 + ldr r2, [r0] + ldr r0, _080EFE9C @ =0x0000769d + adds r4, r2, r0 + ldrb r1, [r4] + cmp r1, 0x1 + beq _080EFF08 + cmp r1, 0x1 + bgt _080EFEA0 + cmp r1, 0 + beq _080EFEA6 + b _080EFF2E + .align 2, 0 +_080EFE98: .4byte gUnknown_083DFEC4 +_080EFE9C: .4byte 0x0000769d +_080EFEA0: + cmp r1, 0x2 + beq _080EFF24 + b _080EFF2E +_080EFEA6: + ldr r0, _080EFED4 @ =0x0000769c + adds r4, r2, r0 + ldrb r0, [r4] + adds r0, 0x1 + strb r0, [r4] + lsls r0, 24 + lsrs r0, 24 + cmp r0, 0x3B + bls _080EFEBA + strb r1, [r4] +_080EFEBA: + ldr r1, _080EFED8 @ =0x0000769e + adds r0, r2, r1 + ldrb r0, [r0] + bl sub_80EFDE4 + ldrb r0, [r4] + cmp r0, 0xF + beq _080EFEE4 + cmp r0, 0xF + bgt _080EFEDC + cmp r0, 0 + beq _080EFEE4 + b _080EFF2E + .align 2, 0 +_080EFED4: .4byte 0x0000769c +_080EFED8: .4byte 0x0000769e +_080EFEDC: + cmp r0, 0x1E + beq _080EFEE4 + cmp r0, 0x2D + bne _080EFF2E +_080EFEE4: + ldr r0, _080EFEFC @ =gUnknown_083DFEC4 + ldr r1, [r0] + ldr r0, _080EFF00 @ =0x0000769d + adds r2, r1, r0 + movs r3, 0 + movs r0, 0x1 + strb r0, [r2] + ldr r0, _080EFF04 @ =0x0000769a + adds r1, r0 + strh r3, [r1] + b _080EFF2E + .align 2, 0 +_080EFEFC: .4byte gUnknown_083DFEC4 +_080EFF00: .4byte 0x0000769d +_080EFF04: .4byte 0x0000769a +_080EFF08: + ldr r0, _080EFF20 @ =0x0000769a + adds r1, r2, r0 + ldrh r0, [r1] + adds r0, 0x1 + strh r0, [r1] + lsls r0, 16 + lsrs r0, 16 + cmp r0, 0x78 + bls _080EFF2E + movs r0, 0 + strh r0, [r1] + b _080EFF2C + .align 2, 0 +_080EFF20: .4byte 0x0000769a +_080EFF24: + movs r0, 0x1 + bl sub_80EFDE4 + movs r0, 0x1 +_080EFF2C: + strb r0, [r4] +_080EFF2E: + pop {r4} + pop {r0} + bx r0 + thumb_func_end sub_80EFE7C + + thumb_func_start sub_80EFF34 +sub_80EFF34: @ 80EFF34 + push {lr} + ldr r0, _080EFF5C @ =gUnknown_083DFEC4 + ldr r0, [r0] + ldr r1, _080EFF60 @ =0x0000d160 + adds r2, r0, r1 + movs r1, 0 + strh r1, [r2] + ldr r1, _080EFF64 @ =0x00006dac + adds r0, r1 + ldrb r0, [r0] + cmp r0, 0 + bne _080EFF56 +_080EFF4C: + bl sub_80EFF68 + lsls r0, 24 + cmp r0, 0 + bne _080EFF4C +_080EFF56: + pop {r0} + bx r0 + .align 2, 0 +_080EFF5C: .4byte gUnknown_083DFEC4 +_080EFF60: .4byte 0x0000d160 +_080EFF64: .4byte 0x00006dac + thumb_func_end sub_80EFF34 + + thumb_func_start sub_80EFF68 +sub_80EFF68: @ 80EFF68 + push {r4,lr} + sub sp, 0x14 + ldr r0, _080EFF88 @ =gUnknown_083DFEC4 + ldr r0, [r0] + ldr r1, _080EFF8C @ =0x0000d160 + adds r0, r1 + ldrh r0, [r0] + cmp r0, 0xD + bls _080EFF7C + b _080F0150 +_080EFF7C: + lsls r0, 2 + ldr r1, _080EFF90 @ =_080EFF94 + adds r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_080EFF88: .4byte gUnknown_083DFEC4 +_080EFF8C: .4byte 0x0000d160 +_080EFF90: .4byte _080EFF94 + .align 2, 0 +_080EFF94: + .4byte _080EFFCC + .4byte _080EFFE8 + .4byte _080EFFF4 + .4byte _080F0000 + .4byte _080F000C + .4byte _080F0012 + .4byte _080F0018 + .4byte _080F0028 + .4byte _080F003C + .4byte _080F005C + .4byte _080F0098 + .4byte _080F00AC + .4byte _080F00F8 + .4byte _080F0118 +_080EFFCC: + bl sub_80EEDE8 + ldr r0, _080EFFE0 @ =gUnknown_083DFEC4 + ldr r0, [r0] + ldr r2, _080EFFE4 @ =0x0000d162 + adds r0, r2 + movs r1, 0xB + strb r1, [r0] + b _080F0154 + .align 2, 0 +_080EFFE0: .4byte gUnknown_083DFEC4 +_080EFFE4: .4byte 0x0000d162 +_080EFFE8: + ldr r0, _080EFFF0 @ =gWindowConfig_81E7080 + bl SetUpWindowConfig + b _080F0154 + .align 2, 0 +_080EFFF0: .4byte gWindowConfig_81E7080 +_080EFFF4: + ldr r0, _080EFFFC @ =gWindowConfig_81E7080 + bl MultistepInitMenuWindowBegin + b _080F0154 + .align 2, 0 +_080EFFFC: .4byte gWindowConfig_81E7080 +_080F0000: + bl MultistepInitMenuWindowContinue + cmp r0, 0 + beq _080F000A + b _080F0154 +_080F000A: + b _080F0162 +_080F000C: + bl MenuZeroFillScreen + b _080F0154 +_080F0012: + bl sub_80F1614 + b _080F0154 +_080F0018: + movs r0, 0 + bl sub_80F162C + lsls r0, 24 + cmp r0, 0 + bne _080F0026 + b _080F0154 +_080F0026: + b _080F0162 +_080F0028: + ldr r0, _080F0034 @ =gPokenavConditionView_Gfx + ldr r1, _080F0038 @ =0x06005000 + bl LZ77UnCompVram + b _080F0154 + .align 2, 0 +_080F0034: .4byte gPokenavConditionView_Gfx +_080F0038: .4byte 0x06005000 +_080F003C: + ldr r0, _080F0050 @ =gUnknown_08E9AC4C + ldr r1, _080F0054 @ =0x0600f000 + bl LZ77UnCompVram + ldr r0, _080F0058 @ =gPokenavConditionMenu2_Pal + movs r1, 0x20 + movs r2, 0x20 + bl LoadPalette + b _080F0154 + .align 2, 0 +_080F0050: .4byte gUnknown_08E9AC4C +_080F0054: .4byte 0x0600f000 +_080F0058: .4byte gPokenavConditionMenu2_Pal +_080F005C: + ldr r0, _080F0088 @ =gUnknown_083DFEC4 + ldr r0, [r0] + ldr r1, _080F008C @ =0x000076aa + adds r0, r1 + ldrb r0, [r0] + cmp r0, 0x1 + bne _080F0154 + ldr r0, _080F0090 @ =0x0600f000 + ldr r3, _080F0094 @ =gUnknown_083E01AC + movs r1, 0 + str r1, [sp] + str r1, [sp, 0x4] + movs r2, 0x9 + str r2, [sp, 0x8] + movs r1, 0x4 + str r1, [sp, 0xC] + str r2, [sp, 0x10] + movs r1, 0 + movs r2, 0x5 + bl sub_8095C8C + b _080F0154 + .align 2, 0 +_080F0088: .4byte gUnknown_083DFEC4 +_080F008C: .4byte 0x000076aa +_080F0090: .4byte 0x0600f000 +_080F0094: .4byte gUnknown_083E01AC +_080F0098: + ldr r0, _080F00A4 @ =gUnknown_08E9FEB4 + ldr r1, _080F00A8 @ =0x0600b800 + bl LZ77UnCompVram + b _080F0154 + .align 2, 0 +_080F00A4: .4byte gUnknown_08E9FEB4 +_080F00A8: .4byte 0x0600b800 +_080F00AC: + ldr r0, _080F00EC @ =gUnknown_083E0254 + movs r1, 0x30 + movs r2, 0x20 + bl LoadPalette + ldr r0, _080F00F0 @ =gUnknownPalette_81E6692 + movs r1, 0xB0 + movs r2, 0x20 + bl LoadPalette + ldr r4, _080F00F4 @ =gPokenavConditionMenu2_Pal + 0x2 + adds r0, r4, 0 + movs r1, 0xB1 + movs r2, 0x2 + bl LoadPalette + adds r0, r4, 0 + adds r0, 0xE + movs r1, 0xB5 + movs r2, 0x2 + bl LoadPalette + adds r4, 0x1C + adds r0, r4, 0 + movs r1, 0xBF + movs r2, 0x2 + bl LoadPalette + bl sub_80F01A4 + b _080F0154 + .align 2, 0 +_080F00EC: .4byte gUnknown_083E0254 +_080F00F0: .4byte gUnknownPalette_81E6692 +_080F00F4: .4byte gPokenavConditionMenu2_Pal + 0x2 +_080F00F8: + ldr r0, _080F0110 @ =gUnknown_083DFEC4 + ldr r0, [r0] + ldr r2, _080F0114 @ =0x00008fe9 + adds r0, r2 + ldrb r0, [r0] + lsls r0, 24 + asrs r0, 24 + lsls r0, 16 + lsrs r0, 16 + bl sub_80F01E0 + b _080F0154 + .align 2, 0 +_080F0110: .4byte gUnknown_083DFEC4 +_080F0114: .4byte 0x00008fe9 +_080F0118: + ldr r1, _080F013C @ =REG_BG3CNT + ldr r2, _080F0140 @ =0x00001e03 + adds r0, r2, 0 + strh r0, [r1] + subs r1, 0x2 + ldr r2, _080F0144 @ =0x00001702 + adds r0, r2, 0 + strh r0, [r1] + adds r1, 0x44 + ldr r2, _080F0148 @ =0x00000844 + adds r0, r2, 0 + strh r0, [r1] + adds r1, 0x2 + ldr r2, _080F014C @ =0x0000040b + adds r0, r2, 0 + strh r0, [r1] + b _080F0154 + .align 2, 0 +_080F013C: .4byte REG_BG3CNT +_080F0140: .4byte 0x00001e03 +_080F0144: .4byte 0x00001702 +_080F0148: .4byte 0x00000844 +_080F014C: .4byte 0x0000040b +_080F0150: + movs r0, 0 + b _080F0164 +_080F0154: + ldr r0, _080F016C @ =gUnknown_083DFEC4 + ldr r1, [r0] + ldr r0, _080F0170 @ =0x0000d160 + adds r1, r0 + ldrh r0, [r1] + adds r0, 0x1 + strh r0, [r1] +_080F0162: + movs r0, 0x1 +_080F0164: + add sp, 0x14 + pop {r4} + pop {r1} + bx r1 + .align 2, 0 +_080F016C: .4byte gUnknown_083DFEC4 +_080F0170: .4byte 0x0000d160 + thumb_func_end sub_80EFF68 + + thumb_func_start sub_80F0174 +sub_80F0174: @ 80F0174 + push {lr} + lsls r0, 24 + cmp r0, 0 + beq _080F018E + movs r0, 0x80 + lsls r0, 19 + ldrh r1, [r0] + movs r3, 0x80 + lsls r3, 3 + adds r2, r3, 0 + orrs r1, r2 + strh r1, [r0] + b _080F019A +_080F018E: + movs r2, 0x80 + lsls r2, 19 + ldrh r1, [r2] + ldr r0, _080F01A0 @ =0x0000fbff + ands r0, r1 + strh r0, [r2] +_080F019A: + pop {r0} + bx r0 + .align 2, 0 +_080F01A0: .4byte 0x0000fbff + thumb_func_end sub_80F0174 + + thumb_func_start sub_80F01A4 +sub_80F01A4: @ 80F01A4 + ldr r1, _080F01CC @ =REG_WIN0H + movs r0, 0xF0 + strh r0, [r1] + adds r1, 0x2 + movs r0, 0x9B + strh r0, [r1] + ldr r0, _080F01D0 @ =REG_WIN0V + ldr r2, _080F01D4 @ =0x00003879 + adds r1, r2, 0 + strh r1, [r0] + adds r0, 0x2 + strh r1, [r0] + ldr r1, _080F01D8 @ =REG_WININ + ldr r2, _080F01DC @ =0x00003f3f + adds r0, r2, 0 + strh r0, [r1] + adds r1, 0x2 + movs r0, 0x1B + strh r0, [r1] + bx lr + .align 2, 0 +_080F01CC: .4byte REG_WIN0H +_080F01D0: .4byte REG_WIN0V +_080F01D4: .4byte 0x00003879 +_080F01D8: .4byte REG_WININ +_080F01DC: .4byte 0x00003f3f + thumb_func_end sub_80F01A4 + + thumb_func_start sub_80F01E0 +sub_80F01E0: @ 80F01E0 + push {r4,r5,lr} + lsls r0, 16 + lsrs r4, r0, 16 + ldr r1, _080F0248 @ =gUnknown_083DFEC4 + lsls r0, r4, 6 + ldr r2, _080F024C @ =0x00008829 + adds r0, r2 + ldr r5, [r1] + adds r0, r5, r0 + movs r1, 0xD + movs r2, 0x1 + bl MenuPrint + ldr r1, _080F0250 @ =0x000076aa + adds r0, r5, r1 + ldrb r0, [r0] + cmp r0, 0x1 + bne _080F0242 + lsls r0, r4, 1 + adds r0, r4 + lsls r0, 3 + ldr r2, _080F0254 @ =0x000088e9 + adds r0, r2 + adds r0, r5, r0 + movs r1, 0xD + movs r2, 0x3 + bl MenuPrint + ldr r0, _080F0258 @ =0x00008788 + adds r4, r5, r0 + ldr r1, _080F025C @ =0x000087dc + adds r0, r5, r1 + movs r2, 0 + ldrsh r0, [r0, r2] + lsls r0, 2 + adds r0, r5, r0 + ldr r1, _080F0260 @ =0x0000893e + adds r0, r1 + ldrh r1, [r0] + lsls r1, 18 + lsrs r1, 23 + adds r0, r4, 0 + bl sub_80F443C + adds r0, r4, 0 + movs r1, 0x1 + movs r2, 0x6 + bl MenuPrint +_080F0242: + pop {r4,r5} + pop {r0} + bx r0 + .align 2, 0 +_080F0248: .4byte gUnknown_083DFEC4 +_080F024C: .4byte 0x00008829 +_080F0250: .4byte 0x000076aa +_080F0254: .4byte 0x000088e9 +_080F0258: .4byte 0x00008788 +_080F025C: .4byte 0x000087dc +_080F0260: .4byte 0x0000893e + thumb_func_end sub_80F01E0 + + thumb_func_start sub_80F0264 +sub_80F0264: @ 80F0264 + push {lr} + ldr r1, _080F0290 @ =gUnknown_083DFEC4 + ldr r2, [r1] + ldr r1, _080F0294 @ =0x00000306 + adds r3, r2, r1 + movs r1, 0 + strh r1, [r3] + ldr r3, _080F0298 @ =0x000087ca + adds r1, r2, r3 + strb r0, [r1] + ldr r0, _080F029C @ =0x00006dac + adds r2, r0 + ldrb r0, [r2] + cmp r0, 0 + bne _080F028C +_080F0282: + bl sub_80F02A0 + lsls r0, 24 + cmp r0, 0 + bne _080F0282 +_080F028C: + pop {r0} + bx r0 + .align 2, 0 +_080F0290: .4byte gUnknown_083DFEC4 +_080F0294: .4byte 0x00000306 +_080F0298: .4byte 0x000087ca +_080F029C: .4byte 0x00006dac + thumb_func_end sub_80F0264 + + thumb_func_start sub_80F02A0 +sub_80F02A0: @ 80F02A0 + push {r4-r6,lr} + mov r6, r8 + push {r6} + sub sp, 0x18 + ldr r1, _080F02C4 @ =gUnknown_083DFEC4 + ldr r0, [r1] + ldr r2, _080F02C8 @ =0x00000306 + adds r0, r2 + ldrh r0, [r0] + adds r2, r1, 0 + cmp r0, 0xE + bls _080F02BA + b _080F05FA +_080F02BA: + lsls r0, 2 + ldr r1, _080F02CC @ =_080F02D0 + adds r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_080F02C4: .4byte gUnknown_083DFEC4 +_080F02C8: .4byte 0x00000306 +_080F02CC: .4byte _080F02D0 + .align 2, 0 +_080F02D0: + .4byte _080F030C + .4byte _080F0344 + .4byte _080F0350 + .4byte _080F035C + .4byte _080F0368 + .4byte _080F036E + .4byte _080F0380 + .4byte _080F0394 + .4byte _080F04BC + .4byte _080F053C + .4byte _080F0550 + .4byte _080F0574 + .4byte _080F057A + .4byte _080F0586 + .4byte _080F05BC +_080F030C: + bl sub_80EEDE8 + ldr r0, _080F0334 @ =gUnknown_083DFEC4 + ldr r1, [r0] + movs r2, 0 + ldr r3, _080F0338 @ =0x000087ca + adds r0, r1, r3 + ldrb r0, [r0] + cmp r0, 0x1 + bne _080F0322 + movs r2, 0x1 +_080F0322: + ldr r3, _080F033C @ =0x000087c8 + adds r0, r1, r3 + strb r2, [r0] + ldr r0, _080F0340 @ =0x0000d162 + adds r1, r0 + movs r0, 0xB + strb r0, [r1] + b _080F0618 + .align 2, 0 +_080F0334: .4byte gUnknown_083DFEC4 +_080F0338: .4byte 0x000087ca +_080F033C: .4byte 0x000087c8 +_080F0340: .4byte 0x0000d162 +_080F0344: + ldr r0, _080F034C @ =gWindowConfig_81E70D4 + bl SetUpWindowConfig + b _080F0618 + .align 2, 0 +_080F034C: .4byte gWindowConfig_81E70D4 +_080F0350: + ldr r0, _080F0358 @ =gWindowConfig_81E70D4 + bl MultistepInitMenuWindowBegin + b _080F0618 + .align 2, 0 +_080F0358: .4byte gWindowConfig_81E70D4 +_080F035C: + bl MultistepInitMenuWindowContinue + cmp r0, 0 + beq _080F0366 + b _080F0618 +_080F0366: + b _080F0626 +_080F0368: + bl MenuZeroFillScreen + b _080F0618 +_080F036E: + ldr r0, _080F0378 @ =gUnknown_08E9FC64 + ldr r1, _080F037C @ =0x0600e800 + bl LZ77UnCompVram + b _080F0618 + .align 2, 0 +_080F0378: .4byte gUnknown_08E9FC64 +_080F037C: .4byte 0x0600e800 +_080F0380: + ldr r0, _080F038C @ =gPokenavConditionSearch2_Gfx + ldr r1, _080F0390 @ =0x06008000 + bl LZ77UnCompVram + b _080F0618 + .align 2, 0 +_080F038C: .4byte gPokenavConditionSearch2_Gfx +_080F0390: .4byte 0x06008000 +_080F0394: + ldr r6, _080F03FC @ =gUnknown_083E02B4 + adds r0, r6, 0 + movs r1, 0xB0 + movs r2, 0x20 + bl LoadPalette + adds r0, r6, 0 + movs r1, 0xF0 + movs r2, 0x20 + bl LoadPalette + ldr r0, _080F0400 @ =gUnknown_083E0334 + movs r1, 0x40 + movs r2, 0x20 + bl LoadPalette + ldr r0, _080F0404 @ =gUnknown_083DFEC4 + ldr r0, [r0] + ldr r1, _080F0408 @ =0x000087ca + adds r0, r1 + ldrb r0, [r0] + cmp r0, 0 + bne _080F0418 + ldr r4, _080F040C @ =gPokenavConditionSearch2_Pal + adds r0, r4, 0 + movs r1, 0x30 + movs r2, 0x20 + bl LoadPalette + ldr r1, _080F0410 @ =gPlttBufferUnfaded + ldrh r0, [r4, 0xA] + strh r0, [r1] + ldr r0, _080F0414 @ =gUnknownPalette_81E6692 + movs r1, 0xB0 + movs r2, 0x20 + bl LoadPalette + adds r0, r6, 0x2 + movs r1, 0xB1 + movs r2, 0x2 + bl LoadPalette + adds r0, r6, 0 + adds r0, 0x10 + movs r1, 0xB5 + movs r2, 0x2 + bl LoadPalette + adds r4, 0xA + adds r0, r4, 0 + movs r1, 0xBF + b _080F04A8 + .align 2, 0 +_080F03FC: .4byte gUnknown_083E02B4 +_080F0400: .4byte gUnknown_083E0334 +_080F0404: .4byte gUnknown_083DFEC4 +_080F0408: .4byte 0x000087ca +_080F040C: .4byte gPokenavConditionSearch2_Pal +_080F0410: .4byte gPlttBufferUnfaded +_080F0414: .4byte gUnknownPalette_81E6692 +_080F0418: + cmp r0, 0x1 + bne _080F0464 + ldr r4, _080F0458 @ =gUnknown_083E0274 + adds r0, r4, 0 + movs r1, 0x30 + movs r2, 0x20 + bl LoadPalette + ldr r1, _080F045C @ =gPlttBufferUnfaded + ldrh r0, [r4, 0xA] + strh r0, [r1] + ldr r0, _080F0460 @ =gUnknownPalette_81E6692 + movs r1, 0xB0 + movs r2, 0x20 + bl LoadPalette + adds r0, r6, 0x2 + movs r1, 0xB1 + movs r2, 0x2 + bl LoadPalette + adds r0, r6, 0 + adds r0, 0x10 + movs r1, 0xB5 + movs r2, 0x2 + bl LoadPalette + adds r4, 0xA + adds r0, r4, 0 + movs r1, 0xBF + b _080F04A8 + .align 2, 0 +_080F0458: .4byte gUnknown_083E0274 +_080F045C: .4byte gPlttBufferUnfaded +_080F0460: .4byte gUnknownPalette_81E6692 +_080F0464: + ldr r4, _080F04B0 @ =gUnknown_08E9F9E8 + adds r0, r4, 0 + movs r1, 0x30 + movs r2, 0x20 + bl LoadPalette + ldr r1, _080F04B4 @ =gPlttBufferUnfaded + adds r5, r4, 0 + adds r5, 0xA + ldrh r0, [r4, 0xA] + strh r0, [r1] + ldr r0, _080F04B8 @ =gUnknown_083E0314 + movs r1, 0x50 + movs r2, 0x20 + bl LoadPalette + adds r0, r6, 0x2 + movs r1, 0xB1 + movs r2, 0x2 + bl LoadPalette + adds r0, r6, 0 + adds r0, 0x10 + movs r1, 0xB5 + movs r2, 0x2 + bl LoadPalette + adds r0, r5, 0 + movs r1, 0xBF + movs r2, 0x2 + bl LoadPalette + adds r0, r5, 0 + movs r1, 0x5F +_080F04A8: + movs r2, 0x2 + bl LoadPalette + b _080F0618 + .align 2, 0 +_080F04B0: .4byte gUnknown_08E9F9E8 +_080F04B4: .4byte gPlttBufferUnfaded +_080F04B8: .4byte gUnknown_083E0314 +_080F04BC: + ldr r0, _080F04E8 @ =gUnknown_083DFEC4 + ldr r0, [r0] + ldr r2, _080F04EC @ =0x000087ca + adds r0, r2 + ldrb r0, [r0] + cmp r0, 0x2 + beq _080F04F8 + ldr r0, _080F04F0 @ =0x0600e800 + ldr r3, _080F04F4 @ =gUnknown_08E9FD1C + movs r1, 0 + str r1, [sp] + str r1, [sp, 0x4] + movs r2, 0x9 + str r2, [sp, 0x8] + movs r1, 0x4 + str r1, [sp, 0xC] + str r2, [sp, 0x10] + movs r1, 0 + movs r2, 0x5 + bl sub_8095C8C + b _080F0618 + .align 2, 0 +_080F04E8: .4byte gUnknown_083DFEC4 +_080F04EC: .4byte 0x000087ca +_080F04F0: .4byte 0x0600e800 +_080F04F4: .4byte gUnknown_08E9FD1C +_080F04F8: + ldr r3, _080F0530 @ =0x0600e800 + mov r8, r3 + ldr r3, _080F0534 @ =gUnknown_08E9FE54 + movs r4, 0 + str r4, [sp] + str r4, [sp, 0x4] + movs r5, 0xC + str r5, [sp, 0x8] + movs r6, 0xA + str r6, [sp, 0xC] + str r5, [sp, 0x10] + mov r0, r8 + movs r1, 0 + movs r2, 0x4 + bl sub_8095C8C + ldr r3, _080F0538 @ =gUnknown_08E9FD64 + str r4, [sp] + str r4, [sp, 0x4] + str r5, [sp, 0x8] + str r6, [sp, 0xC] + str r5, [sp, 0x10] + mov r0, r8 + movs r1, 0 + movs r2, 0x8 + bl sub_8095C8C + b _080F0618 + .align 2, 0 +_080F0530: .4byte 0x0600e800 +_080F0534: .4byte gUnknown_08E9FE54 +_080F0538: .4byte gUnknown_08E9FD64 +_080F053C: + ldr r0, _080F0548 @ =gUnknown_083E0354 + ldr r1, _080F054C @ =0x06005000 + bl LZ77UnCompVram + b _080F0618 + .align 2, 0 +_080F0548: .4byte gUnknown_083E0354 +_080F054C: .4byte 0x06005000 +_080F0550: + ldr r2, _080F0568 @ =0x0600f800 + add r1, sp, 0x14 + movs r0, 0 + strh r0, [r1] + ldr r0, _080F056C @ =0x040000d4 + str r1, [r0] + str r2, [r0, 0x4] + ldr r1, _080F0570 @ =0x81000400 + str r1, [r0, 0x8] + ldr r0, [r0, 0x8] + b _080F0618 + .align 2, 0 +_080F0568: .4byte 0x0600f800 +_080F056C: .4byte 0x040000d4 +_080F0570: .4byte 0x81000400 +_080F0574: + bl sub_80F0900 + b _080F0618 +_080F057A: + bl sub_80F0944 + lsls r0, 24 + cmp r0, 0 + beq _080F0618 + b _080F0626 +_080F0586: + ldr r0, _080F059C @ =gUnknown_083DFEC4 + ldr r4, [r0] + ldr r1, _080F05A0 @ =0x000087ca + adds r0, r4, r1 + ldrb r0, [r0] + cmp r0, 0x2 + beq _080F05A4 + bl ShowMapNamePopUpWindow + b _080F0618 + .align 2, 0 +_080F059C: .4byte gUnknown_083DFEC4 +_080F05A0: .4byte 0x000087ca +_080F05A4: + movs r0, 0 + bl sub_80F081C + ldr r2, _080F05B8 @ =0x0000876e + adds r0, r4, r2 + ldrb r0, [r0] + bl sub_80F0FFC + b _080F0618 + .align 2, 0 +_080F05B8: .4byte 0x0000876e +_080F05BC: + ldr r1, _080F0600 @ =REG_BG2CNT + ldr r3, _080F0604 @ =0x00001d0a + adds r0, r3, 0 + strh r0, [r1] + adds r1, 0x2 + adds r3, 0xF9 + adds r0, r3, 0 + strh r0, [r1] + subs r1, 0x6 + adds r3, 0xFE + adds r0, r3, 0 + strh r0, [r1] + adds r1, 0x16 + movs r0, 0xF8 + strh r0, [r1] + ldr r1, [r2] + ldr r0, _080F0608 @ =0x00008776 + adds r2, r1, r0 + movs r3, 0 + movs r0, 0xF8 + strh r0, [r2] + ldr r2, _080F060C @ =0x00008778 + adds r0, r1, r2 + strh r3, [r0] + ldr r0, _080F0610 @ =REG_BLDCNT + strh r3, [r0] + ldr r3, _080F0614 @ =0x0000d160 + adds r1, r3 + ldrh r0, [r1] + adds r0, 0x1 + strh r0, [r1] +_080F05FA: + movs r0, 0 + b _080F0628 + .align 2, 0 +_080F0600: .4byte REG_BG2CNT +_080F0604: .4byte 0x00001d0a +_080F0608: .4byte 0x00008776 +_080F060C: .4byte 0x00008778 +_080F0610: .4byte REG_BLDCNT +_080F0614: .4byte 0x0000d160 +_080F0618: + ldr r0, _080F0634 @ =gUnknown_083DFEC4 + ldr r1, [r0] + ldr r0, _080F0638 @ =0x00000306 + adds r1, r0 + ldrh r0, [r1] + adds r0, 0x1 + strh r0, [r1] +_080F0626: + movs r0, 0x1 +_080F0628: + add sp, 0x18 + pop {r3} + mov r8, r3 + pop {r4-r6} + pop {r1} + bx r1 + .align 2, 0 +_080F0634: .4byte gUnknown_083DFEC4 +_080F0638: .4byte 0x00000306 + thumb_func_end sub_80F02A0 + + thumb_func_start sub_80F063C +sub_80F063C: @ 80F063C + push {r4-r7,lr} + lsls r0, 16 + ldr r3, _080F0664 @ =gUnknown_083DFEC4 + ldr r2, [r3] + lsrs r5, r0, 16 + asrs r4, r0, 16 + lsls r1, r4, 4 + ldr r6, _080F0668 @ =0x0000877c + adds r0, r2, r6 + strh r1, [r0] + adds r7, r3, 0 + cmp r4, 0x1 + beq _080F065E + movs r0, 0x1 + negs r0, r0 + cmp r4, r0 + bne _080F066C +_080F065E: + movs r1, 0x4 + b _080F066E + .align 2, 0 +_080F0664: .4byte gUnknown_083DFEC4 +_080F0668: .4byte 0x0000877c +_080F066C: + movs r1, 0x8 +_080F066E: + ldr r3, _080F06C0 @ =0x0000877a + adds r0, r2, r3 + strh r1, [r0] + lsls r0, r5, 16 + asrs r3, r0, 16 + cmp r3, 0 + bge _080F06CC + ldr r4, [r7] + ldr r6, _080F06C0 @ =0x0000877a + adds r1, r4, r6 + movs r2, 0 + ldrsh r0, [r1, r2] + negs r0, r0 + strh r0, [r1] + subs r6, 0x2 + adds r1, r4, r6 + lsls r0, r3, 1 + ldrh r1, [r1] + adds r0, r1 + lsls r0, 16 + lsrs r6, r0, 16 + ldr r1, _080F06C4 @ =0x00008770 + adds r0, r4, r1 + ldrh r0, [r0] + adds r0, r3, r0 + lsls r0, 16 + lsrs r2, r0, 16 + asrs r0, 16 + cmp r0, 0 + bge _080F06B8 + ldr r2, _080F06C8 @ =0x00008774 + adds r1, r4, r2 + adds r0, 0x1 + ldrh r1, [r1] + adds r0, r1 + lsls r0, 16 + lsrs r2, r0, 16 +_080F06B8: + negs r0, r3 + lsls r0, 16 + lsrs r5, r0, 16 + b _080F06E6 + .align 2, 0 +_080F06C0: .4byte 0x0000877a +_080F06C4: .4byte 0x00008770 +_080F06C8: .4byte 0x00008774 +_080F06CC: + ldr r1, [r7] + ldr r3, _080F070C @ =0x00008778 + adds r0, r1, r3 + ldrh r0, [r0] + adds r0, 0x10 + lsls r0, 16 + lsrs r6, r0, 16 + ldr r0, _080F0710 @ =0x00008772 + adds r1, r0 + ldrh r0, [r1] + adds r0, 0x1 + lsls r0, 16 + lsrs r2, r0, 16 +_080F06E6: + ldr r0, [r7] + ldr r1, _080F0714 @ =0x00008774 + adds r0, r1 + lsls r1, r2, 16 + asrs r1, 16 + movs r3, 0 + ldrsh r0, [r0, r3] + cmp r1, r0 + ble _080F06FA + movs r2, 0 +_080F06FA: + movs r1, 0x1F + adds r0, r2, 0 + ands r1, r6 + adds r2, r5, 0 + bl sub_80F0954 + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_080F070C: .4byte 0x00008778 +_080F0710: .4byte 0x00008772 +_080F0714: .4byte 0x00008774 + thumb_func_end sub_80F063C + + thumb_func_start sub_80F0718 +sub_80F0718: @ 80F0718 + push {r4,r5,lr} + bl sub_80F098C + lsls r0, 24 + cmp r0, 0 + bne _080F0790 + ldr r0, _080F073C @ =gUnknown_083DFEC4 + ldr r4, [r0] + ldr r0, _080F0740 @ =0x0000877c + adds r3, r4, r0 + ldrh r2, [r3] + movs r1, 0 + ldrsh r0, [r3, r1] + cmp r0, 0 + bne _080F0744 + movs r0, 0 + b _080F0792 + .align 2, 0 +_080F073C: .4byte gUnknown_083DFEC4 +_080F0740: .4byte 0x0000877c +_080F0744: + ldr r0, _080F0780 @ =0x0000877a + adds r1, r4, r0 + ldrh r0, [r1] + subs r0, r2, r0 + strh r0, [r3] + ldr r0, _080F0784 @ =0x00008776 + adds r2, r4, r0 + ldrh r0, [r1] + ldrh r1, [r2] + adds r0, r1 + movs r5, 0xFF + ands r0, r5 + strh r0, [r2] + ldr r1, _080F0788 @ =REG_BG3VOFS + strh r0, [r1] + movs r1, 0 + ldrsh r0, [r3, r1] + cmp r0, 0 + bne _080F0790 + movs r1, 0 + ldrsh r0, [r2, r1] + adds r0, 0x8 + ands r0, r5 + asrs r1, r0, 3 + ldr r2, _080F078C @ =0x00008778 + adds r0, r4, r2 + strh r1, [r0] + movs r0, 0 + b _080F0792 + .align 2, 0 +_080F0780: .4byte 0x0000877a +_080F0784: .4byte 0x00008776 +_080F0788: .4byte REG_BG3VOFS +_080F078C: .4byte 0x00008778 +_080F0790: + movs r0, 0x1 +_080F0792: + pop {r4,r5} + pop {r1} + bx r1 + thumb_func_end sub_80F0718 + + thumb_func_start ShowMapNamePopUpWindow +ShowMapNamePopUpWindow: @ 80F0798 + push {lr} + ldr r0, _080F07B0 @ =gUnknown_083DFEC4 + ldr r2, [r0] + ldr r1, _080F07B4 @ =0x000087ca + adds r0, r2, r1 + ldrb r0, [r0] + cmp r0, 0 + beq _080F07B8 + cmp r0, 0x1 + beq _080F07E0 + b _080F080A + .align 2, 0 +_080F07B0: .4byte gUnknown_083DFEC4 +_080F07B4: .4byte 0x000087ca +_080F07B8: + ldr r3, _080F07D8 @ =0x00008788 + adds r0, r2, r3 + subs r3, 0x1A + adds r1, r2, r3 + movs r3, 0 + ldrsh r1, [r1, r3] + lsls r1, 2 + adds r1, r2, r1 + ldr r2, _080F07DC @ =0x0000893e + adds r1, r2 + ldrh r1, [r1] + lsls r1, 18 + lsrs r1, 23 + bl sub_80F443C + b _080F07F4 + .align 2, 0 +_080F07D8: .4byte 0x00008788 +_080F07DC: .4byte 0x0000893e +_080F07E0: + ldr r3, _080F0810 @ =0x00008788 + adds r0, r2, r3 + subs r3, 0x1A + adds r1, r2, r3 + ldrh r1, [r1] + adds r1, 0x1 + lsls r1, 16 + lsrs r1, 16 + bl sub_80F445C +_080F07F4: + ldr r0, _080F0814 @ =gWindowConfig_81E710C + bl BasicInitMenuWindow + ldr r0, _080F0818 @ =gUnknown_083DFEC4 + ldr r0, [r0] + ldr r1, _080F0810 @ =0x00008788 + adds r0, r1 + movs r1, 0x1 + movs r2, 0x6 + bl MenuPrint +_080F080A: + pop {r0} + bx r0 + .align 2, 0 +_080F0810: .4byte 0x00008788 +_080F0814: .4byte gWindowConfig_81E710C +_080F0818: .4byte gUnknown_083DFEC4 + thumb_func_end ShowMapNamePopUpWindow + + thumb_func_start sub_80F081C +sub_80F081C: @ 80F081C + push {r4,r5,lr} + lsls r0, 24 + lsrs r5, r0, 24 + ldr r0, _080F0838 @ =gWindowConfig_81E710C + bl BasicInitMenuWindow + cmp r5, 0x4 + bhi _080F08C6 + lsls r0, r5, 2 + ldr r1, _080F083C @ =_080F0840 + adds r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_080F0838: .4byte gWindowConfig_81E710C +_080F083C: .4byte _080F0840 + .align 2, 0 +_080F0840: + .4byte _080F0854 + .4byte _080F0854 + .4byte _080F0862 + .4byte _080F088C + .4byte _080F089A +_080F0854: + ldr r0, _080F08CC @ =gOtherText_NumberRegistered + movs r1, 0xA + movs r2, 0x9 + bl sub_8072B4C + cmp r5, 0 + bne _080F08C6 +_080F0862: + ldr r0, _080F08D0 @ =gUnknown_083DFEC4 + ldr r0, [r0] + ldr r1, _080F08D4 @ =0x00008788 + adds r4, r0, r1 + ldr r2, _080F08D8 @ =0x00008774 + adds r0, r2 + movs r2, 0 + ldrsh r1, [r0, r2] + adds r1, 0x1 + adds r0, r4, 0 + movs r2, 0x1 + movs r3, 0x5 + bl ConvertIntToDecimalStringN + adds r0, r4, 0 + movs r1, 0xA + movs r2, 0xB + bl sub_8072B4C + cmp r5, 0 + bne _080F08C6 +_080F088C: + ldr r0, _080F08DC @ =gOtherText_NumberBattles + movs r1, 0xA + movs r2, 0xD + bl sub_8072B4C + cmp r5, 0 + bne _080F08C6 +_080F089A: + movs r0, 0x9 + bl sub_8053108 + adds r1, r0, 0 + ldr r0, _080F08E0 @ =0x0001869f + cmp r1, r0 + bls _080F08AA + adds r1, r0, 0 +_080F08AA: + ldr r0, _080F08D0 @ =gUnknown_083DFEC4 + ldr r4, [r0] + ldr r0, _080F08D4 @ =0x00008788 + adds r4, r0 + adds r0, r4, 0 + movs r2, 0x1 + movs r3, 0x5 + bl ConvertIntToDecimalStringN + adds r0, r4, 0 + movs r1, 0xA + movs r2, 0xF + bl sub_8072B4C +_080F08C6: + pop {r4,r5} + pop {r0} + bx r0 + .align 2, 0 +_080F08CC: .4byte gOtherText_NumberRegistered +_080F08D0: .4byte gUnknown_083DFEC4 +_080F08D4: .4byte 0x00008788 +_080F08D8: .4byte 0x00008774 +_080F08DC: .4byte gOtherText_NumberBattles +_080F08E0: .4byte 0x0001869f + thumb_func_end sub_80F081C + + thumb_func_start sub_80F08E4 +sub_80F08E4: @ 80F08E4 + push {lr} + ldr r0, _080F08FC @ =gWindowConfig_81E710C + bl BasicInitMenuWindow + movs r0, 0 + movs r1, 0x9 + movs r2, 0xB + movs r3, 0x10 + bl MenuZeroFillWindowRect + pop {r0} + bx r0 + .align 2, 0 +_080F08FC: .4byte gWindowConfig_81E710C + thumb_func_end sub_80F08E4 + + thumb_func_start sub_80F0900 +sub_80F0900: @ 80F0900 + push {r4,r5,lr} + ldr r0, _080F093C @ =gUnknown_083DFEC4 + ldr r0, [r0] + ldr r2, _080F0940 @ =0x00008772 + adds r1, r0, r2 + subs r2, 0x2 + adds r5, r0, r2 + ldrh r0, [r1] + ldrh r1, [r5] + subs r0, r1 + adds r0, 0x1 + lsls r4, r0, 16 + asrs r0, r4, 16 + cmp r0, 0x7 + bgt _080F092A + movs r0, 0xC + movs r1, 0x1 + movs r2, 0x1F + movs r3, 0xF + bl MenuZeroFillWindowRect +_080F092A: + ldrh r0, [r5] + lsrs r2, r4, 16 + movs r1, 0 + bl sub_80F0954 + pop {r4,r5} + pop {r0} + bx r0 + .align 2, 0 +_080F093C: .4byte gUnknown_083DFEC4 +_080F0940: .4byte 0x00008772 + thumb_func_end sub_80F0900 + + thumb_func_start sub_80F0944 +sub_80F0944: @ 80F0944 + push {lr} + bl sub_80F098C + lsls r0, 24 + lsrs r0, 24 + pop {r1} + bx r1 + thumb_func_end sub_80F0944 + + thumb_func_start sub_80F0954 +sub_80F0954: @ 80F0954 + push {r4,r5,lr} + ldr r3, _080F097C @ =gUnknown_083DFEC4 + ldr r3, [r3] + ldr r5, _080F0980 @ =0x0000877e + adds r4, r3, r5 + movs r5, 0 + strh r0, [r4] + ldr r4, _080F0984 @ =0x00008780 + adds r0, r3, r4 + strh r1, [r0] + ldr r1, _080F0988 @ =0x00008784 + adds r0, r3, r1 + strh r2, [r0] + adds r4, 0x6 + adds r3, r4 + strh r5, [r3] + pop {r4,r5} + pop {r0} + bx r0 + .align 2, 0 +_080F097C: .4byte gUnknown_083DFEC4 +_080F0980: .4byte 0x0000877e +_080F0984: .4byte 0x00008780 +_080F0988: .4byte 0x00008784 + thumb_func_end sub_80F0954 + + thumb_func_start sub_80F098C +sub_80F098C: @ 80F098C + push {r4-r7,lr} + mov r7, r8 + push {r7} + ldr r0, _080F09A4 @ =gUnknown_083DFEC4 + ldr r6, [r0] + ldr r0, _080F09A8 @ =0x00008784 + adds r7, r6, r0 + ldrh r0, [r7] + cmp r0, 0 + bne _080F09AC +_080F09A0: + movs r0, 0 + b _080F0A02 + .align 2, 0 +_080F09A4: .4byte gUnknown_083DFEC4 +_080F09A8: .4byte 0x00008784 +_080F09AC: + movs r1, 0 + mov r8, r1 + ldr r1, _080F0A0C @ =gUnknown_083E3270 + ldr r2, _080F0A10 @ =0x000087ca + adds r0, r6, r2 + ldrb r2, [r0] + lsls r2, 2 + adds r2, r1 + ldr r0, _080F0A14 @ =0x0000877e + adds r4, r6, r0 + ldrh r0, [r4] + ldr r1, _080F0A18 @ =0x00008780 + adds r5, r6, r1 + ldrh r1, [r5] + ldr r2, [r2] + bl _call_via_r2 + ldrh r0, [r7] + subs r0, 0x1 + strh r0, [r7] + ldr r2, _080F0A1C @ =0x0000ffff + adds r1, r2, 0 + lsls r0, 16 + cmp r0, 0 + beq _080F09A0 + ldrh r0, [r4] + adds r0, 0x1 + strh r0, [r4] + ands r0, r1 + ldr r2, _080F0A20 @ =0x00008774 + adds r1, r6, r2 + movs r2, 0 + ldrsh r1, [r1, r2] + cmp r0, r1 + ble _080F09F6 + mov r0, r8 + strh r0, [r4] +_080F09F6: + ldrh r0, [r5] + adds r0, 0x2 + movs r1, 0x1F + ands r0, r1 + strh r0, [r5] + movs r0, 0x1 +_080F0A02: + pop {r3} + mov r8, r3 + pop {r4-r7} + pop {r1} + bx r1 + .align 2, 0 +_080F0A0C: .4byte gUnknown_083E3270 +_080F0A10: .4byte 0x000087ca +_080F0A14: .4byte 0x0000877e +_080F0A18: .4byte 0x00008780 +_080F0A1C: .4byte 0x0000ffff +_080F0A20: .4byte 0x00008774 + thumb_func_end sub_80F098C + + thumb_func_start sub_80F0A24 +sub_80F0A24: @ 80F0A24 + push {r4,r5,lr} + lsls r0, 16 + lsrs r3, r0, 16 + lsls r1, 16 + lsrs r5, r1, 16 + ldr r0, _080F0A64 @ =gUnknown_083DFEC4 + ldr r4, [r0] + ldr r1, _080F0A68 @ =0x000087c8 + adds r0, r4, r1 + ldrb r0, [r0] + movs r2, 0x1 + cmp r0, 0 + bne _080F0A40 + movs r2, 0x2 +_080F0A40: + ldr r0, _080F0A6C @ =0x00008788 + adds r4, r0 + adds r0, r4, 0 + adds r1, r3, 0 + bl sub_80F4428 + ldr r0, _080F0A70 @ =gWindowConfig_81E70D4 + bl BasicInitMenuWindow + lsls r2, r5, 24 + lsrs r2, 24 + adds r0, r4, 0 + movs r1, 0xD + bl MenuPrint + pop {r4,r5} + pop {r0} + bx r0 + .align 2, 0 +_080F0A64: .4byte gUnknown_083DFEC4 +_080F0A68: .4byte 0x000087c8 +_080F0A6C: .4byte 0x00008788 +_080F0A70: .4byte gWindowConfig_81E70D4 + thumb_func_end sub_80F0A24 + + thumb_func_start sub_80F0A74 +sub_80F0A74: @ 80F0A74 + push {r4-r7,lr} + sub sp, 0x14 + lsls r0, 16 + lsrs r6, r0, 16 + lsls r1, 16 + lsrs r7, r1, 16 + ldr r0, _080F0ADC @ =gUnknown_083DFEC4 + ldr r5, [r0] + ldr r0, _080F0AE0 @ =0x00008788 + adds r4, r5, r0 + adds r0, r4, 0 + adds r1, r6, 0 + bl sub_80F700C + movs r0, 0x1F + ands r7, r0 + ldr r0, _080F0AE4 @ =gWindowConfig_81E70D4 + bl BasicInitMenuWindow + lsls r2, r7, 3 + adds r0, r4, 0 + movs r1, 0x61 + movs r3, 0 + bl MenuPrint_PixelCoords + ldr r1, _080F0AE8 @ =0x0000d158 + adds r0, r5, r1 + ldrh r0, [r0] + cmp r6, r0 + bcs _080F0AF8 + lsls r0, r6, 3 + adds r0, r5, r0 + ldr r1, _080F0AEC @ =0x0000ceed + adds r0, r1 + ldrb r0, [r0] + cmp r0, 0 + beq _080F0AF8 + ldr r0, _080F0AF0 @ =0x0600f000 + ldr r3, _080F0AF4 @ =gUnknown_083E039C + movs r1, 0 + str r1, [sp] + str r1, [sp, 0x4] + movs r2, 0x1 + str r2, [sp, 0x8] + movs r1, 0x2 + str r1, [sp, 0xC] + str r2, [sp, 0x10] + movs r1, 0x1D + adds r2, r7, 0 + bl sub_8095C8C + b _080F0B14 + .align 2, 0 +_080F0ADC: .4byte gUnknown_083DFEC4 +_080F0AE0: .4byte 0x00008788 +_080F0AE4: .4byte gWindowConfig_81E70D4 +_080F0AE8: .4byte 0x0000d158 +_080F0AEC: .4byte 0x0000ceed +_080F0AF0: .4byte 0x0600f000 +_080F0AF4: .4byte gUnknown_083E039C +_080F0AF8: + ldr r0, _080F0B1C @ =0x0600f000 + ldr r3, _080F0B20 @ =gUnknown_083E03A0 + movs r1, 0 + str r1, [sp] + str r1, [sp, 0x4] + movs r2, 0x1 + str r2, [sp, 0x8] + movs r1, 0x2 + str r1, [sp, 0xC] + str r2, [sp, 0x10] + movs r1, 0x1D + adds r2, r7, 0 + bl sub_8095C8C +_080F0B14: + add sp, 0x14 + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_080F0B1C: .4byte 0x0600f000 +_080F0B20: .4byte gUnknown_083E03A0 + thumb_func_end sub_80F0A74 + + thumb_func_start sub_80F0B24 +sub_80F0B24: @ 80F0B24 + ldr r0, _080F0B38 @ =gUnknown_083DFEC4 + ldr r0, [r0] + ldr r2, _080F0B3C @ =0x0000d15c + adds r1, r0, r2 + movs r2, 0 + strh r2, [r1] + ldr r1, _080F0B40 @ =0x00000306 + adds r0, r1 + strh r2, [r0] + bx lr + .align 2, 0 +_080F0B38: .4byte gUnknown_083DFEC4 +_080F0B3C: .4byte 0x0000d15c +_080F0B40: .4byte 0x00000306 + thumb_func_end sub_80F0B24 + + thumb_func_start sub_80F0B44 +sub_80F0B44: @ 80F0B44 + push {r4-r6,lr} + ldr r0, _080F0B58 @ =gUnknown_083DFEC4 + ldr r5, [r0] + ldr r0, _080F0B5C @ =0x0000d15c + adds r6, r5, r0 + ldrh r0, [r6] + cmp r0, 0x8 + bls _080F0B60 + movs r0, 0 + b _080F0C22 + .align 2, 0 +_080F0B58: .4byte gUnknown_083DFEC4 +_080F0B5C: .4byte 0x0000d15c +_080F0B60: + ldr r0, _080F0BBC @ =0x00000306 + adds r1, r5, r0 + ldrh r0, [r1] + adds r0, 0x1 + strh r0, [r1] + lsls r0, 16 + lsrs r0, 16 + cmp r0, 0x1 + bls _080F0C20 + movs r0, 0 + strh r0, [r1] + ldrh r0, [r6] + cmp r0, 0x7 + bhi _080F0BCC + ldr r0, _080F0BC0 @ =0x00008778 + adds r1, r5, r0 + ldrh r2, [r6] + lsls r0, r2, 1 + ldrh r1, [r1] + adds r4, r0, r1 + movs r0, 0x1F + ands r4, r0 + ldr r1, _080F0BC4 @ =0x0000876c + adds r0, r5, r1 + movs r1, 0 + ldrsh r0, [r0, r1] + cmp r2, r0 + beq _080F0BAA + ldr r0, _080F0BC8 @ =gWindowConfig_81E70D4 + bl BasicInitMenuWindow + adds r1, r4, 0 + adds r3, r1, 0x1 + movs r0, 0xC + movs r2, 0x1F + bl MenuZeroFillWindowRect +_080F0BAA: + ldrh r0, [r6] + cmp r0, 0 + bne _080F0BB4 + bl sub_80F08E4 +_080F0BB4: + ldrh r0, [r6] + adds r0, 0x1 + strh r0, [r6] + b _080F0C20 + .align 2, 0 +_080F0BBC: .4byte 0x00000306 +_080F0BC0: .4byte 0x00008778 +_080F0BC4: .4byte 0x0000876c +_080F0BC8: .4byte gWindowConfig_81E70D4 +_080F0BCC: + ldr r0, _080F0C10 @ =gWindowConfig_81E70D4 + bl BasicInitMenuWindow + ldr r1, _080F0C14 @ =0x00008778 + adds r0, r5, r1 + ldrh r0, [r0] + adds r4, r0, 0 + adds r4, 0x10 + movs r0, 0x1F + ands r4, r0 + movs r5, 0 +_080F0BE2: + adds r3, r4, 0x1 + movs r0, 0xC + adds r1, r4, 0 + movs r2, 0x1F + bl MenuZeroFillWindowRect + adds r4, 0x2 + movs r0, 0x1F + ands r4, r0 + adds r0, r5, 0x1 + lsls r0, 16 + lsrs r5, r0, 16 + cmp r5, 0x7 + bls _080F0BE2 + ldr r0, _080F0C18 @ =gUnknown_083DFEC4 + ldr r1, [r0] + ldr r0, _080F0C1C @ =0x0000d15c + adds r1, r0 + ldrh r0, [r1] + adds r0, 0x1 + strh r0, [r1] + movs r0, 0 + b _080F0C22 + .align 2, 0 +_080F0C10: .4byte gWindowConfig_81E70D4 +_080F0C14: .4byte 0x00008778 +_080F0C18: .4byte gUnknown_083DFEC4 +_080F0C1C: .4byte 0x0000d15c +_080F0C20: + movs r0, 0x1 +_080F0C22: + pop {r4-r6} + pop {r1} + bx r1 + thumb_func_end sub_80F0B44 + + thumb_func_start sub_80F0C28 +sub_80F0C28: @ 80F0C28 + ldr r0, _080F0C3C @ =gUnknown_083DFEC4 + ldr r0, [r0] + ldr r2, _080F0C40 @ =0x0000d15c + adds r1, r0, r2 + movs r2, 0 + strh r2, [r1] + ldr r1, _080F0C44 @ =0x00000306 + adds r0, r1 + strh r2, [r0] + bx lr + .align 2, 0 +_080F0C3C: .4byte gUnknown_083DFEC4 +_080F0C40: .4byte 0x0000d15c +_080F0C44: .4byte 0x00000306 + thumb_func_end sub_80F0C28 + + thumb_func_start sub_80F0C48 +sub_80F0C48: @ 80F0C48 + push {r4-r6,lr} + ldr r0, _080F0C5C @ =gUnknown_083DFEC4 + ldr r4, [r0] + ldr r0, _080F0C60 @ =0x0000d15c + adds r5, r4, r0 + ldrh r0, [r5] + cmp r0, 0x7 + bls _080F0C64 + movs r0, 0 + b _080F0CD2 + .align 2, 0 +_080F0C5C: .4byte gUnknown_083DFEC4 +_080F0C60: .4byte 0x0000d15c +_080F0C64: + ldr r2, _080F0CBC @ =0x00000306 + adds r1, r4, r2 + ldrh r0, [r1] + adds r0, 0x1 + strh r0, [r1] + ldr r2, _080F0CC0 @ =0x0000ffff + adds r6, r2, 0 + lsls r0, 16 + lsrs r0, 16 + cmp r0, 0x1 + bls _080F0CD0 + movs r0, 0 + strh r0, [r1] + ldr r0, _080F0CC4 @ =gWindowConfig_81E70D4 + bl BasicInitMenuWindow + ldr r0, _080F0CC8 @ =0x00008770 + adds r1, r4, r0 + ldrh r0, [r5] + ldrh r1, [r1] + adds r0, r1 + lsls r0, 16 + lsrs r0, 16 + ldr r1, _080F0CCC @ =0x00008778 + adds r2, r4, r1 + ldrh r1, [r5] + lsls r1, 1 + ldrh r2, [r2] + adds r1, r2 + lsls r1, 16 + lsrs r1, 16 + bl sub_80F0A74 + ldrh r0, [r5] + adds r0, 0x1 + strh r0, [r5] + ands r0, r6 + cmp r0, 0x7 + bls _080F0CD0 + movs r0, 0 + bl sub_80F081C + movs r0, 0 + b _080F0CD2 + .align 2, 0 +_080F0CBC: .4byte 0x00000306 +_080F0CC0: .4byte 0x0000ffff +_080F0CC4: .4byte gWindowConfig_81E70D4 +_080F0CC8: .4byte 0x00008770 +_080F0CCC: .4byte 0x00008778 +_080F0CD0: + movs r0, 0x1 +_080F0CD2: + pop {r4-r6} + pop {r1} + bx r1 + thumb_func_end sub_80F0C48 + + thumb_func_start sub_80F0CD8 +sub_80F0CD8: @ 80F0CD8 + push {r4,r5,lr} + ldr r4, _080F0D40 @ =gUnknown_083DFEC4 + ldr r1, [r4] + ldr r2, _080F0D44 @ =0x00000306 + adds r0, r1, r2 + movs r2, 0 + strh r2, [r0] + ldr r3, _080F0D48 @ =0x0000d15c + adds r0, r1, r3 + strh r2, [r0] + ldr r2, _080F0D4C @ =0x0000876e + adds r0, r1, r2 + movs r3, 0 + ldrsh r0, [r0, r3] + lsls r0, 3 + adds r0, r1, r0 + ldr r2, _080F0D50 @ =0x0000ceec + adds r0, r2 + ldrb r0, [r0] + ldr r3, _080F0D54 @ =0x0000d110 + adds r1, r3 + ldr r2, _080F0D58 @ =gTrainerEyeDescriptions + lsls r0, 2 + adds r0, r2 + ldr r0, [r0] + str r0, [r1] + adds r2, r0, 0 + movs r1, 0 + adds r5, r4, 0 + adds r4, r3, 0 +_080F0D14: + ldrb r0, [r2] + adds r3, r1, 0x1 + cmp r0, 0xFF + beq _080F0D24 +_080F0D1C: + adds r2, 0x1 + ldrb r0, [r2] + cmp r0, 0xFF + bne _080F0D1C +_080F0D24: + ldr r0, [r5] + lsls r1, r3, 2 + adds r0, r4 + adds r0, r1 + adds r2, 0x1 + str r2, [r0] + lsls r0, r3, 16 + lsrs r1, r0, 16 + cmp r1, 0x2 + bls _080F0D14 + pop {r4,r5} + pop {r0} + bx r0 + .align 2, 0 +_080F0D40: .4byte gUnknown_083DFEC4 +_080F0D44: .4byte 0x00000306 +_080F0D48: .4byte 0x0000d15c +_080F0D4C: .4byte 0x0000876e +_080F0D50: .4byte 0x0000ceec +_080F0D54: .4byte 0x0000d110 +_080F0D58: .4byte gTrainerEyeDescriptions + thumb_func_end sub_80F0CD8 + + thumb_func_start sub_80F0D5C +sub_80F0D5C: @ 80F0D5C + push {r4,r5,lr} + ldr r0, _080F0D70 @ =gUnknown_083DFEC4 + ldr r4, [r0] + ldr r0, _080F0D74 @ =0x0000d15c + adds r5, r4, r0 + ldrh r0, [r5] + cmp r0, 0x7 + bne _080F0D78 +_080F0D6C: + movs r0, 0 + b _080F0EB0 + .align 2, 0 +_080F0D70: .4byte gUnknown_083DFEC4 +_080F0D74: .4byte 0x0000d15c +_080F0D78: + ldr r0, _080F0DB8 @ =0x00000306 + adds r1, r4, r0 + ldrh r0, [r1] + adds r0, 0x1 + strh r0, [r1] + lsls r0, 16 + lsrs r0, 16 + cmp r0, 0x1 + bhi _080F0D8C + b _080F0EAE +_080F0D8C: + movs r0, 0 + strh r0, [r1] + ldr r0, _080F0DBC @ =gWindowConfig_81E70D4 + bl BasicInitMenuWindow + ldr r0, _080F0DC0 @ =0x00008778 + adds r1, r4, r0 + ldrh r3, [r5] + lsls r0, r3, 1 + adds r0, 0x2 + ldrh r1, [r1] + adds r5, r0, r1 + movs r0, 0x1F + ands r5, r0 + cmp r3, 0x6 + bhi _080F0D6C + lsls r0, r3, 2 + ldr r1, _080F0DC4 @ =_080F0DC8 + adds r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_080F0DB8: .4byte 0x00000306 +_080F0DBC: .4byte gWindowConfig_81E70D4 +_080F0DC0: .4byte 0x00008778 +_080F0DC4: .4byte _080F0DC8 + .align 2, 0 +_080F0DC8: + .4byte _080F0DE4 + .4byte _080F0DF0 + .4byte _080F0E08 + .4byte _080F0E14 + .4byte _080F0E2C + .4byte _080F0E38 + .4byte _080F0E6C +_080F0DE4: + ldr r0, _080F0DEC @ =gOtherText_Strategy + lsls r2, r5, 3 + b _080F0E54 + .align 2, 0 +_080F0DEC: .4byte gOtherText_Strategy +_080F0DF0: + ldr r0, _080F0DFC @ =gUnknown_083DFEC4 + ldr r0, [r0] + ldr r1, _080F0E00 @ =0x00008788 + adds r4, r0, r1 + ldr r1, _080F0E04 @ =0x0000d110 + b _080F0E42 + .align 2, 0 +_080F0DFC: .4byte gUnknown_083DFEC4 +_080F0E00: .4byte 0x00008788 +_080F0E04: .4byte 0x0000d110 +_080F0E08: + ldr r0, _080F0E10 @ =gOtherText_TrainersPokemon + lsls r2, r5, 3 + b _080F0E54 + .align 2, 0 +_080F0E10: .4byte gOtherText_TrainersPokemon +_080F0E14: + ldr r0, _080F0E20 @ =gUnknown_083DFEC4 + ldr r0, [r0] + ldr r1, _080F0E24 @ =0x00008788 + adds r4, r0, r1 + ldr r1, _080F0E28 @ =0x0000d114 + b _080F0E42 + .align 2, 0 +_080F0E20: .4byte gUnknown_083DFEC4 +_080F0E24: .4byte 0x00008788 +_080F0E28: .4byte 0x0000d114 +_080F0E2C: + ldr r0, _080F0E34 @ =gOtherText_SelfIntroduction + lsls r2, r5, 3 + b _080F0E54 + .align 2, 0 +_080F0E34: .4byte gOtherText_SelfIntroduction +_080F0E38: + ldr r0, _080F0E60 @ =gUnknown_083DFEC4 + ldr r0, [r0] + ldr r1, _080F0E64 @ =0x00008788 + adds r4, r0, r1 + ldr r1, _080F0E68 @ =0x0000d118 +_080F0E42: + adds r0, r1 + ldr r1, [r0] + adds r0, r4, 0 + movs r2, 0x88 + movs r3, 0 + bl sub_8072C74 + lsls r2, r5, 3 + adds r0, r4, 0 +_080F0E54: + movs r1, 0x61 + movs r3, 0 + bl MenuPrint_PixelCoords + b _080F0EA0 + .align 2, 0 +_080F0E60: .4byte gUnknown_083DFEC4 +_080F0E64: .4byte 0x00008788 +_080F0E68: .4byte 0x0000d118 +_080F0E6C: + ldr r0, _080F0E94 @ =gUnknown_083DFEC4 + ldr r0, [r0] + ldr r1, _080F0E98 @ =0x00008788 + adds r4, r0, r1 + ldr r1, _080F0E9C @ =0x0000d11c + adds r0, r1 + ldr r1, [r0] + adds r0, r4, 0 + movs r2, 0x88 + movs r3, 0 + bl sub_8072C74 + lsls r2, r5, 3 + adds r0, r4, 0 + movs r1, 0x61 + movs r3, 0 + bl MenuPrint_PixelCoords + b _080F0D6C + .align 2, 0 +_080F0E94: .4byte gUnknown_083DFEC4 +_080F0E98: .4byte 0x00008788 +_080F0E9C: .4byte 0x0000d11c +_080F0EA0: + ldr r0, _080F0EB8 @ =gUnknown_083DFEC4 + ldr r1, [r0] + ldr r0, _080F0EBC @ =0x0000d15c + adds r1, r0 + ldrh r0, [r1] + adds r0, 0x1 + strh r0, [r1] +_080F0EAE: + movs r0, 0x1 +_080F0EB0: + pop {r4,r5} + pop {r1} + bx r1 + .align 2, 0 +_080F0EB8: .4byte gUnknown_083DFEC4 +_080F0EBC: .4byte 0x0000d15c + thumb_func_end sub_80F0D5C + + thumb_func_start sub_80F0EC0 +sub_80F0EC0: @ 80F0EC0 + push {lr} + ldr r0, _080F0EE4 @ =gUnknown_083DFEC4 + ldr r0, [r0] + ldr r2, _080F0EE8 @ =0x00000306 + adds r1, r0, r2 + movs r2, 0 + strh r2, [r1] + ldr r3, _080F0EEC @ =0x0000d15c + adds r1, r0, r3 + strh r2, [r1] + ldr r1, _080F0EF0 @ =0x00008788 + adds r0, r1 + movs r1, 0 + movs r2, 0x10 + bl StringFill + pop {r0} + bx r0 + .align 2, 0 +_080F0EE4: .4byte gUnknown_083DFEC4 +_080F0EE8: .4byte 0x00000306 +_080F0EEC: .4byte 0x0000d15c +_080F0EF0: .4byte 0x00008788 + thumb_func_end sub_80F0EC0 + + thumb_func_start sub_80F0EF4 +sub_80F0EF4: @ 80F0EF4 + push {r4,r5,lr} + ldr r0, _080F0F08 @ =gUnknown_083DFEC4 + ldr r2, [r0] + ldr r0, _080F0F0C @ =0x0000d15c + adds r5, r2, r0 + ldrh r0, [r5] + cmp r0, 0x6 + bls _080F0F10 + movs r0, 0 + b _080F0F52 + .align 2, 0 +_080F0F08: .4byte gUnknown_083DFEC4 +_080F0F0C: .4byte 0x0000d15c +_080F0F10: + ldr r0, _080F0F58 @ =0x00000306 + adds r1, r2, r0 + ldrh r0, [r1] + adds r0, 0x1 + strh r0, [r1] + lsls r0, 16 + lsrs r0, 16 + cmp r0, 0x1 + bls _080F0F50 + movs r0, 0 + strh r0, [r1] + ldr r1, _080F0F5C @ =0x00008778 + adds r0, r2, r1 + ldrh r4, [r5] + lsls r4, 1 + adds r4, 0x2 + ldrh r0, [r0] + adds r4, r0 + movs r0, 0x1F + ands r4, r0 + ldr r0, _080F0F60 @ =gWindowConfig_81E70D4 + bl BasicInitMenuWindow + adds r3, r4, 0x1 + movs r0, 0xC + adds r1, r4, 0 + movs r2, 0x1F + bl MenuZeroFillWindowRect + ldrh r0, [r5] + adds r0, 0x1 + strh r0, [r5] +_080F0F50: + movs r0, 0x1 +_080F0F52: + pop {r4,r5} + pop {r1} + bx r1 + .align 2, 0 +_080F0F58: .4byte 0x00000306 +_080F0F5C: .4byte 0x00008778 +_080F0F60: .4byte gWindowConfig_81E70D4 + thumb_func_end sub_80F0EF4 + + thumb_func_start sub_80F0F64 +sub_80F0F64: @ 80F0F64 + push {r4,lr} + ldr r0, _080F0F90 @ =gUnknown_083DFEC4 + ldr r3, [r0] + ldr r1, _080F0F94 @ =0x0000876c + adds r0, r3, r1 + movs r4, 0 + ldrsh r2, [r0, r4] + lsls r1, r2, 4 + ldr r4, _080F0F98 @ =0x0000877c + adds r0, r3, r4 + strh r1, [r0] + movs r1, 0x8 + cmp r2, 0x1 + bne _080F0F82 + movs r1, 0x4 +_080F0F82: + ldr r2, _080F0F9C @ =0x0000877a + adds r0, r3, r2 + strh r1, [r0] + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_080F0F90: .4byte gUnknown_083DFEC4 +_080F0F94: .4byte 0x0000876c +_080F0F98: .4byte 0x0000877c +_080F0F9C: .4byte 0x0000877a + thumb_func_end sub_80F0F64 + + thumb_func_start sub_80F0FA0 +sub_80F0FA0: @ 80F0FA0 + push {r4,lr} + ldr r0, _080F0FDC @ =gUnknown_083DFEC4 + ldr r3, [r0] + ldr r1, _080F0FE0 @ =0x0000876c + adds r0, r3, r1 + movs r4, 0 + ldrsh r0, [r0, r4] + negs r0, r0 + lsls r0, 16 + asrs r0, 16 + lsls r2, r0, 4 + ldr r4, _080F0FE4 @ =0x0000877c + adds r1, r3, r4 + strh r2, [r1] + movs r1, 0x1 + negs r1, r1 + movs r4, 0x8 + negs r4, r4 + adds r2, r4, 0 + cmp r0, r1 + bne _080F0FD0 + movs r0, 0x4 + negs r0, r0 + adds r2, r0, 0 +_080F0FD0: + ldr r1, _080F0FE8 @ =0x0000877a + adds r0, r3, r1 + strh r2, [r0] + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_080F0FDC: .4byte gUnknown_083DFEC4 +_080F0FE0: .4byte 0x0000876c +_080F0FE4: .4byte 0x0000877c +_080F0FE8: .4byte 0x0000877a + thumb_func_end sub_80F0FA0 + + thumb_func_start sub_80F0FEC +sub_80F0FEC: @ 80F0FEC + push {lr} + bl sub_80F0718 + lsls r0, 24 + lsrs r0, 24 + pop {r1} + bx r1 + thumb_func_end sub_80F0FEC + + thumb_func_start sub_80F0FFC +sub_80F0FFC: @ 80F0FFC + push {r4,r5,lr} + lsls r0, 24 + ldr r1, _080F1048 @ =gUnknown_083DFEC4 + ldr r4, [r1] + ldr r1, _080F104C @ =0x00008788 + adds r5, r4, r1 + lsrs r0, 21 + adds r0, r4, r0 + ldr r1, _080F1050 @ =0x0000ceea + adds r0, r1 + ldrh r1, [r0] + adds r0, r5, 0 + movs r2, 0 + bl sub_80FBFB4 + ldr r0, _080F1054 @ =gWindowConfig_81E710C + bl BasicInitMenuWindow + adds r0, r5, 0 + bl sub_80F19DC + ldr r0, _080F1058 @ =0x0000d138 + adds r4, r0 + adds r0, r4, 0 + adds r1, r5, 0 + movs r2, 0x58 + movs r3, 0x2 + bl sub_8072C74 + adds r0, r4, 0 + movs r1, 0 + movs r2, 0x5 + bl MenuPrint + pop {r4,r5} + pop {r0} + bx r0 + .align 2, 0 +_080F1048: .4byte gUnknown_083DFEC4 +_080F104C: .4byte 0x00008788 +_080F1050: .4byte 0x0000ceea +_080F1054: .4byte gWindowConfig_81E710C +_080F1058: .4byte 0x0000d138 + thumb_func_end sub_80F0FFC + + thumb_func_start sub_80F105C +sub_80F105C: @ 80F105C + push {lr} + ldr r0, _080F1078 @ =gUnknown_083DFEC4 + ldr r1, [r0] + ldr r2, _080F107C @ =0x0000876e + adds r0, r1, r2 + ldrh r0, [r0] + adds r2, 0xA + adds r1, r2 + ldrh r1, [r1] + bl sub_80F0A74 + pop {r0} + bx r0 + .align 2, 0 +_080F1078: .4byte gUnknown_083DFEC4 +_080F107C: .4byte 0x0000876e + thumb_func_end sub_80F105C + + thumb_func_start sub_80F1080 +sub_80F1080: @ 80F1080 + push {r4,lr} + ldr r1, _080F10A0 @ =gUnknown_083DFEC4 + ldr r0, [r1] + ldr r2, _080F10A4 @ =0x0000d160 + adds r0, r2 + ldrh r0, [r0] + adds r2, r1, 0 + cmp r0, 0xE + bls _080F1094 + b _080F1204 +_080F1094: + lsls r0, 2 + ldr r1, _080F10A8 @ =_080F10AC + adds r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_080F10A0: .4byte gUnknown_083DFEC4 +_080F10A4: .4byte 0x0000d160 +_080F10A8: .4byte _080F10AC + .align 2, 0 +_080F10AC: + .4byte _080F10E8 + .4byte _080F1104 + .4byte _080F1110 + .4byte _080F111C + .4byte _080F1128 + .4byte _080F112E + .4byte _080F1134 + .4byte _080F1142 + .4byte _080F1160 + .4byte _080F1166 + .4byte _080F116C + .4byte _080F1180 + .4byte _080F1194 + .4byte _080F11DC + .4byte _080F11E2 +_080F10E8: + bl sub_80EEDE8 + ldr r0, _080F10FC @ =gUnknown_083DFEC4 + ldr r0, [r0] + ldr r3, _080F1100 @ =0x0000d162 + adds r0, r3 + movs r1, 0xB + strb r1, [r0] + b _080F1218 + .align 2, 0 +_080F10FC: .4byte gUnknown_083DFEC4 +_080F1100: .4byte 0x0000d162 +_080F1104: + ldr r0, _080F110C @ =gWindowConfig_81E70B8 + bl SetUpWindowConfig + b _080F1218 + .align 2, 0 +_080F110C: .4byte gWindowConfig_81E70B8 +_080F1110: + ldr r0, _080F1118 @ =gWindowConfig_81E70B8 + bl MultistepInitMenuWindowBegin + b _080F1218 + .align 2, 0 +_080F1118: .4byte gWindowConfig_81E70B8 +_080F111C: + bl MultistepInitMenuWindowContinue + cmp r0, 0 + beq _080F1126 + b _080F1218 +_080F1126: + b _080F1226 +_080F1128: + bl MenuZeroFillScreen + b _080F1218 +_080F112E: + bl sub_80F1614 + b _080F1218 +_080F1134: + movs r0, 0x1 + bl sub_80F162C + lsls r0, 24 + cmp r0, 0 + beq _080F1218 + b _080F1226 +_080F1142: + ldr r0, _080F1154 @ =gUnknown_08E9FBA0 + ldr r1, _080F1158 @ =gUnknown_083DFEC4 + ldr r1, [r1] + ldr r2, _080F115C @ =0x0000934c + adds r1, r2 + bl LZ77UnCompWram + b _080F1218 + .align 2, 0 +_080F1154: .4byte gUnknown_08E9FBA0 +_080F1158: .4byte gUnknown_083DFEC4 +_080F115C: .4byte 0x0000934c +_080F1160: + bl sub_80F1238 + b _080F1218 +_080F1166: + bl sub_80F13FC + b _080F1218 +_080F116C: + ldr r0, _080F1178 @ =gPokenavRibbonView_Gfx + ldr r1, _080F117C @ =0x06008000 + bl LZ77UnCompVram + b _080F1218 + .align 2, 0 +_080F1178: .4byte gPokenavRibbonView_Gfx +_080F117C: .4byte 0x06008000 +_080F1180: + ldr r0, _080F118C @ =gUnknown_083E040C + ldr r1, _080F1190 @ =0x06008200 + bl LZ77UnCompVram + b _080F1218 + .align 2, 0 +_080F118C: .4byte gUnknown_083E040C +_080F1190: .4byte 0x06008200 +_080F1194: + ldr r0, _080F11CC @ =gPokenavRibbonView_Pal + movs r1, 0x20 + movs r2, 0x20 + bl LoadPalette + ldr r4, _080F11D0 @ =gUnknown_083E03A8 + adds r0, r4, 0 + movs r1, 0xF0 + movs r2, 0x20 + bl LoadPalette + ldr r0, _080F11D4 @ =gUnknown_083E3C60 + movs r1, 0x30 + movs r2, 0xA0 + bl LoadPalette + ldr r0, _080F11D8 @ =gUnknownPalette_81E6692 + movs r1, 0xB0 + movs r2, 0x20 + bl LoadPalette + adds r4, 0x1E + adds r0, r4, 0 + movs r1, 0xBF + movs r2, 0x2 + bl LoadPalette + b _080F1218 + .align 2, 0 +_080F11CC: .4byte gPokenavRibbonView_Pal +_080F11D0: .4byte gUnknown_083E03A8 +_080F11D4: .4byte gUnknown_083E3C60 +_080F11D8: .4byte gUnknownPalette_81E6692 +_080F11DC: + bl sub_80F1438 + b _080F1218 +_080F11E2: + ldr r1, _080F1208 @ =REG_BG2CNT + ldr r3, _080F120C @ =0x00001e02 + adds r0, r3, 0 + strh r0, [r1] + adds r1, 0x2 + ldr r3, _080F1210 @ =0x0000170b + adds r0, r3, 0 + strh r0, [r1] + adds r1, 0x42 + movs r0, 0 + strh r0, [r1] + ldr r1, [r2] + ldr r0, _080F1214 @ =0x0000d160 + adds r1, r0 + ldrh r0, [r1] + adds r0, 0x1 + strh r0, [r1] +_080F1204: + movs r0, 0 + b _080F1228 + .align 2, 0 +_080F1208: .4byte REG_BG2CNT +_080F120C: .4byte 0x00001e02 +_080F1210: .4byte 0x0000170b +_080F1214: .4byte 0x0000d160 +_080F1218: + ldr r0, _080F1230 @ =gUnknown_083DFEC4 + ldr r1, [r0] + ldr r2, _080F1234 @ =0x0000d160 + adds r1, r2 + ldrh r0, [r1] + adds r0, 0x1 + strh r0, [r1] +_080F1226: + movs r0, 0x1 +_080F1228: + pop {r4} + pop {r1} + bx r1 + .align 2, 0 +_080F1230: .4byte gUnknown_083DFEC4 +_080F1234: .4byte 0x0000d160 + thumb_func_end sub_80F1080 + + thumb_func_start sub_80F1238 +sub_80F1238: @ 80F1238 + push {r4-r7,lr} + mov r7, r10 + mov r6, r9 + mov r5, r8 + push {r5-r7} + sub sp, 0x8 + movs r6, 0x8B + ldr r0, _080F1318 @ =gUnknown_083DFEC4 + ldr r2, [r0] + ldr r1, _080F131C @ =0x0000bc8e + adds r0, r2, r1 + ldr r3, _080F1320 @ =0x0000bc8f + adds r1, r2, r3 + ldrb r0, [r0] + ldrb r1, [r1] + subs r0, r1 + lsls r0, 24 + lsrs r0, 24 + str r0, [sp, 0x4] + movs r7, 0 + mov r5, sp + adds r4, r2, 0 +_080F1264: + movs r1, 0x80 + lsls r1, 6 + adds r0, r1, 0 + strh r0, [r5] + lsls r1, r7, 5 + adds r1, r6, r1 + lsls r1, 1 + ldr r2, _080F1324 @ =0x0000934c + adds r1, r2 + adds r1, r4, r1 + mov r0, sp + ldr r2, _080F1328 @ =0x01000012 + bl CpuSet + adds r0, r7, 0x1 + lsls r0, 16 + lsrs r7, r0, 16 + cmp r7, 0x7 + bls _080F1264 + ldr r3, [sp, 0x4] + lsls r0, r3, 16 + movs r7, 0 + mov r9, r0 + cmp r0, 0 + beq _080F1342 + ldr r0, _080F1318 @ =gUnknown_083DFEC4 + ldr r0, [r0] + mov r8, r0 + ldr r1, _080F132C @ =gUnknown_083E4698 + mov r10, r1 + ldr r5, _080F1324 @ =0x0000934c + add r5, r8 +_080F12A4: + ldr r0, _080F1330 @ =0x0000bc4c + add r0, r8 + adds r0, r7 + ldrb r1, [r0] + lsls r1, 2 + mov r0, r10 + adds r0, 0x2 + adds r0, r1, r0 + ldrb r2, [r0] + adds r2, 0x3 + lsls r2, 24 + add r1, r10 + ldrh r0, [r1] + lsls r0, 25 + movs r3, 0x80 + lsls r3, 21 + adds r0, r3 + lsrs r4, r0, 24 + lsls r1, r6, 1 + adds r1, r5, r1 + lsrs r2, 12 + adds r0, r2, 0 + orrs r0, r4 + strh r0, [r1] + adds r1, r6, 0x1 + lsls r1, 1 + adds r1, r5, r1 + movs r3, 0x80 + lsls r3, 3 + adds r0, r3, 0 + adds r3, r2, 0 + orrs r3, r0 + adds r0, r3, 0 + orrs r0, r4 + strh r0, [r1] + adds r0, r6, 0 + adds r0, 0x20 + lsls r0, 1 + adds r0, r5, r0 + adds r1, r4, 0x1 + orrs r2, r1 + strh r2, [r0] + adds r0, r6, 0 + adds r0, 0x21 + lsls r0, 1 + adds r0, r5, r0 + orrs r3, r1 + strh r3, [r0] + adds r4, r7, 0x1 + adds r0, r4, 0 + movs r1, 0x9 + bl __modsi3 + cmp r0, 0 + bne _080F1334 + adds r0, r6, 0 + adds r0, 0x30 + b _080F1336 + .align 2, 0 +_080F1318: .4byte gUnknown_083DFEC4 +_080F131C: .4byte 0x0000bc8e +_080F1320: .4byte 0x0000bc8f +_080F1324: .4byte 0x0000934c +_080F1328: .4byte 0x01000012 +_080F132C: .4byte gUnknown_083E4698 +_080F1330: .4byte 0x0000bc4c +_080F1334: + adds r0, r6, 0x2 +_080F1336: + lsls r0, 16 + lsrs r6, r0, 16 + lsls r0, r4, 16 + lsrs r7, r0, 16 + cmp r0, r9 + bcc _080F12A4 +_080F1342: + ldr r6, _080F13E8 @ =0x0000014b + movs r7, 0 + ldr r1, _080F13EC @ =gUnknown_083DFEC4 + ldr r0, [r1] + ldr r2, _080F13F0 @ =0x0000bc8f + adds r1, r0, r2 + ldrb r3, [r1] + cmp r7, r3 + bcs _080F13D8 + subs r2, 0x43 + adds r2, r0 + mov r10, r2 + ldr r3, _080F13F4 @ =gUnknown_083E4698 + mov r8, r3 + ldr r2, _080F13F8 @ =0x0000934c + adds r5, r0, r2 + mov r9, r1 +_080F1364: + ldr r3, [sp, 0x4] + adds r0, r3, r7 + add r0, r10 + ldrb r1, [r0] + lsls r1, 2 + mov r0, r8 + adds r0, 0x2 + adds r0, r1, r0 + ldrb r2, [r0] + adds r2, 0x3 + lsls r2, 24 + add r1, r8 + ldrh r0, [r1] + lsls r0, 25 + movs r1, 0x80 + lsls r1, 21 + adds r0, r1 + lsrs r4, r0, 24 + lsls r1, r6, 1 + adds r1, r5, r1 + lsrs r2, 12 + adds r0, r2, 0 + orrs r0, r4 + strh r0, [r1] + adds r1, r6, 0x1 + lsls r1, 1 + adds r1, r5, r1 + movs r3, 0x80 + lsls r3, 3 + adds r0, r3, 0 + adds r3, r2, 0 + orrs r3, r0 + adds r0, r3, 0 + orrs r0, r4 + strh r0, [r1] + adds r0, r6, 0 + adds r0, 0x20 + lsls r0, 1 + adds r0, r5, r0 + adds r1, r4, 0x1 + orrs r2, r1 + strh r2, [r0] + adds r0, r6, 0 + adds r0, 0x21 + lsls r0, 1 + adds r0, r5, r0 + orrs r3, r1 + strh r3, [r0] + adds r0, r6, 0x2 + lsls r0, 16 + lsrs r6, r0, 16 + adds r0, r7, 0x1 + lsls r0, 16 + lsrs r7, r0, 16 + mov r0, r9 + ldrb r0, [r0] + cmp r7, r0 + bcc _080F1364 +_080F13D8: + add sp, 0x8 + pop {r3-r5} + mov r8, r3 + mov r9, r4 + mov r10, r5 + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_080F13E8: .4byte 0x0000014b +_080F13EC: .4byte gUnknown_083DFEC4 +_080F13F0: .4byte 0x0000bc8f +_080F13F4: .4byte gUnknown_083E4698 +_080F13F8: .4byte 0x0000934c + thumb_func_end sub_80F1238 + + thumb_func_start sub_80F13FC +sub_80F13FC: @ 80F13FC + ldr r0, _080F141C @ =gUnknown_083DFEC4 + ldr r0, [r0] + ldr r1, _080F1420 @ =0x0000934c + adds r0, r1 + ldr r2, _080F1424 @ =0x0600b800 + ldr r1, _080F1428 @ =0x040000d4 + str r0, [r1] + str r2, [r1, 0x4] + ldr r0, _080F142C @ =0x84000140 + str r0, [r1, 0x8] + ldr r0, [r1, 0x8] + ldr r1, _080F1430 @ =gPlttBufferUnfaded + ldr r0, _080F1434 @ =gPokenavRibbonView_Pal + 0x1C + ldrh r0, [r0] + strh r0, [r1] + bx lr + .align 2, 0 +_080F141C: .4byte gUnknown_083DFEC4 +_080F1420: .4byte 0x0000934c +_080F1424: .4byte 0x0600b800 +_080F1428: .4byte 0x040000d4 +_080F142C: .4byte 0x84000140 +_080F1430: .4byte gPlttBufferUnfaded +_080F1434: .4byte gPokenavRibbonView_Pal + 0x1C + thumb_func_end sub_80F13FC + + thumb_func_start sub_80F1438 +sub_80F1438: @ 80F1438 + push {r4,r5,lr} + ldr r0, _080F1470 @ =gUnknown_083DFEC4 + ldr r4, [r0] + ldr r1, _080F1474 @ =0x00008829 + adds r0, r4, r1 + movs r1, 0xD + movs r2, 0x1 + bl MenuPrint + ldr r0, _080F1478 @ =0x00008788 + adds r5, r4, r0 + ldr r1, _080F147C @ =0x0000876e + adds r4, r1 + ldrh r1, [r4] + adds r1, 0x1 + lsls r1, 16 + lsrs r1, 16 + adds r0, r5, 0 + bl sub_80F445C + adds r0, r5, 0 + movs r1, 0x1 + movs r2, 0x5 + bl MenuPrint + pop {r4,r5} + pop {r0} + bx r0 + .align 2, 0 +_080F1470: .4byte gUnknown_083DFEC4 +_080F1474: .4byte 0x00008829 +_080F1478: .4byte 0x00008788 +_080F147C: .4byte 0x0000876e + thumb_func_end sub_80F1438 + + thumb_func_start sub_80F1480 +sub_80F1480: @ 80F1480 + push {lr} + movs r0, 0xC + movs r1, 0xD + movs r2, 0x1B + movs r3, 0x10 + bl MenuZeroFillWindowRect + pop {r0} + bx r0 + thumb_func_end sub_80F1480 + + thumb_func_start sub_80F1494 +sub_80F1494: @ 80F1494 + push {r4-r7,lr} + ldr r0, _080F14D4 @ =gUnknown_083DFEC8 + ldr r0, [r0] + movs r1, 0x80 + lsls r1, 4 + adds r6, r0, r1 + ldr r2, _080F14D8 @ =0x00000a98 + adds r7, r0, r2 + ldr r0, _080F14DC @ =gUnknown_083DFEC4 + ldr r3, [r0] + ldr r4, _080F14E0 @ =0x0000bc91 + adds r1, r3, r4 + ldrb r0, [r1] + cmp r0, 0x2 + bhi _080F14F0 + ldr r5, _080F14E4 @ =gUnknown_020388B4 + adds r1, r0, 0 + lsls r0, r1, 3 + subs r4, 0x1 + adds r2, r3, r4 + adds r0, r1 + ldrb r2, [r2] + adds r0, r2 + strh r0, [r5] + ldr r1, _080F14E8 @ =0x0000bc4c + adds r0, r3, r1 + ldrh r2, [r5] + adds r0, r2 + ldrb r0, [r0] + strh r0, [r5] + ldr r4, _080F14EC @ =gRibbonDescriptions + b _080F152E + .align 2, 0 +_080F14D4: .4byte gUnknown_083DFEC8 +_080F14D8: .4byte 0x00000a98 +_080F14DC: .4byte gUnknown_083DFEC4 +_080F14E0: .4byte 0x0000bc91 +_080F14E4: .4byte gUnknown_020388B4 +_080F14E8: .4byte 0x0000bc4c +_080F14EC: .4byte gRibbonDescriptions +_080F14F0: + ldr r5, _080F1558 @ =gUnknown_020388B4 + ldr r4, _080F155C @ =0x0000bc8e + adds r0, r3, r4 + ldrb r0, [r0] + ldr r2, _080F1560 @ =0x0000bc8f + adds r1, r3, r2 + ldrb r1, [r1] + subs r0, r1 + strh r0, [r5] + ldrh r1, [r5] + adds r4, 0x2 + adds r0, r3, r4 + ldrb r0, [r0] + adds r1, r0 + subs r2, 0x43 + adds r0, r3, r2 + adds r0, r1 + ldrb r0, [r0] + strh r0, [r5] + ldr r0, _080F1564 @ =gSaveBlock1 + ldrh r1, [r5] + adds r0, r1 + ldr r4, _080F1568 @ =0x000030f7 + adds r0, r4 + ldrb r0, [r0] + strh r0, [r5] + cmp r0, 0 + beq _080F1570 + subs r0, 0x1 + strh r0, [r5] + ldr r4, _080F156C @ =gGiftRibbonDescriptions +_080F152E: + ldrh r0, [r5] + lsls r0, 3 + adds r0, r4 + ldr r1, [r0] + adds r0, r6, 0 + movs r2, 0x80 + movs r3, 0 + bl sub_8072C74 + ldrh r0, [r5] + lsls r0, 3 + adds r4, 0x4 + adds r0, r4 + ldr r1, [r0] + adds r0, r7, 0 + movs r2, 0x80 + movs r3, 0 + bl sub_8072C74 + b _080F158A + .align 2, 0 +_080F1558: .4byte gUnknown_020388B4 +_080F155C: .4byte 0x0000bc8e +_080F1560: .4byte 0x0000bc8f +_080F1564: .4byte gSaveBlock1 +_080F1568: .4byte 0x000030f7 +_080F156C: .4byte gGiftRibbonDescriptions +_080F1570: + ldr r4, _080F15A4 @ =gEmptyString_81E72B0 + adds r0, r6, 0 + adds r1, r4, 0 + movs r2, 0x80 + movs r3, 0 + bl sub_8072C74 + adds r0, r7, 0 + adds r1, r4, 0 + movs r2, 0x80 + movs r3, 0 + bl sub_8072C74 +_080F158A: + adds r0, r6, 0 + movs r1, 0xC + movs r2, 0xD + bl MenuPrint + adds r0, r7, 0 + movs r1, 0xC + movs r2, 0xF + bl MenuPrint + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_080F15A4: .4byte gEmptyString_81E72B0 + thumb_func_end sub_80F1494 + + thumb_func_start sub_80F15A8 +sub_80F15A8: @ 80F15A8 + push {r4,r5,lr} + movs r0, 0xC + movs r1, 0xD + movs r2, 0x1B + movs r3, 0x10 + bl MenuZeroFillWindowRect + ldr r0, _080F1600 @ =gUnknown_083DFEC4 + ldr r4, [r0] + ldr r0, _080F1604 @ =0x00008788 + adds r5, r4, r0 + ldr r1, _080F1608 @ =gOtherText_Ribbons + adds r0, r5, 0 + bl StringCopy + adds r2, r0, 0 + movs r0, 0 + strb r0, [r2] + adds r2, 0x1 + ldr r1, _080F160C @ =0x000087dc + adds r0, r4, r1 + movs r1, 0 + ldrsh r0, [r0, r1] + lsls r0, 2 + adds r4, r0 + ldr r0, _080F1610 @ =0x0000893c + adds r4, r0 + ldrb r1, [r4] + adds r0, r2, 0 + movs r2, 0 + movs r3, 0x2 + bl ConvertIntToDecimalStringN + adds r2, r0, 0 + movs r0, 0xFF + strb r0, [r2] + adds r0, r5, 0 + movs r1, 0xC + movs r2, 0xD + bl MenuPrint + pop {r4,r5} + pop {r0} + bx r0 + .align 2, 0 +_080F1600: .4byte gUnknown_083DFEC4 +_080F1604: .4byte 0x00008788 +_080F1608: .4byte gOtherText_Ribbons +_080F160C: .4byte 0x000087dc +_080F1610: .4byte 0x0000893c + thumb_func_end sub_80F15A8 + + thumb_func_start sub_80F1614 +sub_80F1614: @ 80F1614 + ldr r0, _080F1624 @ =gUnknown_083DFEC4 + ldr r0, [r0] + ldr r1, _080F1628 @ =0x00008764 + adds r0, r1 + movs r1, 0 + strh r1, [r0] + bx lr + .align 2, 0 +_080F1624: .4byte gUnknown_083DFEC4 +_080F1628: .4byte 0x00008764 + thumb_func_end sub_80F1614 + + thumb_func_start sub_80F162C +sub_80F162C: @ 80F162C + push {lr} + lsls r0, 24 + lsrs r1, r0, 24 + ldr r0, _080F164C @ =gUnknown_083DFEC4 + ldr r0, [r0] + ldr r2, _080F1650 @ =0x00008764 + adds r0, r2 + ldrh r0, [r0] + cmp r0, 0x1 + beq _080F165E + cmp r0, 0x1 + bgt _080F1654 + cmp r0, 0 + beq _080F16F0 + b _080F16D0 + .align 2, 0 +_080F164C: .4byte gUnknown_083DFEC4 +_080F1650: .4byte 0x00008764 +_080F1654: + cmp r0, 0x2 + beq _080F1670 + cmp r0, 0x3 + beq _080F1694 + b _080F16D0 +_080F165E: + ldr r0, _080F1668 @ =gUnknown_08E9FF58 + ldr r1, _080F166C @ =0x0600e800 + bl LZ77UnCompVram + b _080F16F0 + .align 2, 0 +_080F1668: .4byte gUnknown_08E9FF58 +_080F166C: .4byte 0x0600e800 +_080F1670: + ldr r1, _080F1684 @ =gPokenavRibbonPokeView_Gfx + ldr r2, _080F1688 @ =0x0600e000 + ldr r0, _080F168C @ =0x040000d4 + str r1, [r0] + str r2, [r0, 0x4] + ldr r1, _080F1690 @ =0x80000070 + str r1, [r0, 0x8] + ldr r0, [r0, 0x8] + b _080F16F0 + .align 2, 0 +_080F1684: .4byte gPokenavRibbonPokeView_Gfx +_080F1688: .4byte 0x0600e000 +_080F168C: .4byte 0x040000d4 +_080F1690: .4byte 0x80000070 +_080F1694: + cmp r1, 0 + bne _080F16A8 + ldr r0, _080F16A4 @ =gUnknown_083E0124 + movs r1, 0xD0 + movs r2, 0x20 + bl LoadPalette + b _080F16B2 + .align 2, 0 +_080F16A4: .4byte gUnknown_083E0124 +_080F16A8: + ldr r0, _080F16D4 @ =gUnknown_083E0144 + movs r1, 0xD0 + movs r2, 0x20 + bl LoadPalette +_080F16B2: + ldr r0, _080F16D8 @ =gUnknown_083DFEC4 + ldr r1, [r0] + ldr r3, _080F16DC @ =0x00008766 + adds r2, r1, r3 + ldr r0, _080F16E0 @ =0x0000ffb0 + strh r0, [r2] + ldr r2, _080F16E4 @ =REG_BG0CNT + ldr r3, _080F16E8 @ =0x00001d0d + adds r0, r3, 0 + strh r0, [r2] + ldr r0, _080F16EC @ =0x00008764 + adds r1, r0 + ldrh r0, [r1] + adds r0, 0x1 + strh r0, [r1] +_080F16D0: + movs r0, 0 + b _080F1700 + .align 2, 0 +_080F16D4: .4byte gUnknown_083E0144 +_080F16D8: .4byte gUnknown_083DFEC4 +_080F16DC: .4byte 0x00008766 +_080F16E0: .4byte 0x0000ffb0 +_080F16E4: .4byte REG_BG0CNT +_080F16E8: .4byte 0x00001d0d +_080F16EC: .4byte 0x00008764 +_080F16F0: + ldr r0, _080F1704 @ =gUnknown_083DFEC4 + ldr r1, [r0] + ldr r2, _080F1708 @ =0x00008764 + adds r1, r2 + ldrh r0, [r1] + adds r0, 0x1 + strh r0, [r1] + movs r0, 0x1 +_080F1700: + pop {r1} + bx r1 + .align 2, 0 +_080F1704: .4byte gUnknown_083DFEC4 +_080F1708: .4byte 0x00008764 + thumb_func_end sub_80F162C + + thumb_func_start sub_80F170C +sub_80F170C: @ 80F170C + push {lr} + ldr r0, _080F1734 @ =gUnknown_083DFEC4 + ldr r0, [r0] + ldr r2, _080F1738 @ =0x00008766 + adds r1, r0, r2 + ldrh r0, [r1] + adds r0, 0x10 + strh r0, [r1] + lsls r0, 16 + cmp r0, 0 + ble _080F1726 + movs r0, 0 + strh r0, [r1] +_080F1726: + movs r0, 0 + ldrsh r1, [r1, r0] + negs r0, r1 + orrs r0, r1 + lsrs r0, 31 + pop {r1} + bx r1 + .align 2, 0 +_080F1734: .4byte gUnknown_083DFEC4 +_080F1738: .4byte 0x00008766 + thumb_func_end sub_80F170C + + thumb_func_start sub_80F173C +sub_80F173C: @ 80F173C + push {lr} + ldr r0, _080F176C @ =gUnknown_083DFEC4 + ldr r0, [r0] + ldr r2, _080F1770 @ =0x00008766 + adds r1, r0, r2 + ldrh r0, [r1] + subs r0, 0x10 + strh r0, [r1] + lsls r0, 16 + asrs r0, 16 + movs r2, 0x50 + negs r2, r2 + cmp r0, r2 + bge _080F175C + ldr r0, _080F1774 @ =0x0000ffb0 + strh r0, [r1] +_080F175C: + movs r0, 0 + ldrsh r1, [r1, r0] + eors r1, r2 + negs r0, r1 + orrs r0, r1 + lsrs r0, 31 + pop {r1} + bx r1 + .align 2, 0 +_080F176C: .4byte gUnknown_083DFEC4 +_080F1770: .4byte 0x00008766 +_080F1774: .4byte 0x0000ffb0 + thumb_func_end sub_80F173C + + thumb_func_start sub_80F1778 +sub_80F1778: @ 80F1778 + push {r4,lr} + sub sp, 0x14 + ldr r0, _080F1798 @ =gUnknown_083DFEC4 + ldr r0, [r0] + ldr r1, _080F179C @ =0x0000d160 + adds r0, r1 + ldrh r0, [r0] + cmp r0, 0x9 + bls _080F178C + b _080F1910 +_080F178C: + lsls r0, 2 + ldr r1, _080F17A0 @ =_080F17A4 + adds r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_080F1798: .4byte gUnknown_083DFEC4 +_080F179C: .4byte 0x0000d160 +_080F17A0: .4byte _080F17A4 + .align 2, 0 +_080F17A4: + .4byte _080F17CC + .4byte _080F17E8 + .4byte _080F17EE + .4byte _080F17FE + .4byte _080F1810 + .4byte _080F1830 + .4byte _080F1858 + .4byte _080F186C + .4byte _080F18B8 + .4byte _080F18D8 +_080F17CC: + bl sub_80EEDE8 + ldr r0, _080F17E0 @ =gUnknown_083DFEC4 + ldr r0, [r0] + ldr r2, _080F17E4 @ =0x0000d162 + adds r0, r2 + movs r1, 0x2 + strb r1, [r0] + b _080F1914 + .align 2, 0 +_080F17E0: .4byte gUnknown_083DFEC4 +_080F17E4: .4byte 0x0000d162 +_080F17E8: + bl sub_80F1614 + b _080F1914 +_080F17EE: + movs r0, 0 + bl sub_80F162C + lsls r0, 24 + cmp r0, 0 + bne _080F17FC + b _080F1914 +_080F17FC: + b _080F1922 +_080F17FE: + ldr r0, _080F1808 @ =gPokenavConditionView_Gfx + ldr r1, _080F180C @ =0x06005000 + bl LZ77UnCompVram + b _080F1914 + .align 2, 0 +_080F1808: .4byte gPokenavConditionView_Gfx +_080F180C: .4byte 0x06005000 +_080F1810: + ldr r0, _080F1824 @ =gUnknown_08E9AC4C + ldr r1, _080F1828 @ =0x0600f000 + bl LZ77UnCompVram + ldr r0, _080F182C @ =gPokenavConditionMenu2_Pal + movs r1, 0x20 + movs r2, 0x20 + bl LoadPalette + b _080F1914 + .align 2, 0 +_080F1824: .4byte gUnknown_08E9AC4C +_080F1828: .4byte 0x0600f000 +_080F182C: .4byte gPokenavConditionMenu2_Pal +_080F1830: + ldr r0, _080F1850 @ =0x0600f000 + ldr r3, _080F1854 @ =gUnknown_083E01F4 + movs r1, 0 + str r1, [sp] + str r1, [sp, 0x4] + movs r2, 0xC + str r2, [sp, 0x8] + movs r1, 0x4 + str r1, [sp, 0xC] + str r2, [sp, 0x10] + movs r1, 0 + movs r2, 0xD + bl sub_8095C8C + b _080F1914 + .align 2, 0 +_080F1850: .4byte 0x0600f000 +_080F1854: .4byte gUnknown_083E01F4 +_080F1858: + ldr r0, _080F1864 @ =gUnknown_08E9FEB4 + ldr r1, _080F1868 @ =0x0600b800 + bl LZ77UnCompVram + b _080F1914 + .align 2, 0 +_080F1864: .4byte gUnknown_08E9FEB4 +_080F1868: .4byte 0x0600b800 +_080F186C: + ldr r0, _080F18AC @ =gUnknown_083E0254 + movs r1, 0x30 + movs r2, 0x20 + bl LoadPalette + ldr r0, _080F18B0 @ =gUnknownPalette_81E6692 + movs r1, 0xB0 + movs r2, 0x20 + bl LoadPalette + ldr r4, _080F18B4 @ =gPokenavConditionMenu2_Pal + 0x2 + adds r0, r4, 0 + movs r1, 0xB1 + movs r2, 0x2 + bl LoadPalette + adds r0, r4, 0 + adds r0, 0xE + movs r1, 0xB5 + movs r2, 0x2 + bl LoadPalette + adds r4, 0x1C + adds r0, r4, 0 + movs r1, 0xBF + movs r2, 0x2 + bl LoadPalette + bl sub_80F01A4 + b _080F1914 + .align 2, 0 +_080F18AC: .4byte gUnknown_083E0254 +_080F18B0: .4byte gUnknownPalette_81E6692 +_080F18B4: .4byte gPokenavConditionMenu2_Pal + 0x2 +_080F18B8: + ldr r0, _080F18D0 @ =gUnknown_083DFEC4 + ldr r0, [r0] + ldr r1, _080F18D4 @ =0x00008fe9 + adds r0, r1 + ldrb r0, [r0] + lsls r0, 24 + asrs r0, 24 + lsls r0, 16 + lsrs r0, 16 + bl sub_80F01E0 + b _080F1914 + .align 2, 0 +_080F18D0: .4byte gUnknown_083DFEC4 +_080F18D4: .4byte 0x00008fe9 +_080F18D8: + ldr r1, _080F18FC @ =REG_BG3CNT + ldr r2, _080F1900 @ =0x00001e03 + adds r0, r2, 0 + strh r0, [r1] + subs r1, 0x2 + ldr r2, _080F1904 @ =0x00001702 + adds r0, r2, 0 + strh r0, [r1] + adds r1, 0x44 + ldr r2, _080F1908 @ =0x00000844 + adds r0, r2, 0 + strh r0, [r1] + adds r1, 0x2 + ldr r2, _080F190C @ =0x0000040b + adds r0, r2, 0 + strh r0, [r1] + b _080F1914 + .align 2, 0 +_080F18FC: .4byte REG_BG3CNT +_080F1900: .4byte 0x00001e03 +_080F1904: .4byte 0x00001702 +_080F1908: .4byte 0x00000844 +_080F190C: .4byte 0x0000040b +_080F1910: + movs r0, 0 + b _080F1924 +_080F1914: + ldr r0, _080F192C @ =gUnknown_083DFEC4 + ldr r1, [r0] + ldr r0, _080F1930 @ =0x0000d160 + adds r1, r0 + ldrh r0, [r1] + adds r0, 0x1 + strh r0, [r1] +_080F1922: + movs r0, 0x1 +_080F1924: + add sp, 0x14 + pop {r4} + pop {r1} + bx r1 + .align 2, 0 +_080F192C: .4byte gUnknown_083DFEC4 +_080F1930: .4byte 0x0000d160 + thumb_func_end sub_80F1778 + + thumb_func_start sub_80F1934 +sub_80F1934: @ 80F1934 + push {r4,r5,lr} + ldr r0, _080F1990 @ =gUnknown_083DFEC4 + ldr r1, [r0] + ldr r0, _080F1994 @ =0x00008788 + adds r5, r1, r0 + ldr r3, _080F1998 @ =0x000087dc + adds r2, r1, r3 + movs r3, 0 + ldrsh r0, [r2, r3] + lsls r0, 2 + adds r1, r0 + ldr r0, _080F199C @ =0x0000893f + adds r1, r0 + ldrb r0, [r1] + lsls r0, 25 + cmp r0, 0 + bge _080F19AC + ldrb r0, [r2] + bl sub_8137124 + lsls r0, 24 + lsrs r0, 24 + movs r1, 0x64 + muls r0, r1 + ldr r1, _080F19A0 @ =gPlayerParty + adds r0, r1 + bl GetNature + adds r4, r0, 0 + lsls r4, 24 + lsrs r4, 24 + ldr r1, _080F19A4 @ =gOtherText_Nature2 + adds r0, r5, 0 + bl StringCopy + adds r5, r0, 0 + ldr r0, _080F19A8 @ =gNatureNames + lsls r4, 2 + adds r4, r0 + ldr r1, [r4] + adds r0, r5, 0 + movs r2, 0x57 + movs r3, 0 + bl sub_8072C74 + b _080F19B8 + .align 2, 0 +_080F1990: .4byte gUnknown_083DFEC4 +_080F1994: .4byte 0x00008788 +_080F1998: .4byte 0x000087dc +_080F199C: .4byte 0x0000893f +_080F19A0: .4byte gPlayerParty +_080F19A4: .4byte gOtherText_Nature2 +_080F19A8: .4byte gNatureNames +_080F19AC: + ldr r1, _080F19D0 @ =gEmptyString_81E72B0 + adds r0, r5, 0 + movs r2, 0x57 + movs r3, 0 + bl sub_8072C74 +_080F19B8: + ldr r0, _080F19D4 @ =gUnknown_083DFEC4 + ldr r0, [r0] + ldr r1, _080F19D8 @ =0x00008788 + adds r0, r1 + movs r1, 0x1 + movs r2, 0x70 + movs r3, 0x1 + bl MenuPrint_PixelCoords + pop {r4,r5} + pop {r0} + bx r0 + .align 2, 0 +_080F19D0: .4byte gEmptyString_81E72B0 +_080F19D4: .4byte gUnknown_083DFEC4 +_080F19D8: .4byte 0x00008788 + thumb_func_end sub_80F1934 + + thumb_func_start sub_80F19DC +sub_80F19DC: @ 80F19DC + push {lr} + adds r1, r0, 0 + b _080F19E4 +_080F19E2: + adds r1, 0x1 +_080F19E4: + ldrb r0, [r1] + cmp r0, 0xFF + beq _080F19F8 + cmp r0, 0xFC + bne _080F19E2 + ldrb r0, [r1, 0x1] + cmp r0, 0 + bne _080F19E2 + movs r0, 0xFF + strb r0, [r1] +_080F19F8: + pop {r0} + bx r0 + thumb_func_end sub_80F19DC + + thumb_func_start sub_80F19FC +sub_80F19FC: @ 80F19FC + push {r4,r5,lr} + sub sp, 0x4 + ldr r5, _080F1A68 @ =gUnknown_020388B0 + ldrb r4, [r5] + cmp r4, 0x1 + bne _080F1A60 + ldr r0, _080F1A6C @ =gUnknown_083DFEC4 + ldr r1, [r0] + ldr r2, _080F1A70 @ =0x00006e2c + adds r0, r1, r2 + ldrb r0, [r0] + adds r2, 0x3 + adds r1, r2 + ldrb r1, [r1] + ldrb r2, [r5, 0x1] + bl sub_811A8CC + cmp r0, 0 + beq _080F1A46 + ldrb r2, [r5, 0x1] + lsls r2, 20 + movs r1, 0xC0 + lsls r1, 14 + adds r2, r1 + lsrs r2, 16 + str r4, [sp] + movs r1, 0x70 + movs r3, 0x78 + bl sub_8072A18 + ldrb r0, [r5, 0x1] + adds r0, 0x1 + strb r0, [r5, 0x1] + lsls r0, 24 + lsrs r0, 24 + cmp r0, 0x4 + bne _080F1A60 +_080F1A46: + ldrb r1, [r5, 0x1] + lsls r1, 25 + movs r2, 0xC0 + lsls r2, 19 + adds r1, r2 + lsrs r1, 24 + movs r0, 0xE + movs r2, 0x1C + movs r3, 0xF + bl MenuFillWindowRectWithBlankTile + movs r0, 0 + strb r0, [r5] +_080F1A60: + add sp, 0x4 + pop {r4,r5} + pop {r0} + bx r0 + .align 2, 0 +_080F1A68: .4byte gUnknown_020388B0 +_080F1A6C: .4byte gUnknown_083DFEC4 +_080F1A70: .4byte 0x00006e2c + thumb_func_end sub_80F19FC + + thumb_func_start sub_80F1A74 +sub_80F1A74: @ 80F1A74 + ldr r1, _080F1A7C @ =gUnknown_020388B0 + movs r0, 0 + strb r0, [r1] + bx lr + .align 2, 0 +_080F1A7C: .4byte gUnknown_020388B0 + thumb_func_end sub_80F1A74 + + thumb_func_start sub_80F1A80 +sub_80F1A80: @ 80F1A80 + ldr r0, _080F1A8C @ =gUnknown_020388B0 + movs r2, 0 + movs r1, 0x1 + strb r1, [r0] + strb r2, [r0, 0x1] + bx lr + .align 2, 0 +_080F1A8C: .4byte gUnknown_020388B0 + thumb_func_end sub_80F1A80 + + thumb_func_start sub_80F1A90 +sub_80F1A90: @ 80F1A90 + push {lr} + ldr r0, _080F1AB8 @ =gUnknown_083DFEC4 + ldr r0, [r0] + ldr r1, _080F1ABC @ =0x00000306 + adds r2, r0, r1 + movs r1, 0 + strh r1, [r2] + ldr r1, _080F1AC0 @ =0x00006dac + adds r0, r1 + ldrb r0, [r0] + cmp r0, 0 + bne _080F1AB2 +_080F1AA8: + bl sub_80F1AC4 + lsls r0, 24 + cmp r0, 0 + bne _080F1AA8 +_080F1AB2: + pop {r0} + bx r0 + .align 2, 0 +_080F1AB8: .4byte gUnknown_083DFEC4 +_080F1ABC: .4byte 0x00000306 +_080F1AC0: .4byte 0x00006dac + thumb_func_end sub_80F1A90 + + thumb_func_start sub_80F1AC4 +sub_80F1AC4: @ 80F1AC4 + push {r4,r5,lr} + ldr r0, _080F1AE0 @ =gUnknown_083DFEC4 + ldr r1, [r0] + ldr r2, _080F1AE4 @ =0x00000306 + adds r0, r1, r2 + ldrh r0, [r0] + cmp r0, 0x1 + beq _080F1B34 + cmp r0, 0x1 + bgt _080F1AE8 + cmp r0, 0 + beq _080F1AF2 + b _080F1B6C + .align 2, 0 +_080F1AE0: .4byte gUnknown_083DFEC4 +_080F1AE4: .4byte 0x00000306 +_080F1AE8: + cmp r0, 0x2 + beq _080F1B40 + cmp r0, 0x3 + beq _080F1B54 + b _080F1B6C +_080F1AF2: + movs r0, 0 + movs r2, 0xC8 + lsls r2, 2 + adds r4, r1, r2 + movs r5, 0 +_080F1AFC: + movs r2, 0 + adds r1, r0, 0x1 + lsls r3, r0, 4 +_080F1B02: + lsls r0, r2, 2 + adds r0, r3 + adds r0, r4, r0 + str r5, [r0] + adds r0, r2, 0x1 + lsls r0, 16 + lsrs r2, r0, 16 + cmp r2, 0x3 + bls _080F1B02 + lsls r0, r1, 16 + lsrs r0, 16 + cmp r0, 0x5 + bls _080F1AFC + ldr r0, _080F1B2C @ =gUnknown_083DFEC4 + ldr r0, [r0] + ldr r1, _080F1B30 @ =0x00000311 + adds r0, r1 + movs r1, 0 + strb r1, [r0] + b _080F1B6C + .align 2, 0 +_080F1B2C: .4byte gUnknown_083DFEC4 +_080F1B30: .4byte 0x00000311 +_080F1B34: + ldr r0, _080F1B3C @ =gPokenavMenuOptions_Gfx + movs r2, 0xE2 + lsls r2, 2 + b _080F1B44 + .align 2, 0 +_080F1B3C: .4byte gPokenavMenuOptions_Gfx +_080F1B40: + ldr r0, _080F1B4C @ =gPokenavConditionMenu_Gfx + ldr r2, _080F1B50 @ =0x00001788 +_080F1B44: + adds r1, r2 + bl LZ77UnCompWram + b _080F1B6C + .align 2, 0 +_080F1B4C: .4byte gPokenavConditionMenu_Gfx +_080F1B50: .4byte 0x00001788 +_080F1B54: + ldr r0, _080F1B64 @ =gPokenavConditionSearch_Gfx + ldr r2, _080F1B68 @ =0x00002388 + adds r1, r2 + bl LZ77UnCompWram + movs r0, 0 + b _080F1B7C + .align 2, 0 +_080F1B64: .4byte gPokenavConditionSearch_Gfx +_080F1B68: .4byte 0x00002388 +_080F1B6C: + ldr r0, _080F1B84 @ =gUnknown_083DFEC4 + ldr r1, [r0] + ldr r0, _080F1B88 @ =0x00000306 + adds r1, r0 + ldrh r0, [r1] + adds r0, 0x1 + strh r0, [r1] + movs r0, 0x1 +_080F1B7C: + pop {r4,r5} + pop {r1} + bx r1 + .align 2, 0 +_080F1B84: .4byte gUnknown_083DFEC4 +_080F1B88: .4byte 0x00000306 + thumb_func_end sub_80F1AC4 + + thumb_func_start sub_80F1B8C +sub_80F1B8C: @ 80F1B8C + push {r4,lr} + lsls r0, 24 + lsrs r4, r0, 24 + ldr r0, _080F1BBC @ =gUnknown_083DFEC4 + ldr r0, [r0] + ldr r1, _080F1BC0 @ =0x00000306 + adds r2, r0, r1 + movs r1, 0 + strh r1, [r2] + ldr r1, _080F1BC4 @ =0x00006dac + adds r0, r1 + ldrb r0, [r0] + cmp r0, 0 + bne _080F1BB4 +_080F1BA8: + adds r0, r4, 0 + bl sub_80F1BC8 + lsls r0, 24 + cmp r0, 0 + bne _080F1BA8 +_080F1BB4: + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_080F1BBC: .4byte gUnknown_083DFEC4 +_080F1BC0: .4byte 0x00000306 +_080F1BC4: .4byte 0x00006dac + thumb_func_end sub_80F1B8C + + thumb_func_start sub_80F1BC8 +sub_80F1BC8: @ 80F1BC8 + push {r4-r7,lr} + mov r7, r10 + mov r6, r9 + mov r5, r8 + push {r5-r7} + sub sp, 0xC + lsls r0, 24 + lsrs r0, 24 + mov r9, r0 + ldr r1, _080F1BF4 @ =gUnknown_083DFEC4 + ldr r2, [r1] + ldr r3, _080F1BF8 @ =0x00000306 + adds r0, r2, r3 + ldrh r0, [r0] + adds r3, r1, 0 + cmp r0, 0x1 + beq _080F1C0A + cmp r0, 0x1 + bgt _080F1BFC + cmp r0, 0 + beq _080F1C02 + b _080F1DC4 + .align 2, 0 +_080F1BF4: .4byte gUnknown_083DFEC4 +_080F1BF8: .4byte 0x00000306 +_080F1BFC: + cmp r0, 0x2 + beq _080F1C12 + b _080F1DC4 +_080F1C02: + mov r0, r9 + bl sub_80F2458 + b _080F1DC8 +_080F1C0A: + mov r0, r9 + bl sub_80F2514 + b _080F1DC8 +_080F1C12: + mov r4, r9 + cmp r4, 0x1 + beq _080F1C40 + cmp r4, 0x1 + bgt _080F1C22 + cmp r4, 0 + beq _080F1C2A + b _080F1DC4 +_080F1C22: + mov r5, r9 + cmp r5, 0x2 + beq _080F1C54 + b _080F1DC4 +_080F1C2A: + movs r0, 0x2A + str r0, [sp, 0x4] + movs r1, 0x14 + str r1, [sp, 0x8] + ldr r4, _080F1C3C @ =0x0000030e + adds r1, r2, r4 + movs r0, 0x5 + b _080F1C62 + .align 2, 0 +_080F1C3C: .4byte 0x0000030e +_080F1C40: + movs r5, 0x38 + str r5, [sp, 0x4] + movs r0, 0x14 + str r0, [sp, 0x8] + ldr r4, _080F1C50 @ =0x0000030e + adds r1, r2, r4 + movs r0, 0x3 + b _080F1C62 + .align 2, 0 +_080F1C50: .4byte 0x0000030e +_080F1C54: + movs r5, 0x28 + str r5, [sp, 0x4] + movs r0, 0x10 + str r0, [sp, 0x8] + ldr r4, _080F1CDC @ =0x0000030e + adds r1, r2, r4 + movs r0, 0x6 +_080F1C62: + strb r0, [r1] + movs r5, 0 + str r5, [sp] + mov r8, r5 + adds r1, r3, 0 + ldr r0, [r1] + ldr r2, _080F1CDC @ =0x0000030e + adds r0, r2 + ldrb r0, [r0] + lsls r0, 24 + asrs r0, 24 + cmp r8, r0 + blt _080F1C7E + b _080F1DC8 +_080F1C7E: + ldr r4, [sp, 0x8] + mov r3, r8 + muls r3, r4 + ldr r5, [sp, 0x4] + adds r0, r5, r3 + subs r0, 0x8 + lsls r0, 16 + lsrs r0, 16 + ldr r4, [r1] + mov r2, r8 + lsls r1, r2, 1 + movs r5, 0xC5 + lsls r5, 2 + adds r2, r4, r5 + adds r2, r1 + lsls r1, r0, 8 + adds r0, 0x11 + orrs r1, r0 + strh r1, [r2] + mov r0, r9 + cmp r0, 0 + bne _080F1CF2 + ldr r1, _080F1CE0 @ =0x00006db2 + adds r0, r4, r1 + mov r2, r8 + adds r1, r0, r2 + ldrb r0, [r1] + cmp r0, 0 + bne _080F1CE8 + movs r5, 0 + ldr r0, _080F1CE4 @ =gUnknown_083DFEC4 + ldr r0, [r0] + lsls r2, 4 + movs r3, 0xC8 + lsls r3, 2 + adds r1, r0, r3 + movs r3, 0 +_080F1CC8: + lsls r0, r5, 2 + adds r0, r2 + adds r0, r1, r0 + str r3, [r0] + adds r0, r5, 0x1 + lsls r0, 16 + lsrs r5, r0, 16 + cmp r5, 0x3 + bls _080F1CC8 + b _080F1D92 + .align 2, 0 +_080F1CDC: .4byte 0x0000030e +_080F1CE0: .4byte 0x00006db2 +_080F1CE4: .4byte gUnknown_083DFEC4 +_080F1CE8: + ldrb r0, [r1] + subs r0, 0x1 + lsls r0, 18 + lsrs r0, 16 + str r0, [sp] +_080F1CF2: + movs r5, 0 + ldr r4, [sp, 0x4] + adds r0, r4, r3 + lsls r0, 16 + mov r10, r0 +_080F1CFC: + lsls r6, r5, 5 + movs r0, 0x80 + lsls r0, 1 + adds r7, r6, r0 + lsls r1, r7, 16 + asrs r1, 16 + ldr r0, _080F1DB4 @ =gSpriteTemplate_83E4454 + mov r3, r10 + asrs r2, r3, 16 + movs r3, 0 + bl CreateSprite + lsls r0, 24 + lsrs r3, r0, 24 + cmp r3, 0x40 + beq _080F1DC4 + ldr r0, _080F1DB8 @ =gUnknown_083DFEC4 + ldr r2, [r0] + lsls r1, r5, 2 + mov r4, r8 + lsls r0, r4, 4 + adds r1, r0 + movs r0, 0xC8 + lsls r0, 2 + adds r2, r0 + adds r4, r2, r1 + lsls r0, r3, 4 + adds r0, r3 + lsls r0, 2 + ldr r1, _080F1DBC @ =gSprites + adds r0, r1 + str r0, [r4] + mov r1, r8 + strh r1, [r0, 0x2E] + ldr r0, [r4] + strh r5, [r0, 0x30] + ldr r1, [r4] + adds r0, r6, 0 + adds r0, 0x98 + strh r0, [r1, 0x32] + ldr r0, [r4] + strh r7, [r0, 0x34] + ldr r0, [r4] + ldr r1, [sp] + adds r2, r1, 0x1 + lsls r2, 16 + lsrs r2, 16 + str r2, [sp] + lsls r1, 24 + lsrs r1, 24 + bl StartSpriteAnim + mov r2, r9 + cmp r2, 0x2 + beq _080F1D6E + cmp r2, 0 + bne _080F1D88 +_080F1D6E: + mov r3, r8 + cmp r3, 0x2 + bls _080F1D88 + movs r0, 0x1 + bl IndexOfSpritePaletteTag + ldr r3, [r4] + lsls r0, 4 + ldrb r2, [r3, 0x5] + movs r1, 0xF + ands r1, r2 + orrs r1, r0 + strb r1, [r3, 0x5] +_080F1D88: + adds r0, r5, 0x1 + lsls r0, 16 + lsrs r5, r0, 16 + cmp r5, 0x3 + bls _080F1CFC +_080F1D92: + mov r0, r8 + adds r0, 0x1 + lsls r0, 16 + lsrs r0, 16 + mov r8, r0 + ldr r1, _080F1DB8 @ =gUnknown_083DFEC4 + ldr r0, [r1] + ldr r4, _080F1DC0 @ =0x0000030e + adds r0, r4 + ldrb r0, [r0] + lsls r0, 24 + asrs r0, 24 + cmp r8, r0 + bge _080F1DB0 + b _080F1C7E +_080F1DB0: + b _080F1DC8 + .align 2, 0 +_080F1DB4: .4byte gSpriteTemplate_83E4454 +_080F1DB8: .4byte gUnknown_083DFEC4 +_080F1DBC: .4byte gSprites +_080F1DC0: .4byte 0x0000030e +_080F1DC4: + movs r0, 0 + b _080F1DD8 +_080F1DC8: + ldr r0, _080F1DE8 @ =gUnknown_083DFEC4 + ldr r1, [r0] + ldr r5, _080F1DEC @ =0x00000306 + adds r1, r5 + ldrh r0, [r1] + adds r0, 0x1 + strh r0, [r1] + movs r0, 0x1 +_080F1DD8: + add sp, 0xC + pop {r3-r5} + mov r8, r3 + mov r9, r4 + mov r10, r5 + pop {r4-r7} + pop {r1} + bx r1 + .align 2, 0 +_080F1DE8: .4byte gUnknown_083DFEC4 +_080F1DEC: .4byte 0x00000306 + thumb_func_end sub_80F1BC8 + + thumb_func_start sub_80F1DF0 +sub_80F1DF0: @ 80F1DF0 + push {r4-r6,lr} + movs r2, 0 + ldr r0, _080F1E44 @ =gUnknown_083DFEC4 + ldr r3, [r0] + ldr r0, _080F1E48 @ =0x0000030e + adds r1, r3, r0 + movs r0, 0 + ldrsb r0, [r1, r0] + cmp r2, r0 + bge _080F1E38 + movs r0, 0xC8 + lsls r0, 2 + adds r4, r3, r0 + adds r6, r1, 0 + ldr r5, _080F1E4C @ =sub_80F2218 +_080F1E0E: + movs r1, 0 + adds r3, r2, 0x1 + lsls r2, 4 +_080F1E14: + lsls r0, r1, 2 + adds r0, r2 + adds r0, r4, r0 + ldr r0, [r0] + cmp r0, 0 + beq _080F1E22 + str r5, [r0, 0x1C] +_080F1E22: + adds r0, r1, 0x1 + lsls r0, 16 + lsrs r1, r0, 16 + cmp r1, 0x3 + bls _080F1E14 + lsls r0, r3, 16 + lsrs r2, r0, 16 + movs r0, 0 + ldrsb r0, [r6, r0] + cmp r2, r0 + blt _080F1E0E +_080F1E38: + movs r0, 0x6 + bl PlaySE + pop {r4-r6} + pop {r0} + bx r0 + .align 2, 0 +_080F1E44: .4byte gUnknown_083DFEC4 +_080F1E48: .4byte 0x0000030e +_080F1E4C: .4byte sub_80F2218 + thumb_func_end sub_80F1DF0 + + thumb_func_start sub_80F1E50 +sub_80F1E50: @ 80F1E50 + push {lr} + bl sub_80F22F8 + lsls r0, 24 + cmp r0, 0 + bne _080F1E60 + movs r0, 0x1 + b _080F1E66 +_080F1E60: + bl sub_80F2108 + movs r0, 0 +_080F1E66: + pop {r1} + bx r1 + thumb_func_end sub_80F1E50 + + thumb_func_start sub_80F1E6C +sub_80F1E6C: @ 80F1E6C + push {lr} + bl sub_80F22F8 + movs r1, 0 + lsls r0, 24 + cmp r0, 0 + bne _080F1E7C + movs r1, 0x1 +_080F1E7C: + adds r0, r1, 0 + pop {r1} + bx r1 + thumb_func_end sub_80F1E6C + + thumb_func_start sub_80F1E84 +sub_80F1E84: @ 80F1E84 + push {r4-r7,lr} + mov r7, r8 + push {r7} + ldr r5, _080F1EFC @ =gUnknown_083DFEC4 + ldr r4, [r5] + ldr r1, _080F1F00 @ =0x0000030f + adds r0, r4, r1 + movs r1, 0 + strb r1, [r0] + bl sub_80F2148 + movs r2, 0 + ldr r3, _080F1F04 @ =0x0000030e + adds r1, r4, r3 + movs r0, 0 + ldrsb r0, [r1, r0] + cmp r2, r0 + bge _080F1EF2 + ldr r0, _080F1F08 @ =0x00006dad + adds r7, r4, r0 + adds r6, r1, 0 + mov r8, r5 + ldr r1, _080F1F0C @ =sub_80F2240 + mov r12, r1 +_080F1EB4: + movs r0, 0 + ldrsb r0, [r7, r0] + adds r5, r2, 0x1 + cmp r2, r0 + beq _080F1EE6 + movs r1, 0 + mov r3, r8 + ldr r0, [r3] + lsls r3, r2, 4 + movs r4, 0xC8 + lsls r4, 2 + adds r2, r0, r4 + mov r4, r12 +_080F1ECE: + lsls r0, r1, 2 + adds r0, r3 + adds r0, r2, r0 + ldr r0, [r0] + cmp r0, 0 + beq _080F1EDC + str r4, [r0, 0x1C] +_080F1EDC: + adds r0, r1, 0x1 + lsls r0, 16 + lsrs r1, r0, 16 + cmp r1, 0x3 + bls _080F1ECE +_080F1EE6: + lsls r0, r5, 16 + lsrs r2, r0, 16 + movs r0, 0 + ldrsb r0, [r6, r0] + cmp r2, r0 + blt _080F1EB4 +_080F1EF2: + pop {r3} + mov r8, r3 + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_080F1EFC: .4byte gUnknown_083DFEC4 +_080F1F00: .4byte 0x0000030f +_080F1F04: .4byte 0x0000030e +_080F1F08: .4byte 0x00006dad +_080F1F0C: .4byte sub_80F2240 + thumb_func_end sub_80F1E84 + + thumb_func_start sub_80F1F10 +sub_80F1F10: @ 80F1F10 + push {r4-r7,lr} + mov r7, r8 + push {r7} + ldr r0, _080F1F2C @ =gUnknown_083DFEC4 + ldr r4, [r0] + ldr r1, _080F1F30 @ =0x0000030f + adds r0, r4, r1 + ldrb r0, [r0] + cmp r0, 0 + beq _080F1F34 + cmp r0, 0x1 + beq _080F1FC0 + b _080F1FE4 + .align 2, 0 +_080F1F2C: .4byte gUnknown_083DFEC4 +_080F1F30: .4byte 0x0000030f +_080F1F34: + bl sub_80F2360 + lsls r0, 24 + cmp r0, 0 + beq _080F1FE4 + movs r6, 0 + adds r7, r4, 0 + movs r0, 0xC8 + lsls r0, 2 + adds r0, r7 + mov r8, r0 +_080F1F4A: + lsls r5, r6, 2 + ldr r1, _080F1FAC @ =0x00006dad + adds r0, r7, r1 + ldrb r0, [r0] + lsls r0, 24 + asrs r0, 24 + lsls r0, 4 + adds r0, r5, r0 + add r0, r8 + ldr r4, [r0] + ldrb r0, [r4, 0x1] + movs r1, 0x3 + orrs r0, r1 + strb r0, [r4, 0x1] + ldr r0, _080F1FB0 @ =gUnknown_083E4450 + str r0, [r4, 0x10] + adds r0, r4, 0 + bl InitSpriteAffineAnim + subs r5, 0x6 + strh r5, [r4, 0x36] + movs r1, 0x36 + ldrsh r0, [r4, r1] + lsrs r1, r0, 31 + adds r0, r1 + asrs r0, 1 + strh r0, [r4, 0x36] + movs r1, 0x36 + ldrsh r0, [r4, r1] + lsls r0, 3 + strh r0, [r4, 0x38] + ldr r0, _080F1FB4 @ =sub_80F2240 + str r0, [r4, 0x1C] + adds r0, r6, 0x1 + lsls r0, 16 + lsrs r6, r0, 16 + cmp r6, 0x3 + bls _080F1F4A + bl sub_80F2170 + ldr r0, _080F1FB8 @ =gUnknown_083DFEC4 + ldr r1, [r0] + ldr r0, _080F1FBC @ =0x0000030f + adds r1, r0 + ldrb r0, [r1] + adds r0, 0x1 + strb r0, [r1] + b _080F1FE4 + .align 2, 0 +_080F1FAC: .4byte 0x00006dad +_080F1FB0: .4byte gUnknown_083E4450 +_080F1FB4: .4byte sub_80F2240 +_080F1FB8: .4byte gUnknown_083DFEC4 +_080F1FBC: .4byte 0x0000030f +_080F1FC0: + bl sub_80F23C8 + lsls r0, 24 + cmp r0, 0 + beq _080F1FE4 + bl sub_80F21F8 + movs r0, 0 + bl FreeSpriteTilesByTag + movs r0, 0 + bl FreeSpritePaletteByTag + movs r0, 0x1 + bl FreeSpritePaletteByTag + movs r0, 0 + b _080F1FE6 +_080F1FE4: + movs r0, 0x1 +_080F1FE6: + pop {r3} + mov r8, r3 + pop {r4-r7} + pop {r1} + bx r1 + thumb_func_end sub_80F1F10 + + thumb_func_start sub_80F1FF0 +sub_80F1FF0: @ 80F1FF0 + push {r4,lr} + ldr r0, _080F203C @ =gUnknown_083DFEC4 + ldr r4, [r0] + ldr r1, _080F2040 @ =0x00000311 + adds r0, r4, r1 + ldrb r0, [r0] + cmp r0, 0x1 + bne _080F2058 + ldr r2, _080F2044 @ =REG_WIN0V + ldr r3, _080F2048 @ =0x00006dad + adds r0, r4, r3 + movs r1, 0 + ldrsb r1, [r0, r1] + lsls r1, 1 + movs r3, 0xC5 + lsls r3, 2 + adds r0, r4, r3 + adds r0, r1 + ldrh r0, [r0] + strh r0, [r2] + ldr r3, _080F204C @ =REG_BLDY + ldr r1, _080F2050 @ =gSineTable + ldr r0, _080F2054 @ =0x00000312 + adds r2, r4, r0 + ldrh r0, [r2] + lsls r0, 1 + adds r0, r1 + ldrh r0, [r0] + lsls r0, 16 + asrs r0, 21 + strh r0, [r3] + ldrh r0, [r2] + adds r0, 0x3 + movs r1, 0x7F + ands r0, r1 + strh r0, [r2] + b _080F2078 + .align 2, 0 +_080F203C: .4byte gUnknown_083DFEC4 +_080F2040: .4byte 0x00000311 +_080F2044: .4byte REG_WIN0V +_080F2048: .4byte 0x00006dad +_080F204C: .4byte REG_BLDY +_080F2050: .4byte gSineTable +_080F2054: .4byte 0x00000312 +_080F2058: + cmp r0, 0x2 + bne _080F2078 + ldr r2, _080F2080 @ =REG_BLDALPHA + ldr r1, _080F2084 @ =gUnknown_083E42F8 + ldr r0, _080F2088 @ =0x00000312 + adds r3, r4, r0 + ldrh r0, [r3] + lsls r0, 1 + adds r0, r1 + ldrh r0, [r0] + strh r0, [r2] + ldrh r0, [r3] + cmp r0, 0xE + bhi _080F2078 + adds r0, 0x1 + strh r0, [r3] +_080F2078: + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_080F2080: .4byte REG_BLDALPHA +_080F2084: .4byte gUnknown_083E42F8 +_080F2088: .4byte 0x00000312 + thumb_func_end sub_80F1FF0 + + thumb_func_start sub_80F208C +sub_80F208C: @ 80F208C + push {lr} + bl sub_80F2148 + pop {r0} + bx r0 + thumb_func_end sub_80F208C + + thumb_func_start sub_80F2098 +sub_80F2098: @ 80F2098 + ldr r1, _080F20DC @ =REG_WIN0H + ldr r2, _080F20E0 @ =0x000077f0 + adds r0, r2, 0 + strh r0, [r1] + ldr r2, _080F20E4 @ =REG_WIN0V + ldr r0, _080F20E8 @ =gUnknown_083DFEC4 + ldr r1, [r0] + ldr r3, _080F20EC @ =0x00006dad + adds r0, r1, r3 + ldrb r0, [r0] + lsls r0, 24 + asrs r0, 24 + lsls r0, 1 + movs r3, 0xC5 + lsls r3, 2 + adds r1, r3 + adds r1, r0 + ldrh r0, [r1] + strh r0, [r2] + ldr r1, _080F20F0 @ =REG_WININ + movs r0, 0x3F + strh r0, [r1] + adds r1, 0x2 + movs r0, 0x1F + strh r0, [r1] + subs r2, 0x44 + ldrh r0, [r2] + movs r3, 0x80 + lsls r3, 6 + adds r1, r3, 0 + orrs r0, r1 + strh r0, [r2] + bx lr + .align 2, 0 +_080F20DC: .4byte REG_WIN0H +_080F20E0: .4byte 0x000077f0 +_080F20E4: .4byte REG_WIN0V +_080F20E8: .4byte gUnknown_083DFEC4 +_080F20EC: .4byte 0x00006dad +_080F20F0: .4byte REG_WININ + thumb_func_end sub_80F2098 + + thumb_func_start sub_80F20F4 +sub_80F20F4: @ 80F20F4 + movs r2, 0x80 + lsls r2, 19 + ldrh r1, [r2] + ldr r0, _080F2104 @ =0x0000dfff + ands r0, r1 + strh r0, [r2] + bx lr + .align 2, 0 +_080F2104: .4byte 0x0000dfff + thumb_func_end sub_80F20F4 + + thumb_func_start sub_80F2108 +sub_80F2108: @ 80F2108 + push {lr} + ldr r0, _080F2134 @ =gUnknown_083DFEC4 + ldr r3, [r0] + ldr r0, _080F2138 @ =0x00000311 + adds r1, r3, r0 + ldrb r2, [r1] + cmp r2, 0 + bne _080F2130 + movs r0, 0x1 + strb r0, [r1] + ldr r1, _080F213C @ =0x00000312 + adds r0, r3, r1 + strh r2, [r0] + ldr r1, _080F2140 @ =REG_BLDCNT + movs r0, 0x90 + strh r0, [r1] + ldr r0, _080F2144 @ =REG_BLDY + strh r2, [r0] + bl sub_80F2098 +_080F2130: + pop {r0} + bx r0 + .align 2, 0 +_080F2134: .4byte gUnknown_083DFEC4 +_080F2138: .4byte 0x00000311 +_080F213C: .4byte 0x00000312 +_080F2140: .4byte REG_BLDCNT +_080F2144: .4byte REG_BLDY + thumb_func_end sub_80F2108 + + thumb_func_start sub_80F2148 +sub_80F2148: @ 80F2148 + push {lr} + ldr r0, _080F2164 @ =gUnknown_083DFEC4 + ldr r0, [r0] + ldr r1, _080F2168 @ =0x00000311 + adds r0, r1 + movs r1, 0 + strb r1, [r0] + ldr r0, _080F216C @ =REG_BLDCNT + strh r1, [r0] + bl sub_80F20F4 + pop {r0} + bx r0 + .align 2, 0 +_080F2164: .4byte gUnknown_083DFEC4 +_080F2168: .4byte 0x00000311 +_080F216C: .4byte REG_BLDCNT + thumb_func_end sub_80F2148 + + thumb_func_start sub_80F2170 +sub_80F2170: @ 80F2170 + push {r4-r7,lr} + ldr r7, _080F21E4 @ =gUnknown_083DFEC4 + ldr r4, [r7] + ldr r1, _080F21E8 @ =0x00000311 + adds r0, r4, r1 + ldrb r0, [r0] + cmp r0, 0 + bne _080F21DC + bl sub_80F20F4 + movs r3, 0 + ldr r2, _080F21EC @ =0x00006dad + adds r5, r4, r2 + movs r0, 0xC8 + lsls r0, 2 + adds r4, r0 + movs r1, 0xD + negs r1, r1 + mov r12, r1 + movs r6, 0x4 +_080F2198: + lsls r1, r3, 2 + movs r0, 0 + ldrsb r0, [r5, r0] + lsls r0, 4 + adds r1, r0 + adds r1, r4, r1 + ldr r2, [r1] + ldrb r1, [r2, 0x1] + mov r0, r12 + ands r0, r1 + orrs r0, r6 + strb r0, [r2, 0x1] + adds r0, r3, 0x1 + lsls r0, 16 + lsrs r3, r0, 16 + cmp r3, 0x3 + bls _080F2198 + ldr r1, [r7] + ldr r0, _080F21E8 @ =0x00000311 + adds r2, r1, r0 + movs r3, 0 + movs r0, 0x2 + strb r0, [r2] + ldr r2, _080F21F0 @ =0x00000312 + adds r1, r2 + strh r3, [r1] + ldr r1, _080F21F4 @ =REG_BLDCNT + movs r2, 0xFD + lsls r2, 6 + adds r0, r2, 0 + strh r0, [r1] + adds r1, 0x2 + movs r0, 0x10 + strh r0, [r1] +_080F21DC: + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_080F21E4: .4byte gUnknown_083DFEC4 +_080F21E8: .4byte 0x00000311 +_080F21EC: .4byte 0x00006dad +_080F21F0: .4byte 0x00000312 +_080F21F4: .4byte REG_BLDCNT + thumb_func_end sub_80F2170 + + thumb_func_start sub_80F21F8 +sub_80F21F8: @ 80F21F8 + ldr r0, _080F220C @ =gUnknown_083DFEC4 + ldr r0, [r0] + ldr r1, _080F2210 @ =0x00000311 + adds r0, r1 + movs r1, 0 + strb r1, [r0] + ldr r0, _080F2214 @ =REG_BLDCNT + strh r1, [r0] + bx lr + .align 2, 0 +_080F220C: .4byte gUnknown_083DFEC4 +_080F2210: .4byte 0x00000311 +_080F2214: .4byte REG_BLDCNT + thumb_func_end sub_80F21F8 + + thumb_func_start sub_80F2218 +sub_80F2218: @ 80F2218 + push {r4,lr} + adds r2, r0, 0 + ldrh r0, [r2, 0x20] + subs r0, 0x8 + strh r0, [r2, 0x20] + lsls r0, 16 + asrs r0, 16 + ldrh r3, [r2, 0x32] + movs r4, 0x32 + ldrsh r1, [r2, r4] + cmp r0, r1 + bgt _080F2236 + strh r3, [r2, 0x20] + ldr r0, _080F223C @ =sub_80F22B0 + str r0, [r2, 0x1C] +_080F2236: + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_080F223C: .4byte sub_80F22B0 + thumb_func_end sub_80F2218 + + thumb_func_start sub_80F2240 +sub_80F2240: @ 80F2240 + push {r4,lr} + adds r2, r0, 0 + ldr r0, _080F2288 @ =gUnknown_083DFEC4 + ldr r0, [r0] + ldr r1, _080F228C @ =0x00006dad + adds r0, r1 + movs r3, 0x2E + ldrsh r1, [r2, r3] + ldrb r0, [r0] + lsls r0, 24 + asrs r0, 24 + cmp r1, r0 + bne _080F2290 + ldrh r3, [r2, 0x38] + movs r4, 0x38 + ldrsh r0, [r2, r4] + cmp r0, 0 + beq _080F2270 + ldrh r0, [r2, 0x36] + ldrh r4, [r2, 0x20] + adds r1, r0, r4 + strh r1, [r2, 0x20] + subs r0, r3, r0 + strh r0, [r2, 0x38] +_080F2270: + adds r0, r2, 0 + adds r0, 0x3F + ldrb r1, [r0] + movs r0, 0x20 + ands r0, r1 + cmp r0, 0 + beq _080F22A8 + adds r0, r2, 0 + bl sub_80F240C + b _080F22A8 + .align 2, 0 +_080F2288: .4byte gUnknown_083DFEC4 +_080F228C: .4byte 0x00006dad +_080F2290: + ldrh r0, [r2, 0x20] + adds r0, 0x8 + strh r0, [r2, 0x20] + lsls r0, 16 + asrs r0, 16 + movs r3, 0x34 + ldrsh r1, [r2, r3] + cmp r0, r1 + blt _080F22A8 + adds r0, r2, 0 + bl sub_80F240C +_080F22A8: + pop {r4} + pop {r0} + bx r0 + thumb_func_end sub_80F2240 + + thumb_func_start sub_80F22B0 +sub_80F22B0: @ 80F22B0 + push {lr} + adds r2, r0, 0 + ldr r0, _080F22DC @ =gUnknown_083DFEC4 + ldr r0, [r0] + ldr r1, _080F22E0 @ =0x00006dad + adds r0, r1 + movs r3, 0x2E + ldrsh r1, [r2, r3] + ldrb r0, [r0] + lsls r0, 24 + asrs r0, 24 + cmp r1, r0 + bne _080F22E4 + ldrh r3, [r2, 0x24] + movs r0, 0x24 + ldrsh r1, [r2, r0] + movs r0, 0x10 + negs r0, r0 + cmp r1, r0 + ble _080F22F2 + subs r0, r3, 0x4 + b _080F22F0 + .align 2, 0 +_080F22DC: .4byte gUnknown_083DFEC4 +_080F22E0: .4byte 0x00006dad +_080F22E4: + ldrh r1, [r2, 0x24] + movs r3, 0x24 + ldrsh r0, [r2, r3] + cmp r0, 0 + bge _080F22F2 + adds r0, r1, 0x4 +_080F22F0: + strh r0, [r2, 0x24] +_080F22F2: + pop {r0} + bx r0 + thumb_func_end sub_80F22B0 + + thumb_func_start sub_80F22F8 +sub_80F22F8: @ 80F22F8 + push {r4-r7,lr} + movs r3, 0 + ldr r0, _080F233C @ =gUnknown_083DFEC4 + ldr r1, [r0] + ldr r2, _080F2340 @ =0x00006dae + adds r0, r1, r2 + ldrb r0, [r0] + lsls r0, 24 + asrs r0, 24 + cmp r3, r0 + bge _080F2358 + movs r7, 0xC8 + lsls r7, 2 + adds r4, r1, r7 + movs r5, 0x10 + negs r5, r5 + adds r6, r0, 0 +_080F231A: + movs r1, 0 + lsls r2, r3, 4 +_080F231E: + lsls r0, r1, 2 + adds r0, r2 + adds r0, r4, r0 + ldr r0, [r0] + cmp r0, 0 + beq _080F2358 + movs r7, 0x24 + ldrsh r0, [r0, r7] + cmp r0, 0 + beq _080F2344 + cmp r0, r5 + beq _080F2344 + movs r0, 0 + b _080F235A + .align 2, 0 +_080F233C: .4byte gUnknown_083DFEC4 +_080F2340: .4byte 0x00006dae +_080F2344: + adds r0, r1, 0x1 + lsls r0, 16 + lsrs r1, r0, 16 + cmp r1, 0x3 + bls _080F231E + adds r0, r3, 0x1 + lsls r0, 16 + lsrs r3, r0, 16 + cmp r3, r6 + blt _080F231A +_080F2358: + movs r0, 0x1 +_080F235A: + pop {r4-r7} + pop {r1} + bx r1 + thumb_func_end sub_80F22F8 + + thumb_func_start sub_80F2360 +sub_80F2360: @ 80F2360 + push {r4-r7,lr} + movs r4, 0 + ldr r0, _080F23A0 @ =gUnknown_083DFEC4 + ldr r2, [r0] + ldr r1, _080F23A4 @ =0x0000030e + adds r0, r2, r1 + movs r1, 0 + ldrsb r1, [r0, r1] + cmp r4, r1 + bge _080F23C0 + ldr r3, _080F23A8 @ =0x00006dad + adds r0, r2, r3 + movs r6, 0 + ldrsb r6, [r0, r6] + adds r5, r1, 0 +_080F237E: + cmp r4, r6 + beq _080F23B6 + movs r1, 0 + ldr r0, _080F23A0 @ =gUnknown_083DFEC4 + ldr r0, [r0] + lsls r3, r4, 4 + movs r7, 0xC8 + lsls r7, 2 + adds r2, r0, r7 +_080F2390: + lsls r0, r1, 2 + adds r0, r3 + adds r0, r2, r0 + ldr r0, [r0] + cmp r0, 0 + beq _080F23AC + movs r0, 0 + b _080F23C2 + .align 2, 0 +_080F23A0: .4byte gUnknown_083DFEC4 +_080F23A4: .4byte 0x0000030e +_080F23A8: .4byte 0x00006dad +_080F23AC: + adds r0, r1, 0x1 + lsls r0, 16 + lsrs r1, r0, 16 + cmp r1, 0x3 + bls _080F2390 +_080F23B6: + adds r0, r4, 0x1 + lsls r0, 16 + lsrs r4, r0, 16 + cmp r4, r5 + blt _080F237E +_080F23C0: + movs r0, 0x1 +_080F23C2: + pop {r4-r7} + pop {r1} + bx r1 + thumb_func_end sub_80F2360 + + thumb_func_start sub_80F23C8 +sub_80F23C8: @ 80F23C8 + push {lr} + movs r2, 0 + ldr r0, _080F23F4 @ =gUnknown_083DFEC4 + ldr r1, [r0] + ldr r3, _080F23F8 @ =0x00006dad + adds r0, r1, r3 + ldrb r0, [r0] + lsls r0, 24 + asrs r0, 24 + lsls r3, r0, 4 + movs r0, 0xC8 + lsls r0, 2 + adds r1, r0 +_080F23E2: + lsls r0, r2, 2 + adds r0, r3 + adds r0, r1, r0 + ldr r0, [r0] + cmp r0, 0 + beq _080F23FC + movs r0, 0 + b _080F2408 + .align 2, 0 +_080F23F4: .4byte gUnknown_083DFEC4 +_080F23F8: .4byte 0x00006dad +_080F23FC: + adds r0, r2, 0x1 + lsls r0, 16 + lsrs r2, r0, 16 + cmp r2, 0x3 + bls _080F23E2 + movs r0, 0x1 +_080F2408: + pop {r1} + bx r1 + thumb_func_end sub_80F23C8 + + thumb_func_start sub_80F240C +sub_80F240C: @ 80F240C + push {r4,lr} + adds r4, r0, 0 + ldr r0, _080F2454 @ =gUnknown_083DFEC4 + ldr r2, [r0] + movs r0, 0x30 + ldrsh r1, [r4, r0] + lsls r1, 2 + movs r3, 0x2E + ldrsh r0, [r4, r3] + lsls r0, 4 + adds r1, r0 + movs r0, 0xC8 + lsls r0, 2 + adds r2, r0 + adds r2, r1 + movs r0, 0 + str r0, [r2] + adds r0, r4, 0 + adds r0, 0x3F + ldrb r1, [r0] + movs r0, 0x20 + ands r0, r1 + cmp r0, 0 + beq _080F2446 + ldrb r0, [r4, 0x3] + lsls r0, 26 + lsrs r0, 27 + bl FreeOamMatrix +_080F2446: + adds r0, r4, 0 + bl DestroySprite + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_080F2454: .4byte gUnknown_083DFEC4 + thumb_func_end sub_80F240C + + thumb_func_start sub_80F2458 +sub_80F2458: @ 80F2458 + push {r4,r5,lr} + lsls r0, 24 + lsrs r4, r0, 24 + cmp r4, 0x1 + beq _080F24A0 + cmp r4, 0x1 + bgt _080F246C + cmp r4, 0 + beq _080F2472 + b _080F2502 +_080F246C: + cmp r4, 0x2 + beq _080F24D0 + b _080F2502 +_080F2472: + ldr r2, _080F2498 @ =gUnknown_083DFEC4 + ldr r3, [r2] + movs r0, 0xE0 + lsls r0, 2 + adds r1, r3, r0 + movs r5, 0xE2 + lsls r5, 2 + adds r0, r3, r5 + str r0, [r1] + movs r0, 0xE1 + lsls r0, 2 + adds r1, r3, r0 + movs r0, 0xA0 + lsls r0, 5 + strh r0, [r1] + ldr r1, _080F249C @ =0x00000386 + adds r0, r3, r1 + strh r4, [r0] + b _080F24F6 + .align 2, 0 +_080F2498: .4byte gUnknown_083DFEC4 +_080F249C: .4byte 0x00000386 +_080F24A0: + ldr r4, _080F24C4 @ =gUnknown_083DFEC4 + ldr r1, [r4] + movs r3, 0xE0 + lsls r3, 2 + adds r2, r1, r3 + ldr r5, _080F24C8 @ =0x00001788 + adds r0, r1, r5 + str r0, [r2] + movs r0, 0xE1 + lsls r0, 2 + adds r2, r1, r0 + movs r3, 0 + movs r0, 0xC0 + lsls r0, 4 + strh r0, [r2] + ldr r5, _080F24CC @ =0x00000386 + adds r1, r5 + b _080F24F2 + .align 2, 0 +_080F24C4: .4byte gUnknown_083DFEC4 +_080F24C8: .4byte 0x00001788 +_080F24CC: .4byte 0x00000386 +_080F24D0: + ldr r4, _080F2508 @ =gUnknown_083DFEC4 + ldr r1, [r4] + movs r0, 0xE0 + lsls r0, 2 + adds r2, r1, r0 + ldr r3, _080F250C @ =0x00002388 + adds r0, r1, r3 + str r0, [r2] + movs r5, 0xE1 + lsls r5, 2 + adds r2, r1, r5 + movs r3, 0 + movs r0, 0xC0 + lsls r0, 5 + strh r0, [r2] + ldr r0, _080F2510 @ =0x00000386 + adds r1, r0 +_080F24F2: + strh r3, [r1] + adds r2, r4, 0 +_080F24F6: + ldr r0, [r2] + movs r1, 0xE0 + lsls r1, 2 + adds r0, r1 + bl LoadSpriteSheet +_080F2502: + pop {r4,r5} + pop {r0} + bx r0 + .align 2, 0 +_080F2508: .4byte gUnknown_083DFEC4 +_080F250C: .4byte 0x00002388 +_080F2510: .4byte 0x00000386 + thumb_func_end sub_80F2458 + + thumb_func_start sub_80F2514 +sub_80F2514: @ 80F2514 + push {r4,lr} + sub sp, 0x8 + lsls r0, 24 + lsrs r0, 24 + adds r1, r0, 0 + cmp r0, 0x1 + beq _080F2558 + cmp r0, 0x1 + bgt _080F252C + cmp r0, 0 + beq _080F2532 + b _080F2586 +_080F252C: + cmp r1, 0x2 + beq _080F2568 + b _080F2586 +_080F2532: + ldr r0, _080F254C @ =gPokenavMenuOptions1_Pal + str r0, [sp] + ldr r1, _080F2550 @ =0xffff0000 + mov r4, sp + ldr r0, [sp, 0x4] + ands r0, r1 + str r0, [sp, 0x4] + mov r0, sp + bl LoadSpritePalette + ldr r0, _080F2554 @ =gPokenavMenuOptions2_Pal + b _080F257A + .align 2, 0 +_080F254C: .4byte gPokenavMenuOptions1_Pal +_080F2550: .4byte 0xffff0000 +_080F2554: .4byte gPokenavMenuOptions2_Pal +_080F2558: + ldr r0, _080F2564 @ =gPokenavConditionMenu_Pal + str r0, [sp] + mov r1, sp + movs r0, 0 + strh r0, [r1, 0x4] + b _080F2580 + .align 2, 0 +_080F2564: .4byte gPokenavConditionMenu_Pal +_080F2568: + ldr r0, _080F2590 @ =gPokenavCondition6_Pal + str r0, [sp] + mov r4, sp + movs r0, 0 + strh r0, [r4, 0x4] + mov r0, sp + bl LoadSpritePalette + ldr r0, _080F2594 @ =gPokenavCondition7_Pal +_080F257A: + str r0, [sp] + movs r0, 0x1 + strh r0, [r4, 0x4] +_080F2580: + mov r0, sp + bl LoadSpritePalette +_080F2586: + add sp, 0x8 + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_080F2590: .4byte gPokenavCondition6_Pal +_080F2594: .4byte gPokenavCondition7_Pal + thumb_func_end sub_80F2514 + + thumb_func_start sub_80F2598 +sub_80F2598: @ 80F2598 + push {r4,lr} + ldr r0, _080F25F0 @ =gUnknown_083DFEC4 + ldr r0, [r0] + ldr r1, _080F25F4 @ =0x00006d9c + adds r4, r0, r1 + movs r0, 0 + str r0, [r4] + ldr r1, _080F25F8 @ =gSaveBlock1 + movs r0, 0x4 + ldrsb r0, [r1, r0] + lsls r0, 16 + lsrs r0, 16 + ldrb r1, [r1, 0x5] + lsls r1, 24 + asrs r1, 24 + lsls r1, 16 + lsrs r1, 16 + bl sub_8082C0C + cmp r0, 0x1 + bne _080F2618 + ldr r0, _080F25FC @ =gSpriteSheet_PokenavBlueLight + bl LoadSpriteSheet + ldr r0, _080F2600 @ =gSpritePalette_PokenavBlueLight + bl LoadSpritePalette + ldr r0, _080F2604 @ =gSpriteTemplate_83E4484 + movs r1, 0xC + movs r2, 0x60 + movs r3, 0 + bl CreateSprite + lsls r0, 24 + lsrs r1, r0, 24 + cmp r1, 0x40 + beq _080F260C + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + ldr r1, _080F2608 @ =gSprites + adds r0, r1 + str r0, [r4] + b _080F2618 + .align 2, 0 +_080F25F0: .4byte gUnknown_083DFEC4 +_080F25F4: .4byte 0x00006d9c +_080F25F8: .4byte gSaveBlock1 +_080F25FC: .4byte gSpriteSheet_PokenavBlueLight +_080F2600: .4byte gSpritePalette_PokenavBlueLight +_080F2604: .4byte gSpriteTemplate_83E4484 +_080F2608: .4byte gSprites +_080F260C: + movs r0, 0x19 + bl FreeSpriteTilesByTag + movs r0, 0x11 + bl FreeSpritePaletteByTag +_080F2618: + pop {r4} + pop {r0} + bx r0 + thumb_func_end sub_80F2598 + + thumb_func_start sub_80F2620 +sub_80F2620: @ 80F2620 + push {r4,lr} + ldr r0, _080F264C @ =gUnknown_083DFEC4 + ldr r0, [r0] + ldr r1, _080F2650 @ =0x00006d9c + adds r4, r0, r1 + ldr r0, [r4] + cmp r0, 0 + beq _080F2644 + bl DestroySprite + movs r0, 0x19 + bl FreeSpriteTilesByTag + movs r0, 0x11 + bl FreeSpritePaletteByTag + movs r0, 0 + str r0, [r4] +_080F2644: + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_080F264C: .4byte gUnknown_083DFEC4 +_080F2650: .4byte 0x00006d9c + thumb_func_end sub_80F2620 + + thumb_func_start sub_80F2654 +sub_80F2654: @ 80F2654 + push {lr} + adds r3, r0, 0 + ldrh r0, [r3, 0x2E] + adds r0, 0x1 + strh r0, [r3, 0x2E] + lsls r0, 16 + asrs r0, 16 + cmp r0, 0x6 + ble _080F2682 + movs r0, 0 + strh r0, [r3, 0x2E] + adds r3, 0x3E + ldrb r2, [r3] + lsrs r1, r2, 2 + movs r0, 0x1 + eors r1, r0 + ands r1, r0 + lsls r1, 2 + movs r0, 0x5 + negs r0, r0 + ands r0, r2 + orrs r0, r1 + strb r0, [r3] +_080F2682: + pop {r0} + bx r0 + thumb_func_end sub_80F2654 + + thumb_func_start sub_80F2688 +sub_80F2688: @ 80F2688 + push {lr} + ldr r0, _080F26B0 @ =gUnknown_083DFEC4 + ldr r0, [r0] + ldr r1, _080F26B4 @ =0x00000306 + adds r2, r0, r1 + movs r1, 0 + strh r1, [r2] + ldr r1, _080F26B8 @ =0x00006dac + adds r0, r1 + ldrb r0, [r0] + cmp r0, 0 + bne _080F26AA +_080F26A0: + bl sub_80F26BC + lsls r0, 24 + cmp r0, 0 + bne _080F26A0 +_080F26AA: + pop {r0} + bx r0 + .align 2, 0 +_080F26B0: .4byte gUnknown_083DFEC4 +_080F26B4: .4byte 0x00000306 +_080F26B8: .4byte 0x00006dac + thumb_func_end sub_80F2688 + + thumb_func_start sub_80F26BC +sub_80F26BC: @ 80F26BC + push {lr} + ldr r0, _080F26D8 @ =gUnknown_083DFEC4 + ldr r0, [r0] + ldr r1, _080F26DC @ =0x00000306 + adds r0, r1 + ldrh r0, [r0] + cmp r0, 0x7 + bls _080F26CE + b _080F27BC +_080F26CE: + lsls r0, 2 + ldr r1, _080F26E0 @ =_080F26E4 + adds r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_080F26D8: .4byte gUnknown_083DFEC4 +_080F26DC: .4byte 0x00000306 +_080F26E0: .4byte _080F26E4 + .align 2, 0 +_080F26E4: + .4byte _080F2704 + .4byte _080F271C + .4byte _080F2734 + .4byte _080F274C + .4byte _080F2764 + .4byte _080F277C + .4byte _080F2794 + .4byte _080F27B0 +_080F2704: + ldr r0, _080F2710 @ =gPokenavMainMenu_Gfx + ldr r1, _080F2714 @ =gUnknown_083DFEC4 + ldr r1, [r1] + ldr r2, _080F2718 @ =0x00003b98 + b _080F279C + .align 2, 0 +_080F2710: .4byte gPokenavMainMenu_Gfx +_080F2714: .4byte gUnknown_083DFEC4 +_080F2718: .4byte 0x00003b98 +_080F271C: + ldr r0, _080F2728 @ =gPokenavConditionMenuHeader_Gfx + ldr r1, _080F272C @ =gUnknown_083DFEC4 + ldr r1, [r1] + ldr r2, _080F2730 @ =0x00004198 + b _080F279C + .align 2, 0 +_080F2728: .4byte gPokenavConditionMenuHeader_Gfx +_080F272C: .4byte gUnknown_083DFEC4 +_080F2730: .4byte 0x00004198 +_080F2734: + ldr r0, _080F2740 @ =gPokenavRibbonsHeader_Gfx + ldr r1, _080F2744 @ =gUnknown_083DFEC4 + ldr r1, [r1] + ldr r2, _080F2748 @ =0x00004d98 + b _080F279C + .align 2, 0 +_080F2740: .4byte gPokenavRibbonsHeader_Gfx +_080F2744: .4byte gUnknown_083DFEC4 +_080F2748: .4byte 0x00004d98 +_080F274C: + ldr r0, _080F2758 @ =gPokenavHoennMapHeader_Gfx + ldr r1, _080F275C @ =gUnknown_083DFEC4 + ldr r1, [r1] + ldr r2, _080F2760 @ =0x00005398 + b _080F279C + .align 2, 0 +_080F2758: .4byte gPokenavHoennMapHeader_Gfx +_080F275C: .4byte gUnknown_083DFEC4 +_080F2760: .4byte 0x00005398 +_080F2764: + ldr r0, _080F2770 @ =gPokenavConditionMenuOptions_Gfx + ldr r1, _080F2774 @ =gUnknown_083DFEC4 + ldr r1, [r1] + ldr r2, _080F2778 @ =0x00005f98 + b _080F279C + .align 2, 0 +_080F2770: .4byte gPokenavConditionMenuOptions_Gfx +_080F2774: .4byte gUnknown_083DFEC4 +_080F2778: .4byte 0x00005f98 +_080F277C: + ldr r0, _080F2788 @ =gPokenavConditionMenuOptions2_Gfx + ldr r1, _080F278C @ =gUnknown_083DFEC4 + ldr r1, [r1] + ldr r2, _080F2790 @ =0x00006798 + b _080F279C + .align 2, 0 +_080F2788: .4byte gPokenavConditionMenuOptions2_Gfx +_080F278C: .4byte gUnknown_083DFEC4 +_080F2790: .4byte 0x00006798 +_080F2794: + ldr r0, _080F27A4 @ =gPokenavTrainersEyesHeader_Gfx + ldr r1, _080F27A8 @ =gUnknown_083DFEC4 + ldr r1, [r1] + ldr r2, _080F27AC @ =0x00004798 +_080F279C: + adds r1, r2 + bl LZ77UnCompWram + b _080F27C0 + .align 2, 0 +_080F27A4: .4byte gPokenavTrainersEyesHeader_Gfx +_080F27A8: .4byte gUnknown_083DFEC4 +_080F27AC: .4byte 0x00004798 +_080F27B0: + ldr r0, _080F27B8 @ =gUnknown_083E449C + bl LoadSpritePalettes + b _080F27C0 + .align 2, 0 +_080F27B8: .4byte gUnknown_083E449C +_080F27BC: + movs r0, 0 + b _080F27D0 +_080F27C0: + ldr r0, _080F27D4 @ =gUnknown_083DFEC4 + ldr r1, [r0] + ldr r0, _080F27D8 @ =0x00000306 + adds r1, r0 + ldrh r0, [r1] + adds r0, 0x1 + strh r0, [r1] + movs r0, 0x1 +_080F27D0: + pop {r1} + bx r1 + .align 2, 0 +_080F27D4: .4byte gUnknown_083DFEC4 +_080F27D8: .4byte 0x00000306 + thumb_func_end sub_80F26BC + + thumb_func_start sub_80F27DC +sub_80F27DC: @ 80F27DC + push {lr} + sub sp, 0x8 + lsls r0, 24 + lsrs r0, 24 + cmp r0, 0xB + bls _080F27EA + b _080F29A0 +_080F27EA: + lsls r0, 2 + ldr r1, _080F27F4 @ =_080F27F8 + adds r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_080F27F4: .4byte _080F27F8 + .align 2, 0 +_080F27F8: + .4byte _080F2828 + .4byte _080F2858 + .4byte _080F28B8 + .4byte _080F2888 + .4byte _080F28E8 + .4byte _080F2918 + .4byte _080F2928 + .4byte _080F2978 + .4byte _080F2938 + .4byte _080F2948 + .4byte _080F2968 + .4byte _080F2958 +_080F2828: + ldr r0, _080F2848 @ =gUnknown_083DFEC4 + ldr r0, [r0] + ldr r1, _080F284C @ =0x00003b98 + adds r0, r1 + str r0, [sp] + ldr r1, _080F2850 @ =0xffff0000 + ldr r0, [sp, 0x4] + ands r0, r1 + movs r1, 0xC0 + lsls r1, 3 + orrs r0, r1 + ldr r1, _080F2854 @ =0x0000ffff + ands r0, r1 + adds r1, 0x1 + b _080F2996 + .align 2, 0 +_080F2848: .4byte gUnknown_083DFEC4 +_080F284C: .4byte 0x00003b98 +_080F2850: .4byte 0xffff0000 +_080F2854: .4byte 0x0000ffff +_080F2858: + ldr r0, _080F2878 @ =gUnknown_083DFEC4 + ldr r0, [r0] + ldr r1, _080F287C @ =0x00004198 + adds r0, r1 + str r0, [sp] + ldr r1, _080F2880 @ =0xffff0000 + ldr r0, [sp, 0x4] + ands r0, r1 + movs r1, 0xC0 + lsls r1, 3 + orrs r0, r1 + ldr r1, _080F2884 @ =0x0000ffff + ands r0, r1 + adds r1, 0x1 + b _080F2996 + .align 2, 0 +_080F2878: .4byte gUnknown_083DFEC4 +_080F287C: .4byte 0x00004198 +_080F2880: .4byte 0xffff0000 +_080F2884: .4byte 0x0000ffff +_080F2888: + ldr r0, _080F28A8 @ =gUnknown_083DFEC4 + ldr r0, [r0] + ldr r1, _080F28AC @ =0x00004798 + adds r0, r1 + str r0, [sp] + ldr r1, _080F28B0 @ =0xffff0000 + ldr r0, [sp, 0x4] + ands r0, r1 + movs r1, 0xC0 + lsls r1, 3 + orrs r0, r1 + ldr r1, _080F28B4 @ =0x0000ffff + ands r0, r1 + adds r1, 0x1 + b _080F2996 + .align 2, 0 +_080F28A8: .4byte gUnknown_083DFEC4 +_080F28AC: .4byte 0x00004798 +_080F28B0: .4byte 0xffff0000 +_080F28B4: .4byte 0x0000ffff +_080F28B8: + ldr r0, _080F28D8 @ =gUnknown_083DFEC4 + ldr r0, [r0] + ldr r1, _080F28DC @ =0x00004d98 + adds r0, r1 + str r0, [sp] + ldr r1, _080F28E0 @ =0xffff0000 + ldr r0, [sp, 0x4] + ands r0, r1 + movs r1, 0xC0 + lsls r1, 3 + orrs r0, r1 + ldr r1, _080F28E4 @ =0x0000ffff + ands r0, r1 + adds r1, 0x1 + b _080F2996 + .align 2, 0 +_080F28D8: .4byte gUnknown_083DFEC4 +_080F28DC: .4byte 0x00004d98 +_080F28E0: .4byte 0xffff0000 +_080F28E4: .4byte 0x0000ffff +_080F28E8: + ldr r0, _080F2908 @ =gUnknown_083DFEC4 + ldr r0, [r0] + ldr r1, _080F290C @ =0x00005398 + adds r0, r1 + str r0, [sp] + ldr r1, _080F2910 @ =0xffff0000 + ldr r0, [sp, 0x4] + ands r0, r1 + movs r1, 0xC0 + lsls r1, 4 + orrs r0, r1 + ldr r1, _080F2914 @ =0x0000ffff + ands r0, r1 + adds r1, 0x1 + b _080F2996 + .align 2, 0 +_080F2908: .4byte gUnknown_083DFEC4 +_080F290C: .4byte 0x00005398 +_080F2910: .4byte 0xffff0000 +_080F2914: .4byte 0x0000ffff +_080F2918: + ldr r0, _080F2920 @ =gUnknown_083DFEC4 + ldr r0, [r0] + ldr r1, _080F2924 @ =0x00005f98 + b _080F297E + .align 2, 0 +_080F2920: .4byte gUnknown_083DFEC4 +_080F2924: .4byte 0x00005f98 +_080F2928: + ldr r0, _080F2930 @ =gUnknown_083DFEC4 + ldr r0, [r0] + ldr r1, _080F2934 @ =0x00006198 + b _080F297E + .align 2, 0 +_080F2930: .4byte gUnknown_083DFEC4 +_080F2934: .4byte 0x00006198 +_080F2938: + ldr r0, _080F2940 @ =gUnknown_083DFEC4 + ldr r0, [r0] + ldr r1, _080F2944 @ =0x00006398 + b _080F297E + .align 2, 0 +_080F2940: .4byte gUnknown_083DFEC4 +_080F2944: .4byte 0x00006398 +_080F2948: + ldr r0, _080F2950 @ =gUnknown_083DFEC4 + ldr r0, [r0] + ldr r1, _080F2954 @ =0x00006598 + b _080F297E + .align 2, 0 +_080F2950: .4byte gUnknown_083DFEC4 +_080F2954: .4byte 0x00006598 +_080F2958: + ldr r0, _080F2960 @ =gUnknown_083DFEC4 + ldr r0, [r0] + ldr r1, _080F2964 @ =0x00006998 + b _080F297E + .align 2, 0 +_080F2960: .4byte gUnknown_083DFEC4 +_080F2964: .4byte 0x00006998 +_080F2968: + ldr r0, _080F2970 @ =gUnknown_083DFEC4 + ldr r0, [r0] + ldr r1, _080F2974 @ =0x00006798 + b _080F297E + .align 2, 0 +_080F2970: .4byte gUnknown_083DFEC4 +_080F2974: .4byte 0x00006798 +_080F2978: + ldr r0, _080F29A8 @ =gUnknown_083DFEC4 + ldr r0, [r0] + ldr r1, _080F29AC @ =0x00006b98 +_080F297E: + adds r0, r1 + str r0, [sp] + ldr r1, _080F29B0 @ =0xffff0000 + ldr r0, [sp, 0x4] + ands r0, r1 + movs r1, 0x80 + lsls r1, 2 + orrs r0, r1 + ldr r1, _080F29B4 @ =0x0000ffff + ands r0, r1 + movs r1, 0x80 + lsls r1, 10 +_080F2996: + orrs r0, r1 + str r0, [sp, 0x4] + mov r0, sp + bl LoadSpriteSheet +_080F29A0: + add sp, 0x8 + pop {r0} + bx r0 + .align 2, 0 +_080F29A8: .4byte gUnknown_083DFEC4 +_080F29AC: .4byte 0x00006b98 +_080F29B0: .4byte 0xffff0000 +_080F29B4: .4byte 0x0000ffff + thumb_func_end sub_80F27DC + + thumb_func_start sub_80F29B8 +sub_80F29B8: @ 80F29B8 + push {r4-r7,lr} + mov r7, r10 + mov r6, r9 + mov r5, r8 + push {r5-r7} + sub sp, 0x14 + lsls r0, 24 + lsrs r7, r0, 24 + movs r0, 0 + mov r8, r0 + cmp r7, 0xB + bls _080F29D2 + b _080F2BA6 +_080F29D2: + lsls r0, r7, 2 + ldr r1, _080F29DC @ =_080F29E0 + adds r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_080F29DC: .4byte _080F29E0 + .align 2, 0 +_080F29E0: + .4byte _080F2A10 + .4byte _080F2A10 + .4byte _080F2A10 + .4byte _080F2A10 + .4byte _080F2A58 + .4byte _080F2A94 + .4byte _080F2A94 + .4byte _080F2A98 + .4byte _080F2A94 + .4byte _080F2A94 + .4byte _080F2A98 + .4byte _080F2A98 +_080F2A10: + ldr r3, _080F2A44 @ =0x0000ffa0 + ldr r0, _080F2A48 @ =gUnknown_083DFEC4 + ldr r2, [r0] + movs r1, 0xC3 + lsls r1, 2 + adds r0, r2, r1 + ldrh r1, [r0] + movs r0, 0x31 + subs r0, r1 + lsls r0, 16 + lsrs r0, 16 + movs r4, 0x8 + str r4, [sp] + movs r1, 0x20 + str r1, [sp, 0x4] + movs r1, 0x40 + ldr r4, _080F2A4C @ =0x00003b88 + adds r4, r2 + mov r9, r4 + ldr r2, _080F2A50 @ =gSpriteTemplate_83E44F8 + mov r8, r2 + cmp r7, 0x3 + beq _080F2AC8 + ldr r4, _080F2A54 @ =gSpriteTemplate_83E44E0 + mov r8, r4 + b _080F2AC8 + .align 2, 0 +_080F2A44: .4byte 0x0000ffa0 +_080F2A48: .4byte gUnknown_083DFEC4 +_080F2A4C: .4byte 0x00003b88 +_080F2A50: .4byte gSpriteTemplate_83E44F8 +_080F2A54: .4byte gSpriteTemplate_83E44E0 +_080F2A58: + movs r3, 0x88 + lsls r3, 1 + ldr r0, _080F2A84 @ =gUnknown_083DFEC4 + ldr r2, [r0] + movs r1, 0xC3 + lsls r1, 2 + adds r0, r2, r1 + ldrh r1, [r0] + movs r0, 0x31 + subs r0, r1 + lsls r0, 16 + lsrs r0, 16 + ldr r4, _080F2A88 @ =0x0000fff8 + str r4, [sp] + movs r1, 0x98 + str r1, [sp, 0x4] + movs r1, 0x40 + ldr r4, _080F2A8C @ =gSpriteTemplate_83E44E0 + mov r8, r4 + ldr r4, _080F2A90 @ =0x00003b88 + b _080F2AC4 + .align 2, 0 +_080F2A84: .4byte gUnknown_083DFEC4 +_080F2A88: .4byte 0x0000fff8 +_080F2A8C: .4byte gSpriteTemplate_83E44E0 +_080F2A90: .4byte 0x00003b88 +_080F2A94: + ldr r0, _080F2B40 @ =gSpriteTemplate_83E4530 + mov r8, r0 +_080F2A98: + mov r1, r8 + cmp r1, 0 + bne _080F2AA2 + ldr r2, _080F2B44 @ =gSpriteTemplate_83E4548 + mov r8, r2 +_080F2AA2: + ldr r3, _080F2B48 @ =0x0000ffa0 + ldr r0, _080F2B4C @ =gUnknown_083DFEC4 + ldr r2, [r0] + movs r4, 0xC3 + lsls r4, 2 + adds r0, r2, r4 + ldrh r1, [r0] + movs r0, 0x44 + subs r0, r1 + lsls r0, 16 + lsrs r0, 16 + movs r1, 0x8 + str r1, [sp] + movs r4, 0x10 + str r4, [sp, 0x4] + movs r1, 0x20 + ldr r4, _080F2B50 @ =0x00003b90 +_080F2AC4: + adds r4, r2 + mov r9, r4 +_080F2AC8: + movs r6, 0 + lsls r1, 16 + str r1, [sp, 0x10] + lsls r3, 16 + str r3, [sp, 0x8] + lsls r0, 16 + str r0, [sp, 0xC] + ldr r0, _080F2B54 @ =gSprites + mov r10, r0 +_080F2ADA: + ldr r1, [sp, 0x10] + asrs r0, r1, 16 + adds r5, r6, 0 + muls r5, r0 + ldr r2, [sp, 0x8] + asrs r1, r2, 16 + adds r1, r5 + lsls r1, 16 + asrs r1, 16 + mov r0, r8 + ldr r3, [sp, 0xC] + asrs r2, r3, 16 + movs r3, 0 + bl CreateSprite + lsls r0, 24 + lsrs r4, r0, 24 + cmp r4, 0x40 + beq _080F2B9C + lsls r0, r4, 4 + adds r1, r0, r4 + lsls r1, 2 + mov r2, r10 + adds r3, r1, r2 + mov r1, sp + ldrh r1, [r1] + strh r1, [r3, 0x2E] + ldr r2, [sp, 0x4] + adds r1, r2, r5 + strh r1, [r3, 0x30] + strh r6, [r3, 0x32] + strh r7, [r3, 0x34] + adds r5, r0, 0 + cmp r7, 0x4 + bne _080F2B5C + cmp r6, 0x1 + bne _080F2B5C + ldr r0, _080F2B4C @ =gUnknown_083DFEC4 + ldr r0, [r0] + ldr r1, _080F2B58 @ =0x00006e90 + adds r0, r1 + ldrb r0, [r0] + movs r1, 0x2 + cmp r0, 0 + bne _080F2B36 + movs r1, 0x1 +_080F2B36: + adds r0, r3, 0 + bl StartSpriteAnim + b _080F2B6A + .align 2, 0 +_080F2B40: .4byte gSpriteTemplate_83E4530 +_080F2B44: .4byte gSpriteTemplate_83E4548 +_080F2B48: .4byte 0x0000ffa0 +_080F2B4C: .4byte gUnknown_083DFEC4 +_080F2B50: .4byte 0x00003b90 +_080F2B54: .4byte gSprites +_080F2B58: .4byte 0x00006e90 +_080F2B5C: + adds r0, r5, r4 + lsls r0, 2 + add r0, r10 + lsls r1, r6, 24 + lsrs r1, 24 + bl StartSpriteAnim +_080F2B6A: + ldr r2, _080F2BB8 @ =gSprites + mov r12, r2 + cmp r7, 0x3 + bhi _080F2B90 + cmp r6, 0x1 + bne _080F2B90 + adds r2, r5, r4 + lsls r2, 2 + add r2, r10 + ldrb r3, [r2, 0x1] + movs r1, 0x3F + adds r0, r1, 0 + ands r0, r3 + strb r0, [r2, 0x1] + ldrb r0, [r2, 0x3] + ands r1, r0 + movs r0, 0x80 + orrs r1, r0 + strb r1, [r2, 0x3] +_080F2B90: + lsls r1, r6, 2 + add r1, r9 + adds r0, r5, r4 + lsls r0, 2 + add r0, r12 + str r0, [r1] +_080F2B9C: + adds r0, r6, 0x1 + lsls r0, 16 + lsrs r6, r0, 16 + cmp r6, 0x1 + bls _080F2ADA +_080F2BA6: + add sp, 0x14 + pop {r3-r5} + mov r8, r3 + mov r9, r4 + mov r10, r5 + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_080F2BB8: .4byte gSprites + thumb_func_end sub_80F29B8 + + thumb_func_start sub_80F2BBC +sub_80F2BBC: @ 80F2BBC + push {r4,lr} + adds r2, r0, 0 + ldrh r0, [r2, 0x20] + ldrh r1, [r2, 0x2E] + adds r3, r0, r1 + strh r3, [r2, 0x20] + lsls r0, 16 + asrs r4, r0, 16 + movs r0, 0x30 + ldrsh r1, [r2, r0] + cmp r4, r1 + bgt _080F2BE0 + lsls r0, r3, 16 + asrs r0, 16 + cmp r0, r1 + bge _080F2BE8 + cmp r4, r1 + blt _080F2C08 +_080F2BE0: + lsls r0, r3, 16 + asrs r0, 16 + cmp r0, r1 + bgt _080F2C08 +_080F2BE8: + ldrh r0, [r2, 0x30] + strh r0, [r2, 0x20] + movs r1, 0x34 + ldrsh r0, [r2, r1] + cmp r0, 0x4 + bne _080F2C04 + movs r1, 0x32 + ldrsh r0, [r2, r1] + cmp r0, 0x1 + bne _080F2C04 + ldr r0, _080F2C00 @ =sub_80F2C58 + b _080F2C06 + .align 2, 0 +_080F2C00: .4byte sub_80F2C58 +_080F2C04: + ldr r0, _080F2C10 @ =SpriteCallbackDummy +_080F2C06: + str r0, [r2, 0x1C] +_080F2C08: + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_080F2C10: .4byte SpriteCallbackDummy + thumb_func_end sub_80F2BBC + + thumb_func_start sub_80F2C14 +sub_80F2C14: @ 80F2C14 + push {r4,lr} + adds r4, r0, 0 + ldrh r0, [r4, 0x20] + ldrh r1, [r4, 0x2E] + subs r0, r1 + strh r0, [r4, 0x20] + adds r0, 0x20 + lsls r0, 16 + movs r1, 0x98 + lsls r1, 17 + cmp r0, r1 + bls _080F2C50 + movs r1, 0x32 + ldrsh r0, [r4, r1] + cmp r0, 0x1 + bne _080F2C4A + movs r1, 0x34 + ldrsh r0, [r4, r1] + cmp r0, 0x4 + bgt _080F2C44 + movs r0, 0x1 + bl FreeSpriteTilesByTag + b _080F2C4A +_080F2C44: + movs r0, 0x2 + bl FreeSpriteTilesByTag +_080F2C4A: + adds r0, r4, 0 + bl DestroySprite +_080F2C50: + pop {r4} + pop {r0} + bx r0 + thumb_func_end sub_80F2C14 + + thumb_func_start sub_80F2C58 +sub_80F2C58: @ 80F2C58 + push {lr} + adds r2, r0, 0 + ldr r0, _080F2C78 @ =gUnknown_083DFEC4 + ldr r0, [r0] + ldr r1, _080F2C7C @ =0x00006e90 + adds r0, r1 + ldrb r0, [r0] + movs r1, 0x2 + cmp r0, 0 + bne _080F2C6E + movs r1, 0x1 +_080F2C6E: + adds r0, r2, 0 + bl StartSpriteAnim + pop {r0} + bx r0 + .align 2, 0 +_080F2C78: .4byte gUnknown_083DFEC4 +_080F2C7C: .4byte 0x00006e90 + thumb_func_end sub_80F2C58 + + thumb_func_start sub_80F2C80 +sub_80F2C80: @ 80F2C80 + push {r4,lr} + lsls r0, 24 + lsrs r4, r0, 24 + ldr r0, _080F2CB0 @ =gUnknown_083DFEC4 + ldr r0, [r0] + ldr r1, _080F2CB4 @ =0x00000306 + adds r2, r0, r1 + movs r1, 0 + strh r1, [r2] + ldr r1, _080F2CB8 @ =0x00006dac + adds r0, r1 + ldrb r0, [r0] + cmp r0, 0 + bne _080F2CA8 +_080F2C9C: + adds r0, r4, 0 + bl sub_80F2CBC + lsls r0, 24 + cmp r0, 0 + bne _080F2C9C +_080F2CA8: + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_080F2CB0: .4byte gUnknown_083DFEC4 +_080F2CB4: .4byte 0x00000306 +_080F2CB8: .4byte 0x00006dac + thumb_func_end sub_80F2C80 + + thumb_func_start sub_80F2CBC +sub_80F2CBC: @ 80F2CBC + push {r4,lr} + lsls r0, 24 + lsrs r1, r0, 24 + ldr r0, _080F2CD8 @ =gUnknown_083DFEC4 + ldr r0, [r0] + ldr r2, _080F2CDC @ =0x00000306 + adds r4, r0, r2 + ldrh r0, [r4] + cmp r0, 0 + beq _080F2CE0 + cmp r0, 0x1 + beq _080F2CF0 + b _080F2CFC + .align 2, 0 +_080F2CD8: .4byte gUnknown_083DFEC4 +_080F2CDC: .4byte 0x00000306 +_080F2CE0: + adds r0, r1, 0 + bl sub_80F27DC + ldrh r0, [r4] + adds r0, 0x1 + strh r0, [r4] + movs r0, 0x1 + b _080F2CFE +_080F2CF0: + adds r0, r1, 0 + bl sub_80F29B8 + ldrh r0, [r4] + adds r0, 0x1 + strh r0, [r4] +_080F2CFC: + movs r0, 0 +_080F2CFE: + pop {r4} + pop {r1} + bx r1 + thumb_func_end sub_80F2CBC + + thumb_func_start sub_80F2D04 +sub_80F2D04: @ 80F2D04 + push {lr} + lsls r0, 24 + lsrs r0, 24 + cmp r0, 0x4 + bhi _080F2D3C + movs r1, 0 + ldr r0, _080F2D30 @ =gUnknown_083DFEC4 + ldr r0, [r0] + ldr r3, _080F2D34 @ =0x00003b88 + adds r2, r0, r3 + ldr r3, _080F2D38 @ =sub_80F2C14 +_080F2D1A: + lsls r0, r1, 2 + adds r0, r2, r0 + ldr r0, [r0] + str r3, [r0, 0x1C] + adds r0, r1, 0x1 + lsls r0, 16 + lsrs r1, r0, 16 + cmp r1, 0x1 + bls _080F2D1A + b _080F2D5A + .align 2, 0 +_080F2D30: .4byte gUnknown_083DFEC4 +_080F2D34: .4byte 0x00003b88 +_080F2D38: .4byte sub_80F2C14 +_080F2D3C: + movs r1, 0 + ldr r0, _080F2D60 @ =gUnknown_083DFEC4 + ldr r0, [r0] + ldr r3, _080F2D64 @ =0x00003b90 + adds r2, r0, r3 + ldr r3, _080F2D68 @ =sub_80F2C14 +_080F2D48: + lsls r0, r1, 2 + adds r0, r2, r0 + ldr r0, [r0] + str r3, [r0, 0x1C] + adds r0, r1, 0x1 + lsls r0, 16 + lsrs r1, r0, 16 + cmp r1, 0x1 + bls _080F2D48 +_080F2D5A: + pop {r0} + bx r0 + .align 2, 0 +_080F2D60: .4byte gUnknown_083DFEC4 +_080F2D64: .4byte 0x00003b90 +_080F2D68: .4byte sub_80F2C14 + thumb_func_end sub_80F2D04 + + thumb_func_start sub_80F2D6C +sub_80F2D6C: @ 80F2D6C + push {r4,r5,lr} + lsls r0, 24 + lsrs r0, 24 + cmp r0, 0x4 + bhi _080F2DA4 + movs r0, 0x1 + bl FreeSpriteTilesByTag + movs r4, 0 + ldr r0, _080F2D9C @ =gUnknown_083DFEC4 + ldr r0, [r0] + ldr r1, _080F2DA0 @ =0x00003b88 + adds r5, r0, r1 +_080F2D86: + lsls r0, r4, 2 + adds r0, r5, r0 + ldr r0, [r0] + bl DestroySprite + adds r0, r4, 0x1 + lsls r0, 16 + lsrs r4, r0, 16 + cmp r4, 0x1 + bls _080F2D86 + b _080F2DC8 + .align 2, 0 +_080F2D9C: .4byte gUnknown_083DFEC4 +_080F2DA0: .4byte 0x00003b88 +_080F2DA4: + movs r0, 0x2 + bl FreeSpriteTilesByTag + movs r4, 0 + ldr r0, _080F2DD0 @ =gUnknown_083DFEC4 + ldr r0, [r0] + ldr r1, _080F2DD4 @ =0x00003b90 + adds r5, r0, r1 +_080F2DB4: + lsls r0, r4, 2 + adds r0, r5, r0 + ldr r0, [r0] + bl DestroySprite + adds r0, r4, 0x1 + lsls r0, 16 + lsrs r4, r0, 16 + cmp r4, 0x1 + bls _080F2DB4 +_080F2DC8: + pop {r4,r5} + pop {r0} + bx r0 + .align 2, 0 +_080F2DD0: .4byte gUnknown_083DFEC4 +_080F2DD4: .4byte 0x00003b90 + thumb_func_end sub_80F2D6C + + thumb_func_start sub_80F2DD8 +sub_80F2DD8: @ 80F2DD8 + push {lr} + movs r0, 0x7 + movs r1, 0x7 + bl sub_80FBB3C + movs r0, 0x8 + movs r1, 0x8 + bl sub_80FBCF0 + bl sub_80FBF94 + pop {r0} + bx r0 + thumb_func_end sub_80F2DD8 + + thumb_func_start sub_80F2DF4 +sub_80F2DF4: @ 80F2DF4 + push {lr} + bl sub_80FAB10 + pop {r0} + bx r0 + thumb_func_end sub_80F2DF4 + + thumb_func_start sub_80F2E00 +sub_80F2E00: @ 80F2E00 + ldr r1, _080F2E10 @ =gUnknown_083DFEC4 + ldr r1, [r1] + ldr r2, _080F2E14 @ =0x00008766 + adds r1, r2 + ldrh r1, [r1] + adds r1, 0x26 + strh r1, [r0, 0x20] + bx lr + .align 2, 0 +_080F2E10: .4byte gUnknown_083DFEC4 +_080F2E14: .4byte 0x00008766 + thumb_func_end sub_80F2E00 + + thumb_func_start sub_80F2E18 +sub_80F2E18: @ 80F2E18 + push {r4-r7,lr} + mov r7, r8 + push {r7} + sub sp, 0x28 + lsls r0, 24 + lsrs r3, r0, 24 + ldr r0, _080F2EA8 @ =gUnknown_083DFEC4 + ldr r4, [r0] + ldr r0, _080F2EAC @ =0x00008768 + adds r7, r4, r0 + ldr r1, [r7] + mov r8, r1 + cmp r1, 0 + bne _080F2EFC + ldr r0, _080F2EB0 @ =gUnknown_083E4568 + ldr r1, [r0, 0x4] + ldr r0, [r0] + str r0, [sp, 0x20] + str r1, [sp, 0x24] + mov r1, sp + ldr r0, _080F2EB4 @ =gSpriteTemplate_83E4570 + ldm r0!, {r2,r5,r6} + stm r1!, {r2,r5,r6} + ldm r0!, {r2,r5,r6} + stm r1!, {r2,r5,r6} + ldr r0, _080F2EB8 @ =gUnknown_083E4588 + ldr r1, [r0, 0x4] + ldr r0, [r0] + str r0, [sp, 0x18] + str r1, [sp, 0x1C] + lsls r0, r3, 13 + ldr r1, _080F2EBC @ =0x0000d1e4 + adds r0, r1 + adds r0, r4, r0 + str r0, [sp, 0x20] + lsls r0, r3, 7 + adds r0, r4, r0 + str r0, [sp, 0x18] + add r0, sp, 0x18 + bl LoadSpritePalette + lsls r0, 24 + lsrs r0, 24 + ldr r2, _080F2EC0 @ =0x0000d1dc + adds r5, r4, r2 + strh r0, [r5] + add r0, sp, 0x20 + bl LoadSpriteSheet + ldr r1, _080F2EC4 @ =0x0000d1de + adds r6, r4, r1 + strh r0, [r6] + mov r0, sp + movs r1, 0x26 + movs r2, 0x68 + movs r3, 0 + bl CreateSprite + lsls r0, 24 + lsrs r1, r0, 24 + cmp r1, 0x40 + bne _080F2EC8 + movs r0, 0x6 + bl FreeSpriteTilesByTag + movs r0, 0x6 + bl FreeSpritePaletteByTag + mov r2, r8 + str r2, [r7] + b _080F2F26 + .align 2, 0 +_080F2EA8: .4byte gUnknown_083DFEC4 +_080F2EAC: .4byte 0x00008768 +_080F2EB0: .4byte gUnknown_083E4568 +_080F2EB4: .4byte gSpriteTemplate_83E4570 +_080F2EB8: .4byte gUnknown_083E4588 +_080F2EBC: .4byte 0x0000d1e4 +_080F2EC0: .4byte 0x0000d1dc +_080F2EC4: .4byte 0x0000d1de +_080F2EC8: + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + ldr r1, _080F2EF0 @ =gSprites + adds r0, r1 + str r0, [r7] + ldr r0, _080F2EF4 @ =0x0000d1e0 + adds r1, r4, r0 + ldrh r0, [r6] + lsls r0, 5 + ldr r2, _080F2EF8 @ =0x06010000 + adds r0, r2 + str r0, [r1] + ldrh r0, [r5] + lsls r0, 4 + movs r6, 0x80 + lsls r6, 1 + adds r0, r6 + strh r0, [r5] + b _080F2F26 + .align 2, 0 +_080F2EF0: .4byte gSprites +_080F2EF4: .4byte 0x0000d1e0 +_080F2EF8: .4byte 0x06010000 +_080F2EFC: + lsls r0, r3, 13 + ldr r1, _080F2F34 @ =0x0000d1e4 + adds r0, r1 + adds r0, r4, r0 + ldr r2, _080F2F38 @ =0x0000d1e0 + adds r1, r4, r2 + ldr r2, [r1] + ldr r1, _080F2F3C @ =0x040000d4 + str r0, [r1] + str r2, [r1, 0x4] + ldr r0, _080F2F40 @ =0x80000400 + str r0, [r1, 0x8] + ldr r0, [r1, 0x8] + lsls r0, r3, 7 + adds r0, r4, r0 + ldr r5, _080F2F44 @ =0x0000d1dc + adds r1, r4, r5 + ldrh r1, [r1] + movs r2, 0x20 + bl LoadPalette +_080F2F26: + add sp, 0x28 + pop {r3} + mov r8, r3 + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_080F2F34: .4byte 0x0000d1e4 +_080F2F38: .4byte 0x0000d1e0 +_080F2F3C: .4byte 0x040000d4 +_080F2F40: .4byte 0x80000400 +_080F2F44: .4byte 0x0000d1dc + thumb_func_end sub_80F2E18 + + thumb_func_start sub_80F2F48 +sub_80F2F48: @ 80F2F48 + push {r4,lr} + ldr r0, _080F2F74 @ =gUnknown_083DFEC4 + ldr r0, [r0] + ldr r1, _080F2F78 @ =0x00008768 + adds r4, r0, r1 + ldr r0, [r4] + cmp r0, 0 + beq _080F2F6C + bl DestroySprite + movs r0, 0x6 + bl FreeSpriteTilesByTag + movs r0, 0x6 + bl FreeSpritePaletteByTag + movs r0, 0 + str r0, [r4] +_080F2F6C: + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_080F2F74: .4byte gUnknown_083DFEC4 +_080F2F78: .4byte 0x00008768 + thumb_func_end sub_80F2F48 + + thumb_func_start sub_80F2F7C +sub_80F2F7C: @ 80F2F7C + push {lr} + lsls r0, 24 + lsrs r0, 24 + bl sub_80F2E18 + ldr r0, _080F2FA0 @ =gUnknown_083DFEC4 + ldr r0, [r0] + ldr r1, _080F2FA4 @ =0x0000ced0 + adds r2, r0, r1 + ldr r1, _080F2FA8 @ =0x00008768 + adds r0, r1 + ldr r1, [r0] + str r1, [r2] + ldr r0, _080F2FAC @ =sub_80F2FEC + str r0, [r1, 0x1C] + pop {r0} + bx r0 + .align 2, 0 +_080F2FA0: .4byte gUnknown_083DFEC4 +_080F2FA4: .4byte 0x0000ced0 +_080F2FA8: .4byte 0x00008768 +_080F2FAC: .4byte sub_80F2FEC + thumb_func_end sub_80F2F7C + + thumb_func_start sub_80F2FB0 +sub_80F2FB0: @ 80F2FB0 + push {r4,r5,lr} + ldr r0, _080F2FE0 @ =gUnknown_083DFEC4 + ldr r5, [r0] + ldr r0, _080F2FE4 @ =0x0000ced0 + adds r4, r5, r0 + ldr r0, [r4] + cmp r0, 0 + beq _080F2FDA + bl DestroySprite + movs r0, 0x6 + bl FreeSpriteTilesByTag + movs r0, 0x6 + bl FreeSpritePaletteByTag + movs r1, 0 + str r1, [r4] + ldr r2, _080F2FE8 @ =0x00008768 + adds r0, r5, r2 + str r1, [r0] +_080F2FDA: + pop {r4,r5} + pop {r0} + bx r0 + .align 2, 0 +_080F2FE0: .4byte gUnknown_083DFEC4 +_080F2FE4: .4byte 0x0000ced0 +_080F2FE8: .4byte 0x00008768 + thumb_func_end sub_80F2FB0 + + thumb_func_start sub_80F2FEC +sub_80F2FEC: @ 80F2FEC + ldr r1, _080F3000 @ =gUnknown_083DFEC4 + ldr r1, [r1] + ldr r2, _080F3004 @ =0x0000d15a + adds r1, r2 + ldrh r1, [r1] + adds r1, 0x28 + strh r1, [r0, 0x20] + movs r1, 0x68 + strh r1, [r0, 0x22] + bx lr + .align 2, 0 +_080F3000: .4byte gUnknown_083DFEC4 +_080F3004: .4byte 0x0000d15a + thumb_func_end sub_80F2FEC + + thumb_func_start sub_80F3008 +sub_80F3008: @ 80F3008 + push {r4,r5,lr} + sub sp, 0x20 + lsls r0, 24 + lsrs r2, r0, 24 + mov r1, sp + ldr r0, _080F3060 @ =gUnknown_083E4590 + ldm r0!, {r3-r5} + stm r1!, {r3-r5} + ldm r0!, {r3-r5} + stm r1!, {r3-r5} + ldr r0, _080F3064 @ =gUnknown_083E45A8 + ldr r1, [r0, 0x4] + ldr r0, [r0] + str r0, [sp, 0x18] + str r1, [sp, 0x1C] + cmp r2, 0x2 + bgt _080F3032 + cmp r2, 0x1 + blt _080F3032 + ldr r0, _080F3068 @ =gUnknown_08E9F988 + str r0, [sp, 0x18] +_080F3032: + mov r0, sp + bl LoadSpriteSheets + add r0, sp, 0x18 + bl LoadSpritePalette + ldr r0, _080F306C @ =gSpriteTemplate_83E45B8 + movs r1, 0x5F + movs r2, 0 + movs r3, 0 + bl CreateSprite + lsls r0, 24 + lsrs r1, r0, 24 + cmp r1, 0x40 + bne _080F3078 + ldr r0, _080F3070 @ =gUnknown_083DFEC4 + ldr r0, [r0] + ldr r1, _080F3074 @ =0x000087cc + adds r0, r1 + movs r1, 0 + str r1, [r0] + b _080F3120 + .align 2, 0 +_080F3060: .4byte gUnknown_083E4590 +_080F3064: .4byte gUnknown_083E45A8 +_080F3068: .4byte gUnknown_08E9F988 +_080F306C: .4byte gSpriteTemplate_83E45B8 +_080F3070: .4byte gUnknown_083DFEC4 +_080F3074: .4byte 0x000087cc +_080F3078: + ldr r0, _080F30F4 @ =gUnknown_083DFEC4 + ldr r2, [r0] + ldr r3, _080F30F8 @ =0x000087cc + adds r2, r3 + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + ldr r1, _080F30FC @ =gSprites + adds r0, r1 + str r0, [r2] + movs r4, 0 + movs r5, 0 +_080F3090: + lsls r2, r4, 7 + adds r2, 0x8 + lsls r2, 16 + asrs r2, 16 + ldr r0, _080F3100 @ =gSpriteTemplate_83E45F0 + movs r1, 0xA8 + movs r3, 0 + bl CreateSprite + lsls r0, 24 + lsrs r1, r0, 24 + cmp r1, 0x40 + beq _080F3108 + ldr r0, _080F30F4 @ =gUnknown_083DFEC4 + ldr r2, [r0] + lsls r0, r4, 2 + ldr r3, _080F3104 @ =0x000087d0 + adds r2, r3 + adds r2, r0 + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + ldr r1, _080F30FC @ =gSprites + adds r3, r0, r1 + str r3, [r2] + adds r2, r3, 0 + adds r2, 0x3E + ldrb r0, [r2] + movs r1, 0x4 + orrs r0, r1 + strb r0, [r2] + strh r5, [r3, 0x2E] + strh r5, [r3, 0x30] + movs r0, 0x1 + cmp r4, 0 + bne _080F30DE + movs r1, 0x1 + negs r1, r1 + adds r0, r1, 0 +_080F30DE: + strh r0, [r3, 0x32] + strh r4, [r3, 0x34] + movs r0, 0x1 + strh r0, [r3, 0x36] + lsls r1, r4, 24 + lsrs r1, 24 + adds r0, r3, 0 + bl StartSpriteAnim + b _080F3116 + .align 2, 0 +_080F30F4: .4byte gUnknown_083DFEC4 +_080F30F8: .4byte 0x000087cc +_080F30FC: .4byte gSprites +_080F3100: .4byte gSpriteTemplate_83E45F0 +_080F3104: .4byte 0x000087d0 +_080F3108: + ldr r0, _080F3128 @ =gUnknown_083DFEC4 + ldr r0, [r0] + lsls r1, r4, 2 + ldr r2, _080F312C @ =0x000087d0 + adds r0, r2 + adds r0, r1 + str r5, [r0] +_080F3116: + adds r0, r4, 0x1 + lsls r0, 16 + lsrs r4, r0, 16 + cmp r4, 0x1 + bls _080F3090 +_080F3120: + add sp, 0x20 + pop {r4,r5} + pop {r0} + bx r0 + .align 2, 0 +_080F3128: .4byte gUnknown_083DFEC4 +_080F312C: .4byte 0x000087d0 + thumb_func_end sub_80F3008 + + thumb_func_start sub_80F3130 +sub_80F3130: @ 80F3130 + push {r4-r6,lr} + ldr r0, _080F3184 @ =gUnknown_083DFEC4 + ldr r6, [r0] + ldr r0, _080F3188 @ =0x000087cc + adds r4, r6, r0 + ldr r0, [r4] + cmp r0, 0 + beq _080F3154 + bl DestroySprite + movs r0, 0x9 + bl FreeSpriteTilesByTag + movs r0, 0x9 + bl FreeSpritePaletteByTag + movs r0, 0 + str r0, [r4] +_080F3154: + movs r5, 0 + ldr r0, _080F318C @ =0x000087d0 + adds r6, r0 +_080F315A: + lsls r0, r5, 2 + adds r4, r6, r0 + ldr r0, [r4] + cmp r0, 0 + beq _080F316C + bl DestroySprite + movs r0, 0 + str r0, [r4] +_080F316C: + adds r0, r5, 0x1 + lsls r0, 16 + lsrs r5, r0, 16 + cmp r5, 0x1 + bls _080F315A + movs r0, 0xA + bl FreeSpriteTilesByTag + pop {r4-r6} + pop {r0} + bx r0 + .align 2, 0 +_080F3184: .4byte gUnknown_083DFEC4 +_080F3188: .4byte 0x000087cc +_080F318C: .4byte 0x000087d0 + thumb_func_end sub_80F3130 + + thumb_func_start sub_80F3190 +sub_80F3190: @ 80F3190 + ldr r1, _080F31A4 @ =gUnknown_083DFEC4 + ldr r1, [r1] + ldr r2, _080F31A8 @ =0x0000876c + adds r1, r2 + movs r2, 0 + ldrsh r1, [r1, r2] + lsls r1, 4 + adds r1, 0x10 + strh r1, [r0, 0x22] + bx lr + .align 2, 0 +_080F31A4: .4byte gUnknown_083DFEC4 +_080F31A8: .4byte 0x0000876c + thumb_func_end sub_80F3190 + + thumb_func_start sub_80F31AC +sub_80F31AC: @ 80F31AC + push {r4,r5,lr} + adds r3, r0, 0 + ldr r0, _080F31E8 @ =gUnknown_083DFEC4 + ldr r1, [r0] + ldr r2, _080F31EC @ =0x000087c9 + adds r0, r1, r2 + ldrb r0, [r0] + cmp r0, 0 + beq _080F325C + movs r4, 0x36 + ldrsh r0, [r3, r4] + cmp r0, 0 + beq _080F3226 + movs r5, 0x34 + ldrsh r0, [r3, r5] + cmp r0, 0 + bne _080F31F4 + movs r2, 0 + ldr r4, _080F31F0 @ =0x00008770 + adds r0, r1, r4 + movs r5, 0 + ldrsh r0, [r0, r5] + cmp r0, 0 + bne _080F31DE + movs r2, 0x1 +_080F31DE: + movs r0, 0x3E + adds r0, r3 + mov r12, r0 + lsls r2, 2 + b _080F3214 + .align 2, 0 +_080F31E8: .4byte gUnknown_083DFEC4 +_080F31EC: .4byte 0x000087c9 +_080F31F0: .4byte 0x00008770 +_080F31F4: + movs r4, 0 + ldr r2, _080F3250 @ =0x00008772 + adds r0, r1, r2 + ldr r5, _080F3254 @ =0x00008774 + adds r1, r5 + movs r5, 0 + ldrsh r2, [r0, r5] + movs r5, 0 + ldrsh r0, [r1, r5] + cmp r2, r0 + bne _080F320C + movs r4, 0x1 +_080F320C: + movs r0, 0x3E + adds r0, r3 + mov r12, r0 + lsls r2, r4, 2 +_080F3214: + ldrb r1, [r0] + movs r0, 0x5 + negs r0, r0 + ands r0, r1 + orrs r0, r2 + mov r1, r12 + strb r0, [r1] + movs r0, 0 + strh r0, [r3, 0x36] +_080F3226: + ldrh r0, [r3, 0x2E] + adds r0, 0x1 + movs r1, 0 + strh r0, [r3, 0x2E] + lsls r0, 16 + asrs r0, 16 + cmp r0, 0x4 + ble _080F325C + strh r1, [r3, 0x2E] + ldrh r0, [r3, 0x30] + adds r0, 0x1 + strh r0, [r3, 0x30] + lsls r0, 16 + asrs r0, 16 + cmp r0, 0x4 + bgt _080F3258 + ldrh r0, [r3, 0x32] + ldrh r2, [r3, 0x26] + adds r0, r2 + strh r0, [r3, 0x26] + b _080F325C + .align 2, 0 +_080F3250: .4byte 0x00008772 +_080F3254: .4byte 0x00008774 +_080F3258: + strh r1, [r3, 0x30] + strh r1, [r3, 0x26] +_080F325C: + pop {r4,r5} + pop {r0} + bx r0 + thumb_func_end sub_80F31AC + + thumb_func_start sub_80F3264 +sub_80F3264: @ 80F3264 + push {lr} + movs r1, 0 + ldr r0, _080F328C @ =gUnknown_083DFEC4 + ldr r0, [r0] + ldr r3, _080F3290 @ =0x000087d0 + adds r2, r0, r3 + movs r3, 0x1 +_080F3272: + lsls r0, r1, 2 + adds r0, r2, r0 + ldr r0, [r0] + cmp r0, 0 + beq _080F327E + strh r3, [r0, 0x36] +_080F327E: + adds r0, r1, 0x1 + lsls r0, 16 + lsrs r1, r0, 16 + cmp r1, 0x1 + bls _080F3272 + pop {r0} + bx r0 + .align 2, 0 +_080F328C: .4byte gUnknown_083DFEC4 +_080F3290: .4byte 0x000087d0 + thumb_func_end sub_80F3264 + + thumb_func_start sub_80F3294 +sub_80F3294: @ 80F3294 + push {r4-r6,lr} + lsls r0, 24 + lsrs r6, r0, 24 + ldr r0, _080F32F4 @ =gUnknown_083DFEC4 + ldr r4, [r0] + ldr r1, _080F32F8 @ =0x000087cc + adds r0, r4, r1 + ldr r2, [r0] + adds r2, 0x3E + movs r0, 0x1 + adds r1, r6, 0 + ands r1, r0 + lsls r1, 2 + ldrb r3, [r2] + movs r5, 0x5 + negs r5, r5 + adds r0, r5, 0 + ands r0, r3 + orrs r0, r1 + strb r0, [r2] + ldr r2, _080F32FC @ =0x000087c9 + adds r0, r4, r2 + ldrb r0, [r0] + cmp r0, 0 + beq _080F331A + cmp r6, 0x1 + bne _080F3308 + ldr r1, _080F3300 @ =0x000087d0 + adds r0, r4, r1 + ldr r1, [r0] + adds r1, 0x3E + ldrb r2, [r1] + adds r0, r5, 0 + ands r0, r2 + movs r3, 0x4 + orrs r0, r3 + strb r0, [r1] + ldr r2, _080F3304 @ =0x000087d4 + adds r0, r4, r2 + ldr r1, [r0] + adds r1, 0x3E + ldrb r2, [r1] + adds r0, r5, 0 + ands r0, r2 + orrs r0, r3 + strb r0, [r1] + b _080F331A + .align 2, 0 +_080F32F4: .4byte gUnknown_083DFEC4 +_080F32F8: .4byte 0x000087cc +_080F32FC: .4byte 0x000087c9 +_080F3300: .4byte 0x000087d0 +_080F3304: .4byte 0x000087d4 +_080F3308: + ldr r1, _080F3320 @ =0x000087d0 + adds r0, r4, r1 + ldr r0, [r0] + movs r1, 0x1 + strh r1, [r0, 0x36] + ldr r2, _080F3324 @ =0x000087d4 + adds r0, r4, r2 + ldr r0, [r0] + strh r1, [r0, 0x36] +_080F331A: + pop {r4-r6} + pop {r0} + bx r0 + .align 2, 0 +_080F3320: .4byte 0x000087d0 +_080F3324: .4byte 0x000087d4 + thumb_func_end sub_80F3294 + + thumb_func_start sub_80F3328 +sub_80F3328: @ 80F3328 + push {lr} + adds r2, r0, 0 + ldr r0, _080F334C @ =gUnknown_083DFEC4 + ldr r0, [r0] + ldr r1, _080F3350 @ =0x000087dc + adds r0, r1 + movs r3, 0x2E + ldrsh r1, [r2, r3] + movs r3, 0 + ldrsh r0, [r0, r3] + cmp r1, r0 + bne _080F3354 + adds r0, r2, 0 + movs r1, 0 + bl StartSpriteAnim + b _080F335C + .align 2, 0 +_080F334C: .4byte gUnknown_083DFEC4 +_080F3350: .4byte 0x000087dc +_080F3354: + adds r0, r2, 0 + movs r1, 0x1 + bl StartSpriteAnim +_080F335C: + pop {r0} + bx r0 + thumb_func_end sub_80F3328 + + thumb_func_start sub_80F3360 +sub_80F3360: @ 80F3360 + push {r4,lr} + adds r4, r0, 0 + ldr r0, _080F3384 @ =gUnknown_083DFEC4 + ldr r0, [r0] + ldr r2, _080F3388 @ =0x000087dc + adds r1, r0, r2 + movs r2, 0 + ldrsh r1, [r1, r2] + ldr r2, _080F338C @ =0x000087da + adds r0, r2 + movs r2, 0 + ldrsh r0, [r0, r2] + subs r0, 0x1 + cmp r1, r0 + bne _080F3390 + movs r0, 0x4 + b _080F3392 + .align 2, 0 +_080F3384: .4byte gUnknown_083DFEC4 +_080F3388: .4byte 0x000087dc +_080F338C: .4byte 0x000087da +_080F3390: + movs r0, 0x5 +_080F3392: + bl IndexOfSpritePaletteTag + lsls r0, 4 + ldrb r2, [r4, 0x5] + movs r1, 0xF + ands r1, r2 + orrs r1, r0 + strb r1, [r4, 0x5] + pop {r4} + pop {r0} + bx r0 + thumb_func_end sub_80F3360 + + thumb_func_start sub_80F33A8 +sub_80F33A8: @ 80F33A8 + push {r4-r7,lr} + mov r7, r8 + push {r7} + sub sp, 0x50 + mov r1, sp + ldr r0, _080F3440 @ =gUnknown_083E4628 + ldm r0!, {r2-r4} + stm r1!, {r2-r4} + ldm r0!, {r2,r5,r6} + stm r1!, {r2,r5,r6} + ldm r0!, {r3,r4} + stm r1!, {r3,r4} + add r4, sp, 0x20 + adds r1, r4, 0 + ldr r0, _080F3444 @ =gUnknown_083E4648 + ldm r0!, {r2,r5,r6} + stm r1!, {r2,r5,r6} + ldm r0!, {r3,r5,r6} + stm r1!, {r3,r5,r6} + add r5, sp, 0x38 + adds r1, r5, 0 + ldr r0, _080F3448 @ =gSpriteTemplate_83E4660 + ldm r0!, {r2,r3,r6} + stm r1!, {r2,r3,r6} + ldm r0!, {r2,r3,r6} + stm r1!, {r2,r3,r6} + mov r0, sp + bl LoadSpriteSheets + adds r0, r4, 0 + bl LoadSpritePalettes + movs r6, 0 + ldr r2, _080F344C @ =gUnknown_083DFEC4 + ldr r1, [r2] + ldr r3, _080F3450 @ =0x000087da + adds r0, r1, r3 + movs r4, 0 + ldrsh r0, [r0, r4] + subs r0, 0x1 + adds r7, r5, 0 + cmp r6, r0 + bge _080F347A + adds r5, r2, 0 + adds r0, r3, 0 + adds r0, r1 + mov r8, r0 +_080F3406: + lsls r4, r6, 2 + adds r2, r4, r6 + lsls r2, 18 + movs r1, 0x80 + lsls r1, 12 + adds r2, r1 + asrs r2, 16 + adds r0, r7, 0 + movs r1, 0xE2 + movs r3, 0 + bl CreateSprite + lsls r0, 24 + lsrs r3, r0, 24 + cmp r3, 0x40 + beq _080F345C + ldr r0, [r5] + ldr r2, _080F3454 @ =0x000087e4 + adds r0, r2 + adds r0, r4 + lsls r1, r3, 4 + adds r1, r3 + lsls r1, 2 + ldr r2, _080F3458 @ =gSprites + adds r1, r2 + str r1, [r0] + strh r6, [r1, 0x2E] + b _080F3468 + .align 2, 0 +_080F3440: .4byte gUnknown_083E4628 +_080F3444: .4byte gUnknown_083E4648 +_080F3448: .4byte gSpriteTemplate_83E4660 +_080F344C: .4byte gUnknown_083DFEC4 +_080F3450: .4byte 0x000087da +_080F3454: .4byte 0x000087e4 +_080F3458: .4byte gSprites +_080F345C: + ldr r0, [r5] + ldr r3, _080F34C8 @ =0x000087e4 + adds r0, r3 + adds r0, r4 + movs r1, 0 + str r1, [r0] +_080F3468: + adds r0, r6, 0x1 + lsls r0, 16 + lsrs r6, r0, 16 + mov r4, r8 + movs r1, 0 + ldrsh r0, [r4, r1] + subs r0, 0x1 + cmp r6, r0 + blt _080F3406 +_080F347A: + movs r0, 0x4 + strh r0, [r7] + ldr r0, _080F34CC @ =SpriteCallbackDummy + str r0, [r7, 0x14] + cmp r6, 0x5 + bhi _080F34EE + ldr r5, _080F34D0 @ =gUnknown_083DFEC4 +_080F3488: + lsls r4, r6, 2 + adds r2, r4, r6 + lsls r2, 18 + movs r3, 0x80 + lsls r3, 12 + adds r2, r3 + asrs r2, 16 + adds r0, r7, 0 + movs r1, 0xE6 + movs r3, 0 + bl CreateSprite + lsls r0, 24 + lsrs r3, r0, 24 + cmp r3, 0x40 + beq _080F34D8 + ldr r2, [r5] + ldr r0, _080F34C8 @ =0x000087e4 + adds r2, r0 + adds r2, r4 + lsls r1, r3, 4 + adds r1, r3 + lsls r1, 2 + ldr r0, _080F34D4 @ =gSprites + adds r1, r0 + str r1, [r2] + ldrb r2, [r1, 0x3] + movs r0, 0x3F + ands r0, r2 + strb r0, [r1, 0x3] + b _080F34E4 + .align 2, 0 +_080F34C8: .4byte 0x000087e4 +_080F34CC: .4byte SpriteCallbackDummy +_080F34D0: .4byte gUnknown_083DFEC4 +_080F34D4: .4byte gSprites +_080F34D8: + ldr r0, [r5] + ldr r1, _080F3548 @ =0x000087e4 + adds r0, r1 + adds r0, r4 + movs r1, 0 + str r1, [r0] +_080F34E4: + adds r0, r6, 0x1 + lsls r0, 16 + lsrs r6, r0, 16 + cmp r6, 0x5 + bls _080F3488 +_080F34EE: + movs r0, 0x5 + strh r0, [r7] + ldr r0, _080F354C @ =sub_80F3360 + str r0, [r7, 0x14] + lsls r5, r6, 2 + adds r2, r5, r6 + lsls r2, 18 + movs r3, 0x80 + lsls r3, 12 + adds r2, r3 + asrs r2, 16 + adds r0, r7, 0 + movs r1, 0xDE + movs r3, 0 + bl CreateSprite + lsls r0, 24 + lsrs r3, r0, 24 + cmp r3, 0x40 + beq _080F3558 + ldr r0, _080F3550 @ =gUnknown_083DFEC4 + ldr r4, [r0] + ldr r6, _080F3548 @ =0x000087e4 + adds r4, r6 + adds r4, r5 + lsls r1, r3, 4 + adds r1, r3 + lsls r1, 2 + ldr r0, _080F3554 @ =gSprites + adds r1, r0 + str r1, [r4] + ldrb r3, [r1, 0x1] + movs r2, 0x3F + adds r0, r2, 0 + ands r0, r3 + movs r3, 0x40 + orrs r0, r3 + strb r0, [r1, 0x1] + ldr r1, [r4] + ldrb r0, [r1, 0x3] + ands r2, r0 + movs r0, 0x80 + orrs r2, r0 + strb r2, [r1, 0x3] + b _080F3566 + .align 2, 0 +_080F3548: .4byte 0x000087e4 +_080F354C: .4byte sub_80F3360 +_080F3550: .4byte gUnknown_083DFEC4 +_080F3554: .4byte gSprites +_080F3558: + ldr r0, _080F3574 @ =gUnknown_083DFEC4 + ldr r0, [r0] + ldr r1, _080F3578 @ =0x000087e4 + adds r0, r1 + adds r0, r5 + movs r1, 0 + str r1, [r0] +_080F3566: + add sp, 0x50 + pop {r3} + mov r8, r3 + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_080F3574: .4byte gUnknown_083DFEC4 +_080F3578: .4byte 0x000087e4 + thumb_func_end sub_80F33A8 + + thumb_func_start sub_80F357C +sub_80F357C: @ 80F357C + push {r4-r6,lr} + movs r5, 0 + ldr r0, _080F35AC @ =gUnknown_083DFEC4 + ldr r0, [r0] + ldr r1, _080F35B0 @ =0x000087e4 + adds r6, r0, r1 +_080F3588: + lsls r0, r5, 2 + adds r4, r6, r0 + ldr r0, [r4] + cmp r0, 0 + beq _080F359A + bl DestroySprite + movs r0, 0 + str r0, [r4] +_080F359A: + adds r0, r5, 0x1 + lsls r0, 16 + lsrs r5, r0, 16 + cmp r5, 0x6 + bls _080F3588 + pop {r4-r6} + pop {r0} + bx r0 + .align 2, 0 +_080F35AC: .4byte gUnknown_083DFEC4 +_080F35B0: .4byte 0x000087e4 + thumb_func_end sub_80F357C + + thumb_func_start sub_80F35B4 +sub_80F35B4: @ 80F35B4 + push {r4,lr} + ldr r0, _080F35FC @ =gUnknown_083DFEC4 + ldr r4, [r0] + ldr r1, _080F3600 @ =0x000076b0 + adds r0, r4, r1 + movs r1, 0x1C + strh r1, [r0] + ldr r1, _080F3604 @ =0x000076b2 + adds r2, r4, r1 + movs r1, 0x13 + strh r1, [r2] + bl sub_80F727C + bl sub_80F7404 + ldr r2, _080F3608 @ =gUnknown_083E4678 + movs r0, 0x1B + movs r1, 0x15 + bl sub_80F7920 + ldrb r1, [r0, 0x5] + movs r2, 0xC + orrs r1, r2 + strb r1, [r0, 0x5] + movs r1, 0xC0 + strh r1, [r0, 0x20] + movs r1, 0x20 + strh r1, [r0, 0x22] + ldr r1, _080F360C @ =sub_80F363C + str r1, [r0, 0x1C] + ldr r1, _080F3610 @ =0x000076ac + adds r4, r1 + str r0, [r4] + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_080F35FC: .4byte gUnknown_083DFEC4 +_080F3600: .4byte 0x000076b0 +_080F3604: .4byte 0x000076b2 +_080F3608: .4byte gUnknown_083E4678 +_080F360C: .4byte sub_80F363C +_080F3610: .4byte 0x000076ac + thumb_func_end sub_80F35B4 + + thumb_func_start sub_80F3614 +sub_80F3614: @ 80F3614 + push {lr} + ldr r0, _080F3634 @ =gUnknown_083DFEC4 + ldr r0, [r0] + ldr r1, _080F3638 @ =0x000076ac + adds r0, r1 + ldr r0, [r0] + bl DestroySprite + movs r0, 0x1B + bl FreeSpriteTilesByTag + movs r0, 0x15 + bl FreeSpritePaletteByTag + pop {r0} + bx r0 + .align 2, 0 +_080F3634: .4byte gUnknown_083DFEC4 +_080F3638: .4byte 0x000076ac + thumb_func_end sub_80F3614 + + thumb_func_start sub_80F363C +sub_80F363C: @ 80F363C + push {lr} + ldr r1, _080F365C @ =gUnknown_083DFEC4 + ldr r1, [r1] + ldr r3, _080F3660 @ =0x00008fe9 + adds r2, r1, r3 + ldrb r2, [r2] + lsls r2, 24 + asrs r2, 24 + ldr r3, _080F3664 @ =0x00008934 + adds r1, r3 + adds r1, r2 + ldrb r1, [r1] + bl StartSpriteAnim + pop {r0} + bx r0 + .align 2, 0 +_080F365C: .4byte gUnknown_083DFEC4 +_080F3660: .4byte 0x00008fe9 +_080F3664: .4byte 0x00008934 + thumb_func_end sub_80F363C + + thumb_func_start sub_80F3668 +sub_80F3668: @ 80F3668 + push {lr} + ldr r0, _080F368C @ =gUnknown_083DFEC4 + ldr r0, [r0] + ldr r2, _080F3690 @ =0x00008fe9 + adds r1, r0, r2 + ldrb r1, [r1] + lsls r1, 24 + asrs r1, 24 + ldr r2, _080F3694 @ =0x00008934 + adds r0, r2 + adds r0, r1 + ldrb r0, [r0] + movs r1, 0xB0 + movs r2, 0x20 + bl sub_80F7418 + pop {r0} + bx r0 + .align 2, 0 +_080F368C: .4byte gUnknown_083DFEC4 +_080F3690: .4byte 0x00008fe9 +_080F3694: .4byte 0x00008934 + thumb_func_end sub_80F3668 + + thumb_func_start sub_80F3698 +sub_80F3698: @ 80F3698 + push {r4,lr} + ldr r0, _080F36DC @ =gUnknown_083DFEC4 + ldr r3, [r0] + ldr r1, _080F36E0 @ =0x000087dc + adds r0, r3, r1 + movs r2, 0 + ldrsh r1, [r0, r2] + lsls r1, 2 + ldr r4, _080F36E4 @ =0x0000893c + adds r1, r4 + adds r1, r3, r1 + ldr r2, _080F36E8 @ =0x00008fe9 + adds r0, r3, r2 + movs r2, 0 + ldrsb r2, [r0, r2] + subs r4, 0x8 + adds r0, r3, r4 + adds r0, r2 + ldr r2, _080F36EC @ =0x000076b4 + adds r3, r2 + ldrb r2, [r3] + strb r2, [r0] + ldrb r0, [r1, 0x1] + ldr r1, [r1] + lsls r1, 11 + lsrs r1, 27 + ldrb r2, [r3] + bl sub_80F4548 + bl sub_80F7470 + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_080F36DC: .4byte gUnknown_083DFEC4 +_080F36E0: .4byte 0x000087dc +_080F36E4: .4byte 0x0000893c +_080F36E8: .4byte 0x00008fe9 +_080F36EC: .4byte 0x000076b4 + thumb_func_end sub_80F3698 + + thumb_func_start sub_80F36F0 +sub_80F36F0: @ 80F36F0 + push {lr} + ldr r0, _080F3718 @ =gUnknown_083DFEC4 + ldr r0, [r0] + ldr r1, _080F371C @ =0x00000306 + adds r2, r0, r1 + movs r1, 0 + strh r1, [r2] + ldr r1, _080F3720 @ =0x00006dac + adds r0, r1 + ldrb r0, [r0] + cmp r0, 0 + bne _080F3712 +_080F3708: + bl sub_80F3724 + lsls r0, 24 + cmp r0, 0 + bne _080F3708 +_080F3712: + pop {r0} + bx r0 + .align 2, 0 +_080F3718: .4byte gUnknown_083DFEC4 +_080F371C: .4byte 0x00000306 +_080F3720: .4byte 0x00006dac + thumb_func_end sub_80F36F0 + + thumb_func_start sub_80F3724 +sub_80F3724: @ 80F3724 + push {r4,lr} + ldr r0, _080F3740 @ =gUnknown_083DFEC4 + ldr r1, [r0] + ldr r0, _080F3744 @ =0x00000306 + adds r4, r1, r0 + ldrh r0, [r4] + cmp r0, 0x1 + beq _080F3764 + cmp r0, 0x1 + bgt _080F3748 + cmp r0, 0 + beq _080F374E + b _080F377A + .align 2, 0 +_080F3740: .4byte gUnknown_083DFEC4 +_080F3744: .4byte 0x00000306 +_080F3748: + cmp r0, 0x2 + beq _080F376E + b _080F377A +_080F374E: + ldr r0, _080F375C @ =gUnknown_083E3D00 + ldr r2, _080F3760 @ =0x0000984c + adds r1, r2 + bl LZ77UnCompWram + b _080F377E + .align 2, 0 +_080F375C: .4byte gUnknown_083E3D00 +_080F3760: .4byte 0x0000984c +_080F3764: + bl sub_80F379C + ldrh r0, [r4] + adds r0, 0x1 + strh r0, [r4] +_080F376E: + bl sub_80F37D0 + lsls r0, 24 + cmp r0, 0 + beq _080F377E + b _080F378C +_080F377A: + movs r0, 0 + b _080F378E +_080F377E: + ldr r0, _080F3794 @ =gUnknown_083DFEC4 + ldr r1, [r0] + ldr r0, _080F3798 @ =0x00000306 + adds r1, r0 + ldrh r0, [r1] + adds r0, 0x1 + strh r0, [r1] +_080F378C: + movs r0, 0x1 +_080F378E: + pop {r4} + pop {r1} + bx r1 + .align 2, 0 +_080F3794: .4byte gUnknown_083DFEC4 +_080F3798: .4byte 0x00000306 + thumb_func_end sub_80F3724 + + thumb_func_start sub_80F379C +sub_80F379C: @ 80F379C + push {lr} + ldr r0, _080F37C4 @ =gUnknown_083DFEC4 + ldr r0, [r0] + ldr r1, _080F37C8 @ =0x0000bc93 + adds r2, r0, r1 + movs r1, 0 + strb r1, [r2] + ldr r1, _080F37CC @ =0x00006dac + adds r0, r1 + ldrb r0, [r0] + cmp r0, 0 + bne _080F37BE +_080F37B4: + bl sub_80F37D0 + lsls r0, 24 + cmp r0, 0 + bne _080F37B4 +_080F37BE: + pop {r0} + bx r0 + .align 2, 0 +_080F37C4: .4byte gUnknown_083DFEC4 +_080F37C8: .4byte 0x0000bc93 +_080F37CC: .4byte 0x00006dac + thumb_func_end sub_80F379C + + thumb_func_start sub_80F37D0 +sub_80F37D0: @ 80F37D0 + push {r4-r7,lr} + mov r7, r9 + mov r6, r8 + push {r6,r7} + ldr r0, _080F3898 @ =gUnknown_083DFEC4 + ldr r1, [r0] + ldr r2, _080F389C @ =0x0000bc93 + adds r1, r2 + ldrb r1, [r1] + adds r2, r0, 0 + cmp r1, 0xB + bhi _080F38A8 + movs r3, 0 + mov r8, r3 + movs r7, 0xF + mov r9, r7 +_080F37F0: + ldr r2, [r2] + ldr r1, _080F389C @ =0x0000bc93 + adds r0, r2, r1 + ldrb r1, [r0] + lsls r0, r1, 8 + ldr r3, _080F38A0 @ =0x0000984c + adds r0, r3 + adds r4, r2, r0 + lsls r1, 9 + ldr r7, _080F38A4 @ =0x0000a44c + adds r1, r7 + adds r5, r2, r1 + movs r6, 0 +_080F380A: + adds r0, r4, 0 + adds r1, r5, 0 + movs r2, 0x10 + bl CpuFastSet + adds r5, 0x40 + adds r4, 0x20 + movs r1, 0 + adds r6, 0x1 + mov r12, r6 +_080F381E: + movs r0, 0 + adds r6, r1, 0x1 +_080F3822: + adds r4, 0x4 + movs r2, 0 + adds r3, r0, 0x1 +_080F3828: + subs r4, 0x1 + ldrb r0, [r4] + lsls r1, r0, 4 + lsrs r0, 4 + mov r7, r9 + ands r0, r7 + orrs r1, r0 + strb r1, [r5] + adds r5, 0x1 + adds r0, r2, 0x1 + lsls r0, 24 + lsrs r2, r0, 24 + cmp r2, 0x3 + bls _080F3828 + adds r4, 0x4 + lsls r0, r3, 24 + lsrs r0, 24 + cmp r0, 0x7 + bls _080F3822 + subs r4, 0x40 + lsls r0, r6, 24 + lsrs r1, r0, 24 + cmp r1, 0x1 + bls _080F381E + adds r4, 0x60 + mov r1, r12 + lsls r0, r1, 24 + lsrs r6, r0, 24 + cmp r6, 0x3 + bls _080F380A + ldr r2, _080F3898 @ =gUnknown_083DFEC4 + ldr r3, [r2] + ldr r7, _080F389C @ =0x0000bc93 + adds r1, r3, r7 + ldrb r0, [r1] + adds r0, 0x1 + strb r0, [r1] + lsls r0, 24 + lsrs r0, 24 + cmp r0, 0xB + bhi _080F38A8 + mov r0, r8 + adds r0, 0x1 + lsls r0, 16 + lsrs r0, 16 + mov r8, r0 + cmp r0, 0x1 + bls _080F37F0 + adds r1, r7, 0 + adds r0, r3, r1 + ldrb r0, [r0] + cmp r0, 0xB + bhi _080F38A8 + movs r0, 0x1 + b _080F38AA + .align 2, 0 +_080F3898: .4byte gUnknown_083DFEC4 +_080F389C: .4byte 0x0000bc93 +_080F38A0: .4byte 0x0000984c +_080F38A4: .4byte 0x0000a44c +_080F38A8: + movs r0, 0 +_080F38AA: + pop {r3,r4} + mov r8, r3 + mov r9, r4 + pop {r4-r7} + pop {r1} + bx r1 + thumb_func_end sub_80F37D0 + + thumb_func_start sub_80F38B8 +sub_80F38B8: @ 80F38B8 + push {lr} + ldr r0, _080F38E0 @ =gUnknown_083DFEC4 + ldr r0, [r0] + ldr r1, _080F38E4 @ =0x00000306 + adds r2, r0, r1 + movs r1, 0 + strh r1, [r2] + ldr r1, _080F38E8 @ =0x00006dac + adds r0, r1 + ldrb r0, [r0] + cmp r0, 0 + bne _080F38DA +_080F38D0: + bl sub_80F38EC + lsls r0, 24 + cmp r0, 0 + bne _080F38D0 +_080F38DA: + pop {r0} + bx r0 + .align 2, 0 +_080F38E0: .4byte gUnknown_083DFEC4 +_080F38E4: .4byte 0x00000306 +_080F38E8: .4byte 0x00006dac + thumb_func_end sub_80F38B8 + + thumb_func_start sub_80F38EC +sub_80F38EC: @ 80F38EC + push {r4,lr} + ldr r0, _080F3908 @ =gUnknown_083DFEC4 + ldr r2, [r0] + ldr r0, _080F390C @ =0x00000306 + adds r4, r2, r0 + ldrh r1, [r4] + cmp r1, 0x1 + beq _080F3930 + cmp r1, 0x1 + bgt _080F3910 + cmp r1, 0 + beq _080F391A + b _080F394E + .align 2, 0 +_080F3908: .4byte gUnknown_083DFEC4 +_080F390C: .4byte 0x00000306 +_080F3910: + cmp r1, 0x2 + beq _080F3938 + cmp r1, 0x3 + beq _080F3942 + b _080F394E +_080F391A: + ldr r3, _080F3928 @ =0x00009348 + adds r0, r2, r3 + str r1, [r0] + ldr r3, _080F392C @ =0x0000bc92 + adds r0, r2, r3 + strb r1, [r0] + b _080F3952 + .align 2, 0 +_080F3928: .4byte 0x00009348 +_080F392C: .4byte 0x0000bc92 +_080F3930: + movs r0, 0 + bl sub_80F2E18 + b _080F3952 +_080F3938: + bl sub_80F3970 + ldrh r0, [r4] + adds r0, 0x1 + strh r0, [r4] +_080F3942: + bl sub_80F39A4 + lsls r0, 24 + cmp r0, 0 + beq _080F3952 + b _080F3960 +_080F394E: + movs r0, 0 + b _080F3962 +_080F3952: + ldr r0, _080F3968 @ =gUnknown_083DFEC4 + ldr r1, [r0] + ldr r0, _080F396C @ =0x00000306 + adds r1, r0 + ldrh r0, [r1] + adds r0, 0x1 + strh r0, [r1] +_080F3960: + movs r0, 0x1 +_080F3962: + pop {r4} + pop {r1} + bx r1 + .align 2, 0 +_080F3968: .4byte gUnknown_083DFEC4 +_080F396C: .4byte 0x00000306 + thumb_func_end sub_80F38EC + + thumb_func_start sub_80F3970 +sub_80F3970: @ 80F3970 + push {lr} + ldr r0, _080F3998 @ =gUnknown_083DFEC4 + ldr r0, [r0] + ldr r1, _080F399C @ =0x0000bc93 + adds r2, r0, r1 + movs r1, 0 + strb r1, [r2] + ldr r1, _080F39A0 @ =0x00006dac + adds r0, r1 + ldrb r0, [r0] + cmp r0, 0 + bne _080F3992 +_080F3988: + bl sub_80F39A4 + lsls r0, 24 + cmp r0, 0 + bne _080F3988 +_080F3992: + pop {r0} + bx r0 + .align 2, 0 +_080F3998: .4byte gUnknown_083DFEC4 +_080F399C: .4byte 0x0000bc93 +_080F39A0: .4byte 0x00006dac + thumb_func_end sub_80F3970 + + thumb_func_start sub_80F39A4 +sub_80F39A4: @ 80F39A4 + push {r4,r5,lr} + sub sp, 0x10 + ldr r0, _080F3A18 @ =gUnknown_083DFEC4 + ldr r1, [r0] + ldr r0, _080F3A1C @ =0x0000bc93 + adds r4, r1, r0 + ldrb r0, [r4] + cmp r0, 0xB + bhi _080F3A30 + ldrb r0, [r4] + lsls r0, 9 + ldr r2, _080F3A20 @ =0x0000a44c + adds r0, r2 + adds r0, r1, r0 + str r0, [sp] + ldr r5, _080F3A24 @ =0xffff0000 + ldr r2, [sp, 0x4] + ands r2, r5 + movs r0, 0x80 + lsls r0, 2 + orrs r2, r0 + str r2, [sp, 0x4] + ldrb r1, [r4] + adds r1, 0xB + lsls r1, 16 + ldr r0, _080F3A28 @ =0x0000ffff + ands r0, r2 + orrs r0, r1 + str r0, [sp, 0x4] + mov r0, sp + bl LoadSpriteSheet + ldrb r0, [r4] + cmp r0, 0x4 + bhi _080F3A04 + lsls r0, 5 + ldr r1, _080F3A2C @ =gUnknown_083E3C60 + adds r0, r1 + str r0, [sp, 0x8] + ldrb r2, [r4] + adds r2, 0xA + add r0, sp, 0x8 + ldr r1, [r0, 0x4] + ands r1, r5 + orrs r1, r2 + str r1, [r0, 0x4] + bl LoadSpritePalette +_080F3A04: + ldrb r0, [r4] + adds r0, 0x1 + strb r0, [r4] + lsls r0, 24 + lsrs r0, 24 + cmp r0, 0xB + bhi _080F3A30 + movs r0, 0x1 + b _080F3A32 + .align 2, 0 +_080F3A18: .4byte gUnknown_083DFEC4 +_080F3A1C: .4byte 0x0000bc93 +_080F3A20: .4byte 0x0000a44c +_080F3A24: .4byte 0xffff0000 +_080F3A28: .4byte 0x0000ffff +_080F3A2C: .4byte gUnknown_083E3C60 +_080F3A30: + movs r0, 0 +_080F3A32: + add sp, 0x10 + pop {r4,r5} + pop {r1} + bx r1 + thumb_func_end sub_80F39A4 + + thumb_func_start sub_80F3A3C +sub_80F3A3C: @ 80F3A3C + push {r4-r7,lr} + sub sp, 0x18 + lsls r0, 16 + lsrs r5, r0, 16 + lsls r1, 16 + lsrs r4, r1, 16 + cmp r4, 0x2 + bhi _080F3A60 + lsls r0, r4, 3 + adds r0, r4 + adds r0, r5, r0 + lsls r0, 16 + lsrs r1, r0, 16 + ldr r2, _080F3A5C @ =gUnknown_083DFEC4 + b _080F3A78 + .align 2, 0 +_080F3A5C: .4byte gUnknown_083DFEC4 +_080F3A60: + ldr r2, _080F3AD0 @ =gUnknown_083DFEC4 + ldr r1, [r2] + ldr r3, _080F3AD4 @ =0x0000bc8e + adds r0, r1, r3 + ldrb r0, [r0] + ldr r6, _080F3AD8 @ =0x0000bc8f + adds r1, r6 + ldrb r1, [r1] + subs r0, r1 + adds r0, r5, r0 + lsls r0, 16 + lsrs r1, r0, 16 +_080F3A78: + ldr r0, [r2] + ldr r7, _080F3ADC @ =0x0000bc4c + adds r0, r7 + adds r0, r1 + ldrb r2, [r0] + mov r1, sp + ldr r0, _080F3AE0 @ =gSpriteTemplate_83E476C + ldm r0!, {r3,r6,r7} + stm r1!, {r3,r6,r7} + ldm r0!, {r3,r6,r7} + stm r1!, {r3,r6,r7} + mov r3, sp + ldr r1, _080F3AE4 @ =gUnknown_083E4698 + lsls r2, 2 + adds r0, r2, r1 + ldrh r0, [r0] + adds r0, 0xB + strh r0, [r3] + adds r1, 0x2 + adds r2, r1 + ldrh r0, [r2] + adds r0, 0xA + strh r0, [r3, 0x2] + lsls r1, r5, 20 + movs r0, 0xC0 + lsls r0, 15 + adds r1, r0 + asrs r1, 16 + lsls r2, r4, 20 + movs r3, 0xA0 + lsls r3, 14 + adds r2, r3 + asrs r2, 16 + mov r0, sp + movs r3, 0x2 + bl CreateSprite + lsls r0, 24 + lsrs r1, r0, 24 + cmp r1, 0x40 + bne _080F3AE8 + movs r0, 0 + b _080F3AF2 + .align 2, 0 +_080F3AD0: .4byte gUnknown_083DFEC4 +_080F3AD4: .4byte 0x0000bc8e +_080F3AD8: .4byte 0x0000bc8f +_080F3ADC: .4byte 0x0000bc4c +_080F3AE0: .4byte gSpriteTemplate_83E476C +_080F3AE4: .4byte gUnknown_083E4698 +_080F3AE8: + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + ldr r1, _080F3AFC @ =gSprites + adds r0, r1 +_080F3AF2: + add sp, 0x18 + pop {r4-r7} + pop {r1} + bx r1 + .align 2, 0 +_080F3AFC: .4byte gSprites + thumb_func_end sub_80F3A3C + + thumb_func_start sub_80F3B00 +sub_80F3B00: @ 80F3B00 + push {r4,lr} + ldr r0, _080F3B34 @ =gUnknown_083DFEC4 + ldr r4, [r0] + ldr r1, _080F3B38 @ =0x0000bc90 + adds r0, r4, r1 + ldrb r0, [r0] + ldr r2, _080F3B3C @ =0x0000bc91 + adds r1, r4, r2 + ldrb r1, [r1] + bl sub_80F3A3C + adds r2, r0, 0 + ldr r1, _080F3B40 @ =0x00009348 + adds r0, r4, r1 + str r2, [r0] + cmp r2, 0 + beq _080F3B48 + adds r0, r2, 0 + movs r1, 0x1 + bl StartSpriteAffineAnim + ldr r2, _080F3B44 @ =0x0000bc92 + adds r1, r4, r2 + movs r0, 0x1 + strb r0, [r1] + b _080F3B4E + .align 2, 0 +_080F3B34: .4byte gUnknown_083DFEC4 +_080F3B38: .4byte 0x0000bc90 +_080F3B3C: .4byte 0x0000bc91 +_080F3B40: .4byte 0x00009348 +_080F3B44: .4byte 0x0000bc92 +_080F3B48: + ldr r1, _080F3B54 @ =0x0000bc92 + adds r0, r4, r1 + strb r2, [r0] +_080F3B4E: + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_080F3B54: .4byte 0x0000bc92 + thumb_func_end sub_80F3B00 + + thumb_func_start sub_80F3B58 +sub_80F3B58: @ 80F3B58 + push {lr} + ldr r0, _080F3B6C @ =gUnknown_083DFEC4 + ldr r1, [r0] + ldr r0, _080F3B70 @ =0x0000bc92 + adds r2, r1, r0 + ldrb r0, [r2] + cmp r0, 0 + bne _080F3B74 + movs r0, 0 + b _080F3B8A + .align 2, 0 +_080F3B6C: .4byte gUnknown_083DFEC4 +_080F3B70: .4byte 0x0000bc92 +_080F3B74: + ldr r3, _080F3B90 @ =0x00009348 + adds r0, r1, r3 + ldr r0, [r0] + adds r0, 0x3F + ldrb r0, [r0] + lsrs r0, 5 + movs r1, 0x1 + eors r0, r1 + ands r0, r1 + strb r0, [r2] + ldrb r0, [r2] +_080F3B8A: + pop {r1} + bx r1 + .align 2, 0 +_080F3B90: .4byte 0x00009348 + thumb_func_end sub_80F3B58 + + thumb_func_start sub_80F3B94 +sub_80F3B94: @ 80F3B94 + push {r4,lr} + ldr r0, _080F3BB8 @ =gUnknown_083DFEC4 + ldr r4, [r0] + ldr r1, _080F3BBC @ =0x00009348 + adds r0, r4, r1 + ldr r2, [r0] + cmp r2, 0 + beq _080F3BC4 + adds r0, r2, 0 + movs r1, 0x2 + bl StartSpriteAffineAnim + ldr r0, _080F3BC0 @ =0x0000bc92 + adds r1, r4, r0 + movs r0, 0x1 + strb r0, [r1] + b _080F3BCA + .align 2, 0 +_080F3BB8: .4byte gUnknown_083DFEC4 +_080F3BBC: .4byte 0x00009348 +_080F3BC0: .4byte 0x0000bc92 +_080F3BC4: + ldr r1, _080F3BD0 @ =0x0000bc92 + adds r0, r4, r1 + strb r2, [r0] +_080F3BCA: + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_080F3BD0: .4byte 0x0000bc92 + thumb_func_end sub_80F3B94 + + thumb_func_start sub_80F3BD4 +sub_80F3BD4: @ 80F3BD4 + push {r4-r6,lr} + ldr r0, _080F3C18 @ =gUnknown_083DFEC4 + ldr r1, [r0] + ldr r0, _080F3C1C @ =0x0000bc92 + adds r5, r1, r0 + ldrb r0, [r5] + cmp r0, 0 + beq _080F3C24 + ldr r0, _080F3C20 @ =0x00009348 + adds r4, r1, r0 + ldr r0, [r4] + adds r0, 0x3F + ldrb r0, [r0] + lsrs r0, 5 + movs r1, 0x1 + eors r0, r1 + ands r0, r1 + strb r0, [r5] + adds r6, r0, 0 + cmp r6, 0 + bne _080F3C12 + ldr r0, [r4] + ldrb r0, [r0, 0x3] + lsls r0, 26 + lsrs r0, 27 + bl FreeOamMatrix + ldr r0, [r4] + bl DestroySprite + str r6, [r4] +_080F3C12: + ldrb r0, [r5] + b _080F3C26 + .align 2, 0 +_080F3C18: .4byte gUnknown_083DFEC4 +_080F3C1C: .4byte 0x0000bc92 +_080F3C20: .4byte 0x00009348 +_080F3C24: + movs r0, 0 +_080F3C26: + pop {r4-r6} + pop {r1} + bx r1 + thumb_func_end sub_80F3BD4 + + thumb_func_start sub_80F3C2C +sub_80F3C2C: @ 80F3C2C + push {r4,lr} + ldr r0, _080F3C8C @ =gUnknown_083DFEC4 + ldr r0, [r0] + ldr r1, _080F3C90 @ =0x00009348 + adds r4, r0, r1 + ldr r0, [r4] + cmp r0, 0 + beq _080F3C50 + ldrb r0, [r0, 0x3] + lsls r0, 26 + lsrs r0, 27 + bl FreeOamMatrix + ldr r0, [r4] + bl DestroySprite + movs r0, 0 + str r0, [r4] +_080F3C50: + movs r4, 0 +_080F3C52: + adds r0, r4, 0 + adds r0, 0xB + lsls r0, 16 + lsrs r0, 16 + bl FreeSpriteTilesByTag + adds r0, r4, 0x1 + lsls r0, 16 + lsrs r4, r0, 16 + cmp r4, 0xB + bls _080F3C52 + movs r4, 0 +_080F3C6A: + adds r0, r4, 0 + adds r0, 0xA + lsls r0, 16 + lsrs r0, 16 + bl FreeSpritePaletteByTag + adds r0, r4, 0x1 + lsls r0, 16 + lsrs r4, r0, 16 + cmp r4, 0x4 + bls _080F3C6A + bl sub_80F2F48 + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_080F3C8C: .4byte gUnknown_083DFEC4 +_080F3C90: .4byte 0x00009348 + thumb_func_end sub_80F3C2C + + thumb_func_start sub_80F3C94 +sub_80F3C94: @ 80F3C94 + push {lr} + sub sp, 0x10 + ldr r0, _080F3CDC @ =gUnknown_083E4784 + ldr r1, [r0, 0x4] + ldr r0, [r0] + str r0, [sp] + str r1, [sp, 0x4] + ldr r0, _080F3CE0 @ =gUnknown_083E478C + ldr r1, [r0, 0x4] + ldr r0, [r0] + str r0, [sp, 0x8] + str r1, [sp, 0xC] + mov r0, sp + bl LoadSpriteSheet + add r0, sp, 0x8 + bl LoadSpritePalette + movs r1, 0 + ldr r0, _080F3CE4 @ =gUnknown_083DFEC4 + ldr r0, [r0] + movs r3, 0x88 + lsls r3, 8 + adds r2, r0, r3 + movs r3, 0 +_080F3CC6: + lsls r0, r1, 2 + adds r0, r2, r0 + str r3, [r0] + adds r0, r1, 0x1 + lsls r0, 16 + lsrs r1, r0, 16 + cmp r1, 0x9 + bls _080F3CC6 + add sp, 0x10 + pop {r0} + bx r0 + .align 2, 0 +_080F3CDC: .4byte gUnknown_083E4784 +_080F3CE0: .4byte gUnknown_083E478C +_080F3CE4: .4byte gUnknown_083DFEC4 + thumb_func_end sub_80F3C94 + + thumb_func_start sub_80F3CE8 +sub_80F3CE8: @ 80F3CE8 + push {lr} + bl move_anim_execute + movs r0, 0x17 + bl FreeSpriteTilesByTag + movs r0, 0xF + bl FreeSpritePaletteByTag + pop {r0} + bx r0 + thumb_func_end sub_80F3CE8 + + thumb_func_start sub_80F3D00 +sub_80F3D00: @ 80F3D00 + push {r4,r5,lr} + ldr r0, _080F3D34 @ =gUnknown_083DFEC4 + ldr r2, [r0] + ldr r1, _080F3D38 @ =0x000087dc + adds r0, r2, r1 + movs r3, 0 + ldrsh r0, [r0, r3] + lsls r0, 2 + ldr r1, _080F3D3C @ =0x0000893c + adds r0, r1 + adds r0, r2, r0 + ldrb r1, [r0, 0x3] + movs r0, 0x40 + ands r0, r1 + cmp r0, 0 + beq _080F3D94 + ldr r3, _080F3D40 @ =0x00008fe9 + adds r0, r2, r3 + movs r1, 0 + ldrsb r1, [r0, r1] + ldr r3, _080F3D44 @ =0x00008931 + adds r0, r2, r3 + adds r0, r1 + ldrb r5, [r0] + movs r4, 0 + b _080F3D86 + .align 2, 0 +_080F3D34: .4byte gUnknown_083DFEC4 +_080F3D38: .4byte 0x000087dc +_080F3D3C: .4byte 0x0000893c +_080F3D40: .4byte 0x00008fe9 +_080F3D44: .4byte 0x00008931 +_080F3D48: + ldr r0, _080F3D9C @ =gSpriteTemplate_83E4800 + movs r1, 0 + movs r2, 0 + movs r3, 0 + bl CreateSprite + lsls r0, 24 + lsrs r1, r0, 24 + cmp r1, 0x40 + beq _080F3D8C + ldr r0, _080F3DA0 @ =gUnknown_083DFEC4 + ldr r2, [r0] + lsls r0, r4, 2 + movs r3, 0x88 + lsls r3, 8 + adds r2, r3 + adds r2, r0 + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + ldr r1, _080F3DA4 @ =gSprites + adds r0, r1 + str r0, [r2] + adds r0, 0x3E + ldrb r1, [r0] + movs r2, 0x4 + orrs r1, r2 + strb r1, [r0] + adds r0, r4, 0x1 + lsls r0, 16 + lsrs r4, r0, 16 +_080F3D86: + adds r0, r5, 0x1 + cmp r4, r0 + blt _080F3D48 +_080F3D8C: + adds r0, r5, 0 + movs r1, 0x1 + bl sub_80F3F20 +_080F3D94: + pop {r4,r5} + pop {r0} + bx r0 + .align 2, 0 +_080F3D9C: .4byte gSpriteTemplate_83E4800 +_080F3DA0: .4byte gUnknown_083DFEC4 +_080F3DA4: .4byte gSprites + thumb_func_end sub_80F3D00 + + thumb_func_start move_anim_execute +move_anim_execute: @ 80F3DA8 + push {r4-r6,lr} + movs r5, 0 + ldr r0, _080F3DD8 @ =gUnknown_083DFEC4 + ldr r0, [r0] + movs r1, 0x88 + lsls r1, 8 + adds r6, r0, r1 +_080F3DB6: + lsls r0, r5, 2 + adds r4, r6, r0 + ldr r0, [r4] + cmp r0, 0 + beq _080F3DD2 + bl DestroySprite + movs r0, 0 + str r0, [r4] + adds r0, r5, 0x1 + lsls r0, 16 + lsrs r5, r0, 16 + cmp r5, 0x9 + bls _080F3DB6 +_080F3DD2: + pop {r4-r6} + pop {r0} + bx r0 + .align 2, 0 +_080F3DD8: .4byte gUnknown_083DFEC4 + thumb_func_end move_anim_execute + + thumb_func_start sub_80F3DDC +sub_80F3DDC: @ 80F3DDC + push {lr} + adds r1, r0, 0 + ldrh r0, [r1, 0x30] + adds r0, 0x1 + strh r0, [r1, 0x30] + lsls r0, 16 + asrs r0, 16 + cmp r0, 0x3C + ble _080F3DFE + movs r0, 0 + strh r0, [r1, 0x30] + ldrh r0, [r1, 0x32] + lsls r0, 24 + lsrs r0, 24 + movs r1, 0 + bl sub_80F3F20 +_080F3DFE: + pop {r0} + bx r0 + thumb_func_end sub_80F3DDC + + thumb_func_start sub_80F3E04 +sub_80F3E04: @ 80F3E04 + push {lr} + adds r2, r0, 0 + adds r0, 0x3F + ldrb r1, [r0] + movs r0, 0x10 + ands r0, r1 + cmp r0, 0 + beq _080F3E1C + movs r0, 0 + strh r0, [r2, 0x30] + ldr r0, _080F3E20 @ =sub_80F3DDC + str r0, [r2, 0x1C] +_080F3E1C: + pop {r0} + bx r0 + .align 2, 0 +_080F3E20: .4byte sub_80F3DDC + thumb_func_end sub_80F3E04 + + thumb_func_start sub_80F3E24 +sub_80F3E24: @ 80F3E24 + push {r4,r5,lr} + adds r3, r0, 0 + ldr r0, _080F3E64 @ =gUnknown_083DFEC4 + ldr r0, [r0] + ldr r1, _080F3E68 @ =0x00008768 + adds r4, r0, r1 + ldr r0, [r4] + cmp r0, 0 + beq _080F3E70 + ldrh r1, [r0, 0x24] + ldrh r0, [r0, 0x20] + adds r1, r0 + ldr r2, _080F3E6C @ =gUnknown_083E4794 + movs r5, 0x2E + ldrsh r0, [r3, r5] + lsls r0, 2 + adds r0, r2 + ldrh r0, [r0] + adds r0, r1 + strh r0, [r3, 0x20] + ldr r0, [r4] + ldrh r1, [r0, 0x26] + ldrh r0, [r0, 0x22] + adds r1, r0 + movs r4, 0x2E + ldrsh r0, [r3, r4] + lsls r0, 2 + adds r2, 0x2 + adds r0, r2 + ldrh r0, [r0] + adds r0, r1 + b _080F3E8E + .align 2, 0 +_080F3E64: .4byte gUnknown_083DFEC4 +_080F3E68: .4byte 0x00008768 +_080F3E6C: .4byte gUnknown_083E4794 +_080F3E70: + ldr r1, _080F3E98 @ =gUnknown_083E4794 + movs r5, 0x2E + ldrsh r0, [r3, r5] + lsls r0, 2 + adds r0, r1 + ldrh r0, [r0] + adds r0, 0x28 + strh r0, [r3, 0x20] + movs r2, 0x2E + ldrsh r0, [r3, r2] + lsls r0, 2 + adds r1, 0x2 + adds r0, r1 + ldrh r0, [r0] + adds r0, 0x68 +_080F3E8E: + strh r0, [r3, 0x22] + pop {r4,r5} + pop {r0} + bx r0 + .align 2, 0 +_080F3E98: .4byte gUnknown_083E4794 + thumb_func_end sub_80F3E24 + + thumb_func_start sub_80F3E9C +sub_80F3E9C: @ 80F3E9C + push {r4,lr} + adds r4, r0, 0 + ldrh r1, [r4, 0x30] + movs r2, 0x30 + ldrsh r0, [r4, r2] + cmp r0, 0 + beq _080F3ECA + subs r0, r1, 0x1 + strh r0, [r4, 0x30] + lsls r0, 16 + cmp r0, 0 + bne _080F3F14 + adds r0, r4, 0 + movs r1, 0 + bl SeekSpriteAnim + adds r2, r4, 0 + adds r2, 0x3E + ldrb r1, [r2] + movs r0, 0x5 + negs r0, r0 + ands r0, r1 + strb r0, [r2] +_080F3ECA: + adds r0, r4, 0 + bl sub_80F3E24 + adds r0, r4, 0 + adds r0, 0x3F + ldrb r1, [r0] + movs r0, 0x10 + ands r0, r1 + cmp r0, 0 + beq _080F3F14 + adds r2, r4, 0 + adds r2, 0x3E + ldrb r0, [r2] + movs r1, 0x4 + orrs r0, r1 + strb r0, [r2] + movs r0, 0x34 + ldrsh r1, [r4, r0] + movs r2, 0x32 + ldrsh r0, [r4, r2] + cmp r1, r0 + bne _080F3F10 + cmp r1, 0x9 + bne _080F3F08 + bl sub_80F3FAC + ldr r0, _080F3F04 @ =sub_80F3E04 + b _080F3F12 + .align 2, 0 +_080F3F04: .4byte sub_80F3E04 +_080F3F08: + ldr r0, _080F3F0C @ =sub_80F3DDC + b _080F3F12 + .align 2, 0 +_080F3F0C: .4byte sub_80F3DDC +_080F3F10: + ldr r0, _080F3F1C @ =SpriteCallbackDummy +_080F3F12: + str r0, [r4, 0x1C] +_080F3F14: + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_080F3F1C: .4byte SpriteCallbackDummy + thumb_func_end sub_80F3E9C + + thumb_func_start sub_80F3F20 +sub_80F3F20: @ 80F3F20 + push {r4-r7,lr} + mov r7, r8 + push {r7} + lsls r0, 24 + lsrs r6, r0, 24 + lsls r1, 24 + lsrs r1, 24 + mov r8, r1 + movs r5, 0 + ldr r0, _080F3F6C @ =gUnknown_083DFEC4 + ldr r0, [r0] + movs r1, 0x88 + lsls r1, 8 + adds r7, r0, r1 +_080F3F3C: + lsls r0, r5, 2 + adds r4, r7, r0 + ldr r0, [r4] + cmp r0, 0 + beq _080F3F92 + strh r5, [r0, 0x2E] + ldr r1, [r4] + lsls r0, r5, 4 + adds r0, 0x1 + strh r0, [r1, 0x30] + ldr r0, [r4] + strh r6, [r0, 0x32] + ldr r0, [r4] + strh r5, [r0, 0x34] + mov r3, r8 + cmp r3, 0 + beq _080F3F62 + cmp r6, 0x9 + beq _080F3F74 +_080F3F62: + ldr r1, [r4] + ldr r0, _080F3F70 @ =sub_80F3E9C + str r0, [r1, 0x1C] + b _080F3F92 + .align 2, 0 +_080F3F6C: .4byte gUnknown_083DFEC4 +_080F3F70: .4byte sub_80F3E9C +_080F3F74: + ldr r0, [r4] + bl sub_80F3E24 + bl sub_80F3FAC + ldr r2, [r4] + ldr r0, _080F3FA8 @ =sub_80F3E04 + str r0, [r2, 0x1C] + adds r2, 0x3E + ldrb r0, [r2] + movs r3, 0x5 + negs r3, r3 + adds r1, r3, 0 + ands r0, r1 + strb r0, [r2] +_080F3F92: + adds r0, r5, 0x1 + lsls r0, 16 + lsrs r5, r0, 16 + cmp r5, 0x9 + bls _080F3F3C + pop {r3} + mov r8, r3 + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_080F3FA8: .4byte sub_80F3E04 + thumb_func_end sub_80F3F20 + + thumb_func_start sub_80F3FAC +sub_80F3FAC: @ 80F3FAC + push {r4-r7,lr} + movs r5, 0 + ldr r0, _080F3FEC @ =gUnknown_083DFEC4 + ldr r0, [r0] + movs r1, 0x88 + lsls r1, 8 + adds r6, r0, r1 + movs r0, 0x5 + negs r0, r0 + adds r7, r0, 0 +_080F3FC0: + lsls r0, r5, 2 + adds r4, r6, r0 + ldr r0, [r4] + cmp r0, 0 + beq _080F3FDA + movs r1, 0 + bl SeekSpriteAnim + ldr r1, [r4] + adds r1, 0x3E + ldrb r0, [r1] + ands r0, r7 + strb r0, [r1] +_080F3FDA: + adds r0, r5, 0x1 + lsls r0, 16 + lsrs r5, r0, 16 + cmp r5, 0x9 + bls _080F3FC0 + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_080F3FEC: .4byte gUnknown_083DFEC4 + thumb_func_end sub_80F3FAC + + thumb_func_start sub_80F3FF0 +sub_80F3FF0: @ 80F3FF0 + push {lr} + ldr r0, _080F4018 @ =gUnknown_083DFEC4 + ldr r0, [r0] + ldr r1, _080F401C @ =0x00000306 + adds r2, r0, r1 + movs r1, 0 + strh r1, [r2] + ldr r1, _080F4020 @ =0x00006dac + adds r0, r1 + ldrb r0, [r0] + cmp r0, 0 + bne _080F4012 +_080F4008: + bl sub_80F4024 + lsls r0, 24 + cmp r0, 0 + bne _080F4008 +_080F4012: + pop {r0} + bx r0 + .align 2, 0 +_080F4018: .4byte gUnknown_083DFEC4 +_080F401C: .4byte 0x00000306 +_080F4020: .4byte 0x00006dac + thumb_func_end sub_80F3FF0 + + thumb_func_start sub_80F4024 +sub_80F4024: @ 80F4024 + push {r4,lr} + sub sp, 0x10 + ldr r0, _080F4040 @ =gUnknown_083DFEC4 + ldr r4, [r0] + ldr r1, _080F4044 @ =0x00000306 + adds r0, r4, r1 + ldrh r0, [r0] + cmp r0, 0x1 + beq _080F4068 + cmp r0, 0x1 + bgt _080F4048 + cmp r0, 0 + beq _080F4052 + b _080F4106 + .align 2, 0 +_080F4040: .4byte gUnknown_083DFEC4 +_080F4044: .4byte 0x00000306 +_080F4048: + cmp r0, 0x2 + beq _080F4084 + cmp r0, 0x3 + beq _080F40B8 + b _080F4106 +_080F4052: + ldr r0, _080F4060 @ =gUnknown_083E329C + ldr r2, _080F4064 @ =0x000131e4 + adds r1, r4, r2 + bl LZ77UnCompWram + b _080F4118 + .align 2, 0 +_080F4060: .4byte gUnknown_083E329C +_080F4064: .4byte 0x000131e4 +_080F4068: + ldr r1, _080F407C @ =0x000131e4 + adds r0, r4, r1 + str r0, [sp] + ldr r0, _080F4080 @ =0x00181000 + str r0, [sp, 0x4] + mov r0, sp + bl LoadSpriteSheet + b _080F4118 + .align 2, 0 +_080F407C: .4byte 0x000131e4 +_080F4080: .4byte 0x00181000 +_080F4084: + ldr r0, _080F40B4 @ =gUnknown_083E4818 + ldr r1, [r0, 0x4] + ldr r0, [r0] + str r0, [sp, 0x8] + str r1, [sp, 0xC] + add r0, sp, 0x8 + bl LoadSpritePalette + movs r0, 0x10 + bl IndexOfSpritePaletteTag + lsls r0, 24 + lsrs r0, 24 + movs r1, 0xC2 + lsls r1, 2 + adds r2, r4, r1 + adds r0, 0x10 + movs r1, 0x1 + lsls r1, r0 + movs r0, 0x3 + negs r0, r0 + bics r0, r1 + str r0, [r2] + b _080F4118 + .align 2, 0 +_080F40B4: .4byte gUnknown_083E4818 +_080F40B8: + ldr r0, _080F40E4 @ =gSpriteTemplate_83E4850 + movs r1, 0xDA + movs r2, 0xE + movs r3, 0 + bl CreateSprite + lsls r0, 24 + lsrs r1, r0, 24 + cmp r1, 0x40 + beq _080F40F0 + ldr r0, _080F40E8 @ =0x00006d98 + adds r2, r4, r0 + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + ldr r1, _080F40EC @ =gSprites + adds r0, r1 + str r0, [r2] + movs r1, 0 + strh r1, [r0, 0x2E] + b _080F40F8 + .align 2, 0 +_080F40E4: .4byte gSpriteTemplate_83E4850 +_080F40E8: .4byte 0x00006d98 +_080F40EC: .4byte gSprites +_080F40F0: + ldr r2, _080F410C @ =0x00006d98 + adds r1, r4, r2 + movs r0, 0 + str r0, [r1] +_080F40F8: + ldr r0, _080F4110 @ =gUnknown_083DFEC4 + ldr r1, [r0] + ldr r0, _080F4114 @ =0x00000306 + adds r1, r0 + ldrh r0, [r1] + adds r0, 0x1 + strh r0, [r1] +_080F4106: + movs r0, 0 + b _080F4128 + .align 2, 0 +_080F410C: .4byte 0x00006d98 +_080F4110: .4byte gUnknown_083DFEC4 +_080F4114: .4byte 0x00000306 +_080F4118: + ldr r0, _080F4130 @ =gUnknown_083DFEC4 + ldr r1, [r0] + ldr r2, _080F4134 @ =0x00000306 + adds r1, r2 + ldrh r0, [r1] + adds r0, 0x1 + strh r0, [r1] + movs r0, 0x1 +_080F4128: + add sp, 0x10 + pop {r4} + pop {r1} + bx r1 + .align 2, 0 +_080F4130: .4byte gUnknown_083DFEC4 +_080F4134: .4byte 0x00000306 + thumb_func_end sub_80F4024 + + thumb_func_start sub_80F4138 +sub_80F4138: @ 80F4138 + push {lr} + adds r2, r0, 0 + ldr r0, _080F4170 @ =gUnknown_083DFEC4 + ldr r0, [r0] + movs r1, 0xC3 + lsls r1, 2 + adds r0, r1 + ldrh r0, [r0] + negs r0, r0 + strh r0, [r2, 0x26] + lsls r0, 16 + asrs r0, 16 + movs r1, 0x20 + negs r1, r1 + cmp r0, r1 + bgt _080F4174 + movs r1, 0x2E + ldrsh r0, [r2, r1] + cmp r0, 0 + bne _080F418E + adds r3, r2, 0 + adds r3, 0x3E + ldrb r0, [r3] + movs r1, 0x4 + orrs r0, r1 + strb r0, [r3] + movs r0, 0x1 + b _080F418C + .align 2, 0 +_080F4170: .4byte gUnknown_083DFEC4 +_080F4174: + movs r1, 0x2E + ldrsh r0, [r2, r1] + cmp r0, 0x1 + bne _080F418E + adds r3, r2, 0 + adds r3, 0x3E + ldrb r0, [r3] + movs r1, 0x5 + negs r1, r1 + ands r1, r0 + strb r1, [r3] + movs r0, 0 +_080F418C: + strh r0, [r2, 0x2E] +_080F418E: + pop {r0} + bx r0 + thumb_func_end sub_80F4138 + + thumb_func_start sub_80F4194 +sub_80F4194: @ 80F4194 + push {r4-r7,lr} + sub sp, 0x4 + adds r7, r0, 0 + adds r2, r1, 0 + ldr r0, _080F42A4 @ =gUnknown_083DFEC8 + ldr r6, [r0] + mov r0, sp + ldr r1, _080F42A8 @ =0x00001111 + adds r5, r1, 0 + strh r5, [r0] + ldr r4, _080F42AC @ =0x040000d4 + str r0, [r4] + str r6, [r4, 0x4] + ldr r3, _080F42B0 @ =0x81000140 + str r3, [r4, 0x8] + ldr r0, [r4, 0x8] + movs r0, 0x80 + lsls r0, 3 + adds r1, r6, r0 + mov r0, sp + strh r5, [r0] + str r0, [r4] + str r1, [r4, 0x4] + str r3, [r4, 0x8] + ldr r0, [r4, 0x8] + ldr r0, _080F42B4 @ =gWindowConfig_81E70F0 + adds r1, r6, 0 + bl sub_8004E3C + movs r3, 0x88 + lsls r3, 2 + adds r1, r6, r3 + mov r0, sp + movs r3, 0 + strh r3, [r0] + str r0, [r4] + str r1, [r4, 0x4] + ldr r2, _080F42B8 @ =0x81000030 + str r2, [r4, 0x8] + ldr r0, [r4, 0x8] + movs r0, 0xC4 + lsls r0, 3 + adds r1, r6, r0 + mov r0, sp + strh r3, [r0] + str r0, [r4] + str r1, [r4, 0x4] + str r2, [r4, 0x8] + ldr r0, [r4, 0x8] + movs r1, 0x80 + lsls r1, 2 + adds r2, r6, r1 + ldr r0, [r2] + ldr r1, _080F42BC @ =0x0fffffff + ands r0, r1 + str r0, [r2] + ldr r0, [r2, 0x4] + ands r0, r1 + str r0, [r2, 0x4] + ldr r0, [r2, 0x8] + ands r0, r1 + str r0, [r2, 0x8] + ldr r0, [r2, 0xC] + ands r0, r1 + str r0, [r2, 0xC] + ldr r0, [r2, 0x10] + ands r0, r1 + str r0, [r2, 0x10] + ldr r0, [r2, 0x14] + ands r0, r1 + str r0, [r2, 0x14] + ldr r0, [r2, 0x18] + ands r0, r1 + str r0, [r2, 0x18] + ldr r0, [r2, 0x1C] + ands r0, r1 + str r0, [r2, 0x1C] + movs r3, 0xC0 + lsls r3, 3 + adds r2, r6, r3 + ldr r0, [r2] + ands r0, r1 + str r0, [r2] + ldr r0, [r2, 0x4] + ands r0, r1 + str r0, [r2, 0x4] + ldr r0, [r2, 0x8] + ands r0, r1 + str r0, [r2, 0x8] + ldr r0, [r2, 0xC] + ands r0, r1 + str r0, [r2, 0xC] + ldr r0, [r2, 0x10] + ands r0, r1 + str r0, [r2, 0x10] + ldr r0, [r2, 0x14] + ands r0, r1 + str r0, [r2, 0x14] + ldr r0, [r2, 0x18] + ands r0, r1 + str r0, [r2, 0x18] + ldr r0, [r2, 0x1C] + ands r0, r1 + str r0, [r2, 0x1C] + movs r1, 0 + ldr r2, _080F42C0 @ =0x80000040 +_080F4268: + lsls r0, r1, 7 + adds r0, r6, r0 + str r0, [r4] + lsls r0, r1, 8 + adds r0, r7, r0 + str r0, [r4, 0x4] + str r2, [r4, 0x8] + ldr r0, [r4, 0x8] + lsls r0, r1, 7 + movs r3, 0x80 + lsls r3, 3 + adds r0, r3 + adds r0, r6, r0 + str r0, [r4] + lsls r0, r1, 3 + adds r0, 0x4 + lsls r0, 5 + adds r0, r7, r0 + str r0, [r4, 0x4] + str r2, [r4, 0x8] + ldr r0, [r4, 0x8] + adds r0, r1, 0x1 + lsls r0, 24 + lsrs r1, r0, 24 + cmp r1, 0x4 + bls _080F4268 + add sp, 0x4 + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_080F42A4: .4byte gUnknown_083DFEC8 +_080F42A8: .4byte 0x00001111 +_080F42AC: .4byte 0x040000d4 +_080F42B0: .4byte 0x81000140 +_080F42B4: .4byte gWindowConfig_81E70F0 +_080F42B8: .4byte 0x81000030 +_080F42BC: .4byte 0x0fffffff +_080F42C0: .4byte 0x80000040 + thumb_func_end sub_80F4194 + + thumb_func_start sub_80F42C4 +sub_80F42C4: @ 80F42C4 + push {r4-r7,lr} + sub sp, 0x8 + adds r1, r0, 0 + ldr r0, _080F433C @ =gUnknown_083DFEC4 + ldr r0, [r0] + ldr r2, _080F4340 @ =0x0000d1e4 + adds r0, r2 + str r0, [sp] + ldr r2, _080F4344 @ =0x001a0500 + str r2, [sp, 0x4] + bl sub_80F4194 + mov r0, sp + bl LoadSpriteSheet + ldr r0, _080F4348 @ =gUnknown_083E4868 + bl LoadSpritePalette + movs r5, 0 + movs r4, 0 + ldr r6, _080F434C @ =gSprites +_080F42EE: + lsls r1, r4, 21 + movs r7, 0xE2 + lsls r7, 15 + adds r1, r7 + asrs r1, 16 + ldr r0, _080F4350 @ =gSpriteTemplate_83E4878 + movs r2, 0x10 + movs r3, 0 + bl CreateSprite + lsls r0, 24 + lsrs r0, 24 + cmp r0, 0x40 + beq _080F4360 + lsls r3, r0, 4 + adds r3, r0 + lsls r3, 2 + adds r3, r6 + ldrh r2, [r3, 0x4] + lsls r0, r2, 22 + lsrs r0, 22 + adds r0, r5, r0 + ldr r7, _080F4354 @ =0x000003ff + adds r1, r7, 0 + ands r0, r1 + ldr r7, _080F4358 @ =0xfffffc00 + adds r1, r7, 0 + ands r2, r1 + orrs r2, r0 + strh r2, [r3, 0x4] + ldr r0, _080F433C @ =gUnknown_083DFEC4 + ldr r0, [r0] + lsls r1, r4, 2 + ldr r2, _080F435C @ =0x0000ced4 + adds r0, r2 + adds r0, r1 + str r3, [r0] + b _080F4370 + .align 2, 0 +_080F433C: .4byte gUnknown_083DFEC4 +_080F4340: .4byte 0x0000d1e4 +_080F4344: .4byte 0x001a0500 +_080F4348: .4byte gUnknown_083E4868 +_080F434C: .4byte gSprites +_080F4350: .4byte gSpriteTemplate_83E4878 +_080F4354: .4byte 0x000003ff +_080F4358: .4byte 0xfffffc00 +_080F435C: .4byte 0x0000ced4 +_080F4360: + ldr r0, _080F438C @ =gUnknown_083DFEC4 + ldr r1, [r0] + lsls r0, r4, 2 + ldr r7, _080F4390 @ =0x0000ced4 + adds r1, r7 + adds r1, r0 + movs r0, 0 + str r0, [r1] +_080F4370: + adds r0, r5, 0 + adds r0, 0x8 + lsls r0, 16 + lsrs r5, r0, 16 + adds r0, r4, 0x1 + lsls r0, 16 + lsrs r4, r0, 16 + cmp r4, 0x4 + bls _080F42EE + add sp, 0x8 + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_080F438C: .4byte gUnknown_083DFEC4 +_080F4390: .4byte 0x0000ced4 + thumb_func_end sub_80F42C4 + + thumb_func_start sub_80F4394 +sub_80F4394: @ 80F4394 + push {r4,r5,lr} + movs r4, 0 + ldr r0, _080F43CC @ =gUnknown_083DFEC4 + ldr r0, [r0] + ldr r1, _080F43D0 @ =0x0000ced4 + adds r5, r0, r1 +_080F43A0: + lsls r0, r4, 2 + adds r0, r5, r0 + ldr r0, [r0] + cmp r0, 0 + beq _080F43AE + bl DestroySprite +_080F43AE: + adds r0, r4, 0x1 + lsls r0, 16 + lsrs r4, r0, 16 + cmp r4, 0x4 + bls _080F43A0 + movs r0, 0x1A + bl FreeSpriteTilesByTag + movs r0, 0x12 + bl FreeSpritePaletteByTag + pop {r4,r5} + pop {r0} + bx r0 + .align 2, 0 +_080F43CC: .4byte gUnknown_083DFEC4 +_080F43D0: .4byte 0x0000ced4 + thumb_func_end sub_80F4394 + + thumb_func_start sub_80F43D4 +sub_80F43D4: @ 80F43D4 + push {r4,lr} + adds r1, r0, 0 + ldr r0, _080F4410 @ =gUnknown_083DFEC4 + ldr r0, [r0] + ldr r2, _080F4414 @ =0x0000d1e4 + adds r4, r0, r2 + adds r0, r4, 0 + bl sub_80F4194 + movs r0, 0x1A + bl GetSpriteTileStartByTag + lsls r0, 16 + lsrs r1, r0, 16 + ldr r0, _080F4418 @ =0x0000ffff + cmp r1, r0 + beq _080F4408 + lsls r0, r1, 5 + ldr r1, _080F441C @ =0x06010000 + adds r0, r1 + ldr r1, _080F4420 @ =0x040000d4 + str r4, [r1] + str r0, [r1, 0x4] + ldr r0, _080F4424 @ =0x84000140 + str r0, [r1, 0x8] + ldr r0, [r1, 0x8] +_080F4408: + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_080F4410: .4byte gUnknown_083DFEC4 +_080F4414: .4byte 0x0000d1e4 +_080F4418: .4byte 0x0000ffff +_080F441C: .4byte 0x06010000 +_080F4420: .4byte 0x040000d4 +_080F4424: .4byte 0x84000140 + thumb_func_end sub_80F43D4 + + thumb_func_start sub_80F4428 +sub_80F4428: @ 80F4428 + push {lr} + lsls r1, 16 + lsrs r1, 16 + lsls r2, 24 + lsrs r2, 24 + bl sub_80F6514 + pop {r1} + bx r1 + thumb_func_end sub_80F4428 + + thumb_func_start sub_80F443C +sub_80F443C: @ 80F443C + push {r4,lr} + lsls r4, r1, 16 + lsrs r4, 16 + ldr r1, _080F4458 @ =gOtherText_Number + bl StringCopy + adds r1, r4, 0 + movs r2, 0x38 + movs r3, 0x1 + bl sub_8072C14 + pop {r4} + pop {r1} + bx r1 + .align 2, 0 +_080F4458: .4byte gOtherText_Number + thumb_func_end sub_80F443C + + thumb_func_start sub_80F445C +sub_80F445C: @ 80F445C + push {r4,lr} + lsls r1, 16 + lsrs r1, 16 + movs r2, 0x17 + movs r3, 0x1 + bl sub_8072C14 + adds r4, r0, 0 + movs r3, 0xFC + strb r3, [r4] + movs r2, 0x11 + strb r2, [r4, 0x1] + movs r1, 0x1 + strb r1, [r4, 0x2] + adds r4, 0x3 + movs r0, 0xBA + strb r0, [r4] + adds r4, 0x1 + strb r3, [r4] + strb r2, [r4, 0x1] + strb r1, [r4, 0x2] + adds r4, 0x3 + ldr r0, _080F44A8 @ =gUnknown_083DFEC4 + ldr r0, [r0] + ldr r1, _080F44AC @ =0x00008774 + adds r0, r1 + movs r2, 0 + ldrsh r1, [r0, r2] + adds r1, 0x1 + adds r0, r4, 0 + movs r2, 0x32 + movs r3, 0x1 + bl sub_8072C14 + adds r4, r0, 0 + pop {r4} + pop {r1} + bx r1 + .align 2, 0 +_080F44A8: .4byte gUnknown_083DFEC4 +_080F44AC: .4byte 0x00008774 + thumb_func_end sub_80F445C + + thumb_func_start sub_80F44B0 +sub_80F44B0: @ 80F44B0 + push {r4,lr} + adds r4, r2, 0 + lsls r0, 16 + lsrs r0, 16 + lsls r1, 16 + lsrs r2, r1, 16 + cmp r0, 0xE + bne _080F44F4 + cmp r4, 0x2 + beq _080F44C8 + cmp r4, 0x7 + bne _080F44E0 +_080F44C8: + movs r0, 0x64 + muls r0, r2 + ldr r1, _080F44DC @ =gPlayerParty + adds r0, r1 + adds r1, r4, 0 + adds r2, r3, 0 + bl GetMonData + b _080F453C + .align 2, 0 +_080F44DC: .4byte gPlayerParty +_080F44E0: + movs r0, 0x64 + muls r0, r2 + ldr r1, _080F44F0 @ =gPlayerParty + adds r0, r1 + adds r1, r4, 0 + bl GetMonData + b _080F453C + .align 2, 0 +_080F44F0: .4byte gPlayerParty +_080F44F4: + cmp r4, 0x2 + beq _080F44FC + cmp r4, 0x7 + bne _080F4520 +_080F44FC: + lsls r1, r0, 2 + adds r1, r0 + lsls r0, r1, 4 + subs r0, r1 + lsls r0, 5 + lsls r1, r2, 2 + adds r1, r2 + lsls r1, 4 + ldr r2, _080F451C @ =gUnknown_020300A4 + adds r1, r2 + adds r0, r1 + adds r1, r4, 0 + adds r2, r3, 0 + bl GetBoxMonData + b _080F453C + .align 2, 0 +_080F451C: .4byte gUnknown_020300A4 +_080F4520: + lsls r1, r0, 2 + adds r1, r0 + lsls r0, r1, 4 + subs r0, r1 + lsls r0, 5 + lsls r1, r2, 2 + adds r1, r2 + lsls r1, 4 + ldr r2, _080F4544 @ =gUnknown_020300A4 + adds r1, r2 + adds r0, r1 + adds r1, r4, 0 + bl GetBoxMonData +_080F453C: + pop {r4} + pop {r1} + bx r1 + .align 2, 0 +_080F4544: .4byte gUnknown_020300A4 + thumb_func_end sub_80F44B0 + + thumb_func_start sub_80F4548 +sub_80F4548: @ 80F4548 + push {r4,lr} + sub sp, 0x4 + lsls r0, 16 + lsrs r3, r0, 16 + lsls r1, 16 + lsrs r4, r1, 16 + mov r0, sp + strb r2, [r0] + cmp r3, 0xE + bne _080F4574 + movs r0, 0x64 + muls r0, r4 + ldr r1, _080F4570 @ =gPlayerParty + adds r0, r1 + movs r1, 0x8 + mov r2, sp + bl SetMonData + b _080F4592 + .align 2, 0 +_080F4570: .4byte gPlayerParty +_080F4574: + lsls r1, r3, 2 + adds r1, r3 + lsls r0, r1, 4 + subs r0, r1 + lsls r0, 5 + lsls r1, r4, 2 + adds r1, r4 + lsls r1, 4 + ldr r2, _080F459C @ =gUnknown_020300A4 + adds r1, r2 + adds r0, r1 + movs r1, 0x8 + mov r2, sp + bl SetBoxMonData +_080F4592: + add sp, 0x4 + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_080F459C: .4byte gUnknown_020300A4 + thumb_func_end sub_80F4548 + + thumb_func_start sub_80F45A0 +sub_80F45A0: @ 80F45A0 + push {r4-r7,lr} + lsls r1, 24 + lsrs r6, r1, 24 + ldr r1, _080F45F0 @ =gUnknown_083DFEC4 + ldr r5, [r1] + lsls r1, r0, 16 + asrs r0, r1, 14 + adds r4, r5, r0 + ldr r2, _080F45F4 @ =0x0000893f + adds r0, r4, r2 + ldrb r0, [r0] + lsls r0, 25 + lsrs r7, r0, 31 + cmp r7, 0 + beq _080F4644 + lsls r0, r6, 6 + ldr r2, _080F45F8 @ =0x00008829 + adds r0, r2 + adds r0, r5, r0 + lsrs r1, 16 + movs r2, 0 + bl sub_80F4428 + ldr r1, _080F45FC @ =0x0000893d + adds r0, r4, r1 + ldrb r2, [r0] + cmp r2, 0xE + bne _080F4608 + lsls r0, r6, 1 + adds r0, r6 + lsls r0, 3 + ldr r2, _080F4600 @ =0x000088e9 + adds r0, r2 + adds r0, r5, r0 + ldr r1, _080F4604 @ =gOtherText_InParty + movs r2, 0x40 + movs r3, 0 + bl sub_8072C74 + b _080F4624 + .align 2, 0 +_080F45F0: .4byte gUnknown_083DFEC4 +_080F45F4: .4byte 0x0000893f +_080F45F8: .4byte 0x00008829 +_080F45FC: .4byte 0x0000893d +_080F4600: .4byte 0x000088e9 +_080F4604: .4byte gOtherText_InParty +_080F4608: + lsls r0, r6, 1 + adds r0, r6 + lsls r0, 3 + ldr r1, _080F4634 @ =0x000088e9 + adds r0, r1 + adds r0, r5, r0 + lsls r1, r2, 3 + adds r1, r2 + ldr r2, _080F4638 @ =gUnknown_020383E4 + adds r1, r2 + movs r2, 0x40 + movs r3, 0 + bl sub_8072C74 +_080F4624: + ldr r0, _080F463C @ =gUnknown_083DFEC4 + ldr r0, [r0] + ldr r2, _080F4640 @ =0x00008937 + adds r0, r2 + adds r0, r6 + movs r1, 0x1 + strb r1, [r0] + b _080F4676 + .align 2, 0 +_080F4634: .4byte 0x000088e9 +_080F4638: .4byte gUnknown_020383E4 +_080F463C: .4byte gUnknown_083DFEC4 +_080F4640: .4byte 0x00008937 +_080F4644: + lsls r0, r6, 6 + ldr r1, _080F467C @ =0x00008829 + adds r0, r1 + adds r0, r5, r0 + ldr r4, _080F4680 @ =gEmptyString_81E72B0 + adds r1, r4, 0 + movs r2, 0x68 + movs r3, 0 + bl sub_8072C74 + lsls r0, r6, 1 + adds r0, r6 + lsls r0, 3 + ldr r2, _080F4684 @ =0x000088e9 + adds r0, r2 + adds r0, r5, r0 + adds r1, r4, 0 + movs r2, 0x40 + movs r3, 0 + bl sub_8072C74 + ldr r1, _080F4688 @ =0x00008937 + adds r0, r5, r1 + adds r0, r6 + strb r7, [r0] +_080F4676: + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_080F467C: .4byte 0x00008829 +_080F4680: .4byte gEmptyString_81E72B0 +_080F4684: .4byte 0x000088e9 +_080F4688: .4byte 0x00008937 + thumb_func_end sub_80F45A0 + + thumb_func_start sub_80F468C +sub_80F468C: @ 80F468C + push {r4-r7,lr} + mov r7, r9 + mov r6, r8 + push {r6,r7} + lsls r1, 24 + lsrs r1, 24 + mov r9, r1 + ldr r1, _080F475C @ =gUnknown_083DFEC4 + ldr r7, [r1] + lsls r0, 16 + asrs r0, 14 + adds r1, r7, r0 + ldr r2, _080F4760 @ =0x0000893f + adds r0, r1, r2 + ldrb r0, [r0] + lsls r0, 25 + cmp r0, 0 + blt _080F46B2 + b _080F47C4 +_080F46B2: + ldr r3, _080F4764 @ =0x0000893d + adds r0, r1, r3 + ldrb r5, [r0] + subs r2, 0x1 + adds r0, r1, r2 + ldrb r0, [r0] + lsls r0, 27 + lsrs r6, r0, 27 + adds r0, r5, 0 + adds r1, r6, 0 + movs r2, 0x16 + movs r3, 0 + bl sub_80F44B0 + mov r3, r9 + lsls r3, 2 + mov r8, r3 + mov r4, r8 + add r4, r9 + ldr r2, _080F4768 @ =0x00008ff0 + adds r1, r7, r2 + adds r1, r4 + strb r0, [r1] + adds r0, r5, 0 + adds r1, r6, 0 + movs r2, 0x2F + movs r3, 0 + bl sub_80F44B0 + ldr r3, _080F476C @ =0x00008ff1 + adds r1, r7, r3 + adds r1, r4 + strb r0, [r1] + adds r0, r5, 0 + adds r1, r6, 0 + movs r2, 0x21 + movs r3, 0 + bl sub_80F44B0 + ldr r2, _080F4770 @ =0x00008ff2 + adds r1, r7, r2 + adds r1, r4 + strb r0, [r1] + adds r0, r5, 0 + adds r1, r6, 0 + movs r2, 0x18 + movs r3, 0 + bl sub_80F44B0 + ldr r3, _080F4774 @ =0x00008ff3 + adds r1, r7, r3 + adds r1, r4 + strb r0, [r1] + adds r0, r5, 0 + adds r1, r6, 0 + movs r2, 0x17 + movs r3, 0 + bl sub_80F44B0 + ldr r2, _080F4778 @ =0x00008ff4 + adds r1, r7, r2 + adds r1, r4 + strb r0, [r1] + ldr r3, _080F477C @ =0x00008931 + adds r0, r7, r3 + mov r7, r9 + adds r4, r0, r7 + adds r0, r5, 0 + adds r1, r6, 0 + movs r2, 0x30 + movs r3, 0 + bl sub_80F44B0 + cmp r0, 0xFF + beq _080F4780 + adds r0, r5, 0 + adds r1, r6, 0 + movs r2, 0x30 + movs r3, 0 + bl sub_80F44B0 + movs r1, 0x1D + bl __udivsi3 + b _080F4782 + .align 2, 0 +_080F475C: .4byte gUnknown_083DFEC4 +_080F4760: .4byte 0x0000893f +_080F4764: .4byte 0x0000893d +_080F4768: .4byte 0x00008ff0 +_080F476C: .4byte 0x00008ff1 +_080F4770: .4byte 0x00008ff2 +_080F4774: .4byte 0x00008ff3 +_080F4778: .4byte 0x00008ff4 +_080F477C: .4byte 0x00008931 +_080F4780: + movs r0, 0x9 +_080F4782: + strb r0, [r4] + adds r0, r5, 0 + adds r1, r6, 0 + movs r2, 0x8 + movs r3, 0 + bl sub_80F44B0 + ldr r1, _080F47B4 @ =gUnknown_083DFEC4 + ldr r1, [r1] + ldr r3, _080F47B8 @ =0x00008934 + adds r2, r1, r3 + add r2, r9 + strb r0, [r2] + mov r2, r8 + add r2, r9 + ldr r7, _080F47BC @ =0x00008ff0 + adds r0, r2, r7 + adds r0, r1, r0 + lsls r2, 2 + ldr r3, _080F47C0 @ =0x00009004 + adds r2, r3 + adds r1, r2 + bl sub_80F55AC + b _080F480A + .align 2, 0 +_080F47B4: .4byte gUnknown_083DFEC4 +_080F47B8: .4byte 0x00008934 +_080F47BC: .4byte 0x00008ff0 +_080F47C0: .4byte 0x00009004 +_080F47C4: + movs r3, 0 + mov r0, r9 + lsls r0, 2 + mov r8, r0 + adds r4, r7, 0 + mov r2, r8 + add r2, r9 + ldr r1, _080F4818 @ =0x00008ff0 + adds r6, r4, r1 + lsls r5, r2, 2 + mov r9, r3 + ldr r7, _080F481C @ =0x00009004 + mov r8, r7 + movs r0, 0x9B + mov r12, r0 +_080F47E2: + adds r0, r3, r2 + adds r0, r6, r0 + mov r1, r9 + strb r1, [r0] + lsls r0, r3, 2 + adds r0, r5 + adds r0, r4, r0 + mov r7, r8 + adds r1, r0, r7 + mov r7, r12 + strh r7, [r1] + ldr r1, _080F4820 @ =0x00009006 + adds r0, r1 + movs r1, 0x5B + strh r1, [r0] + adds r0, r3, 0x1 + lsls r0, 16 + lsrs r3, r0, 16 + cmp r3, 0x4 + bls _080F47E2 +_080F480A: + pop {r3,r4} + mov r8, r3 + mov r9, r4 + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_080F4818: .4byte 0x00008ff0 +_080F481C: .4byte 0x00009004 +_080F4820: .4byte 0x00009006 + thumb_func_end sub_80F468C + + thumb_func_start sub_80F4824 +sub_80F4824: @ 80F4824 + push {r4-r7,lr} + mov r7, r9 + mov r6, r8 + push {r6,r7} + sub sp, 0xC + lsls r1, 24 + lsrs r1, 24 + mov r9, r1 + ldr r1, _080F48E0 @ =gUnknown_083DFEC4 + ldr r7, [r1] + lsls r0, 16 + asrs r0, 14 + adds r1, r7, r0 + ldr r2, _080F48E4 @ =0x0000893f + adds r0, r1, r2 + ldrb r0, [r0] + lsls r0, 25 + cmp r0, 0 + bge _080F48D0 + ldr r6, _080F48E8 @ =0x0000893d + adds r0, r1, r6 + ldrb r6, [r0] + subs r2, 0x1 + adds r0, r1, r2 + ldrb r4, [r0] + lsls r4, 27 + lsrs r4, 27 + adds r0, r6, 0 + adds r1, r4, 0 + movs r2, 0x41 + movs r3, 0 + bl sub_80F44B0 + adds r5, r0, 0 + lsls r5, 16 + lsrs r5, 16 + adds r0, r6, 0 + adds r1, r4, 0 + movs r2, 0x1 + movs r3, 0 + bl sub_80F44B0 + mov r8, r0 + adds r0, r6, 0 + adds r1, r4, 0 + movs r2, 0 + movs r3, 0 + bl sub_80F44B0 + adds r4, r0, 0 + lsls r0, r5, 3 + ldr r1, _080F48EC @ =gMonFrontPicTable + adds r0, r1 + ldr r2, _080F48F0 @ =gMonFrontPicCoords + lsls r1, r5, 2 + adds r1, r2 + ldrb r1, [r1] + ldr r6, _080F48F4 @ =0x000131e4 + adds r3, r7, r6 + mov r6, r9 + lsls r2, r6, 13 + ldr r6, _080F48F8 @ =0x0000d1e4 + adds r2, r6 + adds r2, r7, r2 + str r2, [sp] + str r5, [sp, 0x4] + str r4, [sp, 0x8] + movs r2, 0x1 + bl sub_800D334 + adds r0, r5, 0 + mov r1, r8 + adds r2, r4, 0 + bl species_and_otid_get_pal + mov r2, r9 + lsls r1, r2, 7 + adds r1, r7, r1 + bl LZ77UnCompWram + mov r6, r9 + lsls r1, r6, 1 + ldr r2, _080F48FC @ =0x0000d1d6 + adds r0, r7, r2 + adds r0, r1 + strh r5, [r0] +_080F48D0: + add sp, 0xC + pop {r3,r4} + mov r8, r3 + mov r9, r4 + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_080F48E0: .4byte gUnknown_083DFEC4 +_080F48E4: .4byte 0x0000893f +_080F48E8: .4byte 0x0000893d +_080F48EC: .4byte gMonFrontPicTable +_080F48F0: .4byte gMonFrontPicCoords +_080F48F4: .4byte 0x000131e4 +_080F48F8: .4byte 0x0000d1e4 +_080F48FC: .4byte 0x0000d1d6 + thumb_func_end sub_80F4824 + + thumb_func_start sub_80F4900 +sub_80F4900: @ 80F4900 + push {r4,r5,lr} + adds r4, r0, 0 + adds r5, r1, 0 + lsls r5, 24 + lsrs r5, 24 + lsls r4, 16 + asrs r4, 16 + adds r0, r4, 0 + adds r1, r5, 0 + bl sub_80F45A0 + adds r0, r4, 0 + adds r1, r5, 0 + bl sub_80F468C + adds r0, r4, 0 + adds r1, r5, 0 + bl sub_80F4824 + pop {r4,r5} + pop {r0} + bx r0 + thumb_func_end sub_80F4900 + + thumb_func_start sub_80F492C +sub_80F492C: @ 80F492C + ldr r0, _080F493C @ =gUnknown_083DFEC4 + ldr r0, [r0] + ldr r1, _080F4940 @ =0x00008fe4 + adds r0, r1 + movs r1, 0 + strh r1, [r0] + bx lr + .align 2, 0 +_080F493C: .4byte gUnknown_083DFEC4 +_080F4940: .4byte 0x00008fe4 + thumb_func_end sub_80F492C + + thumb_func_start sub_80F4944 +sub_80F4944: @ 80F4944 + push {r4-r7,lr} + mov r7, r8 + push {r7} + mov r12, r0 + movs r2, 0 + ldr r1, _080F4978 @ =gUnknown_083DFEC4 + ldr r5, [r1] + ldr r3, _080F497C @ =0x00008fe4 + adds r0, r5, r3 + ldrh r4, [r0] + lsrs r3, r4, 1 + mov r8, r1 + cmp r4, r3 + beq _080F499C + adds r6, r5, 0 + mov r0, r12 + ldrb r5, [r0] + ldr r7, _080F4980 @ =0x0000893c +_080F4968: + lsls r0, r3, 2 + adds r0, r6, r0 + adds r0, r7 + ldrb r0, [r0] + cmp r5, r0 + bls _080F4984 + adds r4, r3, 0 + b _080F498A + .align 2, 0 +_080F4978: .4byte gUnknown_083DFEC4 +_080F497C: .4byte 0x00008fe4 +_080F4980: .4byte 0x0000893c +_080F4984: + adds r0, r3, 0x1 + lsls r0, 16 + lsrs r2, r0, 16 +_080F498A: + subs r0, r4, r2 + lsrs r1, r0, 31 + adds r0, r1 + asrs r0, 1 + adds r0, r2, r0 + lsls r0, 16 + lsrs r3, r0, 16 + cmp r4, r3 + bne _080F4968 +_080F499C: + mov r1, r8 + ldr r2, [r1] + ldr r1, _080F49EC @ =0x00008fe4 + adds r0, r2, r1 + ldrh r4, [r0] + lsls r6, r3, 2 + cmp r4, r3 + bls _080F49C6 + ldr r0, _080F49F0 @ =0x0000893c + adds r5, r2, r0 +_080F49B0: + lsls r2, r4, 2 + adds r2, r5, r2 + subs r1, r4, 0x1 + lsls r0, r1, 2 + adds r0, r5, r0 + ldr r0, [r0] + str r0, [r2] + lsls r1, 16 + lsrs r4, r1, 16 + cmp r4, r3 + bhi _080F49B0 +_080F49C6: + mov r1, r8 + ldr r2, [r1] + ldr r3, _080F49F0 @ =0x0000893c + adds r0, r2, r3 + adds r0, r6 + mov r3, r12 + ldr r1, [r3] + str r1, [r0] + ldr r0, _080F49EC @ =0x00008fe4 + adds r2, r0 + ldrh r0, [r2] + adds r0, 0x1 + strh r0, [r2] + pop {r3} + mov r8, r3 + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_080F49EC: .4byte 0x00008fe4 +_080F49F0: .4byte 0x0000893c + thumb_func_end sub_80F4944 + + thumb_func_start sub_80F49F4 +sub_80F49F4: @ 80F49F4 + push {r4-r7,lr} + mov r7, r10 + mov r6, r9 + mov r5, r8 + push {r5-r7} + ldr r3, _080F4A64 @ =gUnknown_083DFEC4 + ldr r4, [r3] + ldr r7, _080F4A68 @ =0x0000893e + adds r2, r4, r7 + ldrh r1, [r2] + ldr r0, _080F4A6C @ =0xffffc01f + mov r12, r0 + ands r0, r1 + movs r1, 0x20 + orrs r0, r1 + strh r0, [r2] + movs r5, 0x1 + ldr r1, _080F4A70 @ =0x00008fe4 + adds r0, r4, r1 + ldrh r3, [r0] + cmp r5, r3 + bcs _080F4A9E + adds r6, r4, 0 + ldr r1, _080F4A74 @ =0x0000893c + mov r8, r1 + ldr r3, _080F4A78 @ =0x000001ff + mov r10, r3 + mov r9, r0 +_080F4A2C: + lsls r0, r5, 2 + adds r3, r6, r0 + mov r0, r8 + adds r2, r3, r0 + subs r0, r5, 0x1 + lsls r0, 2 + adds r4, r6, r0 + mov r0, r8 + adds r1, r4, r0 + ldrb r0, [r2] + ldrb r1, [r1] + cmp r0, r1 + bne _080F4A7C + adds r0, r4, r7 + ldrh r0, [r0] + lsls r0, 18 + lsrs r0, 23 + adds r3, r7 + ldr r1, _080F4A78 @ =0x000001ff + ands r1, r0 + lsls r1, 5 + ldrh r2, [r3] + mov r0, r12 + ands r0, r2 + orrs r0, r1 + strh r0, [r3] + adds r4, r5, 0x1 + b _080F4A92 + .align 2, 0 +_080F4A64: .4byte gUnknown_083DFEC4 +_080F4A68: .4byte 0x0000893e +_080F4A6C: .4byte 0xffffc01f +_080F4A70: .4byte 0x00008fe4 +_080F4A74: .4byte 0x0000893c +_080F4A78: .4byte 0x000001ff +_080F4A7C: + adds r4, r5, 0x1 + adds r3, r7 + adds r1, r4, 0 + mov r0, r10 + ands r1, r0 + lsls r1, 5 + ldrh r2, [r3] + mov r0, r12 + ands r0, r2 + orrs r0, r1 + strh r0, [r3] +_080F4A92: + lsls r0, r4, 16 + lsrs r5, r0, 16 + mov r1, r9 + ldrh r1, [r1] + cmp r5, r1 + bcc _080F4A2C +_080F4A9E: + ldr r3, _080F4AC4 @ =gUnknown_083DFEC4 + ldr r2, [r3] + ldr r1, _080F4AC8 @ =0x0000876c + adds r0, r2, r1 + movs r1, 0 + strh r1, [r0] + ldr r3, _080F4ACC @ =0x00008770 + adds r0, r2, r3 + strh r1, [r0] + subs r3, 0x2 + adds r0, r2, r3 + strh r1, [r0] + ldr r1, _080F4AD0 @ =0x00008fe4 + adds r0, r2, r1 + ldrh r0, [r0] + cmp r0, 0x8 + bhi _080F4AD4 + subs r1, r0, 0x1 + b _080F4AD6 + .align 2, 0 +_080F4AC4: .4byte gUnknown_083DFEC4 +_080F4AC8: .4byte 0x0000876c +_080F4ACC: .4byte 0x00008770 +_080F4AD0: .4byte 0x00008fe4 +_080F4AD4: + movs r1, 0x7 +_080F4AD6: + ldr r3, _080F4B10 @ =0x00008772 + adds r0, r2, r3 + strh r1, [r0] + ldr r0, _080F4B14 @ =gUnknown_083DFEC4 + ldr r2, [r0] + ldr r1, _080F4B18 @ =0x00008fe4 + adds r0, r2, r1 + ldrh r0, [r0] + subs r0, 0x1 + adds r3, 0x2 + adds r1, r2, r3 + strh r0, [r1] + movs r1, 0 + lsls r0, 16 + asrs r0, 16 + cmp r0, 0x7 + ble _080F4AFA + movs r1, 0x1 +_080F4AFA: + ldr r3, _080F4B1C @ =0x000087c9 + adds r0, r2, r3 + strb r1, [r0] + pop {r3-r5} + mov r8, r3 + mov r9, r4 + mov r10, r5 + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_080F4B10: .4byte 0x00008772 +_080F4B14: .4byte gUnknown_083DFEC4 +_080F4B18: .4byte 0x00008fe4 +_080F4B1C: .4byte 0x000087c9 + thumb_func_end sub_80F49F4 + + thumb_func_start sub_80F4B20 +sub_80F4B20: @ 80F4B20 + push {r4-r6,lr} + ldr r0, _080F4B5C @ =gUnknown_083DFEC4 + ldr r4, [r0] + ldr r0, _080F4B60 @ =0x000087dc + adds r5, r4, r0 + movs r1, 0 + ldrsh r0, [r5, r1] + movs r1, 0 + bl sub_80F4900 + movs r0, 0 + bl sub_80F2E18 + ldr r0, _080F4B64 @ =0x000087da + adds r2, r4, r0 + movs r1, 0 + ldrsh r0, [r2, r1] + cmp r0, 0x1 + bne _080F4B6C + ldr r2, _080F4B68 @ =0x00008fe9 + adds r0, r4, r2 + movs r1, 0 + strb r1, [r0] + adds r2, 0x1 + adds r0, r4, r2 + strb r1, [r0] + adds r2, 0x1 + adds r0, r4, r2 + strb r1, [r0] + b _080F4BBE + .align 2, 0 +_080F4B5C: .4byte gUnknown_083DFEC4 +_080F4B60: .4byte 0x000087dc +_080F4B64: .4byte 0x000087da +_080F4B68: .4byte 0x00008fe9 +_080F4B6C: + ldr r0, _080F4BC4 @ =0x00008fe9 + adds r1, r4, r0 + movs r0, 0 + strb r0, [r1] + ldr r0, _080F4BC8 @ =0x00008fea + adds r1, r4, r0 + movs r0, 0x1 + strb r0, [r1] + ldr r0, _080F4BCC @ =0x00008feb + adds r1, r4, r0 + movs r0, 0x2 + strb r0, [r1] + ldrh r3, [r5] + adds r0, r3, 0x1 + lsls r0, 16 + lsrs r5, r0, 16 + asrs r0, 16 + ldrh r6, [r2] + movs r4, 0 + ldrsh r1, [r2, r4] + cmp r0, r1 + blt _080F4B9A + movs r5, 0 +_080F4B9A: + subs r0, r3, 0x1 + lsls r0, 16 + lsrs r4, r0, 16 + cmp r0, 0 + bge _080F4BAA + subs r0, r6, 0x1 + lsls r0, 16 + lsrs r4, r0, 16 +_080F4BAA: + lsls r0, r5, 16 + asrs r0, 16 + movs r1, 0x1 + bl sub_80F4900 + lsls r0, r4, 16 + asrs r0, 16 + movs r1, 0x2 + bl sub_80F4900 +_080F4BBE: + pop {r4-r6} + pop {r0} + bx r0 + .align 2, 0 +_080F4BC4: .4byte 0x00008fe9 +_080F4BC8: .4byte 0x00008fea +_080F4BCC: .4byte 0x00008feb + thumb_func_end sub_80F4B20 + + thumb_func_start sub_80F4BD0 +sub_80F4BD0: @ 80F4BD0 + push {r4-r7,lr} + mov r7, r10 + mov r6, r9 + mov r5, r8 + push {r5-r7} + movs r6, 0 + movs r7, 0 + ldr r0, _080F4CC4 @ =gUnknown_083DFEC4 + ldr r2, [r0] + ldr r3, _080F4CC8 @ =0x00008828 + adds r1, r2, r3 + mov r9, r0 + ldrb r1, [r1] + cmp r7, r1 + bcs _080F4C66 + mov r10, r9 + adds r4, r3, 0 + adds r4, r2 + mov r8, r4 +_080F4BF6: + movs r0, 0x64 + muls r0, r6 + ldr r1, _080F4CCC @ =gPlayerParty + adds r0, r1 + movs r1, 0x2D + bl GetMonData + cmp r0, 0 + bne _080F4C58 + mov r0, r10 + ldr r3, [r0] + lsls r0, r7, 2 + adds r3, r0 + ldr r2, _080F4CD0 @ =0x0000893d + adds r1, r3, r2 + movs r0, 0xE + strb r0, [r1] + ldr r4, _080F4CD4 @ =0x0000893e + adds r5, r3, r4 + movs r0, 0x1F + adds r2, r6, 0 + ands r2, r0 + ldrb r0, [r5] + movs r4, 0x20 + negs r4, r4 + adds r1, r4, 0 + ands r0, r1 + orrs r0, r2 + strb r0, [r5] + adds r4, r7, 0x1 + ldr r7, _080F4CD8 @ =0x000001ff + adds r0, r7, 0 + adds r2, r4, 0 + ands r2, r0 + lsls r2, 5 + ldrh r0, [r5] + ldr r7, _080F4CDC @ =0xffffc01f + adds r1, r7, 0 + ands r0, r1 + orrs r0, r2 + strh r0, [r5] + ldr r0, _080F4CE0 @ =0x0000893f + adds r3, r0 + ldrb r0, [r3] + movs r1, 0x40 + orrs r0, r1 + strb r0, [r3] + lsls r4, 16 + lsrs r7, r4, 16 +_080F4C58: + adds r0, r6, 0x1 + lsls r0, 16 + lsrs r6, r0, 16 + mov r1, r8 + ldrb r1, [r1] + cmp r6, r1 + bcc _080F4BF6 +_080F4C66: + mov r2, r9 + ldr r4, [r2] + lsls r1, r7, 2 + adds r1, r4, r1 + ldr r3, _080F4CD0 @ =0x0000893d + adds r0, r1, r3 + movs r5, 0 + strb r5, [r0] + ldr r0, _080F4CD4 @ =0x0000893e + adds r2, r1, r0 + ldrb r3, [r2] + movs r0, 0x20 + negs r0, r0 + ands r0, r3 + strb r0, [r2] + ldrh r3, [r2] + ldr r0, _080F4CDC @ =0xffffc01f + ands r0, r3 + strh r0, [r2] + ldr r2, _080F4CE0 @ =0x0000893f + adds r1, r2 + ldrb r2, [r1] + movs r0, 0x41 + negs r0, r0 + ands r0, r2 + strb r0, [r1] + ldr r3, _080F4CE4 @ =0x000087dc + adds r0, r4, r3 + strh r5, [r0] + adds r1, r7, 0x1 + ldr r7, _080F4CE8 @ =0x000087da + adds r0, r4, r7 + strh r1, [r0] + bl sub_80F4B20 + ldr r0, _080F4CEC @ =0x000087cb + adds r4, r0 + movs r0, 0x1 + strb r0, [r4] + pop {r3-r5} + mov r8, r3 + mov r9, r4 + mov r10, r5 + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_080F4CC4: .4byte gUnknown_083DFEC4 +_080F4CC8: .4byte 0x00008828 +_080F4CCC: .4byte gPlayerParty +_080F4CD0: .4byte 0x0000893d +_080F4CD4: .4byte 0x0000893e +_080F4CD8: .4byte 0x000001ff +_080F4CDC: .4byte 0xffffc01f +_080F4CE0: .4byte 0x0000893f +_080F4CE4: .4byte 0x000087dc +_080F4CE8: .4byte 0x000087da +_080F4CEC: .4byte 0x000087cb + thumb_func_end sub_80F4BD0 + + thumb_func_start sub_80F4CF0 +sub_80F4CF0: @ 80F4CF0 + push {r4,lr} + ldr r0, _080F4D1C @ =gUnknown_083DFEC4 + ldr r4, [r0] + ldr r1, _080F4D20 @ =0x0000876e + adds r0, r4, r1 + ldrh r1, [r0] + ldr r2, _080F4D24 @ =0x000087dc + adds r0, r4, r2 + strh r1, [r0] + bl sub_80F4B20 + ldr r1, _080F4D28 @ =0x00008774 + adds r0, r4, r1 + movs r2, 0 + ldrsh r0, [r0, r2] + cmp r0, 0 + bne _080F4D30 + ldr r0, _080F4D2C @ =0x000087cb + adds r1, r4, r0 + movs r0, 0 + b _080F4D36 + .align 2, 0 +_080F4D1C: .4byte gUnknown_083DFEC4 +_080F4D20: .4byte 0x0000876e +_080F4D24: .4byte 0x000087dc +_080F4D28: .4byte 0x00008774 +_080F4D2C: .4byte 0x000087cb +_080F4D30: + ldr r2, _080F4D40 @ =0x000087cb + adds r1, r4, r2 + movs r0, 0x1 +_080F4D36: + strb r0, [r1] + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_080F4D40: .4byte 0x000087cb + thumb_func_end sub_80F4CF0 + + thumb_func_start sub_80F4D44 +sub_80F4D44: @ 80F4D44 + push {r4,lr} + ldr r0, _080F4D78 @ =gUnknown_083DFEC4 + ldr r4, [r0] + ldr r1, _080F4D7C @ =0x00008fe6 + adds r0, r4, r1 + movs r1, 0 + strb r1, [r0] + ldr r2, _080F4D80 @ =0x00008fe7 + adds r0, r4, r2 + strb r1, [r0] + bl sub_80F492C + ldr r0, _080F4D84 @ =0x00006dac + adds r4, r0 + ldrb r0, [r4] + cmp r0, 0 + bne _080F4D70 +_080F4D66: + bl sub_80F4D88 + lsls r0, 24 + cmp r0, 0 + bne _080F4D66 +_080F4D70: + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_080F4D78: .4byte gUnknown_083DFEC4 +_080F4D7C: .4byte 0x00008fe6 +_080F4D80: .4byte 0x00008fe7 +_080F4D84: .4byte 0x00006dac + thumb_func_end sub_80F4D44 + + thumb_func_start sub_80F4D88 +sub_80F4D88: @ 80F4D88 + push {r4-r7,lr} + mov r7, r10 + mov r6, r9 + mov r5, r8 + push {r5-r7} + sub sp, 0x4 + ldr r6, _080F4E98 @ =gUnknown_083DFEC4 + ldr r4, [r6] + ldr r1, _080F4E9C @ =0x00008fe6 + adds r0, r4, r1 + ldrb r3, [r0] + cmp r3, 0xE + bne _080F4DA4 + b _080F4EB8 +_080F4DA4: + cmp r3, 0xF + bne _080F4DAA + b _080F4F60 +_080F4DAA: + movs r1, 0x80 + lsls r1, 23 + ldr r0, [sp] + orrs r0, r1 + str r0, [sp] + movs r7, 0 + mov r10, r6 + ldr r2, _080F4E9C @ =0x00008fe6 + adds r6, r4, r2 + ldr r3, _080F4EA0 @ =0x00008fe7 + adds r5, r4, r3 + ldr r0, _080F4EA4 @ =0x000087d8 + adds r0, r4 + mov r9, r0 + ldr r1, _080F4EA8 @ =gUnknown_020300A4 + mov r8, r1 +_080F4DCA: + ldrb r0, [r6] + lsls r1, r0, 2 + adds r1, r0 + lsls r0, r1, 4 + subs r0, r1 + lsls r0, 5 + ldrb r2, [r5] + lsls r1, r2, 2 + adds r1, r2 + lsls r1, 4 + add r1, r8 + adds r0, r1 + movs r1, 0xB + bl GetBoxMonData + cmp r0, 0 + beq _080F4E60 + ldrb r0, [r6] + lsls r1, r0, 2 + adds r1, r0 + lsls r0, r1, 4 + subs r0, r1 + lsls r0, 5 + ldrb r2, [r5] + lsls r1, r2, 2 + adds r1, r2 + lsls r1, 4 + add r1, r8 + adds r0, r1 + movs r1, 0x2D + bl GetBoxMonData + cmp r0, 0 + bne _080F4E60 + ldrb r1, [r6] + lsls r1, 8 + ldr r2, _080F4EAC @ =0xffff00ff + ldr r0, [sp] + ands r0, r2 + orrs r0, r1 + str r0, [sp] + ldrb r2, [r5] + movs r1, 0x1F + ands r2, r1 + lsls r2, 16 + ldr r1, _080F4EB0 @ =0xffe0ffff + ands r0, r1 + orrs r0, r2 + str r0, [sp] + ldrb r0, [r6] + lsls r1, r0, 2 + adds r1, r0 + lsls r0, r1, 4 + subs r0, r1 + lsls r0, 5 + ldrb r2, [r5] + lsls r1, r2, 2 + adds r1, r2 + lsls r1, 4 + add r1, r8 + adds r0, r1 + mov r2, r9 + ldrb r1, [r2] + bl GetBoxMonData + lsls r0, 24 + lsrs r0, 24 + ldr r2, _080F4EB4 @ =0xffffff00 + ldr r1, [sp] + ands r1, r2 + orrs r1, r0 + str r1, [sp] + mov r0, sp + bl sub_80F4944 +_080F4E60: + mov r3, r10 + ldr r1, [r3] + ldr r0, _080F4EA0 @ =0x00008fe7 + adds r2, r1, r0 + ldrb r0, [r2] + adds r0, 0x1 + movs r4, 0 + strb r0, [r2] + movs r3, 0xFF + lsls r0, 24 + lsrs r0, 24 + cmp r0, 0x1E + bne _080F4E8C + strb r4, [r2] + ldr r2, _080F4E9C @ =0x00008fe6 + adds r1, r2 + ldrb r0, [r1] + adds r0, 0x1 + strb r0, [r1] + ands r0, r3 + cmp r0, 0xE + beq _080F4F64 +_080F4E8C: + adds r0, r7, 0x1 + lsls r0, 16 + lsrs r7, r0, 16 + cmp r7, 0xE + bls _080F4DCA + b _080F4F64 + .align 2, 0 +_080F4E98: .4byte gUnknown_083DFEC4 +_080F4E9C: .4byte 0x00008fe6 +_080F4EA0: .4byte 0x00008fe7 +_080F4EA4: .4byte 0x000087d8 +_080F4EA8: .4byte gUnknown_020300A4 +_080F4EAC: .4byte 0xffff00ff +_080F4EB0: .4byte 0xffe0ffff +_080F4EB4: .4byte 0xffffff00 +_080F4EB8: + mov r2, sp + ldrb r0, [r2, 0x3] + movs r1, 0x40 + orrs r0, r1 + strb r0, [r2, 0x3] + strb r3, [r2, 0x1] + movs r7, 0 + ldr r3, _080F4F44 @ =0x00008828 + adds r0, r4, r3 + ldrb r0, [r0] + cmp r7, r0 + bcs _080F4F24 + mov r5, sp + mov r8, r6 + adds r6, r4, r3 +_080F4ED6: + movs r0, 0x64 + adds r1, r7, 0 + muls r1, r0 + ldr r0, _080F4F48 @ =gPlayerParty + adds r4, r1, r0 + adds r0, r4, 0 + movs r1, 0x2D + bl GetMonData + cmp r0, 0 + bne _080F4F18 + movs r0, 0x1F + adds r2, r7, 0 + ands r2, r0 + ldrb r0, [r5, 0x2] + movs r3, 0x20 + negs r3, r3 + adds r1, r3, 0 + ands r0, r1 + orrs r0, r2 + strb r0, [r5, 0x2] + mov r1, r8 + ldr r0, [r1] + ldr r2, _080F4F4C @ =0x000087d8 + adds r0, r2 + ldrb r1, [r0] + adds r0, r4, 0 + bl GetMonData + strb r0, [r5] + mov r0, sp + bl sub_80F4944 +_080F4F18: + adds r0, r7, 0x1 + lsls r0, 16 + lsrs r7, r0, 16 + ldrb r3, [r6] + cmp r7, r3 + bcc _080F4ED6 +_080F4F24: + bl sub_80F49F4 + ldr r0, _080F4F50 @ =gUnknown_083DFEC4 + ldr r1, [r0] + ldr r2, _080F4F54 @ =0x00008fe4 + adds r0, r1, r2 + ldrh r2, [r0] + ldr r3, _080F4F58 @ =0x000087da + adds r0, r1, r3 + strh r2, [r0] + ldr r0, _080F4F5C @ =0x00008fe6 + adds r1, r0 + ldrb r0, [r1] + adds r0, 0x1 + strb r0, [r1] + b _080F4F64 + .align 2, 0 +_080F4F44: .4byte 0x00008828 +_080F4F48: .4byte gPlayerParty +_080F4F4C: .4byte 0x000087d8 +_080F4F50: .4byte gUnknown_083DFEC4 +_080F4F54: .4byte 0x00008fe4 +_080F4F58: .4byte 0x000087da +_080F4F5C: .4byte 0x00008fe6 +_080F4F60: + movs r0, 0 + b _080F4F66 +_080F4F64: + movs r0, 0x1 +_080F4F66: + add sp, 0x4 + pop {r3-r5} + mov r8, r3 + mov r9, r4 + mov r10, r5 + pop {r4-r7} + pop {r1} + bx r1 + thumb_func_end sub_80F4D88 + + thumb_func_start sub_80F4F78 +sub_80F4F78: @ 80F4F78 + push {lr} + ldr r0, _080F4FA4 @ =gUnknown_083DFEC4 + ldr r1, [r0] + ldr r2, _080F4FA8 @ =0x00009040 + adds r0, r1, r2 + ldr r3, _080F4FAC @ =0x00008fe9 + adds r2, r1, r3 + movs r3, 0 + ldrsb r3, [r2, r3] + lsls r2, r3, 2 + adds r2, r3 + lsls r2, 2 + ldr r3, _080F4FB0 @ =0x00009004 + adds r2, r3 + adds r1, r2 + bl sub_80F53EC + bl sub_80F5504 + pop {r0} + bx r0 + .align 2, 0 +_080F4FA4: .4byte gUnknown_083DFEC4 +_080F4FA8: .4byte 0x00009040 +_080F4FAC: .4byte 0x00008fe9 +_080F4FB0: .4byte 0x00009004 + thumb_func_end sub_80F4F78 + + thumb_func_start sub_80F4FB4 +sub_80F4FB4: @ 80F4FB4 + push {r4,lr} + bl sub_80F5504 + adds r4, r0, 0 + lsls r4, 24 + lsrs r4, 24 + bl sub_80F170C + lsls r0, 24 + lsrs r0, 24 + movs r1, 0 + cmp r4, 0 + bne _080F4FD2 + cmp r0, 0 + beq _080F4FD4 +_080F4FD2: + movs r1, 0x1 +_080F4FD4: + adds r0, r1, 0 + pop {r4} + pop {r1} + bx r1 + thumb_func_end sub_80F4FB4 + + thumb_func_start sub_80F4FDC +sub_80F4FDC: @ 80F4FDC + push {lr} + ldr r0, _080F5020 @ =gUnknown_083DFEC4 + ldr r2, [r0] + ldr r1, _080F5024 @ =0x000076aa + adds r0, r2, r1 + ldrb r0, [r0] + cmp r0, 0 + bne _080F4FFE + ldr r3, _080F5028 @ =0x000087dc + adds r0, r2, r3 + movs r3, 0 + ldrsh r1, [r0, r3] + ldr r3, _080F502C @ =0x00008828 + adds r0, r2, r3 + ldrb r0, [r0] + cmp r1, r0 + beq _080F501A +_080F4FFE: + ldr r1, _080F5030 @ =0x00008fe9 + adds r0, r2, r1 + movs r1, 0 + ldrsb r1, [r0, r1] + lsls r0, r1, 2 + adds r0, r1 + lsls r0, 2 + ldr r3, _080F5034 @ =0x00009004 + adds r0, r3 + adds r0, r2, r0 + adds r3, 0x3C + adds r1, r2, r3 + bl sub_80F53EC +_080F501A: + pop {r0} + bx r0 + .align 2, 0 +_080F5020: .4byte gUnknown_083DFEC4 +_080F5024: .4byte 0x000076aa +_080F5028: .4byte 0x000087dc +_080F502C: .4byte 0x00008828 +_080F5030: .4byte 0x00008fe9 +_080F5034: .4byte 0x00009004 + thumb_func_end sub_80F4FDC + + thumb_func_start sub_80F5038 +sub_80F5038: @ 80F5038 + push {r4,lr} + bl sub_80F5504 + adds r4, r0, 0 + lsls r4, 24 + lsrs r4, 24 + bl sub_80F173C + lsls r0, 24 + lsrs r0, 24 + movs r1, 0 + cmp r4, 0 + bne _080F5056 + cmp r0, 0 + beq _080F5058 +_080F5056: + movs r1, 0x1 +_080F5058: + adds r0, r1, 0 + pop {r4} + pop {r1} + bx r1 + thumb_func_end sub_80F5038 + + thumb_func_start sub_80F5060 +sub_80F5060: @ 80F5060 + push {r4-r7,lr} + lsls r0, 24 + lsrs r7, r0, 24 + cmp r7, 0 + beq _080F507C + ldr r0, _080F5074 @ =gUnknown_083DFEC4 + ldr r0, [r0] + ldr r1, _080F5078 @ =0x00008feb + adds r0, r1 + b _080F5084 + .align 2, 0 +_080F5074: .4byte gUnknown_083DFEC4 +_080F5078: .4byte 0x00008feb +_080F507C: + ldr r0, _080F50FC @ =gUnknown_083DFEC4 + ldr r0, [r0] + ldr r2, _080F5100 @ =0x00008fea + adds r0, r2 +_080F5084: + ldrb r0, [r0] + lsls r0, 24 + asrs r0, 24 + lsls r0, 16 + lsrs r6, r0, 16 + ldr r0, _080F50FC @ =gUnknown_083DFEC4 + ldr r4, [r0] + ldr r3, _080F5104 @ =0x00008fe9 + adds r5, r4, r3 + movs r1, 0 + ldrsb r1, [r5, r1] + lsls r0, r1, 2 + adds r0, r1 + lsls r0, 2 + ldr r2, _080F5108 @ =0x00009004 + adds r0, r2 + adds r0, r4, r0 + lsls r1, r6, 2 + adds r1, r6 + lsls r1, 2 + adds r1, r2 + adds r1, r4, r1 + bl sub_80F53EC + ldr r0, _080F510C @ =0x000087dc + adds r3, r4, r0 + movs r1, 0 + ldrsh r0, [r3, r1] + lsls r0, 2 + adds r0, r4, r0 + ldr r2, _080F5110 @ =0x0000893f + adds r0, r2 + ldrb r0, [r0] + lsls r0, 25 + lsrs r0, 31 + mov r12, r0 + cmp r7, 0 + beq _080F5158 + ldr r7, _080F5100 @ =0x00008fea + adds r1, r4, r7 + ldrb r0, [r1] + adds r7, 0x1 + adds r2, r4, r7 + strb r0, [r2] + ldrb r0, [r5] + strb r0, [r1] + strb r6, [r5] + ldrb r1, [r2] + ldr r2, _080F5114 @ =0x00008fec + adds r0, r4, r2 + strb r1, [r0] + adds r5, r4, 0 + ldrh r1, [r3] + movs r7, 0 + ldrsh r0, [r3, r7] + cmp r0, 0 + beq _080F5118 + subs r2, r1, 0x1 + b _080F5120 + .align 2, 0 +_080F50FC: .4byte gUnknown_083DFEC4 +_080F5100: .4byte 0x00008fea +_080F5104: .4byte 0x00008fe9 +_080F5108: .4byte 0x00009004 +_080F510C: .4byte 0x000087dc +_080F5110: .4byte 0x0000893f +_080F5114: .4byte 0x00008fec +_080F5118: + ldr r1, _080F513C @ =0x000087da + adds r0, r4, r1 + ldrh r0, [r0] + subs r2, r0, 0x1 +_080F5120: + ldr r1, _080F5140 @ =0x000087dc + adds r0, r5, r1 + strh r2, [r0] + ldr r2, _080F5144 @ =gUnknown_083DFEC4 + ldr r3, [r2] + adds r1, r3, r1 + ldrh r4, [r1] + movs r5, 0 + ldrsh r0, [r1, r5] + cmp r0, 0 + beq _080F5148 + subs r1, r4, 0x1 + b _080F51CE + .align 2, 0 +_080F513C: .4byte 0x000087da +_080F5140: .4byte 0x000087dc +_080F5144: .4byte gUnknown_083DFEC4 +_080F5148: + ldr r7, _080F5154 @ =0x000087da + adds r0, r3, r7 + ldrh r0, [r0] + subs r1, r0, 0x1 + b _080F51CE + .align 2, 0 +_080F5154: .4byte 0x000087da +_080F5158: + ldr r7, _080F518C @ =0x00008feb + adds r1, r4, r7 + ldrb r0, [r1] + subs r7, 0x1 + adds r2, r4, r7 + strb r0, [r2] + ldrb r0, [r5] + strb r0, [r1] + strb r6, [r5] + ldrb r1, [r2] + ldr r2, _080F5190 @ =0x00008fec + adds r0, r4, r2 + strb r1, [r0] + adds r2, r4, 0 + movs r4, 0 + ldrsh r1, [r3, r4] + ldr r5, _080F5194 @ =0x000087da + adds r0, r2, r5 + movs r7, 0 + ldrsh r0, [r0, r7] + subs r0, 0x1 + cmp r1, r0 + bge _080F5198 + ldrh r0, [r3] + adds r3, r0, 0x1 + b _080F519A + .align 2, 0 +_080F518C: .4byte 0x00008feb +_080F5190: .4byte 0x00008fec +_080F5194: .4byte 0x000087da +_080F5198: + movs r3, 0 +_080F519A: + ldr r1, _080F51C0 @ =0x000087dc + adds r0, r2, r1 + strh r3, [r0] + ldr r2, _080F51C4 @ =gUnknown_083DFEC4 + ldr r3, [r2] + adds r4, r3, r1 + movs r0, 0 + ldrsh r1, [r4, r0] + ldr r5, _080F51C8 @ =0x000087da + adds r0, r3, r5 + movs r7, 0 + ldrsh r0, [r0, r7] + subs r0, 0x1 + cmp r1, r0 + bge _080F51CC + ldrh r0, [r4] + adds r1, r0, 0x1 + b _080F51CE + .align 2, 0 +_080F51C0: .4byte 0x000087dc +_080F51C4: .4byte gUnknown_083DFEC4 +_080F51C8: .4byte 0x000087da +_080F51CC: + movs r1, 0 +_080F51CE: + ldr r4, _080F51FC @ =0x00008fee + adds r0, r3, r4 + strh r1, [r0] + ldr r1, [r2] + ldr r5, _080F5200 @ =0x000087dc + adds r0, r1, r5 + movs r7, 0 + ldrsh r0, [r0, r7] + lsls r0, 2 + adds r0, r1, r0 + ldr r3, _080F5204 @ =0x0000893f + adds r0, r3 + ldrb r0, [r0] + lsls r0, 25 + lsrs r0, 31 + mov r4, r12 + cmp r4, 0 + bne _080F520C + adds r5, 0x4 + adds r1, r5 + ldr r0, _080F5208 @ =sub_80F5264 + b _080F5226 + .align 2, 0 +_080F51FC: .4byte 0x00008fee +_080F5200: .4byte 0x000087dc +_080F5204: .4byte 0x0000893f +_080F5208: .4byte sub_80F5264 +_080F520C: + cmp r0, 0 + bne _080F5220 + ldr r7, _080F5218 @ =0x000087e0 + adds r1, r7 + ldr r0, _080F521C @ =sub_80F52F8 + b _080F5226 + .align 2, 0 +_080F5218: .4byte 0x000087e0 +_080F521C: .4byte sub_80F52F8 +_080F5220: + ldr r0, _080F5238 @ =0x000087e0 + adds r1, r0 + ldr r0, _080F523C @ =sub_80F5364 +_080F5226: + str r0, [r1] + ldr r0, [r2] + ldr r1, _080F5240 @ =0x000087de + adds r0, r1 + movs r1, 0 + strb r1, [r0] + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_080F5238: .4byte 0x000087e0 +_080F523C: .4byte sub_80F5364 +_080F5240: .4byte 0x000087de + thumb_func_end sub_80F5060 + + thumb_func_start gpu_sync_bg_show +gpu_sync_bg_show: @ 80F5244 + push {lr} + ldr r0, _080F525C @ =gUnknown_083DFEC4 + ldr r0, [r0] + ldr r1, _080F5260 @ =0x000087e0 + adds r0, r1 + ldr r0, [r0] + bl _call_via_r0 + lsls r0, 24 + lsrs r0, 24 + pop {r1} + bx r1 + .align 2, 0 +_080F525C: .4byte gUnknown_083DFEC4 +_080F5260: .4byte 0x000087e0 + thumb_func_end gpu_sync_bg_show + + thumb_func_start sub_80F5264 +sub_80F5264: @ 80F5264 + push {r4,r5,lr} + ldr r0, _080F5280 @ =gUnknown_083DFEC4 + ldr r0, [r0] + ldr r1, _080F5284 @ =0x000087de + adds r5, r0, r1 + ldrb r1, [r5] + cmp r1, 0x1 + beq _080F52AA + cmp r1, 0x1 + bgt _080F5288 + cmp r1, 0 + beq _080F528E + b _080F52F0 + .align 2, 0 +_080F5280: .4byte gUnknown_083DFEC4 +_080F5284: .4byte 0x000087de +_080F5288: + cmp r1, 0x2 + beq _080F52EC + b _080F52F0 +_080F528E: + ldr r2, _080F52D8 @ =0x00008fe9 + adds r4, r0, r2 + ldrb r0, [r4] + bl sub_80F2E18 + movs r0, 0 + ldrsb r0, [r4, r0] + lsls r0, 16 + lsrs r0, 16 + bl sub_80F01E0 + ldrb r0, [r5] + adds r0, 0x1 + strb r0, [r5] +_080F52AA: + bl sub_80F4FB4 + lsls r0, 24 + cmp r0, 0 + bne _080F52F0 + ldr r0, _080F52DC @ =gUnknown_083DFEC4 + ldr r4, [r0] + ldr r1, _080F52E0 @ =0x00008fee + adds r0, r4, r1 + movs r2, 0 + ldrsh r0, [r0, r2] + ldr r2, _080F52E4 @ =0x00008fec + adds r1, r4, r2 + ldrb r1, [r1] + bl sub_80F4900 + ldr r0, _080F52E8 @ =0x000087de + adds r4, r0 + ldrb r0, [r4] + adds r0, 0x1 + strb r0, [r4] + b _080F52F0 + .align 2, 0 +_080F52D8: .4byte 0x00008fe9 +_080F52DC: .4byte gUnknown_083DFEC4 +_080F52E0: .4byte 0x00008fee +_080F52E4: .4byte 0x00008fec +_080F52E8: .4byte 0x000087de +_080F52EC: + movs r0, 0 + b _080F52F2 +_080F52F0: + movs r0, 0x1 +_080F52F2: + pop {r4,r5} + pop {r1} + bx r1 + thumb_func_end sub_80F5264 + + thumb_func_start sub_80F52F8 +sub_80F52F8: @ 80F52F8 + push {r4,r5,lr} + ldr r0, _080F5310 @ =gUnknown_083DFEC4 + ldr r4, [r0] + ldr r0, _080F5314 @ =0x000087de + adds r5, r4, r0 + ldrb r0, [r5] + cmp r0, 0 + beq _080F5318 + cmp r0, 0x1 + beq _080F5358 + b _080F535C + .align 2, 0 +_080F5310: .4byte gUnknown_083DFEC4 +_080F5314: .4byte 0x000087de +_080F5318: + bl sub_80F5038 + lsls r0, 24 + cmp r0, 0 + bne _080F535C + ldr r1, _080F5350 @ =0x00008fe9 + adds r0, r4, r1 + ldrb r0, [r0] + lsls r0, 24 + asrs r0, 24 + lsls r0, 16 + lsrs r0, 16 + bl sub_80F01E0 + ldr r2, _080F5354 @ =0x00008fee + adds r0, r4, r2 + movs r1, 0 + ldrsh r0, [r0, r1] + subs r2, 0x2 + adds r1, r4, r2 + ldrb r1, [r1] + bl sub_80F4900 + ldrb r0, [r5] + adds r0, 0x1 + strb r0, [r5] + b _080F535C + .align 2, 0 +_080F5350: .4byte 0x00008fe9 +_080F5354: .4byte 0x00008fee +_080F5358: + movs r0, 0 + b _080F535E +_080F535C: + movs r0, 0x1 +_080F535E: + pop {r4,r5} + pop {r1} + bx r1 + thumb_func_end sub_80F52F8 + + thumb_func_start sub_80F5364 +sub_80F5364: @ 80F5364 + push {r4,r5,lr} + ldr r0, _080F5380 @ =gUnknown_083DFEC4 + ldr r4, [r0] + ldr r0, _080F5384 @ =0x000087de + adds r5, r4, r0 + ldrb r0, [r5] + cmp r0, 0x1 + beq _080F53B8 + cmp r0, 0x1 + bgt _080F5388 + cmp r0, 0 + beq _080F538E + b _080F53E4 + .align 2, 0 +_080F5380: .4byte gUnknown_083DFEC4 +_080F5384: .4byte 0x000087de +_080F5388: + cmp r0, 0x2 + beq _080F53CA + b _080F53E4 +_080F538E: + bl sub_80F5504 + bl sub_80F173C + lsls r0, 24 + cmp r0, 0 + bne _080F53E4 + ldr r1, _080F53B4 @ =0x00008fe9 + adds r4, r1 + ldrb r0, [r4] + bl sub_80F2E18 + movs r0, 0 + ldrsb r0, [r4, r0] + lsls r0, 16 + lsrs r0, 16 + bl sub_80F01E0 + b _080F53C2 + .align 2, 0 +_080F53B4: .4byte 0x00008fe9 +_080F53B8: + bl sub_80F4FB4 + lsls r0, 24 + cmp r0, 0 + bne _080F53E4 +_080F53C2: + ldrb r0, [r5] + adds r0, 0x1 + strb r0, [r5] + b _080F53E4 +_080F53CA: + ldr r2, _080F53E0 @ =0x00008fee + adds r0, r4, r2 + movs r1, 0 + ldrsh r0, [r0, r1] + subs r2, 0x2 + adds r1, r4, r2 + ldrb r1, [r1] + bl sub_80F4900 + movs r0, 0 + b _080F53E6 + .align 2, 0 +_080F53E0: .4byte 0x00008fee +_080F53E4: + movs r0, 0x1 +_080F53E6: + pop {r4,r5} + pop {r1} + bx r1 + thumb_func_end sub_80F5364 + + thumb_func_start sub_80F53EC +sub_80F53EC: @ 80F53EC + push {r4-r7,lr} + mov r7, r10 + mov r6, r9 + mov r5, r8 + push {r5-r7} + sub sp, 0xC + str r0, [sp] + mov r9, r1 + movs r7, 0 + ldr r0, _080F54F4 @ =gUnknown_083DFEC4 + ldr r0, [r0] + str r0, [sp, 0x4] +_080F5404: + lsls r4, r7, 2 + ldr r1, [sp] + adds r0, r4, r1 + ldrh r1, [r0] + lsls r5, r1, 8 + mov r2, r9 + adds r0, r4, r2 + ldrh r0, [r0] + subs r0, r1 + lsls r0, 8 + movs r1, 0xA + bl __divsi3 + adds r6, r0, 0 + movs r3, 0 + adds r7, 0x1 + mov r10, r7 + mov r8, r4 +_080F5428: + lsls r0, r3, 2 + adds r0, r3 + lsls r0, 2 + add r0, r8 + ldr r7, [sp, 0x4] + adds r0, r7, r0 + asrs r2, r5, 8 + asrs r1, r5, 7 + movs r7, 0x1 + ands r1, r7 + adds r2, r1 + ldr r1, _080F54F8 @ =0x00009054 + adds r0, r1 + strh r2, [r0] + adds r5, r6 + adds r0, r3, 0x1 + lsls r0, 16 + lsrs r3, r0, 16 + cmp r3, 0x8 + bls _080F5428 + ldr r2, _080F54F4 @ =gUnknown_083DFEC4 + ldr r1, [r2] + lsls r0, r3, 2 + adds r0, r3 + lsls r0, 2 + adds r0, r4, r0 + adds r1, r0 + mov r3, r9 + adds r2, r4, r3 + ldrh r0, [r2] + ldr r7, _080F54F8 @ =0x00009054 + adds r1, r7 + strh r0, [r1] + ldr r1, [sp] + adds r0, r4, r1 + ldrh r1, [r0, 0x2] + lsls r5, r1, 8 + ldrh r0, [r2, 0x2] + subs r0, r1 + lsls r0, 8 + movs r1, 0xA + bl __divsi3 + adds r6, r0, 0 + movs r3, 0 + ldr r0, _080F54F4 @ =gUnknown_083DFEC4 + ldr r0, [r0] + mov r12, r0 + str r4, [sp, 0x8] + movs r2, 0x1 + mov r8, r2 +_080F548E: + lsls r0, r3, 2 + adds r0, r3 + lsls r0, 2 + ldr r7, [sp, 0x8] + adds r0, r7, r0 + add r0, r12 + asrs r2, r5, 8 + asrs r1, r5, 7 + mov r7, r8 + ands r1, r7 + adds r2, r1 + ldr r1, _080F54FC @ =0x00009056 + adds r0, r1 + strh r2, [r0] + adds r5, r6 + adds r0, r3, 0x1 + lsls r0, 16 + lsrs r3, r0, 16 + cmp r3, 0x8 + bls _080F548E + ldr r7, _080F54F4 @ =gUnknown_083DFEC4 + ldr r2, [r7] + lsls r0, r3, 2 + adds r0, r3 + lsls r0, 2 + adds r0, r4, r0 + adds r0, r2, r0 + mov r3, r9 + adds r1, r4, r3 + ldrh r1, [r1, 0x2] + ldr r7, _080F54FC @ =0x00009056 + adds r0, r7 + strh r1, [r0] + mov r1, r10 + lsls r0, r1, 16 + lsrs r7, r0, 16 + cmp r7, 0x4 + bls _080F5404 + ldr r3, _080F5500 @ =0x00009342 + adds r1, r2, r3 + movs r0, 0 + strh r0, [r1] + add sp, 0xC + pop {r3-r5} + mov r8, r3 + mov r9, r4 + mov r10, r5 + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_080F54F4: .4byte gUnknown_083DFEC4 +_080F54F8: .4byte 0x00009054 +_080F54FC: .4byte 0x00009056 +_080F5500: .4byte 0x00009342 + thumb_func_end sub_80F53EC + + thumb_func_start sub_80F5504 +sub_80F5504: @ 80F5504 + push {r4,lr} + ldr r0, _080F551C @ =gUnknown_083DFEC4 + ldr r2, [r0] + ldr r0, _080F5520 @ =0x00009342 + adds r4, r2, r0 + ldrh r0, [r4] + adds r1, r0, 0 + cmp r1, 0x9 + bls _080F5524 + movs r0, 0 + b _080F5544 + .align 2, 0 +_080F551C: .4byte gUnknown_083DFEC4 +_080F5520: .4byte 0x00009342 +_080F5524: + adds r0, 0x1 + strh r0, [r4] + lsls r0, r1, 2 + adds r0, r1 + lsls r0, 2 + ldr r1, _080F554C @ =0x00009054 + adds r0, r1 + adds r0, r2, r0 + bl sub_80F556C + ldrh r1, [r4] + movs r0, 0xA + eors r1, r0 + negs r0, r1 + orrs r0, r1 + lsrs r0, 31 +_080F5544: + pop {r4} + pop {r1} + bx r1 + .align 2, 0 +_080F554C: .4byte 0x00009054 + thumb_func_end sub_80F5504 + + thumb_func_start sub_80F5550 +sub_80F5550: @ 80F5550 + push {lr} + bl sub_80F53EC + pop {r0} + bx r0 + thumb_func_end sub_80F5550 + + thumb_func_start sub_80F555C +sub_80F555C: @ 80F555C + push {lr} + bl sub_80F5504 + lsls r0, 24 + lsrs r0, 24 + pop {r1} + bx r1 + thumb_func_end sub_80F555C + + thumb_func_start sub_80F556C +sub_80F556C: @ 80F556C + push {r4,r5,lr} + adds r4, r0, 0 + movs r2, 0 + ldr r5, _080F55A0 @ =gUnknown_083DFEC4 + ldr r0, [r5] + ldr r1, _080F55A4 @ =0x0000911c + adds r3, r0, r1 +_080F557A: + lsls r0, r2, 2 + adds r1, r3, r0 + adds r0, r4 + ldr r0, [r0] + str r0, [r1] + adds r0, r2, 0x1 + lsls r0, 16 + lsrs r2, r0, 16 + cmp r2, 0x4 + bls _080F557A + ldr r0, [r5] + ldr r1, _080F55A8 @ =0x00009344 + adds r0, r1 + movs r1, 0x1 + strb r1, [r0] + pop {r4,r5} + pop {r0} + bx r0 + .align 2, 0 +_080F55A0: .4byte gUnknown_083DFEC4 +_080F55A4: .4byte 0x0000911c +_080F55A8: .4byte 0x00009344 + thumb_func_end sub_80F556C + + thumb_func_start sub_80F55AC +sub_80F55AC: @ 80F55AC + push {r4-r7,lr} + mov r7, r10 + mov r6, r9 + mov r5, r8 + push {r5-r7} + adds r6, r0, 0 + mov r8, r1 + ldr r1, _080F5674 @ =gUnknown_083E4890 + ldrb r0, [r6] + adds r0, r1 + ldrb r2, [r0] + adds r6, 0x1 + movs r0, 0x9B + mov r3, r8 + strh r0, [r3] + movs r0, 0x5B + subs r0, r2 + strh r0, [r3, 0x2] + movs r7, 0x40 + movs r0, 0 + mov r12, r0 + movs r2, 0x1 + mov r9, r2 + ldr r3, _080F5678 @ =gSineTable + mov r10, r3 +_080F55DE: + adds r0, r7, 0 + adds r0, 0x33 + lsls r0, 24 + lsrs r7, r0, 24 + mov r1, r12 + lsls r0, r1, 24 + movs r2, 0xFF + lsls r2, 24 + adds r0, r2 + lsrs r3, r0, 24 + mov r12, r3 + cmp r0, 0 + bge _080F55FC + movs r0, 0x4 + mov r12, r0 +_080F55FC: + mov r1, r12 + lsls r0, r1, 24 + asrs r4, r0, 24 + cmp r4, 0x2 + bne _080F560C + adds r0, r7, 0x1 + lsls r0, 24 + lsrs r7, r0, 24 +_080F560C: + ldrb r0, [r6] + ldr r2, _080F5674 @ =gUnknown_083E4890 + adds r0, r2 + ldrb r2, [r0] + adds r6, 0x1 + lsls r0, r4, 2 + mov r1, r8 + adds r3, r0, r1 + adds r0, r7, 0 + adds r0, 0x40 + lsls r0, 1 + add r0, r10 + movs r1, 0 + ldrsh r0, [r0, r1] + muls r0, r2 + asrs r5, r0, 8 + adds r0, r5, 0 + adds r0, 0x9B + strh r0, [r3] + lsls r0, r7, 1 + add r0, r10 + movs r1, 0 + ldrsh r0, [r0, r1] + adds r1, r2, 0 + muls r1, r0 + asrs r1, 8 + movs r0, 0x5B + subs r0, r1 + strh r0, [r3, 0x2] + cmp r4, 0x2 + bgt _080F5658 + cmp r2, 0x20 + bne _080F5652 + cmp r4, 0x2 + beq _080F5658 +_080F5652: + adds r0, r5, 0 + adds r0, 0x9C + strh r0, [r3] +_080F5658: + mov r0, r9 + adds r0, 0x1 + lsls r0, 16 + lsrs r0, 16 + mov r9, r0 + cmp r0, 0x4 + bls _080F55DE + pop {r3-r5} + mov r8, r3 + mov r9, r4 + mov r10, r5 + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_080F5674: .4byte gUnknown_083E4890 +_080F5678: .4byte gSineTable + thumb_func_end sub_80F55AC + + thumb_func_start sub_80F567C +sub_80F567C: @ 80F567C + push {lr} + bl sub_80F55AC + pop {r0} + bx r0 + thumb_func_end sub_80F567C + + thumb_func_start sub_80F5688 +sub_80F5688: @ 80F5688 + push {r4-r7,lr} + mov r7, r10 + mov r6, r9 + mov r5, r8 + push {r5-r7} + sub sp, 0x14 + adds r6, r0, 0 + adds r5, r1, 0 + str r2, [sp] + ldr r7, [sp, 0x34] + lsls r3, 24 + lsrs r3, 24 + mov r9, r3 + movs r0, 0 + str r0, [sp, 0x8] + ldrh r0, [r5, 0x2] + ldrh r1, [r2, 0x2] + cmp r0, r1 + bcs _080F56D0 + adds r2, r0, 0 + str r2, [sp, 0x4] + ldr r3, [sp] + ldrh r0, [r3, 0x2] + ldrh r1, [r5] + lsls r4, r1, 10 + ldrh r2, [r3] + mov r10, r2 + ldr r3, [sp, 0x4] + subs r0, r3 + lsls r0, 16 + lsrs r0, 16 + mov r8, r0 + cmp r0, 0 + beq _080F56FC + subs r0, r2, r1 + b _080F56F2 +_080F56D0: + ldrh r0, [r5, 0x2] + ldr r1, [sp] + ldrh r1, [r1, 0x2] + str r1, [sp, 0x4] + ldr r2, [sp] + ldrh r1, [r2] + lsls r4, r1, 10 + ldrh r3, [r5] + mov r10, r3 + ldr r2, [sp, 0x4] + subs r0, r2 + lsls r0, 16 + lsrs r0, 16 + mov r8, r0 + cmp r0, 0 + beq _080F56FC + subs r0, r3, r1 +_080F56F2: + lsls r0, 10 + mov r1, r8 + bl __divsi3 + str r0, [sp, 0x8] +_080F56FC: + mov r0, r8 + adds r0, 0x1 + lsls r0, 16 + lsrs r0, 16 + mov r8, r0 + cmp r7, 0 + bne _080F5746 + ldr r0, [sp, 0x4] + subs r0, 0x38 + lsls r0, 2 + adds r6, r0 + movs r5, 0 + mov r3, r9 + lsls r3, 1 + mov r12, r3 + mov r0, r10 + add r0, r9 + str r0, [sp, 0xC] + cmp r7, r8 + bcs _080F57D4 + movs r7, 0x1 +_080F5726: + adds r2, r3, r6 + asrs r1, r4, 10 + asrs r0, r4, 9 + ands r0, r7 + adds r1, r0 + add r1, r9 + strh r1, [r2] + ldr r1, [sp, 0x8] + adds r4, r1 + adds r6, 0x4 + adds r0, r5, 0x1 + lsls r0, 16 + lsrs r5, r0, 16 + cmp r5, r8 + bcc _080F5726 + b _080F57D4 +_080F5746: + ldr r2, [sp, 0x8] + cmp r2, 0 + ble _080F57E4 + ldr r0, [sp, 0x4] + subs r0, 0x38 + lsls r0, 2 + adds r7, r0 + movs r5, 0 + mov r3, r9 + lsls r3, 1 + mov r12, r3 + mov r0, r10 + add r0, r9 + str r0, [sp, 0xC] + cmp r5, r8 + bcs _080F5798 + ldr r0, _080F57D8 @ =0x00026bff + cmp r4, r0 + bgt _080F5798 + mov r1, r12 + str r1, [sp, 0x10] + mov r10, r0 +_080F5772: + ldr r3, [sp, 0x10] + adds r2, r3, r7 + asrs r1, r4, 10 + asrs r0, r4, 9 + movs r3, 0x1 + ands r0, r3 + adds r1, r0 + add r1, r9 + strh r1, [r2] + ldr r0, [sp, 0x8] + adds r4, r0 + adds r7, 0x4 + adds r0, r5, 0x1 + lsls r0, 16 + lsrs r5, r0, 16 + cmp r5, r8 + bcs _080F5798 + cmp r4, r10 + ble _080F5772 +_080F5798: + ldr r1, _080F57DC @ =gUnknown_083DFEC4 + ldr r0, [r1] + ldr r2, [sp, 0x4] + adds r1, r2, r5 + ldr r3, _080F57E0 @ =0x00009340 + adds r0, r3 + strh r1, [r0] + ldrh r0, [r0] + subs r0, 0x38 + lsls r0, 2 + adds r6, r0 + cmp r5, r8 + bcs _080F57D4 + mov r3, r12 + movs r7, 0x1 +_080F57B6: + adds r2, r3, r6 + asrs r1, r4, 10 + asrs r0, r4, 9 + ands r0, r7 + adds r1, r0 + add r1, r9 + strh r1, [r2] + ldr r0, [sp, 0x8] + adds r4, r0 + adds r6, 0x4 + adds r0, r5, 0x1 + lsls r0, 16 + lsrs r5, r0, 16 + cmp r5, r8 + bcc _080F57B6 +_080F57D4: + subs r0, r6, 0x4 + b _080F58C4 + .align 2, 0 +_080F57D8: .4byte 0x00026bff +_080F57DC: .4byte gUnknown_083DFEC4 +_080F57E0: .4byte 0x00009340 +_080F57E4: + ldr r1, [sp, 0x8] + cmp r1, 0 + bge _080F5890 + ldr r0, [sp, 0x4] + subs r0, 0x38 + lsls r0, 2 + adds r6, r0 + movs r5, 0 + mov r2, r9 + lsls r2, 1 + mov r12, r2 + mov r3, r10 + add r3, r9 + str r3, [sp, 0xC] + cmp r5, r8 + bcs _080F5842 + adds r3, r2, r6 + asrs r1, r4, 10 + asrs r0, r4, 9 + movs r2, 0x1 + ands r0, r2 + adds r1, r0 + add r1, r9 + strh r1, [r3] + b _080F5838 +_080F5816: + ldr r0, [sp, 0x8] + adds r4, r0 + adds r6, 0x4 + adds r0, r5, 0x1 + lsls r0, 16 + lsrs r5, r0, 16 + cmp r5, r8 + bcs _080F5842 + mov r1, r12 + adds r3, r1, r6 + asrs r2, r4, 10 + asrs r0, r4, 9 + movs r1, 0x1 + ands r0, r1 + adds r2, r0 + add r2, r9 + strh r2, [r3] +_080F5838: + ldr r0, _080F5884 @ =0x00026bff + cmp r4, r0 + bgt _080F5816 + movs r0, 0x9B + strh r0, [r3] +_080F5842: + ldr r2, _080F5888 @ =gUnknown_083DFEC4 + ldr r0, [r2] + ldr r3, [sp, 0x4] + adds r1, r3, r5 + ldr r2, _080F588C @ =0x00009340 + adds r0, r2 + strh r1, [r0] + ldrh r0, [r0] + subs r0, 0x38 + lsls r0, 2 + adds r7, r0 + cmp r5, r8 + bcs _080F587E + mov r3, r12 + movs r6, 0x1 +_080F5860: + adds r2, r3, r7 + asrs r1, r4, 10 + asrs r0, r4, 9 + ands r0, r6 + adds r1, r0 + add r1, r9 + strh r1, [r2] + ldr r0, [sp, 0x8] + adds r4, r0 + adds r7, 0x4 + adds r0, r5, 0x1 + lsls r0, 16 + lsrs r5, r0, 16 + cmp r5, r8 + bcc _080F5860 +_080F587E: + subs r0, r7, 0x4 + b _080F58C4 + .align 2, 0 +_080F5884: .4byte 0x00026bff +_080F5888: .4byte gUnknown_083DFEC4 +_080F588C: .4byte 0x00009340 +_080F5890: + ldr r0, _080F58BC @ =gUnknown_083DFEC4 + ldr r0, [r0] + ldr r1, _080F58C0 @ =0x00009340 + adds r0, r1 + mov r2, sp + ldrh r2, [r2, 0x4] + strh r2, [r0] + ldr r0, [sp, 0x4] + subs r0, 0x38 + lsls r0, 2 + adds r6, r0 + adds r7, r0 + ldrh r0, [r5] + adds r0, 0x1 + strh r0, [r6, 0x2] + ldr r3, [sp] + ldrh r0, [r3] + strh r0, [r7] + movs r0, 0x9B + strh r0, [r7, 0x2] + b _080F58CC + .align 2, 0 +_080F58BC: .4byte gUnknown_083DFEC4 +_080F58C0: .4byte 0x00009340 +_080F58C4: + add r0, r12 + mov r1, sp + ldrh r1, [r1, 0xC] + strh r1, [r0] +_080F58CC: + 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_80F5688 + + thumb_func_start sub_80F58DC +sub_80F58DC: @ 80F58DC + push {r4-r7,lr} + mov r7, r8 + push {r7} + sub sp, 0x4 + adds r5, r0, 0 + ldrh r0, [r5, 0x2] + ldrh r1, [r5, 0x6] + cmp r0, r1 + bcs _080F5914 + adds r4, r0, 0 + mov r8, r4 + ldr r0, _080F590C @ =gUnknown_083DFEC4 + ldr r0, [r0] + ldr r1, _080F5910 @ =0x00009130 + adds r0, r1 + adds r4, r5, 0x4 + movs r1, 0 + str r1, [sp] + adds r1, r5, 0 + adds r2, r4, 0 + movs r3, 0x1 + bl sub_80F5688 + b _080F5930 + .align 2, 0 +_080F590C: .4byte gUnknown_083DFEC4 +_080F5910: .4byte 0x00009130 +_080F5914: + ldrh r4, [r5, 0x6] + mov r8, r4 + ldr r0, _080F5A08 @ =gUnknown_083DFEC4 + ldr r0, [r0] + ldr r1, _080F5A0C @ =0x00009130 + adds r0, r1 + adds r4, r5, 0x4 + movs r1, 0 + str r1, [sp] + adds r1, r4, 0 + adds r2, r5, 0 + movs r3, 0 + bl sub_80F5688 +_080F5930: + adds r1, r4, 0 + ldr r0, _080F5A08 @ =gUnknown_083DFEC4 + ldr r6, [r0] + ldr r0, _080F5A0C @ =0x00009130 + adds r4, r6, r0 + adds r7, r5, 0 + adds r7, 0x8 + movs r0, 0 + str r0, [sp] + adds r0, r4, 0 + adds r2, r7, 0 + movs r3, 0x1 + bl sub_80F5688 + movs r3, 0 + ldrh r0, [r5, 0xA] + ldrh r1, [r5, 0xE] + cmp r0, r1 + bhi _080F5958 + movs r3, 0x1 +_080F5958: + adds r2, r5, 0 + adds r2, 0xC + ldr r1, _080F5A10 @ =0x00009238 + adds r0, r6, r1 + str r0, [sp] + adds r0, r4, 0 + adds r1, r7, 0 + bl sub_80F5688 + movs r2, 0x38 + cmp r2, r8 + bcs _080F5990 + adds r7, r4, 0 + movs r3, 0 + ldr r0, _080F5A14 @ =0x00009132 + adds r4, r6, r0 +_080F5978: + adds r0, r2, 0 + subs r0, 0x38 + lsls r0, 2 + adds r1, r7, r0 + strh r3, [r1] + adds r0, r4, r0 + strh r3, [r0] + adds r0, r2, 0x1 + lsls r0, 16 + lsrs r2, r0, 16 + cmp r2, r8 + bcc _080F5978 +_080F5990: + ldrh r2, [r5, 0x2] + ldr r0, _080F5A08 @ =gUnknown_083DFEC4 + ldr r3, [r0] + ldr r4, _080F5A18 @ =0x00009340 + adds r1, r3, r4 + adds r6, r0, 0 + ldrh r0, [r1] + cmp r2, r0 + bhi _080F59BE + ldr r4, _080F5A0C @ =0x00009130 + adds r3, r4 + movs r4, 0x9B +_080F59A8: + adds r0, r2, 0 + subs r0, 0x38 + lsls r0, 2 + adds r0, r3, r0 + strh r4, [r0] + adds r0, r2, 0x1 + lsls r0, 16 + lsrs r2, r0, 16 + ldrh r0, [r1] + cmp r2, r0 + bls _080F59A8 +_080F59BE: + ldr r4, [r6] + ldr r1, _080F5A18 @ =0x00009340 + adds r0, r4, r1 + ldrh r0, [r0] + ldrh r1, [r5, 0xA] + cmp r0, r1 + bcs _080F59CE + adds r0, r1, 0 +_080F59CE: + adds r0, 0x1 + lsls r0, 16 + lsrs r2, r0, 16 + cmp r2, 0x79 + bhi _080F59FA + ldr r0, _080F5A0C @ =0x00009130 + adds r5, r4, r0 + movs r3, 0 + ldr r1, _080F5A14 @ =0x00009132 + adds r4, r1 +_080F59E2: + adds r0, r2, 0 + subs r0, 0x38 + lsls r0, 2 + adds r1, r5, r0 + strh r3, [r1] + adds r0, r4, r0 + strh r3, [r0] + adds r0, r2, 0x1 + lsls r0, 16 + lsrs r2, r0, 16 + cmp r2, 0x79 + bls _080F59E2 +_080F59FA: + add sp, 0x4 + pop {r3} + mov r8, r3 + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_080F5A08: .4byte gUnknown_083DFEC4 +_080F5A0C: .4byte 0x00009130 +_080F5A10: .4byte 0x00009238 +_080F5A14: .4byte 0x00009132 +_080F5A18: .4byte 0x00009340 + thumb_func_end sub_80F58DC + + thumb_func_start sub_80F5A1C +sub_80F5A1C: @ 80F5A1C + push {r4-r7,lr} + mov r7, r8 + push {r7} + sub sp, 0x4 + adds r5, r0, 0 + ldrh r0, [r5, 0x2] + ldrh r1, [r5, 0x12] + cmp r0, r1 + bcs _080F5A54 + adds r7, r0, 0 + ldr r0, _080F5A4C @ =gUnknown_083DFEC4 + ldr r0, [r0] + ldr r2, _080F5A50 @ =0x00009238 + adds r0, r2 + adds r4, r5, 0 + adds r4, 0x10 + movs r1, 0 + str r1, [sp] + adds r1, r5, 0 + adds r2, r4, 0 + movs r3, 0 + bl sub_80F5688 + b _080F5A70 + .align 2, 0 +_080F5A4C: .4byte gUnknown_083DFEC4 +_080F5A50: .4byte 0x00009238 +_080F5A54: + ldrh r7, [r5, 0x12] + ldr r0, _080F5B28 @ =gUnknown_083DFEC4 + ldr r0, [r0] + ldr r4, _080F5B2C @ =0x00009238 + adds r0, r4 + adds r4, r5, 0 + adds r4, 0x10 + movs r1, 0 + str r1, [sp] + adds r1, r4, 0 + adds r2, r5, 0 + movs r3, 0x1 + bl sub_80F5688 +_080F5A70: + adds r1, r4, 0 + ldr r0, _080F5B28 @ =gUnknown_083DFEC4 + ldr r0, [r0] + mov r8, r0 + ldr r4, _080F5B2C @ =0x00009238 + add r4, r8 + adds r2, r5, 0 + adds r2, 0xC + movs r0, 0 + str r0, [sp] + adds r0, r4, 0 + movs r3, 0 + bl sub_80F5688 + movs r2, 0x38 + cmp r2, r7 + bcs _080F5AB2 + adds r6, r4, 0 + movs r3, 0 + ldr r4, _080F5B30 @ =0x0000923a + add r4, r8 +_080F5A9A: + adds r0, r2, 0 + subs r0, 0x38 + lsls r0, 2 + adds r1, r6, r0 + strh r3, [r1] + adds r0, r4, r0 + strh r3, [r0] + adds r0, r2, 0x1 + lsls r0, 16 + lsrs r2, r0, 16 + cmp r2, r7 + bcc _080F5A9A +_080F5AB2: + ldrh r2, [r5, 0x2] + ldr r0, _080F5B28 @ =gUnknown_083DFEC4 + ldr r3, [r0] + ldr r4, _080F5B34 @ =0x00009340 + adds r1, r3, r4 + adds r6, r0, 0 + ldrh r0, [r1] + cmp r2, r0 + bhi _080F5AE0 + ldr r4, _080F5B30 @ =0x0000923a + adds r3, r4 + movs r4, 0x9B +_080F5ACA: + adds r0, r2, 0 + subs r0, 0x38 + lsls r0, 2 + adds r0, r3, r0 + strh r4, [r0] + adds r0, r2, 0x1 + lsls r0, 16 + lsrs r2, r0, 16 + ldrh r0, [r1] + cmp r2, r0 + bls _080F5ACA +_080F5AE0: + ldrh r0, [r5, 0xE] + adds r1, r0, 0x1 + ldr r3, [r6] + ldr r2, _080F5B34 @ =0x00009340 + adds r0, r3, r2 + ldrh r0, [r0] + cmp r0, r1 + bge _080F5AF2 + adds r0, r1, 0 +_080F5AF2: + lsls r0, 16 + lsrs r2, r0, 16 + cmp r2, 0x79 + bhi _080F5B1C + ldr r4, _080F5B2C @ =0x00009238 + adds r5, r3, r4 + movs r4, 0 + ldr r0, _080F5B30 @ =0x0000923a + adds r3, r0 +_080F5B04: + adds r0, r2, 0 + subs r0, 0x38 + lsls r0, 2 + adds r1, r5, r0 + strh r4, [r1] + adds r0, r3, r0 + strh r4, [r0] + adds r0, r2, 0x1 + lsls r0, 16 + lsrs r2, r0, 16 + cmp r2, 0x79 + bls _080F5B04 +_080F5B1C: + add sp, 0x4 + pop {r3} + mov r8, r3 + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_080F5B28: .4byte gUnknown_083DFEC4 +_080F5B2C: .4byte 0x00009238 +_080F5B30: .4byte 0x0000923a +_080F5B34: .4byte 0x00009340 + thumb_func_end sub_80F5A1C + + thumb_func_start sub_80F5B38 +sub_80F5B38: @ 80F5B38 + ldr r0, _080F5B48 @ =gUnknown_083DFEC4 + ldr r0, [r0] + ldr r1, _080F5B4C @ =0x00009345 + adds r0, r1 + movs r1, 0 + strb r1, [r0] + bx lr + .align 2, 0 +_080F5B48: .4byte gUnknown_083DFEC4 +_080F5B4C: .4byte 0x00009345 + thumb_func_end sub_80F5B38 + + thumb_func_start sub_80F5B50 +sub_80F5B50: @ 80F5B50 + push {r4,r5,lr} + sub sp, 0xC + ldr r0, _080F5B68 @ =gUnknown_083DFEC4 + ldr r0, [r0] + ldr r1, _080F5B6C @ =0x00009345 + adds r4, r0, r1 + ldrb r0, [r4] + cmp r0, 0 + beq _080F5B70 + cmp r0, 0x1 + beq _080F5BB4 + b _080F5BCC + .align 2, 0 +_080F5B68: .4byte gUnknown_083DFEC4 +_080F5B6C: .4byte 0x00009345 +_080F5B70: + bl dp12_8087EA4 + ldr r0, _080F5BA8 @ =gUnknown_03004DE0 + movs r2, 0xEF + movs r3, 0xF4 + lsls r3, 3 + adds r1, r0, r3 + adds r0, 0x20 + movs r3, 0xF +_080F5B82: + strh r2, [r0] + strh r2, [r0, 0x2] + strh r2, [r1] + strh r2, [r1, 0x2] + adds r1, 0x4 + adds r0, 0x4 + subs r3, 0x1 + cmp r3, 0 + bge _080F5B82 + ldr r0, _080F5BAC @ =gUnknown_083DFEC4 + ldr r1, [r0] + ldr r5, _080F5BB0 @ =0x00009345 + adds r1, r5 + ldrb r0, [r1] + adds r0, 0x1 + strb r0, [r1] + movs r0, 0x1 + b _080F5BCE + .align 2, 0 +_080F5BA8: .4byte gUnknown_03004DE0 +_080F5BAC: .4byte gUnknown_083DFEC4 +_080F5BB0: .4byte 0x00009345 +_080F5BB4: + mov r0, sp + ldr r1, _080F5BD8 @ =gUnknown_083E4990 + ldm r1!, {r2,r3,r5} + stm r0!, {r2,r3,r5} + ldr r0, [sp] + ldr r1, [sp, 0x4] + ldr r2, [sp, 0x8] + bl sub_80895F8 + ldrb r0, [r4] + adds r0, 0x1 + strb r0, [r4] +_080F5BCC: + movs r0, 0 +_080F5BCE: + add sp, 0xC + pop {r4,r5} + pop {r1} + bx r1 + .align 2, 0 +_080F5BD8: .4byte gUnknown_083E4990 + thumb_func_end sub_80F5B50 + + thumb_func_start sub_80F5BDC +sub_80F5BDC: @ 80F5BDC + push {lr} + ldr r1, _080F5BEC @ =gUnknown_03004DC0 + movs r0, 0x3 + strb r0, [r1, 0x15] + bl sub_8089668 + pop {r0} + bx r0 + .align 2, 0 +_080F5BEC: .4byte gUnknown_03004DC0 + thumb_func_end sub_80F5BDC + + thumb_func_start sub_80F5BF0 +sub_80F5BF0: @ 80F5BF0 + push {r4-r7,lr} + mov r7, r10 + mov r6, r9 + mov r5, r8 + push {r5-r7} + sub sp, 0xC + ldr r0, _080F5CB8 @ =gUnknown_083DFEC4 + ldr r5, [r0] + ldr r1, _080F5CBC @ =0x00009344 + adds r0, r5, r1 + ldrb r0, [r0] + cmp r0, 0 + beq _080F5CA6 + ldr r0, _080F5CC0 @ =0x0000911c + adds r4, r5, r0 + adds r0, r4, 0 + bl sub_80F58DC + adds r0, r4, 0 + bl sub_80F5A1C + movs r6, 0 + ldr r1, _080F5CC4 @ =gUnknown_03004DE0 + mov r12, r1 + movs r0, 0xF0 + lsls r0, 3 + add r0, r12 + mov r9, r0 + adds r7, r5, 0 + ldr r1, _080F5CC8 @ =0x0000ffff + mov r8, r1 + ldr r5, _080F5CCC @ =0x00009130 + adds r5, r7, r5 + str r5, [sp] + ldr r0, _080F5CD0 @ =0x00009132 + adds r0, r7, r0 + str r0, [sp, 0x4] + ldr r1, _080F5CD4 @ =0x00009238 + adds r1, r7 + mov r10, r1 +_080F5C40: + adds r2, r6, 0 + adds r2, 0x37 + lsls r3, r2, 2 + mov r5, r9 + adds r5, r3, r5 + str r5, [sp, 0x8] + add r3, r12 + lsls r4, r6, 2 + ldr r1, [sp] + adds r0, r1, r4 + ldrh r0, [r0] + lsls r0, 8 + ldr r5, [sp, 0x4] + adds r1, r5, r4 + ldrh r1, [r1] + orrs r0, r1 + strh r0, [r3] + mov r1, r8 + ands r0, r1 + ldr r5, [sp, 0x8] + strh r0, [r5] + lsls r2, 1 + adds r2, 0x1 + lsls r2, 1 + mov r0, r9 + adds r3, r2, r0 + add r2, r12 + mov r1, r10 + adds r0, r1, r4 + ldrh r1, [r0] + lsls r1, 8 + ldr r5, _080F5CD8 @ =0x0000923a + adds r0, r7, r5 + adds r0, r4 + ldrh r0, [r0] + orrs r1, r0 + strh r1, [r2] + mov r0, r8 + ands r1, r0 + strh r1, [r3] + adds r0, r6, 0x1 + lsls r0, 16 + lsrs r6, r0, 16 + ldr r0, _080F5CB8 @ =gUnknown_083DFEC4 + cmp r6, 0x41 + bls _080F5C40 + ldr r0, [r0] + ldr r1, _080F5CBC @ =0x00009344 + adds r0, r1 + movs r1, 0 + strb r1, [r0] +_080F5CA6: + add sp, 0xC + pop {r3-r5} + mov r8, r3 + mov r9, r4 + mov r10, r5 + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_080F5CB8: .4byte gUnknown_083DFEC4 +_080F5CBC: .4byte 0x00009344 +_080F5CC0: .4byte 0x0000911c +_080F5CC4: .4byte gUnknown_03004DE0 +_080F5CC8: .4byte 0x0000ffff +_080F5CCC: .4byte 0x00009130 +_080F5CD0: .4byte 0x00009132 +_080F5CD4: .4byte 0x00009238 +_080F5CD8: .4byte 0x0000923a + thumb_func_end sub_80F5BF0 + + thumb_func_start sub_80F5CDC +sub_80F5CDC: @ 80F5CDC + push {r4-r7,lr} + mov r7, r10 + mov r6, r9 + mov r5, r8 + push {r5-r7} + sub sp, 0xC + lsls r0, 24 + lsrs r5, r0, 24 + ldr r0, _080F5DB0 @ =gUnknown_083DFEC4 + ldr r6, [r0] + ldr r1, _080F5DB4 @ =0x00009344 + adds r0, r6, r1 + ldrb r0, [r0] + cmp r0, 0 + beq _080F5DA0 + ldr r0, _080F5DB8 @ =0x0000911c + adds r4, r6, r0 + adds r0, r4, 0 + bl sub_80F58DC + adds r0, r4, 0 + bl sub_80F5A1C + movs r0, 0x37 + subs r0, r5 + lsls r0, 17 + lsrs r5, r0, 16 + movs r7, 0 + ldr r1, _080F5DBC @ =gUnknown_03004DE0 + mov r12, r1 + movs r4, 0xF0 + lsls r4, 3 + add r4, r12 + mov r9, r4 + ldr r0, _080F5DC0 @ =0x0000ffff + mov r8, r0 + ldr r1, _080F5DC4 @ =0x00009130 + adds r1, r6, r1 + str r1, [sp] + ldr r4, _080F5DC8 @ =0x00009132 + adds r4, r6, r4 + str r4, [sp, 0x4] + ldr r0, _080F5DCC @ =0x00009238 + adds r0, r6 + mov r10, r0 +_080F5D36: + lsls r2, r5, 1 + mov r1, r9 + adds r1, r2, r1 + str r1, [sp, 0x8] + add r2, r12 + lsls r3, r7, 2 + ldr r4, [sp] + adds r0, r4, r3 + ldrh r0, [r0] + lsls r0, 8 + ldr r4, [sp, 0x4] + adds r1, r4, r3 + ldrh r1, [r1] + orrs r0, r1 + strh r0, [r2] + mov r1, r8 + ands r0, r1 + ldr r4, [sp, 0x8] + strh r0, [r4] + adds r2, r5, 0x1 + lsls r2, 1 + mov r0, r9 + adds r0, r2, r0 + str r0, [sp, 0x8] + add r2, r12 + mov r1, r10 + adds r0, r1, r3 + ldrh r1, [r0] + lsls r1, 8 + ldr r4, _080F5DD0 @ =0x0000923a + adds r0, r6, r4 + adds r0, r3 + ldrh r0, [r0] + orrs r1, r0 + strh r1, [r2] + mov r0, r8 + ands r1, r0 + ldr r4, [sp, 0x8] + strh r1, [r4] + adds r0, r5, 0x2 + lsls r0, 16 + lsrs r5, r0, 16 + adds r0, r7, 0x1 + lsls r0, 16 + lsrs r7, r0, 16 + ldr r0, _080F5DB0 @ =gUnknown_083DFEC4 + cmp r7, 0x41 + bls _080F5D36 + ldr r0, [r0] + ldr r1, _080F5DB4 @ =0x00009344 + adds r0, r1 + movs r1, 0 + strb r1, [r0] +_080F5DA0: + add sp, 0xC + pop {r3-r5} + mov r8, r3 + mov r9, r4 + mov r10, r5 + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_080F5DB0: .4byte gUnknown_083DFEC4 +_080F5DB4: .4byte 0x00009344 +_080F5DB8: .4byte 0x0000911c +_080F5DBC: .4byte gUnknown_03004DE0 +_080F5DC0: .4byte 0x0000ffff +_080F5DC4: .4byte 0x00009130 +_080F5DC8: .4byte 0x00009132 +_080F5DCC: .4byte 0x00009238 +_080F5DD0: .4byte 0x0000923a + thumb_func_end sub_80F5CDC + + thumb_func_start sub_80F5DD4 +sub_80F5DD4: @ 80F5DD4 + push {lr} + ldr r0, _080F5DE8 @ =gMain + ldrh r1, [r0, 0x30] + movs r0, 0x40 + ands r0, r1 + cmp r0, 0 + beq _080F5DEC + bl sub_80F5E20 + b _080F5E18 + .align 2, 0 +_080F5DE8: .4byte gMain +_080F5DEC: + movs r0, 0x80 + ands r0, r1 + cmp r0, 0 + beq _080F5DFA + bl sub_80F5EE4 + b _080F5E18 +_080F5DFA: + movs r0, 0x20 + ands r0, r1 + cmp r0, 0 + beq _080F5E08 + bl sub_80F5FB4 + b _080F5E18 +_080F5E08: + movs r0, 0x10 + ands r0, r1 + cmp r0, 0 + bne _080F5E14 + movs r0, 0 + b _080F5E1C +_080F5E14: + bl sub_80F6010 +_080F5E18: + lsls r0, 24 + lsrs r0, 24 +_080F5E1C: + pop {r1} + bx r1 + thumb_func_end sub_80F5DD4 + + thumb_func_start sub_80F5E20 +sub_80F5E20: @ 80F5E20 + push {r4,r5,lr} + ldr r0, _080F5E38 @ =gUnknown_083DFEC4 + ldr r2, [r0] + ldr r3, _080F5E3C @ =0x0000876e + adds r1, r2, r3 + movs r5, 0 + ldrsh r1, [r1, r5] + adds r4, r0, 0 + cmp r1, 0 + bne _080F5E40 + movs r0, 0 + b _080F5EC8 + .align 2, 0 +_080F5E38: .4byte gUnknown_083DFEC4 +_080F5E3C: .4byte 0x0000876e +_080F5E40: + ldr r1, _080F5E6C @ =0x000087c9 + adds r0, r2, r1 + ldrb r0, [r0] + cmp r0, 0 + beq _080F5E74 + ldr r3, _080F5E70 @ =0x0000876c + adds r0, r2, r3 + movs r5, 0 + ldrsh r0, [r0, r5] + cmp r0, 0 + bne _080F5E74 + movs r4, 0x1 + negs r4, r4 + adds r0, r4, 0 + bl sub_80F063C + adds r0, r4, 0 + bl sub_80F6074 + movs r0, 0x2 + b _080F5EC8 + .align 2, 0 +_080F5E6C: .4byte 0x000087c9 +_080F5E70: .4byte 0x0000876c +_080F5E74: + ldr r1, [r4] + ldr r0, _080F5ED0 @ =0x0000876c + adds r2, r1, r0 + ldrh r0, [r2] + subs r3, r0, 0x1 + strh r3, [r2] + ldr r5, _080F5ED4 @ =0x000087c9 + adds r0, r1, r5 + ldrb r0, [r0] + cmp r0, 0 + bne _080F5E98 + lsls r0, r3, 16 + cmp r0, 0 + bge _080F5E98 + ldr r3, _080F5ED8 @ =0x00008772 + adds r0, r1, r3 + ldrh r0, [r0] + strh r0, [r2] +_080F5E98: + ldr r0, [r4] + ldr r5, _080F5EDC @ =0x00008770 + adds r2, r0, r5 + ldr r3, _080F5ED0 @ =0x0000876c + adds r1, r0, r3 + ldrh r1, [r1] + ldrh r2, [r2] + adds r2, r1, r2 + subs r5, 0x2 + adds r4, r0, r5 + strh r2, [r4] + ldr r1, _080F5EE0 @ =0x00008774 + adds r0, r1 + lsls r1, r2, 16 + asrs r1, 16 + ldrh r3, [r0] + movs r5, 0 + ldrsh r0, [r0, r5] + cmp r1, r0 + ble _080F5EC6 + subs r0, r2, 0x1 + subs r0, r3 + strh r0, [r4] +_080F5EC6: + movs r0, 0x1 +_080F5EC8: + pop {r4,r5} + pop {r1} + bx r1 + .align 2, 0 +_080F5ED0: .4byte 0x0000876c +_080F5ED4: .4byte 0x000087c9 +_080F5ED8: .4byte 0x00008772 +_080F5EDC: .4byte 0x00008770 +_080F5EE0: .4byte 0x00008774 + thumb_func_end sub_80F5E20 + + thumb_func_start sub_80F5EE4 +sub_80F5EE4: @ 80F5EE4 + push {r4-r6,lr} + ldr r3, _080F5F04 @ =gUnknown_083DFEC4 + ldr r4, [r3] + ldr r1, _080F5F08 @ =0x0000876e + adds r0, r4, r1 + ldr r2, _080F5F0C @ =0x00008774 + adds r1, r4, r2 + movs r5, 0 + ldrsh r2, [r0, r5] + movs r6, 0 + ldrsh r0, [r1, r6] + adds r5, r3, 0 + cmp r2, r0 + bne _080F5F10 + movs r0, 0 + b _080F5F98 + .align 2, 0 +_080F5F04: .4byte gUnknown_083DFEC4 +_080F5F08: .4byte 0x0000876e +_080F5F0C: .4byte 0x00008774 +_080F5F10: + ldr r1, _080F5F38 @ =0x000087c9 + adds r0, r4, r1 + ldrb r0, [r0] + cmp r0, 0 + beq _080F5F40 + ldr r2, _080F5F3C @ =0x0000876c + adds r0, r4, r2 + movs r3, 0 + ldrsh r0, [r0, r3] + cmp r0, 0x7 + bne _080F5F40 + movs r0, 0x1 + bl sub_80F063C + movs r0, 0x1 + bl sub_80F6074 + movs r0, 0x2 + b _080F5F98 + .align 2, 0 +_080F5F38: .4byte 0x000087c9 +_080F5F3C: .4byte 0x0000876c +_080F5F40: + ldr r2, [r5] + ldr r6, _080F5FA0 @ =0x0000876c + adds r4, r2, r6 + ldrh r0, [r4] + adds r1, r0, 0x1 + strh r1, [r4] + ldr r3, _080F5FA4 @ =0x000087c9 + adds r0, r2, r3 + ldrb r3, [r0] + cmp r3, 0 + bne _080F5F68 + adds r6, 0x6 + adds r0, r2, r6 + lsls r1, 16 + asrs r1, 16 + movs r2, 0 + ldrsh r0, [r0, r2] + cmp r1, r0 + ble _080F5F68 + strh r3, [r4] +_080F5F68: + ldr r0, [r5] + ldr r3, _080F5FA8 @ =0x00008770 + adds r2, r0, r3 + ldr r5, _080F5FA0 @ =0x0000876c + adds r1, r0, r5 + ldrh r1, [r1] + ldrh r2, [r2] + adds r2, r1, r2 + ldr r6, _080F5FAC @ =0x0000876e + adds r4, r0, r6 + strh r2, [r4] + ldr r1, _080F5FB0 @ =0x00008774 + adds r0, r1 + lsls r1, r2, 16 + asrs r1, 16 + ldrh r3, [r0] + movs r5, 0 + ldrsh r0, [r0, r5] + cmp r1, r0 + ble _080F5F96 + subs r0, r2, 0x1 + subs r0, r3 + strh r0, [r4] +_080F5F96: + movs r0, 0x1 +_080F5F98: + pop {r4-r6} + pop {r1} + bx r1 + .align 2, 0 +_080F5FA0: .4byte 0x0000876c +_080F5FA4: .4byte 0x000087c9 +_080F5FA8: .4byte 0x00008770 +_080F5FAC: .4byte 0x0000876e +_080F5FB0: .4byte 0x00008774 + thumb_func_end sub_80F5EE4 + + thumb_func_start sub_80F5FB4 +sub_80F5FB4: @ 80F5FB4 + push {r4,lr} + ldr r0, _080F5FD8 @ =gUnknown_083DFEC4 + ldr r1, [r0] + ldr r2, _080F5FDC @ =0x00008770 + adds r0, r1, r2 + ldrh r3, [r0] + movs r4, 0 + ldrsh r2, [r0, r4] + cmp r2, 0 + beq _080F5FD2 + ldr r4, _080F5FE0 @ =0x000087c9 + adds r0, r1, r4 + ldrb r0, [r0] + cmp r0, 0 + bne _080F5FE4 +_080F5FD2: + movs r0, 0 + b _080F6004 + .align 2, 0 +_080F5FD8: .4byte gUnknown_083DFEC4 +_080F5FDC: .4byte 0x00008770 +_080F5FE0: .4byte 0x000087c9 +_080F5FE4: + cmp r2, 0x7 + bgt _080F5FF0 + negs r0, r3 + lsls r0, 16 + lsrs r0, 16 + b _080F5FF2 +_080F5FF0: + ldr r0, _080F600C @ =0x0000fff8 +_080F5FF2: + lsls r4, r0, 16 + asrs r4, 16 + adds r0, r4, 0 + bl sub_80F063C + adds r0, r4, 0 + bl sub_80F6074 + movs r0, 0x2 +_080F6004: + pop {r4} + pop {r1} + bx r1 + .align 2, 0 +_080F600C: .4byte 0x0000fff8 + thumb_func_end sub_80F5FB4 + + thumb_func_start sub_80F6010 +sub_80F6010: @ 80F6010 + push {r4-r6,lr} + ldr r0, _080F603C @ =gUnknown_083DFEC4 + ldr r3, [r0] + ldr r1, _080F6040 @ =0x00008772 + adds r0, r3, r1 + ldr r2, _080F6044 @ =0x00008774 + adds r1, r3, r2 + ldrh r5, [r0] + movs r4, 0 + ldrsh r2, [r0, r4] + ldrh r4, [r1] + movs r6, 0 + ldrsh r0, [r1, r6] + cmp r2, r0 + beq _080F6038 + ldr r1, _080F6048 @ =0x000087c9 + adds r0, r3, r1 + ldrb r0, [r0] + cmp r0, 0 + bne _080F604C +_080F6038: + movs r0, 0 + b _080F606C + .align 2, 0 +_080F603C: .4byte gUnknown_083DFEC4 +_080F6040: .4byte 0x00008772 +_080F6044: .4byte 0x00008774 +_080F6048: .4byte 0x000087c9 +_080F604C: + subs r0, r4, r5 + lsls r0, 16 + lsrs r4, r0, 16 + asrs r0, 16 + cmp r0, 0x8 + ble _080F605A + movs r4, 0x8 +_080F605A: + lsls r4, 16 + asrs r4, 16 + adds r0, r4, 0 + bl sub_80F063C + adds r0, r4, 0 + bl sub_80F6074 + movs r0, 0x2 +_080F606C: + pop {r4-r6} + pop {r1} + bx r1 + thumb_func_end sub_80F6010 + + thumb_func_start sub_80F6074 +sub_80F6074: @ 80F6074 + push {r4-r7,lr} + ldr r1, _080F6120 @ =gUnknown_083DFEC4 + ldr r6, [r1] + ldr r1, _080F6124 @ =0x00008770 + adds r3, r6, r1 + ldrh r1, [r3] + lsls r0, 16 + asrs r7, r0, 16 + adds r2, r7, r1 + strh r2, [r3] + ldr r5, _080F6128 @ =0x00008774 + adds r4, r6, r5 + lsls r0, r2, 16 + asrs r0, 16 + ldrh r1, [r4] + mov r12, r1 + movs r5, 0 + ldrsh r1, [r4, r5] + cmp r0, r1 + ble _080F60A4 + subs r0, r2, 0x1 + mov r1, r12 + subs r0, r1 + strh r0, [r3] +_080F60A4: + ldrh r1, [r3] + movs r2, 0 + ldrsh r0, [r3, r2] + cmp r0, 0 + bge _080F60B6 + adds r0, r1, 0x1 + ldrh r5, [r4] + adds r0, r5 + strh r0, [r3] +_080F60B6: + ldr r0, _080F612C @ =0x00008772 + adds r3, r6, r0 + ldrh r0, [r3] + adds r2, r7, r0 + strh r2, [r3] + lsls r0, r2, 16 + asrs r0, 16 + ldrh r1, [r4] + mov r12, r1 + movs r5, 0 + ldrsh r1, [r4, r5] + cmp r0, r1 + ble _080F60D8 + subs r0, r2, 0x1 + mov r1, r12 + subs r0, r1 + strh r0, [r3] +_080F60D8: + ldrh r1, [r3] + movs r2, 0 + ldrsh r0, [r3, r2] + cmp r0, 0 + bge _080F60EA + adds r0, r1, 0x1 + ldrh r5, [r4] + adds r0, r5 + strh r0, [r3] +_080F60EA: + ldr r0, _080F6130 @ =0x0000876e + adds r3, r6, r0 + ldrh r0, [r3] + adds r2, r7, r0 + strh r2, [r3] + lsls r0, r2, 16 + asrs r0, 16 + ldrh r5, [r4] + movs r6, 0 + ldrsh r1, [r4, r6] + cmp r0, r1 + ble _080F6108 + subs r0, r2, 0x1 + subs r0, r5 + strh r0, [r3] +_080F6108: + ldrh r1, [r3] + movs r2, 0 + ldrsh r0, [r3, r2] + cmp r0, 0 + bge _080F611A + adds r0, r1, 0x1 + ldrh r4, [r4] + adds r0, r4 + strh r0, [r3] +_080F611A: + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_080F6120: .4byte gUnknown_083DFEC4 +_080F6124: .4byte 0x00008770 +_080F6128: .4byte 0x00008774 +_080F612C: .4byte 0x00008772 +_080F6130: .4byte 0x0000876e + thumb_func_end sub_80F6074 + + thumb_func_start sub_80F6134 +sub_80F6134: @ 80F6134 + push {r4-r6,lr} + ldr r0, _080F6194 @ =gUnknown_083DFEC4 + ldr r3, [r0] + ldr r1, _080F6198 @ =0x000087c9 + adds r0, r3, r1 + ldrb r0, [r0] + cmp r0, 0 + beq _080F61E0 + ldr r2, _080F619C @ =0x000087dc + adds r5, r3, r2 + movs r4, 0 + ldrsh r1, [r5, r4] + ldr r6, _080F61A0 @ =0x00008774 + adds r4, r3, r6 + movs r2, 0 + ldrsh r0, [r4, r2] + subs r0, 0x7 + cmp r1, r0 + bge _080F61AC + subs r6, 0x8 + adds r1, r3, r6 + movs r0, 0 + strh r0, [r1] + ldrh r0, [r5] + ldr r1, _080F61A4 @ =0x00008770 + adds r2, r3, r1 + strh r0, [r2] + ldrh r1, [r5] + ldr r5, _080F61A8 @ =0x0000876e + adds r0, r3, r5 + strh r1, [r0] + ldrh r5, [r2] + adds r0, r5, 0x7 + adds r6, 0x6 + adds r2, r3, r6 + strh r0, [r2] + lsls r0, 16 + asrs r0, 16 + ldrh r3, [r4] + movs r6, 0 + ldrsh r1, [r4, r6] + cmp r0, r1 + ble _080F61F4 + adds r0, r5, 0x6 + subs r0, r3 + strh r0, [r2] + b _080F61F4 + .align 2, 0 +_080F6194: .4byte gUnknown_083DFEC4 +_080F6198: .4byte 0x000087c9 +_080F619C: .4byte 0x000087dc +_080F61A0: .4byte 0x00008774 +_080F61A4: .4byte 0x00008770 +_080F61A8: .4byte 0x0000876e +_080F61AC: + ldrh r0, [r4] + subs r0, 0x7 + ldr r2, _080F61D4 @ =0x00008770 + adds r1, r3, r2 + strh r0, [r1] + ldrh r1, [r4] + ldr r6, _080F61D8 @ =0x00008772 + adds r0, r3, r6 + strh r1, [r0] + ldrh r1, [r5] + subs r2, 0x2 + adds r0, r3, r2 + strh r1, [r0] + ldrh r0, [r4] + subs r0, r1 + movs r1, 0x7 + subs r1, r0 + ldr r4, _080F61DC @ =0x0000876c + adds r0, r3, r4 + b _080F61F2 + .align 2, 0 +_080F61D4: .4byte 0x00008770 +_080F61D8: .4byte 0x00008772 +_080F61DC: .4byte 0x0000876c +_080F61E0: + ldr r5, _080F61FC @ =0x000087dc + adds r2, r3, r5 + ldrh r1, [r2] + ldr r6, _080F6200 @ =0x0000876c + adds r0, r3, r6 + strh r1, [r0] + ldrh r1, [r2] + ldr r2, _080F6204 @ =0x0000876e + adds r0, r3, r2 +_080F61F2: + strh r1, [r0] +_080F61F4: + pop {r4-r6} + pop {r0} + bx r0 + .align 2, 0 +_080F61FC: .4byte 0x000087dc +_080F6200: .4byte 0x0000876c +_080F6204: .4byte 0x0000876e + thumb_func_end sub_80F6134 + + thumb_func_start sub_80F6208 +sub_80F6208: @ 80F6208 + push {lr} + ldr r0, _080F623C @ =gUnknown_083DFEC4 + ldr r1, [r0] + ldr r2, _080F6240 @ =0x00008fe6 + adds r0, r1, r2 + movs r2, 0 + strb r2, [r0] + ldr r3, _080F6244 @ =0x00008fe7 + adds r0, r1, r3 + strb r2, [r0] + ldr r0, _080F6248 @ =0x00008fe8 + adds r2, r1, r0 + movs r0, 0xFF + strb r0, [r2] + ldr r2, _080F624C @ =0x00006dac + adds r1, r2 + ldrb r0, [r1] + cmp r0, 0 + bne _080F6238 +_080F622E: + bl sub_80F6250 + lsls r0, 24 + cmp r0, 0 + bne _080F622E +_080F6238: + pop {r0} + bx r0 + .align 2, 0 +_080F623C: .4byte gUnknown_083DFEC4 +_080F6240: .4byte 0x00008fe6 +_080F6244: .4byte 0x00008fe7 +_080F6248: .4byte 0x00008fe8 +_080F624C: .4byte 0x00006dac + thumb_func_end sub_80F6208 + + thumb_func_start sub_80F6250 +sub_80F6250: @ 80F6250 + push {r4-r7,lr} + mov r7, r9 + mov r6, r8 + push {r6,r7} + ldr r0, _080F6270 @ =gUnknown_083DFEC4 + ldr r2, [r0] + ldr r0, _080F6274 @ =0x00008fe8 + adds r3, r2, r0 + movs r1, 0 + ldrsb r1, [r3, r1] + movs r0, 0x1 + negs r0, r0 + cmp r1, r0 + beq _080F6278 +_080F626C: + movs r0, 0 + b _080F637E + .align 2, 0 +_080F6270: .4byte gUnknown_083DFEC4 +_080F6274: .4byte 0x00008fe8 +_080F6278: + ldr r1, _080F630C @ =0x00008fe6 + adds r0, r2, r1 + ldrb r0, [r0] + cmp r0, 0x7 + beq _080F631C + cmp r0, 0x8 + beq _080F626C + movs r6, 0 + adds r7, r2, 0 + adds r5, r7, r1 + ldr r0, _080F6310 @ =0x00008fe7 + adds r4, r7, r0 + ldr r1, _080F6314 @ =gUnknown_020300A4 + mov r8, r1 + ldr r0, _080F6318 @ =0x000041a0 + add r0, r8 + mov r9, r0 +_080F629A: + ldrb r0, [r5] + lsls r1, r0, 2 + adds r1, r0 + lsls r0, r1, 4 + subs r0, r1 + lsls r0, 5 + ldrb r2, [r4] + lsls r1, r2, 2 + adds r1, r2 + lsls r1, 4 + add r1, r8 + adds r0, r1 + movs r1, 0x51 + bl GetBoxMonData + cmp r0, 0 + bne _080F636C + ldrb r0, [r5] + lsls r1, r0, 2 + adds r1, r0 + lsls r0, r1, 4 + subs r0, r1 + lsls r0, 5 + ldrb r2, [r4] + lsls r1, r2, 2 + adds r1, r2 + lsls r1, 4 + add r1, r9 + adds r0, r1 + movs r1, 0x51 + bl GetBoxMonData + adds r1, r0, 0 + cmp r1, 0 + bne _080F636C + ldrb r0, [r4] + adds r0, 0x1 + strb r0, [r4] + movs r2, 0xFF + lsls r0, 24 + lsrs r0, 24 + cmp r0, 0x1D + bls _080F62FE + strb r1, [r4] + ldrb r0, [r5] + adds r0, 0x1 + strb r0, [r5] + ands r0, r2 + cmp r0, 0x6 + bhi _080F637C +_080F62FE: + adds r0, r6, 0x1 + lsls r0, 16 + lsrs r6, r0, 16 + cmp r6, 0x9 + bls _080F629A + b _080F637C + .align 2, 0 +_080F630C: .4byte 0x00008fe6 +_080F6310: .4byte 0x00008fe7 +_080F6314: .4byte gUnknown_020300A4 +_080F6318: .4byte 0x000041a0 +_080F631C: + movs r0, 0 + strb r0, [r3] + movs r6, 0 + b _080F632A +_080F6324: + adds r0, r6, 0x1 + lsls r0, 16 + lsrs r6, r0, 16 +_080F632A: + cmp r6, 0x5 + bhi _080F634C + movs r0, 0x64 + muls r0, r6 + ldr r1, _080F635C @ =gPlayerParty + adds r0, r1 + movs r1, 0x51 + bl GetMonData + cmp r0, 0 + beq _080F6324 + ldr r0, _080F6360 @ =gUnknown_083DFEC4 + ldr r0, [r0] + ldr r1, _080F6364 @ =0x00008fe8 + adds r0, r1 + movs r1, 0x1 + strb r1, [r0] +_080F634C: + ldr r0, _080F6360 @ =gUnknown_083DFEC4 + ldr r1, [r0] + ldr r0, _080F6368 @ =0x00008fe6 + adds r1, r0 + ldrb r0, [r1] + adds r0, 0x1 + b _080F6372 + .align 2, 0 +_080F635C: .4byte gPlayerParty +_080F6360: .4byte gUnknown_083DFEC4 +_080F6364: .4byte 0x00008fe8 +_080F6368: .4byte 0x00008fe6 +_080F636C: + ldr r0, _080F6378 @ =0x00008fe8 + adds r1, r7, r0 + movs r0, 0x1 +_080F6372: + strb r0, [r1] + b _080F626C + .align 2, 0 +_080F6378: .4byte 0x00008fe8 +_080F637C: + movs r0, 0x1 +_080F637E: + pop {r3,r4} + mov r8, r3 + mov r9, r4 + pop {r4-r7} + pop {r1} + bx r1 + thumb_func_end sub_80F6250 + + thumb_func_start sub_80F638C +sub_80F638C: @ 80F638C + push {r4,lr} + ldr r0, _080F63C0 @ =gUnknown_083DFEC4 + ldr r4, [r0] + ldr r1, _080F63C4 @ =0x00008fe6 + adds r0, r4, r1 + movs r1, 0 + strb r1, [r0] + ldr r2, _080F63C8 @ =0x00008fe7 + adds r0, r4, r2 + strb r1, [r0] + bl sub_80F492C + ldr r0, _080F63CC @ =0x00006dac + adds r4, r0 + ldrb r0, [r4] + cmp r0, 0 + bne _080F63B8 +_080F63AE: + bl sub_80F63D0 + lsls r0, 24 + cmp r0, 0 + bne _080F63AE +_080F63B8: + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_080F63C0: .4byte gUnknown_083DFEC4 +_080F63C4: .4byte 0x00008fe6 +_080F63C8: .4byte 0x00008fe7 +_080F63CC: .4byte 0x00006dac + thumb_func_end sub_80F638C + + thumb_func_start sub_80F63D0 +sub_80F63D0: @ 80F63D0 + push {r4-r6,lr} + sub sp, 0x4 + ldr r0, _080F647C @ =gUnknown_083DFEC4 + ldr r2, [r0] + ldr r1, _080F6480 @ =0x00008fe6 + adds r0, r2, r1 + ldrb r3, [r0] + cmp r3, 0xE + beq _080F6498 + cmp r3, 0xF + bne _080F63E8 + b _080F64F6 +_080F63E8: + movs r1, 0x80 + lsls r1, 23 + ldr r0, [sp] + orrs r0, r1 + str r0, [sp] + movs r6, 0 + ldr r0, _080F6480 @ =0x00008fe6 + adds r5, r2, r0 + ldr r1, _080F6484 @ =0x00008fe7 + adds r4, r2, r1 +_080F63FC: + ldrb r0, [r5] + lsls r1, r0, 2 + adds r1, r0 + lsls r0, r1, 4 + subs r0, r1 + lsls r0, 5 + ldrb r2, [r4] + lsls r1, r2, 2 + adds r1, r2 + lsls r1, 4 + ldr r2, _080F6488 @ =gUnknown_020300A4 + adds r1, r2 + adds r0, r1 + movs r1, 0x51 + bl GetBoxMonData + lsls r0, 24 + lsrs r3, r0, 24 + cmp r3, 0 + beq _080F644E + ldrb r1, [r5] + lsls r1, 8 + ldr r2, _080F648C @ =0xffff00ff + ldr r0, [sp] + ands r0, r2 + orrs r0, r1 + str r0, [sp] + ldrb r2, [r4] + movs r1, 0x1F + ands r2, r1 + lsls r2, 16 + ldr r1, _080F6490 @ =0xffe0ffff + ands r0, r1 + orrs r0, r2 + ldr r1, _080F6494 @ =0xffffff00 + ands r0, r1 + orrs r0, r3 + str r0, [sp] + mov r0, sp + bl sub_80F4944 +_080F644E: + ldrb r0, [r4] + adds r0, 0x1 + movs r2, 0 + strb r0, [r4] + movs r1, 0xFF + lsls r0, 24 + lsrs r0, 24 + cmp r0, 0x1E + bne _080F646E + strb r2, [r4] + ldrb r0, [r5] + adds r0, 0x1 + strb r0, [r5] + ands r0, r1 + cmp r0, 0xE + beq _080F6508 +_080F646E: + adds r0, r6, 0x1 + lsls r0, 16 + lsrs r6, r0, 16 + cmp r6, 0xE + bls _080F63FC + b _080F6508 + .align 2, 0 +_080F647C: .4byte gUnknown_083DFEC4 +_080F6480: .4byte 0x00008fe6 +_080F6484: .4byte 0x00008fe7 +_080F6488: .4byte gUnknown_020300A4 +_080F648C: .4byte 0xffff00ff +_080F6490: .4byte 0xffe0ffff +_080F6494: .4byte 0xffffff00 +_080F6498: + mov r0, sp + ldrb r1, [r0, 0x3] + movs r2, 0x40 + orrs r1, r2 + strb r1, [r0, 0x3] + strb r3, [r0, 0x1] + movs r6, 0 + mov r4, sp +_080F64A8: + movs r0, 0x64 + muls r0, r6 + ldr r1, _080F64FC @ =gPlayerParty + adds r0, r1 + movs r1, 0x51 + bl GetMonData + lsls r0, 24 + lsrs r3, r0, 24 + cmp r3, 0 + beq _080F64DA + movs r0, 0x1F + adds r2, r6, 0 + ands r2, r0 + ldrb r0, [r4, 0x2] + movs r5, 0x20 + negs r5, r5 + adds r1, r5, 0 + ands r0, r1 + orrs r0, r2 + strb r0, [r4, 0x2] + strb r3, [r4] + mov r0, sp + bl sub_80F4944 +_080F64DA: + adds r0, r6, 0x1 + lsls r0, 16 + lsrs r6, r0, 16 + cmp r6, 0x5 + bls _080F64A8 + bl sub_80F49F4 + ldr r0, _080F6500 @ =gUnknown_083DFEC4 + ldr r1, [r0] + ldr r0, _080F6504 @ =0x00008fe6 + adds r1, r0 + ldrb r0, [r1] + adds r0, 0x1 + strb r0, [r1] +_080F64F6: + movs r0, 0 + b _080F650A + .align 2, 0 +_080F64FC: .4byte gPlayerParty +_080F6500: .4byte gUnknown_083DFEC4 +_080F6504: .4byte 0x00008fe6 +_080F6508: + movs r0, 0x1 +_080F650A: + add sp, 0x4 + pop {r4-r6} + pop {r1} + bx r1 + thumb_func_end sub_80F63D0 + + thumb_func_start sub_80F6514 +sub_80F6514: @ 80F6514 + push {r4-r7,lr} + mov r7, r10 + mov r6, r9 + mov r5, r8 + push {r5-r7} + sub sp, 0xC + mov r10, r0 + lsls r1, 16 + lsrs r1, 16 + str r1, [sp] + lsls r2, 24 + lsrs r2, 24 + str r2, [sp, 0x4] + mov r5, r10 + ldr r0, _080F65A4 @ =gUnknown_083DFEC4 + ldr r0, [r0] + lsls r1, 2 + adds r0, r1 + ldr r2, _080F65A8 @ =0x0000893d + adds r1, r0, r2 + ldrb r6, [r1] + mov r8, r6 + ldr r1, _080F65AC @ =0x0000893e + adds r0, r1 + ldrb r0, [r0] + lsls r0, 27 + lsrs r4, r0, 27 + adds r7, r4, 0 + adds r0, r6, 0 + adds r1, r4, 0 + movs r2, 0x2D + movs r3, 0 + bl sub_80F44B0 + cmp r0, 0 + beq _080F655E + b _080F66CA +_080F655E: + adds r0, r6, 0 + adds r1, r4, 0 + movs r2, 0x2 + adds r3, r5, 0 + bl sub_80F44B0 + adds r0, r5, 0 + bl StringGetEnd10 + adds r0, r6, 0 + adds r1, r4, 0 + movs r2, 0xB + movs r3, 0 + bl sub_80F44B0 + lsls r0, 16 + lsrs r0, 16 + mov r9, r0 + cmp r6, 0xE + bne _080F65B4 + movs r0, 0x64 + muls r4, r0 + ldr r0, _080F65B0 @ =gPlayerParty + adds r4, r0 + adds r0, r4, 0 + movs r1, 0x38 + bl GetMonData + lsls r0, 16 + lsrs r0, 16 + str r0, [sp, 0x8] + adds r0, r4, 0 + bl GetMonGender + b _080F65EA + .align 2, 0 +_080F65A4: .4byte gUnknown_083DFEC4 +_080F65A8: .4byte 0x0000893d +_080F65AC: .4byte 0x0000893e +_080F65B0: .4byte gPlayerParty +_080F65B4: + mov r2, r8 + lsls r1, r2, 2 + add r1, r8 + lsls r0, r1, 4 + subs r0, r1 + lsls r0, 5 + lsls r1, r7, 2 + adds r1, r7 + lsls r1, 4 + ldr r2, _080F6620 @ =gUnknown_020300A4 + adds r1, r2 + adds r0, r1 + bl GetLevelFromBoxMonExp + lsls r0, 24 + lsrs r0, 24 + str r0, [sp, 0x8] + mov r0, r8 + adds r1, r7, 0 + movs r2, 0 + movs r3, 0 + bl sub_80F44B0 + adds r1, r0, 0 + mov r0, r9 + bl GetGenderFromSpeciesAndPersonality +_080F65EA: + lsls r0, 24 + lsrs r4, r0, 24 + mov r0, r9 + mov r1, r10 + bl sub_8040D8C + cmp r0, 0 + beq _080F65FC + movs r4, 0xFF +_080F65FC: + adds r0, r5, 0 + bl StringLength + lsls r0, 16 + lsrs r0, 16 + adds r5, r0 + movs r1, 0xFC + strb r1, [r5] + movs r0, 0x13 + strb r0, [r5, 0x1] + movs r0, 0x3F + strb r0, [r5, 0x2] + adds r5, 0x3 + cmp r4, 0 + beq _080F6624 + cmp r4, 0xFE + beq _080F663C + b _080F6656 + .align 2, 0 +_080F6620: .4byte gUnknown_020300A4 +_080F6624: + strb r1, [r5] + movs r0, 0x1 + strb r0, [r5, 0x1] + movs r0, 0xC + strb r0, [r5, 0x2] + strb r1, [r5, 0x3] + movs r0, 0x3 + strb r0, [r5, 0x4] + movs r0, 0xD + strb r0, [r5, 0x5] + movs r0, 0xB5 + b _080F6652 +_080F663C: + strb r1, [r5] + movs r0, 0x1 + strb r0, [r5, 0x1] + movs r0, 0xA + strb r0, [r5, 0x2] + strb r1, [r5, 0x3] + movs r0, 0x3 + strb r0, [r5, 0x4] + movs r0, 0xB + strb r0, [r5, 0x5] + movs r0, 0xB6 +_080F6652: + strb r0, [r5, 0x6] + adds r5, 0x7 +_080F6656: + movs r4, 0xFC + strb r4, [r5] + movs r1, 0x1 + strb r1, [r5, 0x1] + strb r1, [r5, 0x2] + strb r4, [r5, 0x3] + movs r0, 0x3 + strb r0, [r5, 0x4] + movs r0, 0x5 + strb r0, [r5, 0x5] + adds r5, 0x6 + strb r4, [r5] + movs r6, 0x13 + strb r6, [r5, 0x1] + movs r0, 0x46 + strb r0, [r5, 0x2] + adds r5, 0x3 + movs r0, 0xBA + strb r0, [r5] + strb r4, [r5, 0x1] + movs r0, 0x11 + strb r0, [r5, 0x2] + strb r1, [r5, 0x3] + movs r0, 0x34 + strb r0, [r5, 0x4] + adds r5, 0x5 + adds r0, r5, 0 + ldr r1, [sp, 0x8] + bl ConvertIntToDecimalString + adds r5, r0, 0 + ldr r0, [sp, 0x4] + cmp r0, 0x1 + bne _080F66C0 + ldr r0, _080F66B8 @ =gUnknown_083DFEC4 + ldr r0, [r0] + ldr r2, [sp] + lsls r1, r2, 2 + adds r0, r1 + ldr r1, _080F66BC @ =0x0000893c + adds r0, r1 + ldrb r1, [r0] + adds r0, r5, 0 + movs r2, 0x80 + movs r3, 0x1 + bl sub_8072C14 + adds r5, r0, 0 + b _080F66CE + .align 2, 0 +_080F66B8: .4byte gUnknown_083DFEC4 +_080F66BC: .4byte 0x0000893c +_080F66C0: + strb r4, [r5] + strb r6, [r5, 0x1] + movs r0, 0x67 + strb r0, [r5, 0x2] + adds r5, 0x3 +_080F66CA: + movs r0, 0xFF + strb r0, [r5] +_080F66CE: + adds r0, r5, 0 + add sp, 0xC + pop {r3-r5} + mov r8, r3 + mov r9, r4 + mov r10, r5 + pop {r4-r7} + pop {r1} + bx r1 + thumb_func_end sub_80F6514 + + thumb_func_start sub_80F66E0 +sub_80F66E0: @ 80F66E0 + push {r4-r7,lr} + mov r7, r10 + mov r6, r9 + mov r5, r8 + push {r5-r7} + sub sp, 0x4 + ldr r0, _080F676C @ =gUnknown_083DFEC4 + mov r8, r0 + ldr r4, [r0] + ldr r1, _080F6770 @ =0x00008829 + adds r0, r4, r1 + ldr r2, _080F6774 @ =0x0000876e + adds r5, r4, r2 + ldrh r1, [r5] + movs r2, 0 + bl sub_80F6514 + movs r3, 0 + ldrsh r0, [r5, r3] + movs r1, 0 + bl sub_80F4824 + ldrh r1, [r5] + ldr r6, _080F6778 @ =0x000087dc + adds r0, r4, r6 + movs r6, 0 + strh r1, [r0] + ldr r1, _080F677C @ =0x0000bc8e + adds r0, r4, r1 + strb r6, [r0] + movs r2, 0 + mov r9, r2 + movs r3, 0 + ldrsh r1, [r5, r3] + lsls r1, 2 + adds r1, r4, r1 + ldr r5, _080F6780 @ =0x0000893d + adds r0, r1, r5 + ldrb r0, [r0] + ldr r2, _080F6784 @ =0x0000893e + adds r1, r2 + ldrb r1, [r1] + lsls r1, 27 + lsrs r1, 27 + movs r2, 0x52 + movs r3, 0 + bl sub_80F44B0 + adds r7, r0, 0 + ldr r3, _080F6788 @ =0x0000bc8f + adds r4, r3 + strb r6, [r4] + movs r5, 0 + mov r12, r5 + mov r10, r8 +_080F674E: + ldr r1, _080F678C @ =gUnknown_083E499C + mov r6, r12 + lsls r0, r6, 1 + adds r0, r1 + ldrh r0, [r0] + cmp r0, 0x36 + bgt _080F6790 + cmp r0, 0x32 + blt _080F6790 + movs r0, 0x7 + adds r2, r7, 0 + ands r2, r0 + lsrs r7, 3 + movs r0, 0x4 + b _080F679A + .align 2, 0 +_080F676C: .4byte gUnknown_083DFEC4 +_080F6770: .4byte 0x00008829 +_080F6774: .4byte 0x0000876e +_080F6778: .4byte 0x000087dc +_080F677C: .4byte 0x0000bc8e +_080F6780: .4byte 0x0000893d +_080F6784: .4byte 0x0000893e +_080F6788: .4byte 0x0000bc8f +_080F678C: .4byte gUnknown_083E499C +_080F6790: + movs r0, 0x1 + adds r2, r7, 0 + ands r2, r0 + lsrs r7, 1 + movs r0, 0x1 +_080F679A: + movs r4, 0 + adds r1, r2, 0 + add r0, r9 + mov r8, r0 + cmp r4, r1 + bcs _080F67D4 + mov r3, r10 + ldr r0, [r3] + ldr r5, _080F6828 @ =0x0000bc8e + adds r3, r0, r5 + ldr r6, _080F682C @ =0x0000bc4c + adds r6, r0, r6 + str r6, [sp] + adds r5, r1, 0 +_080F67B6: + ldrb r0, [r3] + adds r1, r0, 0x1 + strb r1, [r3] + lsls r0, 24 + lsrs r0, 24 + ldr r1, [sp] + adds r0, r1, r0 + mov r6, r9 + adds r1, r6, r4 + strb r1, [r0] + adds r0, r4, 0x1 + lsls r0, 16 + lsrs r4, r0, 16 + cmp r4, r5 + bcc _080F67B6 +_080F67D4: + cmp r2, 0 + beq _080F67EC + mov r0, r9 + cmp r0, 0x18 + bls _080F67EC + mov r2, r10 + ldr r1, [r2] + ldr r3, _080F6830 @ =0x0000bc8f + adds r1, r3 + ldrb r0, [r1] + adds r0, 0x1 + strb r0, [r1] +_080F67EC: + mov r5, r8 + lsls r0, r5, 24 + lsrs r0, 24 + mov r9, r0 + mov r0, r12 + adds r0, 0x1 + lsls r0, 16 + lsrs r0, 16 + mov r12, r0 + cmp r0, 0x10 + bls _080F674E + ldr r6, _080F6834 @ =gUnknown_083DFEC4 + ldr r2, [r6] + ldr r1, _080F6828 @ =0x0000bc8e + adds r0, r2, r1 + ldr r3, _080F6830 @ =0x0000bc8f + adds r1, r2, r3 + ldrb r0, [r0] + ldrb r1, [r1] + cmp r0, r1 + beq _080F6840 + ldr r5, _080F6838 @ =0x0000bc90 + adds r0, r2, r5 + movs r1, 0 + strb r1, [r0] + ldr r6, _080F683C @ =0x0000bc91 + adds r0, r2, r6 + strb r1, [r0] + b _080F6850 + .align 2, 0 +_080F6828: .4byte 0x0000bc8e +_080F682C: .4byte 0x0000bc4c +_080F6830: .4byte 0x0000bc8f +_080F6834: .4byte gUnknown_083DFEC4 +_080F6838: .4byte 0x0000bc90 +_080F683C: .4byte 0x0000bc91 +_080F6840: + ldr r0, _080F6888 @ =0x0000bc90 + adds r1, r2, r0 + movs r0, 0 + strb r0, [r1] + ldr r3, _080F688C @ =0x0000bc91 + adds r1, r2, r3 + movs r0, 0x3 + strb r0, [r1] +_080F6850: + ldr r5, _080F6890 @ =gUnknown_083DFEC4 + ldr r1, [r5] + ldr r6, _080F6894 @ =0x0000bc8e + adds r0, r1, r6 + ldr r2, _080F6898 @ =0x0000bc8f + adds r1, r2 + ldrb r0, [r0] + ldrb r1, [r1] + subs r0, r1 + lsls r0, 24 + lsrs r2, r0, 24 + movs r3, 0 + mov r12, r3 + adds r3, r5, 0 + ldr r1, _080F689C @ =0x0000bc96 + movs r4, 0x9 +_080F6870: + cmp r2, 0x8 + bls _080F68A0 + ldr r0, [r3] + adds r0, r1 + add r0, r12 + strb r4, [r0] + adds r0, r2, 0 + subs r0, 0x9 + lsls r0, 24 + lsrs r2, r0, 24 + b _080F68AA + .align 2, 0 +_080F6888: .4byte 0x0000bc90 +_080F688C: .4byte 0x0000bc91 +_080F6890: .4byte gUnknown_083DFEC4 +_080F6894: .4byte 0x0000bc8e +_080F6898: .4byte 0x0000bc8f +_080F689C: .4byte 0x0000bc96 +_080F68A0: + ldr r0, [r3] + adds r0, r1 + add r0, r12 + strb r2, [r0] + movs r2, 0 +_080F68AA: + mov r0, r12 + adds r0, 0x1 + lsls r0, 16 + lsrs r0, 16 + mov r12, r0 + cmp r0, 0x2 + bls _080F6870 + ldr r5, _080F68DC @ =gUnknown_083DFEC4 + ldr r0, [r5] + ldr r6, _080F68E0 @ =0x0000bc96 + adds r1, r0, r6 + add r1, r12 + ldr r2, _080F68E4 @ =0x0000bc8f + adds r0, r2 + ldrb r0, [r0] + strb r0, [r1] + add sp, 0x4 + pop {r3-r5} + mov r8, r3 + mov r9, r4 + mov r10, r5 + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_080F68DC: .4byte gUnknown_083DFEC4 +_080F68E0: .4byte 0x0000bc96 +_080F68E4: .4byte 0x0000bc8f + thumb_func_end sub_80F66E0 + + thumb_func_start sub_80F68E8 +sub_80F68E8: @ 80F68E8 + push {r4-r7,lr} + ldr r3, _080F6918 @ =gUnknown_083DFEC4 + ldr r0, [r3] + ldr r2, _080F691C @ =0x0000bc90 + adds r1, r0, r2 + ldrb r5, [r1] + ldr r6, _080F6920 @ =0x0000bc91 + adds r0, r6 + ldrb r4, [r0] + movs r0, 0x1 + mov r12, r0 + ldr r2, _080F6924 @ =gMain + ldrh r1, [r2, 0x30] + movs r0, 0x40 + ands r0, r1 + adds r6, r3, 0 + adds r7, r2, 0 + cmp r0, 0 + beq _080F692E + lsls r0, r4, 24 + cmp r0, 0 + ble _080F692E + b _080F69BC + .align 2, 0 +_080F6918: .4byte gUnknown_083DFEC4 +_080F691C: .4byte 0x0000bc90 +_080F6920: .4byte 0x0000bc91 +_080F6924: .4byte gMain +_080F6928: + ldr r1, _080F69B0 @ =0x0000bc91 + adds r0, r2, r1 + ldrb r4, [r0] +_080F692E: + ldrh r1, [r7, 0x30] + movs r0, 0x80 + ands r0, r1 + cmp r0, 0 + beq _080F6978 + lsls r0, r4, 24 + asrs r0, 24 + cmp r0, 0x2 + bgt _080F6978 + ldr r3, _080F69B4 @ =gUnknown_083DFEC4 + ldr r2, _080F69B8 @ =0x0000bc96 +_080F6944: + lsls r0, r4, 24 + asrs r0, 24 + cmp r0, 0x2 + bgt _080F6960 + adds r0, 0x1 + lsls r0, 24 + ldr r1, [r3] + lsrs r4, r0, 24 + asrs r0, 24 + adds r1, r2 + adds r1, r0 + ldrb r0, [r1] + cmp r0, 0 + beq _080F6944 +_080F6960: + ldr r2, [r6] + lsls r0, r4, 24 + asrs r0, 24 + ldr r3, _080F69B8 @ =0x0000bc96 + adds r1, r2, r3 + adds r1, r0 + ldrb r0, [r1] + cmp r0, 0 + bne _080F69EC + ldr r1, _080F69B0 @ =0x0000bc91 + adds r0, r2, r1 + ldrb r4, [r0] +_080F6978: + ldrh r2, [r7, 0x30] + movs r0, 0x20 + ands r0, r2 + cmp r0, 0 + beq _080F698A + lsls r0, r5, 24 + asrs r0, 24 + cmp r0, 0 + bgt _080F6A3C +_080F698A: + movs r0, 0x10 + ands r0, r2 + cmp r0, 0 + beq _080F69AA + lsls r0, r5, 24 + asrs r2, r0, 24 + ldr r1, [r6] + lsls r0, r4, 24 + asrs r0, 24 + ldr r3, _080F69B8 @ =0x0000bc96 + adds r1, r3 + adds r1, r0 + ldrb r0, [r1] + subs r0, 0x1 + cmp r2, r0 + blt _080F6A38 +_080F69AA: + movs r0, 0 + mov r12, r0 + b _080F69FC + .align 2, 0 +_080F69B0: .4byte 0x0000bc91 +_080F69B4: .4byte gUnknown_083DFEC4 +_080F69B8: .4byte 0x0000bc96 +_080F69BC: + lsls r0, r4, 24 + asrs r0, 24 + cmp r0, 0 + ble _080F69DA + subs r0, 0x1 + lsls r0, 24 + ldr r1, [r6] + lsrs r4, r0, 24 + asrs r0, 24 + ldr r2, _080F6A2C @ =0x0000bc96 + adds r1, r2 + adds r1, r0 + ldrb r0, [r1] + cmp r0, 0 + beq _080F69BC +_080F69DA: + ldr r2, [r6] + lsls r0, r4, 24 + asrs r0, 24 + ldr r3, _080F6A2C @ =0x0000bc96 + adds r1, r2, r3 + adds r1, r0 + ldrb r0, [r1] + cmp r0, 0 + beq _080F6928 +_080F69EC: + lsls r0, r5, 24 + asrs r0, 24 + ldrb r1, [r1] + cmp r0, r1 + blt _080F69FC + subs r0, r1, 0x1 +_080F69F8: + lsls r0, 24 + lsrs r5, r0, 24 +_080F69FC: + mov r0, r12 + cmp r0, 0 + beq _080F6A44 + lsls r0, r5, 24 + asrs r0, 24 + ldr r3, [r6] + ldr r1, _080F6A30 @ =0x0000bc90 + adds r2, r3, r1 + ldrb r6, [r2] + cmp r0, r6 + bne _080F6A20 + lsls r0, r4, 24 + asrs r0, 24 + ldr r6, _080F6A34 @ =0x0000bc91 + adds r1, r3, r6 + ldrb r1, [r1] + cmp r0, r1 + beq _080F6A40 +_080F6A20: + strb r5, [r2] + ldr r1, _080F6A34 @ =0x0000bc91 + adds r0, r3, r1 + strb r4, [r0] + b _080F6A44 + .align 2, 0 +_080F6A2C: .4byte 0x0000bc96 +_080F6A30: .4byte 0x0000bc90 +_080F6A34: .4byte 0x0000bc91 +_080F6A38: + adds r0, r2, 0x1 + b _080F69F8 +_080F6A3C: + subs r0, 0x1 + b _080F69F8 +_080F6A40: + movs r2, 0 + mov r12, r2 +_080F6A44: + mov r0, r12 + pop {r4-r7} + pop {r1} + bx r1 + thumb_func_end sub_80F68E8 + + thumb_func_start sub_80F6A4C +sub_80F6A4C: @ 80F6A4C + push {r4,r5,lr} + lsls r0, 24 + lsrs r0, 24 + adds r4, r0, 0 + ldr r0, _080F6AC4 @ =gUnknown_083DFEC4 + ldr r3, [r0] + ldr r0, _080F6AC8 @ =0x0000876e + adds r2, r3, r0 + lsls r0, r4, 24 + asrs r0, 24 + ldrh r1, [r2] + adds r0, r1 + strh r0, [r2] + lsls r0, 16 + cmp r0, 0 + bge _080F6A74 + ldr r5, _080F6ACC @ =0x00008774 + adds r0, r3, r5 + ldrh r0, [r0] + strh r0, [r2] +_080F6A74: + ldr r1, _080F6ACC @ =0x00008774 + adds r0, r3, r1 + movs r5, 0 + ldrsh r1, [r2, r5] + movs r5, 0 + ldrsh r0, [r0, r5] + cmp r1, r0 + ble _080F6A88 + movs r0, 0 + strh r0, [r2] +_080F6A88: + ldr r1, _080F6AD0 @ =0x0000bc94 + adds r0, r3, r1 + strb r4, [r0] + ldrh r1, [r2] + ldr r2, _080F6AD4 @ =0x000087dc + adds r0, r3, r2 + strh r1, [r0] + ldr r1, _080F6AD8 @ =REG_WININ + ldr r5, _080F6ADC @ =0x00003f37 + adds r0, r5, 0 + strh r0, [r1] + adds r1, 0x2 + ldr r2, _080F6AE0 @ =0x00003f3f + adds r0, r2, 0 + strh r0, [r1] + subs r1, 0xA + ldr r5, _080F6AE4 @ =0x000058f0 + adds r0, r5, 0 + strh r0, [r1] + adds r1, 0x4 + ldr r2, _080F6AE8 @ =0x00002060 + adds r0, r2, 0 + strh r0, [r1] + ldr r5, _080F6AEC @ =0x000087de + adds r1, r3, r5 + movs r0, 0 + strb r0, [r1] + pop {r4,r5} + pop {r0} + bx r0 + .align 2, 0 +_080F6AC4: .4byte gUnknown_083DFEC4 +_080F6AC8: .4byte 0x0000876e +_080F6ACC: .4byte 0x00008774 +_080F6AD0: .4byte 0x0000bc94 +_080F6AD4: .4byte 0x000087dc +_080F6AD8: .4byte REG_WININ +_080F6ADC: .4byte 0x00003f37 +_080F6AE0: .4byte 0x00003f3f +_080F6AE4: .4byte 0x000058f0 +_080F6AE8: .4byte 0x00002060 +_080F6AEC: .4byte 0x000087de + thumb_func_end sub_80F6A4C + + thumb_func_start sub_80F6AF0 +sub_80F6AF0: @ 80F6AF0 + push {r4,lr} + ldr r1, _080F6B10 @ =gUnknown_083DFEC4 + ldr r0, [r1] + ldr r2, _080F6B14 @ =0x000087de + adds r0, r2 + ldrb r0, [r0] + adds r4, r1, 0 + cmp r0, 0x6 + bls _080F6B04 + b _080F6C08 +_080F6B04: + lsls r0, 2 + ldr r1, _080F6B18 @ =_080F6B1C + adds r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_080F6B10: .4byte gUnknown_083DFEC4 +_080F6B14: .4byte 0x000087de +_080F6B18: .4byte _080F6B1C + .align 2, 0 +_080F6B1C: + .4byte _080F6B38 + .4byte _080F6B54 + .4byte _080F6B6E + .4byte _080F6B84 + .4byte _080F6B9C + .4byte _080F6BC0 + .4byte _080F6BE0 +_080F6B38: + bl sub_80F173C + lsls r0, 24 + cmp r0, 0 + bne _080F6C18 + ldr r0, _080F6B4C @ =gUnknown_083DFEC4 + ldr r1, [r0] + ldr r3, _080F6B50 @ =0x000087de + adds r1, r3 + b _080F6BCE + .align 2, 0 +_080F6B4C: .4byte gUnknown_083DFEC4 +_080F6B50: .4byte 0x000087de +_080F6B54: + movs r2, 0x80 + lsls r2, 19 + ldrh r0, [r2] + movs r3, 0x80 + lsls r3, 6 + adds r1, r3, 0 + orrs r0, r1 + strh r0, [r2] + bl sub_80F1480 + bl sub_80F66E0 + b _080F6BC6 +_080F6B6E: + bl sub_80F1238 + ldr r0, _080F6B7C @ =gUnknown_083DFEC4 + ldr r1, [r0] + ldr r2, _080F6B80 @ =0x000087de + adds r1, r2 + b _080F6BCE + .align 2, 0 +_080F6B7C: .4byte gUnknown_083DFEC4 +_080F6B80: .4byte 0x000087de +_080F6B84: + bl sub_80F13FC + ldr r0, _080F6B94 @ =gUnknown_083DFEC4 + ldr r1, [r0] + ldr r3, _080F6B98 @ =0x000087de + adds r1, r3 + b _080F6BCE + .align 2, 0 +_080F6B94: .4byte gUnknown_083DFEC4 +_080F6B98: .4byte 0x000087de +_080F6B9C: + ldr r4, [r4] + ldr r1, _080F6BB8 @ =0x0000876e + adds r0, r4, r1 + movs r2, 0 + ldrsh r0, [r0, r2] + movs r1, 0 + bl sub_80F4824 + ldr r3, _080F6BBC @ =0x000087de + adds r4, r3 + ldrb r0, [r4] + adds r0, 0x1 + strb r0, [r4] + b _080F6C18 + .align 2, 0 +_080F6BB8: .4byte 0x0000876e +_080F6BBC: .4byte 0x000087de +_080F6BC0: + movs r0, 0 + bl sub_80F2E18 +_080F6BC6: + ldr r0, _080F6BD8 @ =gUnknown_083DFEC4 + ldr r1, [r0] + ldr r0, _080F6BDC @ =0x000087de + adds r1, r0 +_080F6BCE: + ldrb r0, [r1] + adds r0, 0x1 + strb r0, [r1] + b _080F6C18 + .align 2, 0 +_080F6BD8: .4byte gUnknown_083DFEC4 +_080F6BDC: .4byte 0x000087de +_080F6BE0: + bl sub_80F170C + lsls r0, 24 + cmp r0, 0 + bne _080F6C18 + bl sub_80F1438 + movs r2, 0x80 + lsls r2, 19 + ldrh r1, [r2] + ldr r0, _080F6C0C @ =0x0000dfff + ands r0, r1 + strh r0, [r2] + ldr r0, _080F6C10 @ =gUnknown_083DFEC4 + ldr r1, [r0] + ldr r2, _080F6C14 @ =0x000087de + adds r1, r2 + ldrb r0, [r1] + adds r0, 0x1 + strb r0, [r1] +_080F6C08: + movs r0, 0 + b _080F6C1A + .align 2, 0 +_080F6C0C: .4byte 0x0000dfff +_080F6C10: .4byte gUnknown_083DFEC4 +_080F6C14: .4byte 0x000087de +_080F6C18: + movs r0, 0x1 +_080F6C1A: + pop {r4} + pop {r1} + bx r1 + thumb_func_end sub_80F6AF0 + + thumb_func_start sub_80F6C20 +sub_80F6C20: @ 80F6C20 + push {r4-r7,lr} + mov r7, r9 + mov r6, r8 + push {r6,r7} + ldr r0, _080F6D44 @ =gUnknown_083DFEC4 + ldr r0, [r0] + ldr r1, _080F6D48 @ =0x0000d158 + adds r0, r1 + movs r1, 0 + strh r1, [r0] + mov r8, r1 + ldr r2, _080F6D4C @ =gSaveBlock1 + 0x97A + mov r9, r2 +_080F6C3A: + ldr r1, _080F6D50 @ =gTrainerEyeTrainers + mov r4, r8 + lsls r0, r4, 4 + adds r6, r0, r1 + ldrh r7, [r6] + adds r0, r7, 0 + bl trainer_flag_check + lsls r0, 24 + cmp r0, 0 + beq _080F6CA0 + ldr r0, _080F6D44 @ =gUnknown_083DFEC4 + ldr r4, [r0] + ldr r0, _080F6D48 @ =0x0000d158 + adds r5, r4, r0 + ldrh r0, [r5] + lsls r0, 3 + adds r0, r4, r0 + ldr r1, _080F6D54 @ =0x0000cee8 + adds r0, r1 + strh r7, [r0] + ldrh r0, [r5] + lsls r0, 3 + adds r0, r4, r0 + ldr r2, _080F6D58 @ =0x0000ceec + adds r0, r2 + mov r1, r8 + strb r1, [r0] + ldrh r0, [r5] + lsls r0, 3 + adds r0, r4, r0 + mov r1, r8 + add r1, r9 + ldrb r1, [r1] + adds r2, 0x1 + adds r0, r2 + strb r1, [r0] + ldrh r0, [r6, 0xA] + ldrh r1, [r6, 0xC] + bl get_mapheader_by_bank_and_number + ldrh r1, [r5] + lsls r1, 3 + adds r4, r1 + ldrb r0, [r0, 0x14] + ldr r1, _080F6D5C @ =0x0000ceea + adds r4, r1 + strh r0, [r4] + ldrh r0, [r5] + adds r0, 0x1 + strh r0, [r5] +_080F6CA0: + mov r0, r8 + adds r0, 0x1 + lsls r0, 16 + lsrs r0, 16 + mov r8, r0 + cmp r0, 0x37 + bls _080F6C3A + movs r2, 0 + mov r8, r2 + movs r6, 0 +_080F6CB4: + ldr r1, _080F6D60 @ =gUnknown_083E49C0 + mov r4, r8 + lsls r0, r4, 2 + adds r5, r0, r1 + ldrh r4, [r5] + adds r0, r4, 0 + bl trainer_flag_check + lsls r0, 24 + cmp r0, 0 + beq _080F6D0E + ldr r0, _080F6D44 @ =gUnknown_083DFEC4 + ldr r2, [r0] + ldr r0, _080F6D48 @ =0x0000d158 + adds r3, r2, r0 + ldrh r0, [r3] + lsls r0, 3 + adds r0, r2, r0 + ldr r1, _080F6D54 @ =0x0000cee8 + adds r0, r1 + strh r4, [r0] + ldrh r0, [r3] + lsls r0, 3 + adds r0, r2, r0 + ldrh r1, [r5, 0x2] + ldr r4, _080F6D5C @ =0x0000ceea + adds r0, r4 + strh r1, [r0] + ldrh r0, [r3] + lsls r0, 3 + adds r0, r2, r0 + ldr r1, _080F6D64 @ =0x0000ceed + adds r0, r1 + strb r6, [r0] + ldrh r0, [r3] + lsls r0, 3 + adds r2, r0 + mov r0, r8 + adds r0, 0x38 + adds r4, 0x2 + adds r2, r4 + strb r0, [r2] + ldrh r0, [r3] + adds r0, 0x1 + strh r0, [r3] +_080F6D0E: + mov r0, r8 + adds r0, 0x1 + lsls r0, 16 + lsrs r0, 16 + mov r8, r0 + cmp r0, 0xC + bls _080F6CB4 + ldr r3, _080F6D44 @ =gUnknown_083DFEC4 + ldr r2, [r3] + ldr r1, _080F6D68 @ =0x0000876c + adds r0, r2, r1 + movs r1, 0 + strh r1, [r0] + ldr r4, _080F6D6C @ =0x00008770 + adds r0, r2, r4 + strh r1, [r0] + subs r4, 0x2 + adds r0, r2, r4 + strh r1, [r0] + ldr r1, _080F6D48 @ =0x0000d158 + adds r0, r2, r1 + ldrh r0, [r0] + cmp r0, 0x8 + bhi _080F6D70 + subs r4, r0, 0x1 + b _080F6D72 + .align 2, 0 +_080F6D44: .4byte gUnknown_083DFEC4 +_080F6D48: .4byte 0x0000d158 +_080F6D4C: .4byte gSaveBlock1 + 0x97A +_080F6D50: .4byte gTrainerEyeTrainers +_080F6D54: .4byte 0x0000cee8 +_080F6D58: .4byte 0x0000ceec +_080F6D5C: .4byte 0x0000ceea +_080F6D60: .4byte gUnknown_083E49C0 +_080F6D64: .4byte 0x0000ceed +_080F6D68: .4byte 0x0000876c +_080F6D6C: .4byte 0x00008770 +_080F6D70: + movs r4, 0x7 +_080F6D72: + ldr r1, _080F6DA8 @ =0x00008772 + adds r0, r2, r1 + strh r4, [r0] + ldr r3, [r3] + ldr r2, _080F6DAC @ =0x0000d158 + adds r0, r3, r2 + ldrh r0, [r0] + subs r0, 0x1 + ldr r4, _080F6DB0 @ =0x00008774 + adds r1, r3, r4 + strh r0, [r1] + movs r1, 0 + lsls r0, 16 + asrs r0, 16 + cmp r0, 0x7 + ble _080F6D94 + movs r1, 0x1 +_080F6D94: + ldr r2, _080F6DB4 @ =0x000087c9 + adds r0, r3, r2 + strb r1, [r0] + pop {r3,r4} + mov r8, r3 + mov r9, r4 + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_080F6DA8: .4byte 0x00008772 +_080F6DAC: .4byte 0x0000d158 +_080F6DB0: .4byte 0x00008774 +_080F6DB4: .4byte 0x000087c9 + thumb_func_end sub_80F6C20 + + thumb_func_start sub_80F6DB8 +sub_80F6DB8: @ 80F6DB8 + push {r4,lr} + movs r1, 0 + ldr r0, _080F6DEC @ =gUnknown_083DFEC4 + ldr r4, [r0] + ldr r2, _080F6DF0 @ =0x00008fe9 + adds r0, r4, r2 + strb r1, [r0] + movs r0, 0 + bl sub_80F6E04 + ldr r0, _080F6DF4 @ =0x0000d15a + adds r1, r4, r0 + ldr r0, _080F6DF8 @ =0x0000ffb8 + strh r0, [r1] + movs r0, 0 + bl sub_80F2F7C + ldr r1, _080F6DFC @ =0x0000876e + adds r0, r4, r1 + ldrh r0, [r0] + ldr r2, _080F6E00 @ =0x000087dc + adds r4, r2 + strh r0, [r4] + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_080F6DEC: .4byte gUnknown_083DFEC4 +_080F6DF0: .4byte 0x00008fe9 +_080F6DF4: .4byte 0x0000d15a +_080F6DF8: .4byte 0x0000ffb8 +_080F6DFC: .4byte 0x0000876e +_080F6E00: .4byte 0x000087dc + thumb_func_end sub_80F6DB8 + + thumb_func_start sub_80F6E04 +sub_80F6E04: @ 80F6E04 + push {r4-r7,lr} + mov r7, r8 + push {r7} + sub sp, 0x8 + adds r4, r0, 0 + lsls r4, 24 + lsrs r4, 24 + ldr r0, _080F6E78 @ =gUnknown_083DFEC4 + ldr r5, [r0] + ldr r1, _080F6E7C @ =0x0000876e + adds r0, r5, r1 + movs r2, 0 + ldrsh r0, [r0, r2] + lsls r0, 3 + adds r0, r5, r0 + ldr r7, _080F6E80 @ =0x0000cee8 + adds r0, r7 + ldrh r1, [r0] + ldr r2, _080F6E84 @ =gTrainers + lsls r0, r1, 2 + adds r0, r1 + lsls r0, 3 + adds r0, r2 + ldrb r6, [r0, 0x3] + lsls r0, r6, 3 + mov r8, r0 + ldr r0, _080F6E88 @ =gTrainerFrontPicTable + add r0, r8 + ldr r2, _080F6E8C @ =gTrainerFrontPicCoords + lsls r1, r6, 2 + adds r1, r2 + ldrb r1, [r1] + ldr r2, _080F6E90 @ =0x000131e4 + adds r3, r5, r2 + lsls r2, r4, 13 + ldr r7, _080F6E94 @ =0x0000d1e4 + adds r2, r7 + adds r2, r5, r2 + str r2, [sp] + str r6, [sp, 0x4] + movs r2, 0x1 + bl DecompressPicFromTable_2 + ldr r0, _080F6E98 @ =gTrainerFrontPicPaletteTable + add r8, r0 + mov r1, r8 + ldr r0, [r1] + lsls r4, 7 + adds r5, r4 + adds r1, r5, 0 + bl LZ77UnCompWram + add sp, 0x8 + pop {r3} + mov r8, r3 + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_080F6E78: .4byte gUnknown_083DFEC4 +_080F6E7C: .4byte 0x0000876e +_080F6E80: .4byte 0x0000cee8 +_080F6E84: .4byte gTrainers +_080F6E88: .4byte gTrainerFrontPicTable +_080F6E8C: .4byte gTrainerFrontPicCoords +_080F6E90: .4byte 0x000131e4 +_080F6E94: .4byte 0x0000d1e4 +_080F6E98: .4byte gTrainerFrontPicPaletteTable + thumb_func_end sub_80F6E04 + + thumb_func_start sub_80F6E9C +sub_80F6E9C: @ 80F6E9C + push {lr} + ldr r0, _080F6EB4 @ =gUnknown_083DFEC4 + ldr r0, [r0] + ldr r2, _080F6EB8 @ =0x0000d15a + adds r1, r0, r2 + ldrh r2, [r1] + movs r3, 0 + ldrsh r0, [r1, r3] + cmp r0, 0 + bne _080F6EBC + movs r0, 0 + b _080F6ED0 + .align 2, 0 +_080F6EB4: .4byte gUnknown_083DFEC4 +_080F6EB8: .4byte 0x0000d15a +_080F6EBC: + adds r0, r2, 0 + adds r0, 0x8 + strh r0, [r1] + lsls r0, 16 + cmp r0, 0 + bge _080F6ECC + movs r0, 0x1 + b _080F6ED0 +_080F6ECC: + movs r0, 0 + strh r0, [r1] +_080F6ED0: + pop {r1} + bx r1 + thumb_func_end sub_80F6E9C + + thumb_func_start sub_80F6ED4 +sub_80F6ED4: @ 80F6ED4 + push {lr} + ldr r0, _080F6F00 @ =gUnknown_083DFEC4 + ldr r0, [r0] + ldr r2, _080F6F04 @ =0x0000d15a + adds r1, r0, r2 + ldrh r3, [r1] + movs r2, 0 + ldrsh r0, [r1, r2] + movs r2, 0x48 + negs r2, r2 + cmp r0, r2 + beq _080F6F0A + adds r0, r3, 0 + subs r0, 0x8 + strh r0, [r1] + lsls r0, 16 + asrs r0, 16 + cmp r0, r2 + ble _080F6F08 + movs r0, 0x1 + b _080F6F0C + .align 2, 0 +_080F6F00: .4byte gUnknown_083DFEC4 +_080F6F04: .4byte 0x0000d15a +_080F6F08: + strh r2, [r1] +_080F6F0A: + movs r0, 0 +_080F6F0C: + pop {r1} + bx r1 + thumb_func_end sub_80F6ED4 + + thumb_func_start sub_80F6F10 +sub_80F6F10: @ 80F6F10 + push {lr} + ldr r0, _080F6F48 @ =gUnknown_083DFEC4 + ldr r0, [r0] + ldr r2, _080F6F4C @ =0x0000d15e + adds r1, r0, r2 + movs r2, 0 + strb r2, [r1] + ldr r1, _080F6F50 @ =0x0000d15f + adds r0, r1 + strb r2, [r0] + ldr r1, _080F6F54 @ =REG_BLDCNT + movs r0, 0xC8 + strh r0, [r1] + ldr r0, _080F6F58 @ =REG_BLDY + strh r2, [r0] + subs r1, 0x8 + ldr r2, _080F6F5C @ =0x00003f3f + adds r0, r2, 0 + strh r0, [r1] + adds r1, 0x2 + ldr r2, _080F6F60 @ =0x00001f1f + adds r0, r2, 0 + strh r0, [r1] + movs r0, 0 + bl sub_80F6FB8 + pop {r0} + bx r0 + .align 2, 0 +_080F6F48: .4byte gUnknown_083DFEC4 +_080F6F4C: .4byte 0x0000d15e +_080F6F50: .4byte 0x0000d15f +_080F6F54: .4byte REG_BLDCNT +_080F6F58: .4byte REG_BLDY +_080F6F5C: .4byte 0x00003f3f +_080F6F60: .4byte 0x00001f1f + thumb_func_end sub_80F6F10 + + thumb_func_start sub_80F6F64 +sub_80F6F64: @ 80F6F64 + push {lr} + ldr r0, _080F6F9C @ =gUnknown_083DFEC4 + ldr r1, [r0] + ldr r0, _080F6FA0 @ =0x0000d15e + adds r2, r1, r0 + ldrb r0, [r2] + adds r0, 0x1 + strb r0, [r2] + lsls r0, 24 + lsrs r0, 24 + cmp r0, 0x8 + bls _080F6FB0 + movs r0, 0 + strb r0, [r2] + ldr r0, _080F6FA4 @ =0x0000d15f + adds r1, r0 + ldrb r0, [r1] + adds r0, 0x1 + strb r0, [r1] + movs r1, 0x1 + ands r1, r0 + cmp r1, 0 + beq _080F6FAC + ldr r1, _080F6FA8 @ =REG_BLDY + movs r0, 0x6 + strh r0, [r1] + b _080F6FB0 + .align 2, 0 +_080F6F9C: .4byte gUnknown_083DFEC4 +_080F6FA0: .4byte 0x0000d15e +_080F6FA4: .4byte 0x0000d15f +_080F6FA8: .4byte REG_BLDY +_080F6FAC: + ldr r0, _080F6FB4 @ =REG_BLDY + strh r1, [r0] +_080F6FB0: + pop {r0} + bx r0 + .align 2, 0 +_080F6FB4: .4byte REG_BLDY + thumb_func_end sub_80F6F64 + + thumb_func_start sub_80F6FB8 +sub_80F6FB8: @ 80F6FB8 + push {lr} + lsls r0, 24 + cmp r0, 0 + bne _080F6FDC + ldr r1, _080F6FD0 @ =REG_WIN0H + ldr r2, _080F6FD4 @ =0x0000e8f0 + adds r0, r2, 0 + strh r0, [r1] + adds r1, 0x4 + ldr r2, _080F6FD8 @ =0x00000888 + b _080F6FE8 + .align 2, 0 +_080F6FD0: .4byte REG_WIN0H +_080F6FD4: .4byte 0x0000e8f0 +_080F6FD8: .4byte 0x00000888 +_080F6FDC: + ldr r1, _080F6FF0 @ =REG_WIN0H + ldr r2, _080F6FF4 @ =0x0000e8f0 + adds r0, r2, 0 + strh r0, [r1] + adds r1, 0x4 + ldr r2, _080F6FF8 @ =0x00000818 +_080F6FE8: + adds r0, r2, 0 + strh r0, [r1] + pop {r0} + bx r0 + .align 2, 0 +_080F6FF0: .4byte REG_WIN0H +_080F6FF4: .4byte 0x0000e8f0 +_080F6FF8: .4byte 0x00000818 + thumb_func_end sub_80F6FB8 + + thumb_func_start sub_80F6FFC +sub_80F6FFC: @ 80F6FFC + ldr r0, _080F7008 @ =REG_BLDCNT + movs r1, 0 + strh r1, [r0] + adds r0, 0x4 + strh r1, [r0] + bx lr + .align 2, 0 +_080F7008: .4byte REG_BLDCNT + thumb_func_end sub_80F6FFC + + thumb_func_start sub_80F700C +sub_80F700C: @ 80F700C + push {r4,r5,lr} + lsls r1, 16 + lsrs r1, 16 + ldr r2, _080F7078 @ =gUnknown_083DFEC4 + ldr r4, [r2] + lsls r2, r1, 3 + adds r2, r4, r2 + ldr r3, _080F707C @ =0x0000cee8 + adds r2, r3 + ldrh r3, [r2] + lsls r2, r3, 2 + adds r2, r3 + lsls r2, 3 + ldr r3, _080F7080 @ =gTrainers + adds r5, r2, r3 + adds r3, r0, 0 + ldr r0, _080F7084 @ =0x0000d158 + adds r4, r0 + ldrh r4, [r4] + cmp r1, r4 + bcs _080F7060 + ldrb r1, [r5, 0x1] + movs r0, 0xD + muls r1, r0 + ldr r0, _080F7088 @ =gTrainerClassNames + adds r1, r0 + adds r0, r3, 0 + bl StringCopy + adds r3, r0, 0 + movs r0, 0xFC + strb r0, [r3] + movs r0, 0x13 + strb r0, [r3, 0x1] + movs r0, 0x4B + strb r0, [r3, 0x2] + adds r3, 0x3 + adds r1, r5, 0x4 + adds r0, r3, 0 + bl StringCopy + adds r3, r0, 0 +_080F7060: + movs r0, 0xFC + strb r0, [r3] + movs r0, 0x13 + strb r0, [r3, 0x1] + movs r0, 0x80 + strb r0, [r3, 0x2] + movs r0, 0xFF + strb r0, [r3, 0x3] + pop {r4,r5} + pop {r0} + bx r0 + .align 2, 0 +_080F7078: .4byte gUnknown_083DFEC4 +_080F707C: .4byte 0x0000cee8 +_080F7080: .4byte gTrainers +_080F7084: .4byte 0x0000d158 +_080F7088: .4byte gTrainerClassNames + thumb_func_end sub_80F700C + + thumb_func_start sub_80F708C +sub_80F708C: @ 80F708C + push {r4,r5,lr} + lsls r0, 24 + lsrs r0, 24 + adds r4, r0, 0 + ldr r0, _080F70E4 @ =gUnknown_083DFEC4 + ldr r3, [r0] + ldr r0, _080F70E8 @ =0x0000876e + adds r2, r3, r0 + lsls r0, r4, 24 + asrs r0, 24 + ldrh r1, [r2] + adds r0, r1 + strh r0, [r2] + lsls r0, 16 + cmp r0, 0 + bge _080F70B4 + ldr r5, _080F70EC @ =0x00008774 + adds r0, r3, r5 + ldrh r0, [r0] + strh r0, [r2] +_080F70B4: + ldr r1, _080F70EC @ =0x00008774 + adds r0, r3, r1 + movs r5, 0 + ldrsh r1, [r2, r5] + movs r5, 0 + ldrsh r0, [r0, r5] + cmp r1, r0 + ble _080F70C8 + movs r0, 0 + strh r0, [r2] +_080F70C8: + ldr r1, _080F70F0 @ =0x0000bc94 + adds r0, r3, r1 + strb r4, [r0] + ldrh r1, [r2] + ldr r2, _080F70F4 @ =0x000087dc + adds r0, r3, r2 + strh r1, [r0] + ldr r5, _080F70F8 @ =0x000087de + adds r1, r3, r5 + movs r0, 0 + strb r0, [r1] + pop {r4,r5} + pop {r0} + bx r0 + .align 2, 0 +_080F70E4: .4byte gUnknown_083DFEC4 +_080F70E8: .4byte 0x0000876e +_080F70EC: .4byte 0x00008774 +_080F70F0: .4byte 0x0000bc94 +_080F70F4: .4byte 0x000087dc +_080F70F8: .4byte 0x000087de + thumb_func_end sub_80F708C + + thumb_func_start sub_80F70FC +sub_80F70FC: @ 80F70FC + push {r4-r6,lr} + ldr r1, _080F711C @ =gUnknown_083DFEC4 + ldr r0, [r1] + ldr r2, _080F7120 @ =0x000087de + adds r0, r2 + ldrb r0, [r0] + adds r4, r1, 0 + cmp r0, 0x6 + bls _080F7110 + b _080F7218 +_080F7110: + lsls r0, 2 + ldr r1, _080F7124 @ =_080F7128 + adds r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_080F711C: .4byte gUnknown_083DFEC4 +_080F7120: .4byte 0x000087de +_080F7124: .4byte _080F7128 + .align 2, 0 +_080F7128: + .4byte _080F7144 + .4byte _080F714A + .4byte _080F7164 + .4byte _080F716C + .4byte _080F71A0 + .4byte _080F71BA + .4byte _080F71EA +_080F7144: + bl sub_80F6ED4 + b _080F71F8 +_080F714A: + movs r0, 0 + bl sub_80F6E04 + ldr r0, _080F715C @ =gUnknown_083DFEC4 + ldr r1, [r0] + ldr r2, _080F7160 @ =0x000087de + adds r1, r2 + b _080F7206 + .align 2, 0 +_080F715C: .4byte gUnknown_083DFEC4 +_080F7160: .4byte 0x000087de +_080F7164: + movs r0, 0 + bl sub_80F2F7C + b _080F71FE +_080F716C: + ldr r4, [r4] + ldr r2, _080F7194 @ =0x00008788 + adds r5, r4, r2 + ldr r0, _080F7198 @ =0x0000876e + adds r6, r4, r0 + ldrh r1, [r6] + adds r0, r5, 0 + bl sub_80F700C + adds r0, r5, 0 + bl sub_80F43D4 + bl sub_80F105C + ldrb r0, [r6] + bl sub_80F0FFC + ldr r2, _080F719C @ =0x000087de + adds r4, r2 + b _080F71CC + .align 2, 0 +_080F7194: .4byte 0x00008788 +_080F7198: .4byte 0x0000876e +_080F719C: .4byte 0x000087de +_080F71A0: + bl sub_80F0CD8 + ldr r0, _080F71D4 @ =gUnknown_083DFEC4 + ldr r1, [r0] + ldr r0, _080F71D8 @ =0x0000bc95 + adds r2, r1, r0 + movs r0, 0 + strb r0, [r2] + ldr r2, _080F71DC @ =0x000087de + adds r1, r2 + ldrb r0, [r1] + adds r0, 0x1 + strb r0, [r1] +_080F71BA: + ldr r0, _080F71D4 @ =gUnknown_083DFEC4 + ldr r1, [r0] + ldr r0, _080F71D8 @ =0x0000bc95 + adds r4, r1, r0 + ldrb r0, [r4] + cmp r0, 0x1 + bhi _080F71E0 + bl sub_80F0D5C +_080F71CC: + ldrb r0, [r4] + adds r0, 0x1 + strb r0, [r4] + b _080F721C + .align 2, 0 +_080F71D4: .4byte gUnknown_083DFEC4 +_080F71D8: .4byte 0x0000bc95 +_080F71DC: .4byte 0x000087de +_080F71E0: + ldr r2, _080F7210 @ =0x000087de + adds r1, r2 + ldrb r0, [r1] + adds r0, 0x1 + strb r0, [r1] +_080F71EA: + bl sub_80F6E9C + lsls r0, 24 + cmp r0, 0 + bne _080F721C + bl sub_80F0D5C +_080F71F8: + lsls r0, 24 + cmp r0, 0 + bne _080F721C +_080F71FE: + ldr r0, _080F7214 @ =gUnknown_083DFEC4 + ldr r1, [r0] + ldr r0, _080F7210 @ =0x000087de + adds r1, r0 +_080F7206: + ldrb r0, [r1] + adds r0, 0x1 + strb r0, [r1] + b _080F721C + .align 2, 0 +_080F7210: .4byte 0x000087de +_080F7214: .4byte gUnknown_083DFEC4 +_080F7218: + movs r0, 0 + b _080F721E +_080F721C: + movs r0, 0x1 +_080F721E: + pop {r4-r6} + pop {r1} + bx r1 + thumb_func_end sub_80F70FC + + thumb_func_start sub_80F7224 +sub_80F7224: @ 80F7224 + push {r4,lr} + lsls r0, 24 + lsrs r0, 24 + movs r1, 0x64 + muls r0, r1 + ldr r1, _080F7260 @ =gPlayerParty + adds r0, r1 + movs r1, 0x30 + bl GetMonData + lsls r0, 24 + lsrs r2, r0, 24 + ldr r0, _080F7264 @ =gUnknown_083DFEC4 + ldr r0, [r0] + ldr r3, _080F7268 @ =0x00008fe9 + adds r1, r0, r3 + ldrb r1, [r1] + lsls r1, 24 + asrs r1, 24 + ldr r3, _080F726C @ =0x00008931 + adds r0, r3 + adds r4, r0, r1 + cmp r2, 0xFF + beq _080F7270 + adds r0, r2, 0 + movs r1, 0x1D + bl __udivsi3 + b _080F7272 + .align 2, 0 +_080F7260: .4byte gPlayerParty +_080F7264: .4byte gUnknown_083DFEC4 +_080F7268: .4byte 0x00008fe9 +_080F726C: .4byte 0x00008931 +_080F7270: + movs r0, 0x9 +_080F7272: + strb r0, [r4] + pop {r4} + pop {r0} + bx r0 + thumb_func_end sub_80F7224 + + .align 2, 0 @ Don't pad with nop. |