summaryrefslogtreecommitdiff
path: root/asm/pokenav.s
diff options
context:
space:
mode:
Diffstat (limited to 'asm/pokenav.s')
-rw-r--r--asm/pokenav.s23155
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.