summaryrefslogtreecommitdiff
path: root/asm/pokedex.s
diff options
context:
space:
mode:
Diffstat (limited to 'asm/pokedex.s')
-rw-r--r--asm/pokedex.s9539
1 files changed, 9539 insertions, 0 deletions
diff --git a/asm/pokedex.s b/asm/pokedex.s
new file mode 100644
index 000000000..acc4a5309
--- /dev/null
+++ b/asm/pokedex.s
@@ -0,0 +1,9539 @@
+ .include "constants/gba_constants.s"
+ .include "constants/species_constants.s"
+ .include "asm/macros.s"
+
+ .syntax unified
+
+ .text
+
+ thumb_func_start sub_808E48C
+sub_808E48C: @ 808E48C
+ push {r4-r7,lr}
+ mov r7, r10
+ mov r6, r9
+ mov r5, r8
+ push {r5-r7}
+ lsls r0, 16
+ lsrs r7, r0, 16
+ lsls r1, 16
+ lsrs r4, r1, 16
+ movs r0, 0
+ mov r10, r0
+ ldr r1, _0808E52C
+ ldrh r2, [r1, 0x2C]
+ movs r0, 0x40
+ ands r0, r2
+ adds r3, r1, 0
+ cmp r0, 0
+ beq _0808E4B6
+ cmp r7, 0
+ beq _0808E4B6
+ b _0808E5E4
+_0808E4B6:
+ movs r0, 0x80
+ ands r0, r2
+ cmp r0, 0
+ beq _0808E4CE
+ ldr r0, _0808E530
+ ldr r0, [r0]
+ ldr r1, _0808E534
+ adds r0, r1
+ ldrh r0, [r0]
+ subs r0, 0x1
+ cmp r7, r0
+ blt _0808E5C4
+_0808E4CE:
+ ldrh r1, [r3, 0x2E]
+ movs r0, 0x20
+ ands r0, r1
+ cmp r0, 0
+ beq _0808E53C
+ cmp r7, 0
+ beq _0808E53C
+ adds r6, r7, 0
+ movs r4, 0
+_0808E4E0:
+ ldr r5, _0808E530
+ ldr r0, [r5]
+ ldr r2, _0808E534
+ adds r0, r2
+ ldrh r3, [r0]
+ subs r3, 0x1
+ lsls r3, 16
+ lsrs r3, 16
+ movs r0, 0x1
+ adds r1, r7, 0
+ movs r2, 0
+ bl sub_8091818
+ adds r7, r0, 0
+ adds r0, r4, 0x1
+ lsls r0, 24
+ lsrs r4, r0, 24
+ cmp r4, 0x6
+ bls _0808E4E0
+ ldr r1, [r5]
+ ldr r3, _0808E538
+ adds r1, r3
+ subs r0, r7, r6
+ lsls r0, 4
+ ldrb r2, [r1]
+ adds r0, r2
+ strb r0, [r1]
+ bl sub_808E82C
+ adds r0, r7, 0
+ movs r1, 0xE
+ bl sub_808E0CC
+ movs r0, 0x6D
+ bl PlaySE
+ b _0808E5A2
+ .align 2, 0
+_0808E52C: .4byte gMain
+_0808E530: .4byte gUnknown_0202FFB4
+_0808E534: .4byte 0x0000060c
+_0808E538: .4byte 0x0000062c
+_0808E53C:
+ ldrh r1, [r3, 0x2E]
+ movs r0, 0x10
+ ands r0, r1
+ cmp r0, 0
+ beq _0808E5A2
+ ldr r0, _0808E5B8
+ ldr r0, [r0]
+ ldr r3, _0808E5BC
+ adds r0, r3
+ ldrh r0, [r0]
+ subs r0, 0x1
+ cmp r7, r0
+ bge _0808E5A2
+ adds r6, r7, 0
+ movs r4, 0
+_0808E55A:
+ ldr r5, _0808E5B8
+ ldr r0, [r5]
+ ldr r1, _0808E5BC
+ adds r0, r1
+ ldrh r3, [r0]
+ subs r3, 0x1
+ lsls r3, 16
+ lsrs r3, 16
+ movs r0, 0
+ adds r1, r7, 0
+ movs r2, 0
+ bl sub_8091818
+ adds r7, r0, 0
+ adds r0, r4, 0x1
+ lsls r0, 24
+ lsrs r4, r0, 24
+ cmp r4, 0x6
+ bls _0808E55A
+ ldr r1, [r5]
+ ldr r2, _0808E5C0
+ adds r1, r2
+ subs r0, r7, r6
+ lsls r0, 4
+ ldrb r3, [r1]
+ adds r0, r3
+ strb r0, [r1]
+ bl sub_808E82C
+ adds r0, r7, 0
+ movs r1, 0xE
+ bl sub_808E0CC
+ movs r0, 0x6D
+ bl PlaySE
+_0808E5A2:
+ mov r0, r10
+ cmp r0, 0
+ bne _0808E628
+ ldr r0, _0808E5B8
+ ldr r0, [r0]
+ movs r1, 0xC7
+ lsls r1, 3
+ adds r0, r1
+ mov r2, r10
+ strh r2, [r0]
+ b _0808E68E
+ .align 2, 0
+_0808E5B8: .4byte gUnknown_0202FFB4
+_0808E5BC: .4byte 0x0000060c
+_0808E5C0: .4byte 0x0000062c
+_0808E5C4:
+ movs r3, 0x2
+ mov r10, r3
+ lsls r3, r0, 16
+ lsrs r3, 16
+ movs r0, 0
+ adds r1, r7, 0
+ movs r2, 0
+ bl sub_8091818
+ adds r7, r0, 0
+ movs r0, 0x2
+ adds r1, r7, 0
+ bl sub_808E398
+ movs r0, 0x2
+ b _0808E60E
+_0808E5E4:
+ movs r0, 0x1
+ mov r10, r0
+ ldr r0, _0808E620
+ ldr r0, [r0]
+ ldr r1, _0808E624
+ adds r0, r1
+ ldrh r3, [r0]
+ subs r3, 0x1
+ lsls r3, 16
+ lsrs r3, 16
+ movs r0, 0x1
+ adds r1, r7, 0
+ movs r2, 0
+ bl sub_8091818
+ adds r7, r0, 0
+ movs r0, 0x1
+ adds r1, r7, 0
+ bl sub_808E398
+ movs r0, 0x1
+_0808E60E:
+ adds r1, r7, 0
+ adds r2, r4, 0
+ bl sub_808DBE8
+ movs r0, 0x6C
+ bl PlaySE
+ b _0808E5A2
+ .align 2, 0
+_0808E620: .4byte gUnknown_0202FFB4
+_0808E624: .4byte 0x0000060c
+_0808E628:
+ ldr r1, _0808E6A0
+ ldr r6, _0808E6A4
+ ldr r2, [r6]
+ movs r3, 0xC7
+ lsls r3, 3
+ mov r9, r3
+ adds r0, r2, r3
+ ldrh r0, [r0]
+ lsrs r0, 2
+ adds r1, r0, r1
+ ldrb r5, [r1]
+ ldr r1, _0808E6A8
+ adds r0, r1
+ ldrb r3, [r0]
+ ldr r0, _0808E6AC
+ adds r2, r0
+ strb r3, [r2]
+ ldr r1, [r6]
+ ldr r2, _0808E6B0
+ mov r8, r2
+ adds r0, r1, r2
+ strh r3, [r0]
+ ldr r4, _0808E6B4
+ adds r0, r1, r4
+ strh r5, [r0]
+ ldr r3, _0808E6B8
+ adds r1, r3
+ mov r0, r10
+ strb r0, [r1]
+ ldr r2, [r6]
+ lsrs r5, 1
+ movs r1, 0xC5
+ lsls r1, 3
+ adds r0, r2, r1
+ strh r5, [r0]
+ adds r3, r2, r3
+ ldrb r0, [r3]
+ adds r4, r2, r4
+ ldrb r1, [r4]
+ add r2, r8
+ ldrb r2, [r2]
+ bl sub_808E208
+ ldr r0, [r6]
+ mov r2, r9
+ adds r1, r0, r2
+ ldrh r0, [r1]
+ cmp r0, 0xB
+ bhi _0808E68E
+ adds r0, 0x1
+ strh r0, [r1]
+_0808E68E:
+ adds r0, r7, 0
+ pop {r3-r5}
+ mov r8, r3
+ mov r9, r4
+ mov r10, r5
+ pop {r4-r7}
+ pop {r1}
+ bx r1
+ .align 2, 0
+_0808E6A0: .4byte gUnknown_083A05EC
+_0808E6A4: .4byte gUnknown_0202FFB4
+_0808E6A8: .4byte gUnknown_083A05F1
+_0808E6AC: .4byte 0x0000062e
+_0808E6B0: .4byte 0x00000636
+_0808E6B4: .4byte 0x00000634
+_0808E6B8: .4byte 0x0000062f
+ thumb_func_end sub_808E48C
+
+ thumb_func_start sub_808E6BC
+sub_808E6BC: @ 808E6BC
+ push {r4-r7,lr}
+ movs r4, 0
+ ldr r0, _0808E708
+ mov r12, r0
+ ldr r6, _0808E70C
+ ldr r5, _0808E710
+_0808E6C8:
+ mov r1, r12
+ ldr r3, [r1]
+ lsls r1, r4, 1
+ ldr r2, _0808E714
+ adds r0, r3, r2
+ adds r0, r1
+ ldrh r2, [r0]
+ lsls r0, r2, 4
+ adds r0, r2
+ lsls r0, 2
+ adds r1, r0, r6
+ movs r7, 0x24
+ ldrsh r0, [r1, r7]
+ cmp r0, 0
+ bne _0808E6F8
+ movs r7, 0x26
+ ldrsh r0, [r1, r7]
+ cmp r0, 0
+ bne _0808E6F8
+ cmp r2, r5
+ beq _0808E6F8
+ ldr r1, _0808E718
+ adds r0, r3, r1
+ strh r2, [r0]
+_0808E6F8:
+ adds r0, r4, 0x1
+ lsls r0, 16
+ lsrs r4, r0, 16
+ cmp r4, 0x3
+ bls _0808E6C8
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0808E708: .4byte gUnknown_0202FFB4
+_0808E70C: .4byte gSprites
+_0808E710: .4byte 0x0000ffff
+_0808E714: .4byte 0x0000061e
+_0808E718: .4byte 0x00000626
+ thumb_func_end sub_808E6BC
+
+ thumb_func_start sub_808E71C
+sub_808E71C: @ 808E71C
+ push {r4-r6,lr}
+ ldr r3, _0808E77C
+ ldr r0, [r3]
+ ldr r1, _0808E780
+ adds r0, r1
+ ldrh r4, [r0]
+ ldr r2, _0808E784
+ ldrh r1, [r2, 0x2E]
+ movs r0, 0x40
+ ands r0, r1
+ cmp r0, 0
+ beq _0808E7A4
+ cmp r4, 0
+ beq _0808E7A4
+ adds r2, r4, 0
+ adds r5, r3, 0
+_0808E73C:
+ ldr r0, [r5]
+ ldr r1, _0808E788
+ adds r0, r1
+ ldrh r3, [r0]
+ subs r3, 0x1
+ lsls r3, 16
+ lsrs r3, 16
+ movs r0, 0x1
+ adds r1, r2, 0
+ movs r2, 0
+ bl sub_8091818
+ lsls r0, 16
+ lsrs r2, r0, 16
+ ldr r0, [r5]
+ lsls r1, r2, 2
+ adds r0, r1
+ ldrb r0, [r0, 0x2]
+ lsls r0, 31
+ cmp r0, 0
+ bne _0808E78C
+ cmp r2, 0
+ bne _0808E73C
+_0808E76A:
+ ldr r0, _0808E77C
+ ldr r1, [r0]
+ ldr r0, _0808E780
+ adds r2, r1, r0
+ ldrh r0, [r2]
+ cmp r0, r4
+ bne _0808E790
+ b _0808E824
+ .align 2, 0
+_0808E77C: .4byte gUnknown_0202FFB4
+_0808E780: .4byte 0x0000060e
+_0808E784: .4byte gMain
+_0808E788: .4byte 0x0000060c
+_0808E78C:
+ adds r4, r2, 0
+ b _0808E76A
+_0808E790:
+ strh r4, [r2]
+ ldr r0, _0808E79C
+ adds r1, r0
+ ldrb r0, [r1]
+ subs r0, 0x10
+ b _0808E80C
+ .align 2, 0
+_0808E79C: .4byte 0x0000062c
+_0808E7A0:
+ adds r4, r2, 0
+ b _0808E7F4
+_0808E7A4:
+ ldrh r1, [r2, 0x2E]
+ movs r0, 0x80
+ ands r0, r1
+ cmp r0, 0
+ beq _0808E824
+ ldr r0, [r3]
+ ldr r1, _0808E814
+ adds r0, r1
+ ldrh r0, [r0]
+ subs r0, 0x1
+ cmp r4, r0
+ bge _0808E824
+ adds r2, r4, 0
+ adds r6, r3, 0
+ adds r5, r1, 0
+_0808E7C2:
+ ldr r0, [r6]
+ adds r0, r5
+ ldrh r3, [r0]
+ subs r3, 0x1
+ lsls r3, 16
+ lsrs r3, 16
+ movs r0, 0
+ adds r1, r2, 0
+ movs r2, 0
+ bl sub_8091818
+ lsls r0, 16
+ lsrs r2, r0, 16
+ ldr r1, [r6]
+ lsls r0, r2, 2
+ adds r0, r1, r0
+ ldrb r0, [r0, 0x2]
+ lsls r0, 31
+ cmp r0, 0
+ bne _0808E7A0
+ adds r0, r1, r5
+ ldrh r0, [r0]
+ subs r0, 0x1
+ cmp r2, r0
+ blt _0808E7C2
+_0808E7F4:
+ ldr r0, _0808E818
+ ldr r1, [r0]
+ ldr r0, _0808E81C
+ adds r2, r1, r0
+ ldrh r0, [r2]
+ cmp r0, r4
+ beq _0808E824
+ strh r4, [r2]
+ ldr r0, _0808E820
+ adds r1, r0
+ ldrb r0, [r1]
+ adds r0, 0x10
+_0808E80C:
+ strb r0, [r1]
+ movs r0, 0x1
+ b _0808E826
+ .align 2, 0
+_0808E814: .4byte 0x0000060c
+_0808E818: .4byte gUnknown_0202FFB4
+_0808E81C: .4byte 0x0000060e
+_0808E820: .4byte 0x0000062c
+_0808E824:
+ movs r0, 0
+_0808E826:
+ pop {r4-r6}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_808E71C
+
+ thumb_func_start sub_808E82C
+sub_808E82C: @ 808E82C
+ push {r4-r7,lr}
+ movs r5, 0
+ ldr r6, _0808E878
+ ldr r7, _0808E87C
+_0808E834:
+ ldr r0, [r6]
+ lsls r4, r5, 1
+ ldr r1, _0808E880
+ adds r0, r1
+ adds r1, r0, r4
+ ldrh r0, [r1]
+ cmp r0, r7
+ beq _0808E864
+ adds r1, r0, 0
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ ldr r1, _0808E884
+ adds r0, r1
+ bl DestroySprite
+ ldr r1, [r6]
+ ldr r0, _0808E880
+ adds r1, r0
+ adds r1, r4
+ ldrh r2, [r1]
+ adds r0, r7, 0
+ orrs r0, r2
+ strh r0, [r1]
+_0808E864:
+ adds r0, r5, 0x1
+ lsls r0, 16
+ lsrs r5, r0, 16
+ cmp r5, 0x3
+ bls _0808E834
+ movs r0, 0
+ pop {r4-r7}
+ pop {r1}
+ bx r1
+ .align 2, 0
+_0808E878: .4byte gUnknown_0202FFB4
+_0808E87C: .4byte 0x0000ffff
+_0808E880: .4byte 0x0000061e
+_0808E884: .4byte gSprites
+ thumb_func_end sub_808E82C
+
+ thumb_func_start sub_808E888
+sub_808E888: @ 808E888
+ push {lr}
+ lsls r0, 16
+ lsrs r2, r0, 16
+ ldr r0, _0808E8A8
+ cmp r2, r0
+ bhi _0808E8A4
+ ldr r0, _0808E8AC
+ ldr r1, [r0]
+ lsls r0, r2, 2
+ adds r2, r1, r0
+ ldrh r1, [r2]
+ ldr r0, _0808E8B0
+ cmp r1, r0
+ bne _0808E8B4
+_0808E8A4:
+ ldr r0, _0808E8B0
+ b _0808E8C2
+ .align 2, 0
+_0808E8A8: .4byte 0x00000181
+_0808E8AC: .4byte gUnknown_0202FFB4
+_0808E8B0: .4byte 0x0000ffff
+_0808E8B4:
+ ldrb r0, [r2, 0x2]
+ lsls r0, 31
+ cmp r0, 0
+ bne _0808E8C0
+ movs r0, 0
+ b _0808E8C2
+_0808E8C0:
+ ldrh r0, [r2]
+_0808E8C2:
+ pop {r1}
+ bx r1
+ thumb_func_end sub_808E888
+
+ thumb_func_start sub_808E8C8
+sub_808E8C8: @ 808E8C8
+ push {r4-r7,lr}
+ mov r7, r9
+ mov r6, r8
+ push {r6,r7}
+ lsls r0, 16
+ lsrs r0, 16
+ mov r8, r0
+ lsls r2, 16
+ lsrs r2, 16
+ movs r6, 0
+ ldr r0, _0808E94C
+ mov r9, r0
+ ldr r3, _0808E950
+ lsls r1, 16
+_0808E8E4:
+ mov r4, r9
+ ldr r0, [r4]
+ lsls r7, r6, 1
+ ldr r4, _0808E954
+ adds r0, r4
+ adds r0, r7
+ ldrh r0, [r0]
+ cmp r0, r3
+ bne _0808E95C
+ lsls r2, 16
+ mov r0, r8
+ asrs r1, 16
+ asrs r2, 16
+ adds r3, r6, 0
+ bl sub_80918EC
+ adds r5, r0, 0
+ lsls r5, 24
+ lsrs r5, 24
+ ldr r0, _0808E958
+ lsls r4, r5, 4
+ adds r4, r5
+ lsls r4, 2
+ adds r4, r0
+ ldrb r1, [r4, 0x1]
+ movs r2, 0x4
+ negs r2, r2
+ adds r0, r2, 0
+ ands r1, r0
+ movs r0, 0x1
+ orrs r1, r0
+ strb r1, [r4, 0x1]
+ ldrb r0, [r4, 0x5]
+ movs r1, 0xC
+ orrs r0, r1
+ strb r0, [r4, 0x5]
+ movs r0, 0
+ strh r0, [r4, 0x2E]
+ strh r6, [r4, 0x30]
+ mov r0, r8
+ bl NationalPokedexNumToSpecies
+ strh r0, [r4, 0x32]
+ mov r4, r9
+ ldr r0, [r4]
+ ldr r1, _0808E954
+ adds r0, r1
+ adds r0, r7
+ strh r5, [r0]
+ adds r0, r5, 0
+ b _0808E968
+ .align 2, 0
+_0808E94C: .4byte gUnknown_0202FFB4
+_0808E950: .4byte 0x0000ffff
+_0808E954: .4byte 0x0000061e
+_0808E958: .4byte gSprites
+_0808E95C:
+ adds r0, r6, 0x1
+ lsls r0, 24
+ lsrs r6, r0, 24
+ cmp r6, 0x3
+ bls _0808E8E4
+ ldr r0, _0808E974
+_0808E968:
+ pop {r3,r4}
+ mov r8, r3
+ mov r9, r4
+ pop {r4-r7}
+ pop {r1}
+ bx r1
+ .align 2, 0
+_0808E974: .4byte 0x0000ffff
+ thumb_func_end sub_808E8C8
+
+ thumb_func_start sub_808E978
+sub_808E978: @ 808E978
+ push {r4-r7,lr}
+ mov r7, r10
+ mov r6, r9
+ mov r5, r8
+ push {r5-r7}
+ mov r8, r0
+ lsls r0, 24
+ lsrs r0, 24
+ mov r8, r0
+ ldr r4, _0808EB3C
+ adds r0, r4, 0
+ movs r1, 0xB8
+ movs r2, 0x4
+ movs r3, 0
+ bl CreateSprite
+ lsls r0, 24
+ lsrs r7, r0, 24
+ ldr r1, _0808EB40
+ mov r10, r1
+ lsls r0, r7, 4
+ adds r0, r7
+ lsls r0, 2
+ add r0, r10
+ movs r1, 0
+ strh r1, [r0, 0x30]
+ adds r0, r4, 0
+ movs r1, 0xB8
+ movs r2, 0x9C
+ movs r3, 0
+ bl CreateSprite
+ lsls r0, 24
+ lsrs r7, r0, 24
+ lsls r0, r7, 4
+ adds r0, r7
+ lsls r0, 2
+ add r0, r10
+ movs r1, 0x1
+ strh r1, [r0, 0x30]
+ adds r0, 0x3F
+ ldrb r1, [r0]
+ movs r2, 0x2
+ orrs r1, r2
+ strb r1, [r0]
+ ldr r0, _0808EB44
+ movs r1, 0xEA
+ movs r2, 0x14
+ movs r3, 0
+ bl CreateSprite
+ ldr r5, _0808EB48
+ adds r0, r5, 0
+ movs r1, 0x10
+ movs r2, 0x8A
+ movs r3, 0
+ bl CreateSprite
+ adds r0, r5, 0
+ movs r1, 0x30
+ movs r2, 0x8A
+ movs r3, 0
+ bl CreateSprite
+ lsls r0, 24
+ lsrs r7, r0, 24
+ lsls r0, r7, 4
+ adds r0, r7
+ lsls r0, 2
+ add r0, r10
+ movs r1, 0x3
+ bl StartSpriteAnim
+ adds r0, r5, 0
+ movs r1, 0x10
+ movs r2, 0x9E
+ movs r3, 0
+ bl CreateSprite
+ lsls r0, 24
+ lsrs r7, r0, 24
+ lsls r4, r7, 4
+ adds r4, r7
+ lsls r4, 2
+ add r4, r10
+ adds r0, r4, 0
+ movs r1, 0x2
+ bl StartSpriteAnim
+ movs r0, 0x80
+ mov r9, r0
+ mov r1, r9
+ strh r1, [r4, 0x32]
+ adds r0, r5, 0
+ movs r1, 0x30
+ movs r2, 0x9E
+ movs r3, 0
+ bl CreateSprite
+ lsls r0, 24
+ lsrs r7, r0, 24
+ lsls r0, r7, 4
+ adds r0, r7
+ lsls r0, 2
+ add r0, r10
+ movs r1, 0x1
+ bl StartSpriteAnim
+ ldr r6, _0808EB4C
+ adds r0, r6, 0
+ movs r1, 0
+ movs r2, 0x50
+ movs r3, 0x2
+ bl CreateSprite
+ lsls r0, 24
+ lsrs r7, r0, 24
+ lsls r1, r7, 4
+ adds r1, r7
+ lsls r1, 2
+ add r1, r10
+ ldrb r2, [r1, 0x1]
+ movs r4, 0x4
+ negs r4, r4
+ adds r0, r4, 0
+ ands r0, r2
+ movs r5, 0x1
+ orrs r0, r5
+ strb r0, [r1, 0x1]
+ ldrb r2, [r1, 0x3]
+ movs r0, 0x3F
+ negs r0, r0
+ ands r0, r2
+ movs r2, 0x3C
+ orrs r0, r2
+ strb r0, [r1, 0x3]
+ movs r0, 0x1E
+ strh r0, [r1, 0x2E]
+ movs r0, 0
+ strh r0, [r1, 0x30]
+ adds r0, r6, 0
+ movs r1, 0
+ movs r2, 0x50
+ movs r3, 0x2
+ bl CreateSprite
+ lsls r0, 24
+ lsrs r7, r0, 24
+ lsls r1, r7, 4
+ adds r1, r7
+ lsls r1, 2
+ add r1, r10
+ ldrb r0, [r1, 0x1]
+ ands r4, r0
+ orrs r4, r5
+ strb r4, [r1, 0x1]
+ ldrb r0, [r1, 0x3]
+ movs r2, 0x3E
+ orrs r0, r2
+ strb r0, [r1, 0x3]
+ movs r0, 0x1F
+ strh r0, [r1, 0x2E]
+ mov r0, r9
+ strh r0, [r1, 0x30]
+ mov r1, r8
+ cmp r1, 0
+ beq _0808EAC8
+ b _0808ED5C
+_0808EAC8:
+ ldr r4, _0808EB50
+ adds r0, r4, 0
+ movs r1, 0x20
+ movs r2, 0x28
+ movs r3, 0x1
+ bl CreateSprite
+ adds r0, r4, 0
+ movs r1, 0x20
+ movs r2, 0x48
+ movs r3, 0x1
+ bl CreateSprite
+ lsls r0, 24
+ lsrs r7, r0, 24
+ lsls r0, r7, 4
+ adds r0, r7
+ lsls r0, 2
+ add r0, r10
+ movs r1, 0x1
+ bl StartSpriteAnim
+ movs r0, 0
+ mov r8, r0
+ ldr r0, _0808EB54
+ movs r1, 0x1C
+ movs r2, 0x30
+ movs r3, 0x1
+ bl CreateSprite
+ lsls r0, 24
+ lsrs r7, r0, 24
+ ldr r0, _0808EB58
+ ldr r0, [r0]
+ ldr r1, _0808EB5C
+ adds r0, r1
+ ldrh r0, [r0]
+ movs r1, 0x64
+ bl __udivsi3
+ lsls r0, 16
+ lsrs r5, r0, 16
+ lsls r0, r7, 4
+ adds r0, r7
+ lsls r0, 2
+ mov r1, r10
+ adds r4, r0, r1
+ lsls r1, r5, 24
+ lsrs r1, 24
+ adds r0, r4, 0
+ bl StartSpriteAnim
+ cmp r5, 0
+ beq _0808EB60
+ movs r0, 0x1
+ mov r8, r0
+ b _0808EB6C
+ .align 2, 0
+_0808EB3C: .4byte gSpriteTemplate_83A053C
+_0808EB40: .4byte gSprites
+_0808EB44: .4byte gSpriteTemplate_83A0524
+_0808EB48: .4byte gSpriteTemplate_83A0554
+_0808EB4C: .4byte gSpriteTemplate_83A056C
+_0808EB50: .4byte gSpriteTemplate_83A0584
+_0808EB54: .4byte gSpriteTemplate_83A059C
+_0808EB58: .4byte gUnknown_0202FFB4
+_0808EB5C: .4byte 0x0000061a
+_0808EB60:
+ adds r0, r4, 0
+ adds r0, 0x3E
+ ldrb r1, [r0]
+ movs r2, 0x4
+ orrs r1, r2
+ strb r1, [r0]
+_0808EB6C:
+ ldr r0, _0808EBB8
+ movs r1, 0x22
+ movs r2, 0x30
+ movs r3, 0x1
+ bl CreateSprite
+ lsls r0, 24
+ lsrs r7, r0, 24
+ ldr r0, _0808EBBC
+ ldr r0, [r0]
+ ldr r1, _0808EBC0
+ adds r0, r1
+ ldrh r0, [r0]
+ movs r1, 0x64
+ bl __umodsi3
+ lsls r0, 16
+ lsrs r0, 16
+ movs r1, 0xA
+ bl __udivsi3
+ lsls r0, 16
+ lsrs r5, r0, 16
+ cmp r5, 0
+ bne _0808EBA4
+ mov r0, r8
+ cmp r0, 0
+ beq _0808EBC8
+_0808EBA4:
+ lsls r0, r7, 4
+ adds r0, r7
+ lsls r0, 2
+ ldr r1, _0808EBC4
+ adds r0, r1
+ lsls r1, r5, 24
+ lsrs r1, 24
+ bl StartSpriteAnim
+ b _0808EBDC
+ .align 2, 0
+_0808EBB8: .4byte gSpriteTemplate_83A059C
+_0808EBBC: .4byte gUnknown_0202FFB4
+_0808EBC0: .4byte 0x0000061a
+_0808EBC4: .4byte gSprites
+_0808EBC8:
+ ldr r1, _0808EC60
+ lsls r0, r7, 4
+ adds r0, r7
+ lsls r0, 2
+ adds r0, r1
+ adds r0, 0x3E
+ ldrb r1, [r0]
+ movs r2, 0x4
+ orrs r1, r2
+ strb r1, [r0]
+_0808EBDC:
+ ldr r6, _0808EC64
+ adds r0, r6, 0
+ movs r1, 0x28
+ movs r2, 0x30
+ movs r3, 0x1
+ bl CreateSprite
+ lsls r0, 24
+ lsrs r7, r0, 24
+ ldr r5, _0808EC68
+ ldr r0, [r5]
+ ldr r1, _0808EC6C
+ adds r0, r1
+ ldrh r0, [r0]
+ movs r1, 0x64
+ bl __umodsi3
+ lsls r0, 16
+ lsrs r0, 16
+ movs r1, 0xA
+ bl __umodsi3
+ adds r1, r0, 0
+ lsls r0, r7, 4
+ adds r0, r7
+ lsls r0, 2
+ ldr r4, _0808EC60
+ adds r0, r4
+ lsls r1, 24
+ lsrs r1, 24
+ bl StartSpriteAnim
+ movs r0, 0
+ mov r8, r0
+ adds r0, r6, 0
+ movs r1, 0x1C
+ movs r2, 0x50
+ movs r3, 0x1
+ bl CreateSprite
+ lsls r0, 24
+ lsrs r7, r0, 24
+ ldr r0, [r5]
+ ldr r1, _0808EC70
+ adds r0, r1
+ ldrh r0, [r0]
+ movs r1, 0x64
+ bl __udivsi3
+ lsls r0, 16
+ lsrs r5, r0, 16
+ lsls r0, r7, 4
+ adds r0, r7
+ lsls r0, 2
+ adds r4, r0, r4
+ lsls r1, r5, 24
+ lsrs r1, 24
+ adds r0, r4, 0
+ bl StartSpriteAnim
+ cmp r5, 0
+ beq _0808EC74
+ movs r0, 0x1
+ mov r8, r0
+ b _0808EC80
+ .align 2, 0
+_0808EC60: .4byte gSprites
+_0808EC64: .4byte gSpriteTemplate_83A059C
+_0808EC68: .4byte gUnknown_0202FFB4
+_0808EC6C: .4byte 0x0000061a
+_0808EC70: .4byte 0x0000061c
+_0808EC74:
+ adds r0, r4, 0
+ adds r0, 0x3E
+ ldrb r1, [r0]
+ movs r2, 0x4
+ orrs r1, r2
+ strb r1, [r0]
+_0808EC80:
+ ldr r0, _0808ECCC
+ movs r1, 0x22
+ movs r2, 0x50
+ movs r3, 0x1
+ bl CreateSprite
+ lsls r0, 24
+ lsrs r7, r0, 24
+ ldr r0, _0808ECD0
+ ldr r0, [r0]
+ ldr r1, _0808ECD4
+ adds r0, r1
+ ldrh r0, [r0]
+ movs r1, 0x64
+ bl __umodsi3
+ lsls r0, 16
+ lsrs r0, 16
+ movs r1, 0xA
+ bl __udivsi3
+ lsls r0, 16
+ lsrs r5, r0, 16
+ cmp r5, 0
+ bne _0808ECB8
+ mov r0, r8
+ cmp r0, 0
+ beq _0808ECDC
+_0808ECB8:
+ lsls r0, r7, 4
+ adds r0, r7
+ lsls r0, 2
+ ldr r1, _0808ECD8
+ adds r0, r1
+ lsls r1, r5, 24
+ lsrs r1, 24
+ bl StartSpriteAnim
+ b _0808ECF0
+ .align 2, 0
+_0808ECCC: .4byte gSpriteTemplate_83A059C
+_0808ECD0: .4byte gUnknown_0202FFB4
+_0808ECD4: .4byte 0x0000061c
+_0808ECD8: .4byte gSprites
+_0808ECDC:
+ ldr r1, _0808ED48
+ lsls r0, r7, 4
+ adds r0, r7
+ lsls r0, 2
+ adds r0, r1
+ adds r0, 0x3E
+ ldrb r1, [r0]
+ movs r2, 0x4
+ orrs r1, r2
+ strb r1, [r0]
+_0808ECF0:
+ ldr r0, _0808ED4C
+ movs r1, 0x28
+ movs r2, 0x50
+ movs r3, 0x1
+ bl CreateSprite
+ lsls r0, 24
+ lsrs r7, r0, 24
+ ldr r0, _0808ED50
+ ldr r0, [r0]
+ ldr r1, _0808ED54
+ adds r0, r1
+ ldrh r0, [r0]
+ movs r1, 0x64
+ bl __umodsi3
+ lsls r0, 16
+ lsrs r0, 16
+ movs r1, 0xA
+ bl __umodsi3
+ adds r1, r0, 0
+ lsls r0, r7, 4
+ adds r0, r7
+ lsls r0, 2
+ ldr r4, _0808ED48
+ adds r0, r4
+ lsls r1, 24
+ lsrs r1, 24
+ bl StartSpriteAnim
+ ldr r0, _0808ED58
+ movs r1, 0x8C
+ movs r2, 0x60
+ movs r3, 0x1
+ bl CreateSprite
+ lsls r0, 24
+ lsrs r7, r0, 24
+ lsls r0, r7, 4
+ adds r0, r7
+ lsls r0, 2
+ adds r0, r4
+ b _0808ED74
+ .align 2, 0
+_0808ED48: .4byte gSprites
+_0808ED4C: .4byte gSpriteTemplate_83A059C
+_0808ED50: .4byte gUnknown_0202FFB4
+_0808ED54: .4byte 0x0000061c
+_0808ED58: .4byte gSpriteTemplate_83A05B4
+_0808ED5C:
+ ldr r0, _0808ED8C
+ movs r1, 0x8C
+ movs r2, 0x50
+ movs r3, 0x1
+ bl CreateSprite
+ lsls r0, 24
+ lsrs r7, r0, 24
+ lsls r0, r7, 4
+ adds r0, r7
+ lsls r0, 2
+ add r0, r10
+_0808ED74:
+ adds r0, 0x3E
+ ldrb r1, [r0]
+ movs r2, 0x4
+ orrs r1, r2
+ strb r1, [r0]
+ pop {r3-r5}
+ mov r8, r3
+ mov r9, r4
+ mov r10, r5
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0808ED8C: .4byte gSpriteTemplate_83A05B4
+ thumb_func_end sub_808E978
+
+ thumb_func_start nullsub_58
+nullsub_58: @ 808ED90
+ bx lr
+ thumb_func_end nullsub_58
+
+ thumb_func_start sub_808ED94
+sub_808ED94: @ 808ED94
+ push {lr}
+ adds r1, r0, 0
+ ldr r0, _0808EDB0
+ ldr r0, [r0]
+ ldr r2, _0808EDB4
+ adds r0, r2
+ ldrb r0, [r0]
+ cmp r0, 0
+ beq _0808EDAC
+ adds r0, r1, 0
+ bl DestroySprite
+_0808EDAC:
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0808EDB0: .4byte gUnknown_0202FFB4
+_0808EDB4: .4byte 0x0000064a
+ thumb_func_end sub_808ED94
+
+ thumb_func_start sub_808EDB8
+sub_808EDB8: @ 808EDB8
+ push {lr}
+ adds r2, r0, 0
+ ldrb r1, [r2, 0x5]
+ movs r0, 0xD
+ negs r0, r0
+ ands r0, r1
+ strb r0, [r2, 0x5]
+ ldrb r1, [r2, 0x1]
+ movs r0, 0x4
+ negs r0, r0
+ ands r0, r1
+ strb r0, [r2, 0x1]
+ movs r0, 0
+ strh r0, [r2, 0x24]
+ strh r0, [r2, 0x26]
+ ldr r1, [r2, 0x20]
+ ldr r0, _0808EE18
+ cmp r1, r0
+ beq _0808EE1C
+ ldrh r1, [r2, 0x20]
+ movs r3, 0x20
+ ldrsh r0, [r2, r3]
+ cmp r0, 0x30
+ ble _0808EDEC
+ subs r0, r1, 0x1
+ strh r0, [r2, 0x20]
+_0808EDEC:
+ ldrh r1, [r2, 0x20]
+ movs r3, 0x20
+ ldrsh r0, [r2, r3]
+ cmp r0, 0x2F
+ bgt _0808EDFA
+ adds r0, r1, 0x1
+ strh r0, [r2, 0x20]
+_0808EDFA:
+ ldrh r1, [r2, 0x22]
+ movs r3, 0x22
+ ldrsh r0, [r2, r3]
+ cmp r0, 0x38
+ ble _0808EE08
+ subs r0, r1, 0x1
+ strh r0, [r2, 0x22]
+_0808EE08:
+ ldrh r1, [r2, 0x22]
+ movs r3, 0x22
+ ldrsh r0, [r2, r3]
+ cmp r0, 0x37
+ bgt _0808EE20
+ adds r0, r1, 0x1
+ strh r0, [r2, 0x22]
+ b _0808EE20
+ .align 2, 0
+_0808EE18: .4byte 0x00380030
+_0808EE1C:
+ ldr r0, _0808EE24
+ str r0, [r2, 0x1C]
+_0808EE20:
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0808EE24: .4byte nullsub_58
+ thumb_func_end sub_808EDB8
+
+ thumb_func_start sub_808EE28
+sub_808EE28: @ 808EE28
+ push {r4-r6,lr}
+ sub sp, 0x4
+ adds r4, r0, 0
+ ldrh r0, [r4, 0x30]
+ lsls r0, 24
+ lsrs r6, r0, 24
+ ldr r5, _0808EE50
+ ldr r0, [r5]
+ ldr r1, _0808EE54
+ adds r0, r1
+ ldrb r0, [r0]
+ cmp r0, 0
+ beq _0808EE58
+ cmp r0, 0x3
+ beq _0808EE58
+ adds r0, r4, 0
+ bl DestroySprite
+ ldr r0, [r5]
+ b _0808EF16
+ .align 2, 0
+_0808EE50: .4byte gUnknown_0202FFB4
+_0808EE54: .4byte 0x0000064a
+_0808EE58:
+ ldr r2, _0808EEE4
+ ldrh r0, [r4, 0x38]
+ lsls r0, 24
+ lsrs r0, 23
+ adds r0, r2
+ movs r3, 0
+ ldrsh r1, [r0, r3]
+ movs r0, 0x4C
+ muls r0, r1
+ cmp r0, 0
+ bge _0808EE70
+ adds r0, 0xFF
+_0808EE70:
+ asrs r0, 8
+ strh r0, [r4, 0x26]
+ movs r1, 0x38
+ ldrsh r0, [r4, r1]
+ adds r0, 0x40
+ lsls r0, 1
+ adds r0, r2
+ movs r2, 0
+ ldrsh r1, [r0, r2]
+ movs r0, 0x80
+ lsls r0, 9
+ bl __divsi3
+ adds r2, r0, 0
+ ldr r0, _0808EEE8
+ cmp r2, r0
+ bls _0808EE94
+ adds r2, r0, 0
+_0808EE94:
+ ldrh r0, [r4, 0x30]
+ adds r0, 0x1
+ lsls r0, 24
+ lsrs r0, 24
+ movs r1, 0x80
+ lsls r1, 1
+ lsls r2, 16
+ lsrs r2, 16
+ str r2, [sp]
+ movs r2, 0
+ movs r3, 0
+ bl SetOamMatrix
+ adds r1, r6, 0x1
+ movs r0, 0x1F
+ ands r1, r0
+ lsls r1, 1
+ ldrb r2, [r4, 0x3]
+ movs r0, 0x3F
+ negs r0, r0
+ ands r0, r2
+ orrs r0, r1
+ strb r0, [r4, 0x3]
+ ldrh r0, [r4, 0x38]
+ adds r0, 0x3F
+ lsls r0, 16
+ lsrs r0, 16
+ cmp r0, 0x7E
+ bhi _0808EEEC
+ adds r2, r4, 0
+ adds r2, 0x3E
+ ldrb r0, [r2]
+ movs r1, 0x5
+ negs r1, r1
+ ands r1, r0
+ strb r1, [r2]
+ movs r0, 0x1
+ strh r0, [r4, 0x2E]
+ b _0808EEF8
+ .align 2, 0
+_0808EEE4: .4byte gSineTable
+_0808EEE8: .4byte 0x0000ffff
+_0808EEEC:
+ adds r2, r4, 0
+ adds r2, 0x3E
+ ldrb r0, [r2]
+ movs r1, 0x4
+ orrs r0, r1
+ strb r0, [r2]
+_0808EEF8:
+ ldrh r0, [r4, 0x38]
+ adds r0, 0x3F
+ lsls r0, 16
+ lsrs r0, 16
+ cmp r0, 0x7E
+ bls _0808EF22
+ movs r3, 0x2E
+ ldrsh r0, [r4, r3]
+ cmp r0, 0
+ beq _0808EF22
+ adds r0, r4, 0
+ bl DestroySprite
+ ldr r0, _0808EF2C
+ ldr r0, [r0]
+_0808EF16:
+ lsls r1, r6, 1
+ ldr r2, _0808EF30
+ adds r0, r2
+ adds r0, r1
+ ldr r1, _0808EF34
+ strh r1, [r0]
+_0808EF22:
+ add sp, 0x4
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0808EF2C: .4byte gUnknown_0202FFB4
+_0808EF30: .4byte 0x0000061e
+_0808EF34: .4byte 0x0000ffff
+ thumb_func_end sub_808EE28
+
+ thumb_func_start sub_808EF38
+sub_808EF38: @ 808EF38
+ push {r4,lr}
+ adds r4, r0, 0
+ ldr r1, _0808EF58
+ ldr r0, [r1]
+ ldr r2, _0808EF5C
+ adds r0, r2
+ ldrb r0, [r0]
+ cmp r0, 0
+ beq _0808EF60
+ cmp r0, 0x3
+ beq _0808EF60
+ adds r0, r4, 0
+ bl DestroySprite
+ b _0808EF7C
+ .align 2, 0
+_0808EF58: .4byte gUnknown_0202FFB4
+_0808EF5C: .4byte 0x0000064a
+_0808EF60:
+ ldr r2, [r1]
+ ldr r1, _0808EF84
+ adds r0, r2, r1
+ ldrh r1, [r0]
+ lsls r0, r1, 4
+ subs r0, r1
+ lsls r0, 3
+ ldr r1, _0808EF88
+ adds r2, r1
+ ldrh r1, [r2]
+ subs r1, 0x1
+ bl __divsi3
+ strh r0, [r4, 0x26]
+_0808EF7C:
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0808EF84: .4byte 0x0000060e
+_0808EF88: .4byte 0x0000060c
+ thumb_func_end sub_808EF38
+
+ thumb_func_start sub_808EF8C
+sub_808EF8C: @ 808EF8C
+ push {r4,r5,lr}
+ adds r3, r0, 0
+ ldr r1, _0808EFAC
+ ldr r0, [r1]
+ ldr r2, _0808EFB0
+ adds r0, r2
+ ldrb r0, [r0]
+ adds r5, r1, 0
+ cmp r0, 0
+ beq _0808EFB4
+ cmp r0, 0x3
+ beq _0808EFB4
+ adds r0, r3, 0
+ bl DestroySprite
+ b _0808F084
+ .align 2, 0
+_0808EFAC: .4byte gUnknown_0202FFB4
+_0808EFB0: .4byte 0x0000064a
+_0808EFB4:
+ movs r1, 0x30
+ ldrsh r0, [r3, r1]
+ cmp r0, 0
+ beq _0808EFF6
+ ldr r0, [r5]
+ ldr r2, _0808EFDC
+ adds r1, r0, r2
+ ldrh r1, [r1]
+ subs r2, 0x2
+ adds r0, r2
+ ldrh r0, [r0]
+ subs r0, 0x1
+ cmp r1, r0
+ bne _0808EFE0
+ adds r0, r3, 0
+ adds r0, 0x3E
+ ldrb r1, [r0]
+ movs r2, 0x4
+ orrs r1, r2
+ b _0808EFEC
+ .align 2, 0
+_0808EFDC: .4byte 0x0000060e
+_0808EFE0:
+ adds r0, r3, 0
+ adds r0, 0x3E
+ ldrb r2, [r0]
+ movs r1, 0x5
+ negs r1, r1
+ ands r1, r2
+_0808EFEC:
+ strb r1, [r0]
+ adds r2, r0, 0
+ ldrh r1, [r3, 0x32]
+ lsls r0, r1, 24
+ b _0808F02C
+_0808EFF6:
+ ldr r0, [r5]
+ ldr r1, _0808F010
+ adds r0, r1
+ ldrh r0, [r0]
+ cmp r0, 0
+ bne _0808F014
+ adds r0, r3, 0
+ adds r0, 0x3E
+ ldrb r1, [r0]
+ movs r2, 0x4
+ orrs r1, r2
+ b _0808F020
+ .align 2, 0
+_0808F010: .4byte 0x0000060e
+_0808F014:
+ adds r0, r3, 0
+ adds r0, 0x3E
+ ldrb r2, [r0]
+ movs r1, 0x5
+ negs r1, r1
+ ands r1, r2
+_0808F020:
+ strb r1, [r0]
+ adds r2, r0, 0
+ ldrh r1, [r3, 0x32]
+ adds r0, r1, 0
+ subs r0, 0x80
+ lsls r0, 24
+_0808F02C:
+ lsrs r0, 24
+ adds r4, r1, 0
+ ldr r1, _0808F078
+ lsls r0, 1
+ adds r0, r1
+ movs r1, 0
+ ldrsh r0, [r0, r1]
+ cmp r0, 0
+ bge _0808F040
+ adds r0, 0x3F
+_0808F040:
+ asrs r0, 6
+ strh r0, [r3, 0x26]
+ adds r0, r4, 0
+ adds r0, 0x8
+ strh r0, [r3, 0x32]
+ ldr r1, [r5]
+ movs r3, 0xCA
+ lsls r3, 3
+ adds r0, r1, r3
+ ldrb r0, [r0]
+ cmp r0, 0
+ bne _0808F07C
+ adds r3, 0x4
+ adds r0, r1, r3
+ movs r1, 0
+ ldrsh r0, [r0, r1]
+ cmp r0, 0
+ bne _0808F07C
+ ldrb r1, [r2]
+ movs r0, 0x4
+ ands r0, r1
+ cmp r0, 0
+ bne _0808F07C
+ movs r0, 0x5
+ negs r0, r0
+ ands r0, r1
+ b _0808F082
+ .align 2, 0
+_0808F078: .4byte gSineTable
+_0808F07C:
+ ldrb r0, [r2]
+ movs r1, 0x4
+ orrs r0, r1
+_0808F082:
+ strb r0, [r2]
+_0808F084:
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_808EF8C
+
+ thumb_func_start sub_808F08C
+sub_808F08C: @ 808F08C
+ push {lr}
+ adds r1, r0, 0
+ ldr r0, _0808F0AC
+ ldr r0, [r0]
+ ldr r2, _0808F0B0
+ adds r0, r2
+ ldrb r0, [r0]
+ cmp r0, 0
+ beq _0808F0A8
+ cmp r0, 0x3
+ beq _0808F0A8
+ adds r0, r1, 0
+ bl DestroySprite
+_0808F0A8:
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0808F0AC: .4byte gUnknown_0202FFB4
+_0808F0B0: .4byte 0x0000064a
+ thumb_func_end sub_808F08C
+
+ thumb_func_start sub_808F0B4
+sub_808F0B4: @ 808F0B4
+ push {r4-r7,lr}
+ sub sp, 0x4
+ adds r6, r0, 0
+ ldr r1, _0808F0D8
+ ldr r0, [r1]
+ ldr r2, _0808F0DC
+ adds r0, r2
+ ldrb r0, [r0]
+ adds r7, r1, 0
+ cmp r0, 0
+ beq _0808F0E0
+ cmp r0, 0x3
+ beq _0808F0E0
+ adds r0, r6, 0
+ bl DestroySprite
+ b _0808F158
+ .align 2, 0
+_0808F0D8: .4byte gUnknown_0202FFB4
+_0808F0DC: .4byte 0x0000064a
+_0808F0E0:
+ ldr r0, [r7]
+ ldr r5, _0808F160
+ adds r0, r5
+ ldrb r1, [r0]
+ ldrh r0, [r6, 0x30]
+ adds r1, r0
+ lsls r1, 24
+ lsrs r1, 24
+ ldr r4, _0808F164
+ lsls r0, r1, 1
+ adds r0, r4
+ ldrh r3, [r0]
+ adds r1, 0x40
+ lsls r1, 1
+ adds r1, r4
+ ldrh r0, [r6, 0x2E]
+ lsls r0, 24
+ lsrs r0, 24
+ ldrh r1, [r1]
+ lsls r3, 16
+ lsrs r2, r3, 16
+ negs r3, r3
+ lsrs r3, 16
+ str r1, [sp]
+ bl SetOamMatrix
+ ldr r1, [r7]
+ adds r1, r5
+ ldrh r0, [r6, 0x30]
+ adds r0, 0x40
+ ldrb r1, [r1]
+ adds r0, r1
+ lsls r0, 24
+ lsrs r0, 24
+ lsls r1, r0, 1
+ adds r1, r4
+ ldrh r3, [r1]
+ adds r0, 0x40
+ lsls r0, 1
+ adds r0, r4
+ movs r2, 0
+ ldrsh r1, [r0, r2]
+ lsls r0, r1, 2
+ adds r0, r1
+ lsls r0, 3
+ cmp r0, 0
+ bge _0808F140
+ adds r0, 0xFF
+_0808F140:
+ asrs r0, 8
+ strh r0, [r6, 0x24]
+ lsls r1, r3, 16
+ asrs r1, 16
+ lsls r0, r1, 2
+ adds r0, r1
+ lsls r0, 3
+ cmp r0, 0
+ bge _0808F154
+ adds r0, 0xFF
+_0808F154:
+ asrs r0, 8
+ strh r0, [r6, 0x26]
+_0808F158:
+ add sp, 0x4
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0808F160: .4byte 0x0000062c
+_0808F164: .4byte gSineTable
+ thumb_func_end sub_808F0B4
+
+ thumb_func_start sub_808F168
+sub_808F168: @ 808F168
+ push {r4,lr}
+ adds r3, r0, 0
+ ldr r1, _0808F188
+ ldr r0, [r1]
+ ldr r2, _0808F18C
+ adds r0, r2
+ ldrb r2, [r0]
+ cmp r2, 0
+ beq _0808F190
+ cmp r2, 0x3
+ beq _0808F190
+ adds r0, r3, 0
+ bl DestroySprite
+ b _0808F208
+ .align 2, 0
+_0808F188: .4byte gUnknown_0202FFB4
+_0808F18C: .4byte 0x0000064a
+_0808F190:
+ ldr r4, [r1]
+ ldr r1, _0808F1F0
+ adds r0, r4, r1
+ ldrb r0, [r0]
+ movs r1, 0x60
+ cmp r0, 0
+ bne _0808F1A0
+ movs r1, 0x50
+_0808F1A0:
+ movs r2, 0xCA
+ lsls r2, 3
+ adds r0, r4, r2
+ ldrb r0, [r0]
+ cmp r0, 0
+ beq _0808F1FC
+ adds r2, 0x4
+ adds r0, r4, r2
+ movs r2, 0
+ ldrsh r0, [r0, r2]
+ cmp r0, r1
+ bne _0808F1FC
+ adds r2, r3, 0
+ adds r2, 0x3E
+ ldrb r1, [r2]
+ movs r0, 0x5
+ negs r0, r0
+ ands r0, r1
+ strb r0, [r2]
+ ldr r1, _0808F1F4
+ adds r0, r4, r1
+ ldrh r0, [r0]
+ lsls r0, 4
+ strh r0, [r3, 0x26]
+ ldr r1, _0808F1F8
+ ldrh r2, [r3, 0x32]
+ lsls r0, r2, 24
+ lsrs r0, 23
+ adds r0, r1
+ movs r1, 0
+ ldrsh r0, [r0, r1]
+ cmp r0, 0
+ bge _0808F1E4
+ adds r0, 0x3F
+_0808F1E4:
+ asrs r0, 6
+ strh r0, [r3, 0x24]
+ adds r0, r2, 0
+ adds r0, 0x8
+ strh r0, [r3, 0x32]
+ b _0808F208
+ .align 2, 0
+_0808F1F0: .4byte 0x0000064a
+_0808F1F4: .4byte 0x00000652
+_0808F1F8: .4byte gSineTable
+_0808F1FC:
+ adds r0, r3, 0
+ adds r0, 0x3E
+ ldrb r1, [r0]
+ movs r2, 0x4
+ orrs r1, r2
+ strb r1, [r0]
+_0808F208:
+ pop {r4}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_808F168
+
+ thumb_func_start sub_808F210
+sub_808F210: @ 808F210
+ push {r4,lr}
+ lsls r4, r1, 24
+ lsrs r4, 24
+ ldr r1, _0808F244
+ str r0, [r1]
+ ldr r0, _0808F248
+ movs r1, 0
+ bl CreateTask
+ lsls r0, 24
+ lsrs r0, 24
+ ldr r2, _0808F24C
+ lsls r1, r0, 2
+ adds r1, r0
+ lsls r1, 3
+ adds r1, r2
+ movs r3, 0
+ strh r3, [r1, 0x8]
+ movs r2, 0x1
+ strh r2, [r1, 0xA]
+ strh r3, [r1, 0xC]
+ strh r3, [r1, 0xE]
+ strh r4, [r1, 0x10]
+ pop {r4}
+ pop {r1}
+ bx r1
+ .align 2, 0
+_0808F244: .4byte gUnknown_0202FFBC
+_0808F248: .4byte sub_808F2B0
+_0808F24C: .4byte gTasks
+ thumb_func_end sub_808F210
+
+ thumb_func_start sub_808F250
+sub_808F250: @ 808F250
+ push {lr}
+ lsls r0, 24
+ lsrs r0, 24
+ ldr r2, _0808F274
+ lsls r1, r0, 2
+ adds r1, r0
+ lsls r1, 3
+ adds r1, r2
+ movs r2, 0x8
+ ldrsh r0, [r1, r2]
+ cmp r0, 0
+ bne _0808F27C
+ ldr r1, [r1]
+ ldr r0, _0808F278
+ cmp r1, r0
+ bne _0808F27C
+ movs r0, 0
+ b _0808F27E
+ .align 2, 0
+_0808F274: .4byte gTasks
+_0808F278: .4byte sub_808F6CC
+_0808F27C:
+ movs r0, 0x1
+_0808F27E:
+ pop {r1}
+ bx r1
+ thumb_func_end sub_808F250
+
+ thumb_func_start sub_808F284
+sub_808F284: @ 808F284
+ adds r2, r0, 0
+ lsls r0, r1, 24
+ lsrs r0, 24
+ ldr r1, _0808F2A8
+ str r2, [r1]
+ ldr r2, _0808F2AC
+ lsls r1, r0, 2
+ adds r1, r0
+ lsls r1, 3
+ adds r1, r2
+ movs r3, 0
+ movs r2, 0x1
+ strh r2, [r1, 0x8]
+ strh r3, [r1, 0xA]
+ strh r3, [r1, 0xC]
+ strh r3, [r1, 0xE]
+ bx lr
+ .align 2, 0
+_0808F2A8: .4byte gUnknown_0202FFBC
+_0808F2AC: .4byte gTasks
+ thumb_func_end sub_808F284
+
+ thumb_func_start sub_808F2B0
+sub_808F2B0: @ 808F2B0
+ push {r4-r6,lr}
+ sub sp, 0x4
+ lsls r0, 24
+ lsrs r4, r0, 24
+ ldr r1, _0808F2D0
+ ldr r2, _0808F2D4
+ adds r0, r1, r2
+ ldrb r0, [r0]
+ adds r5, r1, 0
+ cmp r0, 0xA
+ bhi _0808F308
+ lsls r0, 2
+ ldr r1, _0808F2D8
+ adds r0, r1
+ ldr r0, [r0]
+ mov pc, r0
+ .align 2, 0
+_0808F2D0: .4byte gMain
+_0808F2D4: .4byte 0x0000043c
+_0808F2D8: .4byte _0808F2DC
+ .align 2, 0
+_0808F2DC:
+ .4byte _0808F308
+ .4byte _0808F38C
+ .4byte _0808F3D0
+ .4byte _0808F3F4
+ .4byte _0808F418
+ .4byte _0808F52C
+ .4byte _0808F578
+ .4byte _0808F5D4
+ .4byte _0808F614
+ .4byte _0808F672
+ .4byte _0808F694
+_0808F308:
+ ldr r0, _0808F370
+ ldrb r1, [r0, 0x7]
+ movs r0, 0x80
+ ands r0, r1
+ lsls r0, 24
+ lsrs r2, r0, 24
+ cmp r2, 0
+ beq _0808F31A
+ b _0808F6B6
+_0808F31A:
+ ldr r1, _0808F374
+ ldr r0, [r1]
+ ldr r3, _0808F378
+ adds r0, r3
+ movs r6, 0x1
+ strb r6, [r0]
+ ldr r0, [r1]
+ ldr r1, _0808F37C
+ adds r0, r1
+ strb r2, [r0]
+ ldr r1, _0808F380
+ ldr r0, [r5, 0xC]
+ str r0, [r1]
+ movs r0, 0
+ bl SetVBlankCallback
+ movs r2, 0
+ ldr r1, _0808F384
+ lsls r0, r4, 2
+ adds r0, r4
+ lsls r0, 3
+ adds r1, r0, r1
+ movs r3, 0xA
+ ldrsh r0, [r1, r3]
+ cmp r0, 0
+ beq _0808F352
+ movs r2, 0x80
+ lsls r2, 5
+_0808F352:
+ movs r3, 0xC
+ ldrsh r0, [r1, r3]
+ cmp r0, 0
+ beq _0808F362
+ movs r1, 0x80
+ lsls r1, 2
+ adds r0, r1, 0
+ orrs r2, r0
+_0808F362:
+ adds r0, r2, 0
+ bl sub_8091060
+ ldr r2, _0808F388
+ adds r0, r5, r2
+ strb r6, [r0]
+ b _0808F6B6
+ .align 2, 0
+_0808F370: .4byte gPaletteFade
+_0808F374: .4byte gUnknown_0202FFB4
+_0808F378: .4byte 0x0000064a
+_0808F37C: .4byte 0x0000064e
+_0808F380: .4byte gUnknown_03005CEC
+_0808F384: .4byte gTasks
+_0808F388: .4byte 0x0000043c
+_0808F38C:
+ ldr r0, _0808F3B8
+ movs r1, 0xC0
+ lsls r1, 19
+ bl LZ77UnCompVram
+ ldr r0, _0808F3BC
+ ldr r1, _0808F3C0
+ bl LZ77UnCompVram
+ ldr r0, _0808F3C4
+ ldr r0, [r0]
+ ldrh r0, [r0]
+ movs r2, 0xFF
+ lsls r2, 2
+ movs r1, 0x2
+ bl sub_8091738
+ ldr r1, _0808F3C8
+ ldr r3, _0808F3CC
+ adds r1, r3
+ b _0808F682
+ .align 2, 0
+_0808F3B8: .4byte gPokedexMenu_Gfx
+_0808F3BC: .4byte gUnknown_08E96BD4
+_0808F3C0: .4byte 0x06007800
+_0808F3C4: .4byte gUnknown_0202FFBC
+_0808F3C8: .4byte gMain
+_0808F3CC: .4byte 0x0000043c
+_0808F3D0:
+ movs r0, 0xD
+ bl sub_80904FC
+ ldr r0, _0808F3EC
+ ldr r0, [r0]
+ ldr r1, _0808F3F0
+ adds r0, r1
+ ldrb r0, [r0]
+ movs r1, 0xD
+ bl sub_8090584
+ bl sub_808D640
+ b _0808F67C
+ .align 2, 0
+_0808F3EC: .4byte gUnknown_0202FFB4
+_0808F3F0: .4byte 0x0000064d
+_0808F3F4:
+ ldr r4, _0808F40C
+ adds r0, r4, 0
+ bl SetUpWindowConfig
+ adds r0, r4, 0
+ bl InitMenuWindow
+ ldr r1, _0808F410
+ ldr r3, _0808F414
+ adds r1, r3
+ b _0808F682
+ .align 2, 0
+_0808F40C: .4byte gWindowConfig_81E7064
+_0808F410: .4byte gMain
+_0808F414: .4byte 0x0000043c
+_0808F418:
+ ldr r0, _0808F440
+ ldr r0, [r0]
+ ldr r1, _0808F444
+ adds r0, r1
+ ldrh r0, [r0]
+ cmp r0, 0
+ bne _0808F44C
+ ldr r0, _0808F448
+ ldr r0, [r0]
+ ldrh r0, [r0]
+ bl NationalToHoennOrder
+ lsls r0, 16
+ lsrs r0, 16
+ movs r1, 0xD
+ movs r2, 0x3
+ bl sub_8091154
+ b _0808F45A
+ .align 2, 0
+_0808F440: .4byte gUnknown_0202FFB4
+_0808F444: .4byte 0x00000612
+_0808F448: .4byte gUnknown_0202FFBC
+_0808F44C:
+ ldr r0, _0808F4F8
+ ldr r0, [r0]
+ ldrh r0, [r0]
+ movs r1, 0xD
+ movs r2, 0x3
+ bl sub_8091154
+_0808F45A:
+ ldr r5, _0808F4F8
+ ldr r0, [r5]
+ ldrh r0, [r0]
+ movs r1, 0x10
+ movs r2, 0x3
+ bl sub_80911C8
+ ldr r0, _0808F4FC
+ movs r1, 0xB
+ movs r2, 0x5
+ bl MenuPrint
+ ldr r0, _0808F500
+ movs r1, 0x10
+ movs r2, 0x7
+ bl MenuPrint
+ ldr r0, _0808F504
+ movs r1, 0x10
+ movs r2, 0x9
+ bl MenuPrint
+ ldr r2, [r5]
+ ldrb r1, [r2, 0x2]
+ movs r0, 0x2
+ ands r0, r1
+ cmp r0, 0
+ beq _0808F50C
+ ldrh r1, [r2]
+ lsls r0, r1, 3
+ adds r0, r1
+ lsls r0, 2
+ ldr r4, _0808F508
+ adds r0, r4
+ movs r1, 0xB
+ movs r2, 0x5
+ bl sub_8091304
+ ldr r0, [r5]
+ ldrh r1, [r0]
+ lsls r0, r1, 3
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r4
+ ldrh r0, [r0, 0xC]
+ movs r1, 0x10
+ movs r2, 0x7
+ bl sub_8091458
+ ldr r0, [r5]
+ ldrh r1, [r0]
+ lsls r0, r1, 3
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r4
+ ldrh r0, [r0, 0xE]
+ movs r1, 0x10
+ movs r2, 0x9
+ bl sub_8091564
+ ldr r0, [r5]
+ ldrh r1, [r0]
+ lsls r0, r1, 3
+ adds r0, r1
+ lsls r0, 2
+ adds r4, 0x10
+ adds r0, r4
+ ldr r0, [r0]
+ movs r1, 0x2
+ movs r2, 0xD
+ bl MenuPrint
+ movs r1, 0xFF
+ lsls r1, 2
+ movs r0, 0xE
+ bl sub_80917CC
+ b _0808F67C
+ .align 2, 0
+_0808F4F8: .4byte gUnknown_0202FFBC
+_0808F4FC: .4byte gDexText_UnknownPoke
+_0808F500: .4byte gDexText_UnknownHeight
+_0808F504: .4byte gDexText_UnknownWeight
+_0808F508: .4byte gPokedexEntries
+_0808F50C:
+ ldr r0, _0808F524
+ movs r1, 0x2
+ movs r2, 0xD
+ bl MenuPrint
+ ldr r0, _0808F528
+ movs r1, 0x31
+ movs r2, 0x1E
+ bl LoadPalette
+ b _0808F67C
+ .align 2, 0
+_0808F524: .4byte gUnknown_083A05F8
+_0808F528: .4byte gPlttBufferUnfaded + 0x2
+_0808F52C:
+ ldr r0, _0808F56C
+ lsls r1, r4, 2
+ adds r1, r4
+ lsls r1, 3
+ adds r4, r1, r0
+ movs r3, 0xA
+ ldrsh r0, [r4, r3]
+ cmp r0, 0
+ beq _0808F540
+ b _0808F67C
+_0808F540:
+ ldr r0, _0808F570
+ ldr r0, [r0]
+ ldrh r0, [r0]
+ movs r1, 0x30
+ movs r2, 0x38
+ movs r3, 0
+ bl sub_80918EC
+ strh r0, [r4, 0x10]
+ ldr r2, _0808F574
+ movs r1, 0x10
+ ldrsh r0, [r4, r1]
+ lsls r1, r0, 4
+ adds r1, r0
+ lsls r1, 2
+ adds r1, r2
+ ldrb r2, [r1, 0x5]
+ movs r0, 0xD
+ negs r0, r0
+ ands r0, r2
+ strb r0, [r1, 0x5]
+ b _0808F67C
+ .align 2, 0
+_0808F56C: .4byte gTasks
+_0808F570: .4byte gUnknown_0202FFBC
+_0808F574: .4byte gSprites
+_0808F578:
+ movs r3, 0
+ ldr r0, _0808F5C8
+ lsls r1, r4, 2
+ adds r1, r4
+ lsls r1, 3
+ adds r1, r0
+ movs r2, 0xC
+ ldrsh r0, [r1, r2]
+ cmp r0, 0
+ beq _0808F58E
+ movs r3, 0x14
+_0808F58E:
+ movs r2, 0xA
+ ldrsh r0, [r1, r2]
+ cmp r0, 0
+ beq _0808F5B0
+ ldr r2, _0808F5CC
+ movs r0, 0x10
+ ldrsh r1, [r1, r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r2
+ ldrb r1, [r0, 0x5]
+ lsrs r1, 4
+ adds r1, 0x10
+ movs r0, 0x1
+ lsls r0, r1
+ orrs r3, r0
+_0808F5B0:
+ mvns r0, r3
+ movs r1, 0
+ str r1, [sp]
+ movs r2, 0x10
+ movs r3, 0
+ bl BeginNormalPaletteFade
+ ldr r0, _0808F5D0
+ ldr r0, [r0]
+ bl SetVBlankCallback
+ b _0808F67C
+ .align 2, 0
+_0808F5C8: .4byte gTasks
+_0808F5CC: .4byte gSprites
+_0808F5D0: .4byte gUnknown_03005CEC
+_0808F5D4:
+ ldr r0, _0808F604
+ movs r1, 0
+ strh r1, [r0]
+ adds r0, 0x2
+ strh r1, [r0]
+ adds r0, 0x2
+ strh r1, [r0]
+ ldr r1, _0808F608
+ ldr r3, _0808F60C
+ adds r0, r3, 0
+ strh r0, [r1]
+ subs r1, 0x4
+ movs r2, 0xD0
+ lsls r2, 4
+ adds r0, r2, 0
+ strh r0, [r1]
+ subs r1, 0xA
+ movs r3, 0xF2
+ lsls r3, 5
+ adds r0, r3, 0
+ strh r0, [r1]
+ ldr r0, _0808F610
+ adds r1, r5, r0
+ b _0808F682
+ .align 2, 0
+_0808F604: .4byte REG_BLDCNT
+_0808F608: .4byte REG_BG3CNT
+_0808F60C: .4byte 0x00000f03
+_0808F610: .4byte 0x0000043c
+_0808F614:
+ ldr r0, _0808F65C
+ ldrb r1, [r0, 0x7]
+ movs r0, 0x80
+ ands r0, r1
+ cmp r0, 0
+ bne _0808F6B6
+ ldr r1, _0808F660
+ adds r2, r5, r1
+ ldrb r0, [r2]
+ adds r3, r0, 0x1
+ strb r3, [r2]
+ ldr r1, _0808F664
+ lsls r0, r4, 2
+ adds r0, r4
+ lsls r0, 3
+ adds r0, r1
+ movs r1, 0xE
+ ldrsh r0, [r0, r1]
+ cmp r0, 0
+ bne _0808F66C
+ bl StopCryAndClearCrySongs
+ ldr r0, _0808F668
+ ldr r0, [r0]
+ ldrh r0, [r0]
+ bl NationalPokedexNumToSpecies
+ lsls r0, 16
+ lsrs r0, 16
+ movs r1, 0
+ movs r2, 0x7D
+ movs r3, 0xA
+ bl PlayCry2
+ b _0808F6B6
+ .align 2, 0
+_0808F65C: .4byte gPaletteFade
+_0808F660: .4byte 0x0000043c
+_0808F664: .4byte gTasks
+_0808F668: .4byte gUnknown_0202FFBC
+_0808F66C:
+ adds r0, r3, 0x1
+ strb r0, [r2]
+ b _0808F6B6
+_0808F672:
+ bl IsCryPlayingOrClearCrySongs
+ lsls r0, 24
+ cmp r0, 0
+ bne _0808F6B6
+_0808F67C:
+ ldr r1, _0808F68C
+ ldr r2, _0808F690
+ adds r1, r2
+_0808F682:
+ ldrb r0, [r1]
+ adds r0, 0x1
+ strb r0, [r1]
+ b _0808F6B6
+ .align 2, 0
+_0808F68C: .4byte gMain
+_0808F690: .4byte 0x0000043c
+_0808F694:
+ ldr r1, _0808F6C0
+ lsls r0, r4, 2
+ adds r0, r4
+ lsls r0, 3
+ adds r0, r1
+ movs r2, 0
+ movs r1, 0
+ strh r1, [r0, 0x8]
+ strh r1, [r0, 0xA]
+ movs r1, 0x1
+ strh r1, [r0, 0xC]
+ strh r1, [r0, 0xE]
+ ldr r1, _0808F6C4
+ str r1, [r0]
+ ldr r3, _0808F6C8
+ adds r0, r5, r3
+ strb r2, [r0]
+_0808F6B6:
+ add sp, 0x4
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0808F6C0: .4byte gTasks
+_0808F6C4: .4byte sub_808F6CC
+_0808F6C8: .4byte 0x0000043c
+ thumb_func_end sub_808F2B0
+
+ thumb_func_start sub_808F6CC
+sub_808F6CC: @ 808F6CC
+ push {r4-r6,lr}
+ sub sp, 0x4
+ lsls r0, 24
+ lsrs r0, 24
+ ldr r2, _0808F704
+ lsls r1, r0, 2
+ adds r1, r0
+ lsls r1, 3
+ adds r5, r1, r2
+ movs r0, 0x8
+ ldrsh r4, [r5, r0]
+ cmp r4, 0
+ beq _0808F70C
+ movs r0, 0x1
+ negs r0, r0
+ movs r1, 0
+ str r1, [sp]
+ movs r2, 0
+ movs r3, 0x10
+ bl BeginNormalPaletteFade
+ ldr r0, _0808F708
+ str r0, [r5]
+ movs r0, 0x6C
+ bl PlaySE
+ b _0808F874
+ .align 2, 0
+_0808F704: .4byte gTasks
+_0808F708: .4byte sub_808F888
+_0808F70C:
+ ldr r1, _0808F73C
+ ldrh r2, [r1, 0x2E]
+ movs r6, 0x2
+ adds r0, r6, 0
+ ands r0, r2
+ lsls r0, 16
+ lsrs r3, r0, 16
+ cmp r3, 0
+ beq _0808F744
+ movs r0, 0x1
+ negs r0, r0
+ str r4, [sp]
+ movs r1, 0
+ movs r2, 0
+ movs r3, 0x10
+ bl BeginNormalPaletteFade
+ ldr r0, _0808F740
+ str r0, [r5]
+ movs r0, 0x3
+ bl PlaySE
+ b _0808F874
+ .align 2, 0
+_0808F73C: .4byte gMain
+_0808F740: .4byte sub_808F8B8
+_0808F744:
+ movs r0, 0x1
+ ands r0, r2
+ cmp r0, 0
+ beq _0808F7E8
+ ldr r0, _0808F764
+ ldr r0, [r0]
+ ldr r1, _0808F768
+ adds r0, r1
+ ldrb r0, [r0]
+ cmp r0, 0x1
+ beq _0808F77C
+ cmp r0, 0x1
+ bgt _0808F76C
+ cmp r0, 0
+ beq _0808F776
+ b _0808F874
+ .align 2, 0
+_0808F764: .4byte gUnknown_0202FFB4
+_0808F768: .4byte 0x0000064d
+_0808F76C:
+ cmp r0, 0x2
+ beq _0808F794
+ cmp r0, 0x3
+ beq _0808F7AC
+ b _0808F874
+_0808F776:
+ bl sub_8090C68
+ b _0808F874
+_0808F77C:
+ movs r0, 0x15
+ negs r0, r0
+ str r3, [sp]
+ movs r1, 0
+ movs r2, 0
+ movs r3, 0x10
+ bl BeginNormalPaletteFade
+ ldr r0, _0808F790
+ b _0808F7DA
+ .align 2, 0
+_0808F790: .4byte sub_808F8D8
+_0808F794:
+ movs r0, 0x15
+ negs r0, r0
+ str r3, [sp]
+ movs r1, 0
+ movs r2, 0
+ movs r3, 0x10
+ bl BeginNormalPaletteFade
+ ldr r0, _0808F7A8
+ b _0808F7DA
+ .align 2, 0
+_0808F7A8: .4byte sub_808FA64
+_0808F7AC:
+ ldr r0, _0808F7C4
+ ldr r0, [r0]
+ ldrb r1, [r0, 0x2]
+ adds r0, r6, 0
+ ands r0, r1
+ cmp r0, 0
+ bne _0808F7C8
+ movs r0, 0x20
+ bl PlaySE
+ b _0808F874
+ .align 2, 0
+_0808F7C4: .4byte gUnknown_0202FFBC
+_0808F7C8:
+ movs r0, 0x15
+ negs r0, r0
+ str r3, [sp]
+ movs r1, 0
+ movs r2, 0
+ movs r3, 0x10
+ bl BeginNormalPaletteFade
+ ldr r0, _0808F7E4
+_0808F7DA:
+ str r0, [r5]
+ movs r0, 0x15
+ bl PlaySE
+ b _0808F874
+ .align 2, 0
+_0808F7E4: .4byte sub_8090070
+_0808F7E8:
+ movs r0, 0x20
+ ands r0, r2
+ cmp r0, 0
+ bne _0808F802
+ movs r0, 0x80
+ lsls r0, 2
+ ands r0, r2
+ cmp r0, 0
+ beq _0808F834
+ ldr r0, _0808F828
+ ldrb r0, [r0, 0x13]
+ cmp r0, 0x1
+ bne _0808F834
+_0808F802:
+ ldr r3, _0808F82C
+ ldr r0, [r3]
+ ldr r4, _0808F830
+ adds r2, r0, r4
+ ldrb r0, [r2]
+ cmp r0, 0
+ beq _0808F834
+ subs r0, 0x1
+ strb r0, [r2]
+ ldr r0, [r3]
+ adds r0, r4
+ ldrb r0, [r0]
+ movs r1, 0xD
+ bl sub_8090584
+ movs r0, 0x6D
+ bl PlaySE
+ b _0808F874
+ .align 2, 0
+_0808F828: .4byte gSaveBlock2
+_0808F82C: .4byte gUnknown_0202FFB4
+_0808F830: .4byte 0x0000064d
+_0808F834:
+ ldrh r1, [r1, 0x2E]
+ movs r0, 0x10
+ ands r0, r1
+ cmp r0, 0
+ bne _0808F850
+ movs r0, 0x80
+ lsls r0, 1
+ ands r0, r1
+ cmp r0, 0
+ beq _0808F874
+ ldr r0, _0808F87C
+ ldrb r0, [r0, 0x13]
+ cmp r0, 0x1
+ bne _0808F874
+_0808F850:
+ ldr r2, _0808F880
+ ldr r0, [r2]
+ ldr r3, _0808F884
+ adds r1, r0, r3
+ ldrb r0, [r1]
+ cmp r0, 0x2
+ bhi _0808F874
+ adds r0, 0x1
+ strb r0, [r1]
+ ldr r0, [r2]
+ adds r0, r3
+ ldrb r0, [r0]
+ movs r1, 0xD
+ bl sub_8090584
+ movs r0, 0x6D
+ bl PlaySE
+_0808F874:
+ add sp, 0x4
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0808F87C: .4byte gSaveBlock2
+_0808F880: .4byte gUnknown_0202FFB4
+_0808F884: .4byte 0x0000064d
+ thumb_func_end sub_808F6CC
+
+ thumb_func_start sub_808F888
+sub_808F888: @ 808F888
+ push {lr}
+ lsls r0, 24
+ lsrs r2, r0, 24
+ ldr r0, _0808F8AC
+ ldrb r1, [r0, 0x7]
+ movs r0, 0x80
+ ands r0, r1
+ cmp r0, 0
+ bne _0808F8A8
+ ldr r0, _0808F8B0
+ lsls r1, r2, 2
+ adds r1, r2
+ lsls r1, 3
+ adds r1, r0
+ ldr r0, _0808F8B4
+ str r0, [r1]
+_0808F8A8:
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0808F8AC: .4byte gPaletteFade
+_0808F8B0: .4byte gTasks
+_0808F8B4: .4byte sub_808F2B0
+ thumb_func_end sub_808F888
+
+ thumb_func_start sub_808F8B8
+sub_808F8B8: @ 808F8B8
+ push {lr}
+ lsls r0, 24
+ lsrs r2, r0, 24
+ ldr r0, _0808F8D4
+ ldrb r1, [r0, 0x7]
+ movs r0, 0x80
+ ands r0, r1
+ cmp r0, 0
+ bne _0808F8D0
+ adds r0, r2, 0
+ bl DestroyTask
+_0808F8D0:
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0808F8D4: .4byte gPaletteFade
+ thumb_func_end sub_808F8B8
+
+ thumb_func_start sub_808F8D8
+sub_808F8D8: @ 808F8D8
+ push {r4-r7,lr}
+ lsls r0, 24
+ lsrs r7, r0, 24
+ ldr r2, _0808F92C
+ ldr r0, _0808F930
+ adds r6, r2, r0
+ ldrb r0, [r6]
+ cmp r0, 0x1
+ beq _0808F948
+ cmp r0, 0x1
+ ble _0808F8F2
+ cmp r0, 0x2
+ beq _0808F970
+_0808F8F2:
+ ldr r0, _0808F934
+ ldrb r1, [r0, 0x7]
+ movs r0, 0x80
+ ands r0, r1
+ cmp r0, 0
+ bne _0808F9AA
+ ldr r4, _0808F938
+ ldr r0, [r4]
+ ldr r1, _0808F93C
+ adds r0, r1
+ movs r1, 0x5
+ strb r1, [r0]
+ ldr r1, _0808F940
+ ldr r0, [r2, 0xC]
+ str r0, [r1]
+ movs r0, 0
+ bl SetVBlankCallback
+ movs r0, 0x80
+ lsls r0, 2
+ bl sub_8091060
+ ldr r0, [r4]
+ ldr r2, _0808F944
+ adds r0, r2
+ movs r1, 0x1
+ strb r1, [r0]
+ strb r1, [r6]
+ b _0808F9AA
+ .align 2, 0
+_0808F92C: .4byte gMain
+_0808F930: .4byte 0x0000043c
+_0808F934: .4byte gPaletteFade
+_0808F938: .4byte gUnknown_0202FFB4
+_0808F93C: .4byte 0x0000064a
+_0808F940: .4byte gUnknown_03005CEC
+_0808F944: .4byte 0x0000064d
+_0808F948:
+ movs r0, 0xD
+ bl sub_8090540
+ movs r0, 0x1
+ movs r1, 0xD
+ bl sub_8090644
+ bl sub_808D640
+ ldr r1, _0808F96C
+ movs r2, 0xD0
+ lsls r2, 4
+ adds r0, r2, 0
+ strh r0, [r1]
+ ldrb r0, [r6]
+ adds r0, 0x1
+ strb r0, [r6]
+ b _0808F9AA
+ .align 2, 0
+_0808F96C: .4byte REG_BG1CNT
+_0808F970:
+ ldr r0, _0808F9B0
+ ldr r0, [r0]
+ ldrh r0, [r0]
+ bl NationalPokedexNumToSpecies
+ lsls r0, 16
+ lsrs r0, 16
+ ldr r5, _0808F9B4
+ ldr r1, [r5]
+ ldr r4, _0808F9B8
+ adds r1, r4
+ bl sub_81113AC
+ ldr r0, _0808F9BC
+ ldr r0, [r0]
+ bl SetVBlankCallback
+ ldr r0, [r5]
+ adds r0, r4
+ movs r1, 0
+ strb r1, [r0]
+ strb r1, [r6]
+ ldr r1, _0808F9C0
+ lsls r0, r7, 2
+ adds r0, r7
+ lsls r0, 3
+ adds r0, r1
+ ldr r1, _0808F9C4
+ str r1, [r0]
+_0808F9AA:
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0808F9B0: .4byte gUnknown_0202FFBC
+_0808F9B4: .4byte gUnknown_0202FFB4
+_0808F9B8: .4byte 0x0000064f
+_0808F9BC: .4byte gUnknown_03005CEC
+_0808F9C0: .4byte gTasks
+_0808F9C4: .4byte sub_808F9C8
+ thumb_func_end sub_808F8D8
+
+ thumb_func_start sub_808F9C8
+sub_808F9C8: @ 808F9C8
+ push {lr}
+ lsls r0, 24
+ lsrs r2, r0, 24
+ ldr r0, _0808F9F0
+ ldr r0, [r0]
+ ldr r1, _0808F9F4
+ adds r0, r1
+ ldrb r0, [r0]
+ cmp r0, 0
+ beq _0808F9EA
+ ldr r0, _0808F9F8
+ lsls r1, r2, 2
+ adds r1, r2
+ lsls r1, 3
+ adds r1, r0
+ ldr r0, _0808F9FC
+ str r0, [r1]
+_0808F9EA:
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0808F9F0: .4byte gUnknown_0202FFB4
+_0808F9F4: .4byte 0x0000064f
+_0808F9F8: .4byte gTasks
+_0808F9FC: .4byte sub_808FA00
+ thumb_func_end sub_808F9C8
+
+ thumb_func_start sub_808FA00
+sub_808FA00: @ 808FA00
+ push {lr}
+ lsls r0, 24
+ lsrs r2, r0, 24
+ ldr r0, _0808FA34
+ ldrb r1, [r0, 0x7]
+ movs r0, 0x80
+ ands r0, r1
+ cmp r0, 0
+ bne _0808FA56
+ ldr r0, _0808FA38
+ ldr r0, [r0]
+ ldr r1, _0808FA3C
+ adds r0, r1
+ ldrb r0, [r0]
+ cmp r0, 0x1
+ beq _0808FA24
+ cmp r0, 0x2
+ beq _0808FA48
+_0808FA24:
+ ldr r0, _0808FA40
+ lsls r1, r2, 2
+ adds r1, r2
+ lsls r1, 3
+ adds r1, r0
+ ldr r0, _0808FA44
+ b _0808FA54
+ .align 2, 0
+_0808FA34: .4byte gPaletteFade
+_0808FA38: .4byte gUnknown_0202FFB4
+_0808FA3C: .4byte 0x0000064f
+_0808FA40: .4byte gTasks
+_0808FA44: .4byte sub_808F2B0
+_0808FA48:
+ ldr r0, _0808FA5C
+ lsls r1, r2, 2
+ adds r1, r2
+ lsls r1, 3
+ adds r1, r0
+ ldr r0, _0808FA60
+_0808FA54:
+ str r0, [r1]
+_0808FA56:
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0808FA5C: .4byte gTasks
+_0808FA60: .4byte sub_808FA64
+ thumb_func_end sub_808FA00
+
+ thumb_func_start sub_808FA64
+sub_808FA64: @ 808FA64
+ push {r4,r5,lr}
+ sub sp, 0x18
+ lsls r0, 24
+ lsrs r4, r0, 24
+ ldr r1, _0808FA84
+ ldr r2, _0808FA88
+ adds r0, r1, r2
+ ldrb r0, [r0]
+ adds r2, r1, 0
+ cmp r0, 0xA
+ bhi _0808FABC
+ lsls r0, 2
+ ldr r1, _0808FA8C
+ adds r0, r1
+ ldr r0, [r0]
+ mov pc, r0
+ .align 2, 0
+_0808FA84: .4byte gMain
+_0808FA88: .4byte 0x0000043c
+_0808FA8C: .4byte _0808FA90
+ .align 2, 0
+_0808FA90:
+ .4byte _0808FABC
+ .4byte _0808FB28
+ .4byte _0808FB58
+ .4byte _0808FB9C
+ .4byte _0808FBC4
+ .4byte _0808FBF8
+ .4byte _0808FC54
+ .4byte _0808FCD4
+ .4byte _0808FD40
+ .4byte _0808FD6C
+ .4byte _0808FDBC
+_0808FABC:
+ ldr r0, _0808FB08
+ ldrb r1, [r0, 0x7]
+ movs r0, 0x80
+ ands r0, r1
+ cmp r0, 0
+ beq _0808FACA
+ b _0808FDDC
+_0808FACA:
+ ldr r0, _0808FB0C
+ bl m4aMPlayStop
+ ldr r5, _0808FB10
+ ldr r0, [r5]
+ ldr r3, _0808FB14
+ adds r0, r3
+ movs r1, 0x6
+ strb r1, [r0]
+ ldr r1, _0808FB18
+ ldr r4, _0808FB1C
+ ldr r0, [r4, 0xC]
+ str r0, [r1]
+ movs r0, 0
+ bl SetVBlankCallback
+ movs r0, 0x80
+ lsls r0, 2
+ bl sub_8091060
+ ldr r0, [r5]
+ ldr r1, _0808FB20
+ adds r0, r1
+ movs r1, 0x2
+ strb r1, [r0]
+ ldr r2, _0808FB24
+ adds r4, r2
+ movs r0, 0x1
+ strb r0, [r4]
+ b _0808FDDC
+ .align 2, 0
+_0808FB08: .4byte gPaletteFade
+_0808FB0C: .4byte gMPlay_BGM
+_0808FB10: .4byte gUnknown_0202FFB4
+_0808FB14: .4byte 0x0000064a
+_0808FB18: .4byte gUnknown_03005CEC
+_0808FB1C: .4byte gMain
+_0808FB20: .4byte 0x0000064d
+_0808FB24: .4byte 0x0000043c
+_0808FB28:
+ ldr r0, _0808FB44
+ movs r1, 0xC0
+ lsls r1, 19
+ bl LZ77UnCompVram
+ ldr r0, _0808FB48
+ ldr r1, _0808FB4C
+ bl LZ77UnCompVram
+ ldr r1, _0808FB50
+ ldr r3, _0808FB54
+ adds r1, r3
+ b _0808FDA0
+ .align 2, 0
+_0808FB44: .4byte gPokedexMenu_Gfx
+_0808FB48: .4byte gUnknown_0839F8A0
+_0808FB4C: .4byte 0x06007000
+_0808FB50: .4byte gMain
+_0808FB54: .4byte 0x0000043c
+_0808FB58:
+ movs r0, 0xD
+ bl sub_8090540
+ movs r0, 0x2
+ movs r1, 0xD
+ bl sub_8090644
+ bl sub_808D640
+ ldr r2, _0808FB88
+ add r1, sp, 0x4
+ movs r0, 0
+ strh r0, [r1]
+ ldr r0, _0808FB8C
+ str r1, [r0]
+ str r2, [r0, 0x4]
+ ldr r1, _0808FB90
+ str r1, [r0, 0x8]
+ ldr r0, [r0, 0x8]
+ ldr r1, _0808FB94
+ ldr r4, _0808FB98
+ adds r1, r4
+ b _0808FDA0
+ .align 2, 0
+_0808FB88: .4byte 0x0600f800
+_0808FB8C: .4byte 0x040000d4
+_0808FB90: .4byte 0x81000280
+_0808FB94: .4byte gMain
+_0808FB98: .4byte 0x0000043c
+_0808FB9C:
+ ldr r4, _0808FBB8
+ adds r0, r4, 0
+ bl SetUpWindowConfig
+ adds r0, r4, 0
+ bl InitMenuWindow
+ bl ResetPaletteFade
+ ldr r1, _0808FBBC
+ ldr r0, _0808FBC0
+ adds r1, r0
+ b _0808FDA0
+ .align 2, 0
+_0808FBB8: .4byte gWindowConfig_81E702C
+_0808FBBC: .4byte gMain
+_0808FBC0: .4byte 0x0000043c
+_0808FBC4:
+ ldr r0, _0808FBE8
+ movs r1, 0xA
+ movs r2, 0x4
+ bl MenuPrint
+ ldr r0, _0808FBEC
+ ldr r0, [r0]
+ ldrh r0, [r0]
+ movs r1, 0xA
+ movs r2, 0x6
+ movs r3, 0x2
+ bl sub_8091260
+ ldr r1, _0808FBF0
+ ldr r2, _0808FBF4
+ adds r1, r2
+ b _0808FDA0
+ .align 2, 0
+_0808FBE8: .4byte gDexText_CryOf
+_0808FBEC: .4byte gUnknown_0202FFBC
+_0808FBF0: .4byte gMain
+_0808FBF4: .4byte 0x0000043c
+_0808FBF8:
+ ldr r0, _0808FC3C
+ ldr r0, [r0]
+ ldrh r0, [r0]
+ movs r1, 0x30
+ movs r2, 0x38
+ movs r3, 0
+ bl sub_80918EC
+ ldr r2, _0808FC40
+ lsls r1, r4, 2
+ adds r1, r4
+ lsls r1, 3
+ adds r1, r2
+ movs r3, 0
+ strh r0, [r1, 0x10]
+ ldr r2, _0808FC44
+ movs r4, 0x10
+ ldrsh r0, [r1, r4]
+ lsls r1, r0, 4
+ adds r1, r0
+ lsls r1, 2
+ adds r1, r2
+ ldrb r2, [r1, 0x5]
+ movs r0, 0xD
+ negs r0, r0
+ ands r0, r2
+ strb r0, [r1, 0x5]
+ ldr r0, _0808FC48
+ strb r3, [r0]
+ ldr r1, _0808FC4C
+ ldr r0, _0808FC50
+ adds r1, r0
+ b _0808FDA0
+ .align 2, 0
+_0808FC3C: .4byte gUnknown_0202FFBC
+_0808FC40: .4byte gTasks
+_0808FC44: .4byte gSprites
+_0808FC48: .4byte gUnknown_03005E98
+_0808FC4C: .4byte gMain
+_0808FC50: .4byte 0x0000043c
+_0808FC54:
+ ldr r1, _0808FCB0
+ ldr r0, [sp, 0x8]
+ ands r0, r1
+ ldr r1, _0808FCB4
+ orrs r0, r1
+ ldr r1, _0808FCB8
+ ands r0, r1
+ movs r1, 0xF8
+ lsls r1, 13
+ orrs r0, r1
+ ldr r1, _0808FCBC
+ ands r0, r1
+ movs r1, 0x80
+ lsls r1, 20
+ orrs r0, r1
+ str r0, [sp, 0x8]
+ ldr r2, _0808FCC0
+ add r0, sp, 0x8
+ ldr r1, [r0, 0x4]
+ ands r1, r2
+ movs r2, 0xF0
+ lsls r2, 5
+ orrs r1, r2
+ ldr r2, _0808FCC4
+ ands r1, r2
+ movs r2, 0xC
+ orrs r1, r2
+ str r1, [r0, 0x4]
+ movs r1, 0
+ bl sub_8119E3C
+ lsls r0, 24
+ cmp r0, 0
+ bne _0808FC9A
+ b _0808FDDC
+_0808FC9A:
+ ldr r1, _0808FCC8
+ ldr r2, _0808FCCC
+ adds r1, r2
+ ldrb r0, [r1]
+ adds r0, 0x1
+ movs r2, 0
+ strb r0, [r1]
+ ldr r0, _0808FCD0
+ strb r2, [r0]
+ b _0808FDDC
+ .align 2, 0
+_0808FCB0: .4byte 0xffff0000
+_0808FCB4: .4byte 0x00004020
+_0808FCB8: .4byte 0xff00ffff
+_0808FCBC: .4byte 0x00ffffff
+_0808FCC0: .4byte 0xffff00ff
+_0808FCC4: .4byte 0xffffff00
+_0808FCC8: .4byte gMain
+_0808FCCC: .4byte 0x0000043c
+_0808FCD0: .4byte gUnknown_03005E98
+_0808FCD4:
+ ldr r1, _0808FD24
+ ldr r0, [sp, 0x10]
+ ands r0, r1
+ movs r1, 0xC0
+ lsls r1, 6
+ orrs r0, r1
+ ldr r1, _0808FD28
+ ands r0, r1
+ movs r1, 0xE0
+ lsls r1, 12
+ orrs r0, r1
+ ldr r1, _0808FD2C
+ ands r0, r1
+ movs r1, 0x90
+ lsls r1, 20
+ orrs r0, r1
+ str r0, [sp, 0x10]
+ ldr r2, _0808FD30
+ add r0, sp, 0x10
+ ldr r1, [r0, 0x4]
+ ands r1, r2
+ movs r2, 0x12
+ orrs r1, r2
+ ldr r2, _0808FD34
+ ands r1, r2
+ movs r2, 0xC0
+ lsls r2, 2
+ orrs r1, r2
+ str r1, [r0, 0x4]
+ movs r1, 0x1
+ bl sub_811A3CC
+ lsls r0, 24
+ cmp r0, 0
+ beq _0808FDDC
+ ldr r1, _0808FD38
+ ldr r3, _0808FD3C
+ adds r1, r3
+ b _0808FDA0
+ .align 2, 0
+_0808FD24: .4byte 0xffff0000
+_0808FD28: .4byte 0xff00ffff
+_0808FD2C: .4byte 0x00ffffff
+_0808FD30: .4byte 0xffffff00
+_0808FD34: .4byte 0xffff00ff
+_0808FD38: .4byte gMain
+_0808FD3C: .4byte 0x0000043c
+_0808FD40:
+ movs r0, 0x15
+ negs r0, r0
+ movs r1, 0
+ str r1, [sp]
+ movs r2, 0x10
+ movs r3, 0
+ bl BeginNormalPaletteFade
+ ldr r0, _0808FD60
+ ldr r0, [r0]
+ bl SetVBlankCallback
+ ldr r1, _0808FD64
+ ldr r4, _0808FD68
+ adds r1, r4
+ b _0808FDA0
+ .align 2, 0
+_0808FD60: .4byte gUnknown_03005CEC
+_0808FD64: .4byte gMain
+_0808FD68: .4byte 0x0000043c
+_0808FD6C:
+ ldr r0, _0808FDA8
+ movs r1, 0
+ strh r1, [r0]
+ adds r0, 0x2
+ strh r1, [r0]
+ adds r0, 0x2
+ strh r1, [r0]
+ ldr r1, _0808FDAC
+ ldr r3, _0808FDB0
+ adds r0, r3, 0
+ strh r0, [r1]
+ subs r1, 0x4
+ ldr r4, _0808FDB4
+ adds r0, r4, 0
+ strh r0, [r1]
+ adds r1, 0x2
+ movs r3, 0xD0
+ lsls r3, 4
+ adds r0, r3, 0
+ strh r0, [r1]
+ subs r1, 0xA
+ adds r4, 0x39
+ adds r0, r4, 0
+ strh r0, [r1]
+ ldr r0, _0808FDB8
+ adds r1, r2, r0
+_0808FDA0:
+ ldrb r0, [r1]
+ adds r0, 0x1
+ strb r0, [r1]
+ b _0808FDDC
+ .align 2, 0
+_0808FDA8: .4byte REG_BLDCNT
+_0808FDAC: .4byte REG_BG2CNT
+_0808FDB0: .4byte 0x00000e02
+_0808FDB4: .4byte 0x00001f07
+_0808FDB8: .4byte 0x0000043c
+_0808FDBC:
+ ldr r0, _0808FDE4
+ ldr r0, [r0]
+ ldr r1, _0808FDE8
+ adds r0, r1
+ movs r1, 0
+ strb r1, [r0]
+ ldr r3, _0808FDEC
+ adds r0, r2, r3
+ strb r1, [r0]
+ ldr r1, _0808FDF0
+ lsls r0, r4, 2
+ adds r0, r4
+ lsls r0, 3
+ adds r0, r1
+ ldr r1, _0808FDF4
+ str r1, [r0]
+_0808FDDC:
+ add sp, 0x18
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0808FDE4: .4byte gUnknown_0202FFB4
+_0808FDE8: .4byte 0x0000064f
+_0808FDEC: .4byte 0x0000043c
+_0808FDF0: .4byte gTasks
+_0808FDF4: .4byte sub_808FDF8
+ thumb_func_end sub_808FA64
+
+ thumb_func_start sub_808FDF8
+sub_808FDF8: @ 808FDF8
+ push {r4,r5,lr}
+ sub sp, 0x4
+ lsls r0, 24
+ lsrs r4, r0, 24
+ movs r0, 0
+ bl sub_8119F88
+ bl IsCryPlaying
+ lsls r0, 24
+ cmp r0, 0
+ beq _0808FE18
+ movs r0, 0x1
+ bl sub_8090040
+ b _0808FE1E
+_0808FE18:
+ movs r0, 0
+ bl sub_8090040
+_0808FE1E:
+ ldr r1, _0808FE48
+ ldrh r2, [r1, 0x2E]
+ movs r0, 0x1
+ ands r0, r2
+ adds r5, r1, 0
+ cmp r0, 0
+ beq _0808FE50
+ movs r0, 0x1
+ bl sub_8090040
+ ldr r0, _0808FE4C
+ ldr r0, [r0]
+ ldrh r0, [r0]
+ bl NationalPokedexNumToSpecies
+ lsls r0, 16
+ lsrs r0, 16
+ bl sub_811A050
+ b _0808FF9E
+ .align 2, 0
+_0808FE48: .4byte gMain
+_0808FE4C: .4byte gUnknown_0202FFBC
+_0808FE50:
+ ldr r0, _0808FEA8
+ ldrb r1, [r0, 0x7]
+ movs r0, 0x80
+ ands r0, r1
+ lsls r0, 24
+ lsrs r1, r0, 24
+ cmp r1, 0
+ beq _0808FE62
+ b _0808FF9E
+_0808FE62:
+ movs r0, 0x2
+ ands r0, r2
+ lsls r0, 16
+ lsrs r3, r0, 16
+ cmp r3, 0
+ beq _0808FEC0
+ movs r0, 0x15
+ negs r0, r0
+ str r1, [sp]
+ movs r1, 0
+ movs r2, 0
+ movs r3, 0x10
+ bl BeginNormalPaletteFade
+ ldr r0, _0808FEAC
+ bl m4aMPlayContinue
+ ldr r0, _0808FEB0
+ ldr r0, [r0]
+ ldr r1, _0808FEB4
+ adds r0, r1
+ movs r1, 0x1
+ strb r1, [r0]
+ ldr r1, _0808FEB8
+ lsls r0, r4, 2
+ adds r0, r4
+ lsls r0, 3
+ adds r0, r1
+ ldr r1, _0808FEBC
+ str r1, [r0]
+ movs r0, 0x3
+ bl PlaySE
+ b _0808FF9E
+ .align 2, 0
+_0808FEA8: .4byte gPaletteFade
+_0808FEAC: .4byte gMPlay_BGM
+_0808FEB0: .4byte gUnknown_0202FFB4
+_0808FEB4: .4byte 0x0000064f
+_0808FEB8: .4byte gTasks
+_0808FEBC: .4byte sub_808FFBC
+_0808FEC0:
+ movs r0, 0x20
+ ands r0, r2
+ cmp r0, 0
+ bne _0808FEDA
+ movs r0, 0x80
+ lsls r0, 2
+ ands r0, r2
+ cmp r0, 0
+ beq _0808FF2C
+ ldr r0, _0808FF14
+ ldrb r0, [r0, 0x13]
+ cmp r0, 0x1
+ bne _0808FF2C
+_0808FEDA:
+ movs r0, 0x15
+ negs r0, r0
+ str r3, [sp]
+ movs r1, 0
+ movs r2, 0
+ movs r3, 0x10
+ bl BeginNormalPaletteFade
+ ldr r0, _0808FF18
+ bl m4aMPlayContinue
+ ldr r0, _0808FF1C
+ ldr r0, [r0]
+ ldr r1, _0808FF20
+ adds r0, r1
+ movs r1, 0x2
+ strb r1, [r0]
+ ldr r1, _0808FF24
+ lsls r0, r4, 2
+ adds r0, r4
+ lsls r0, 3
+ adds r0, r1
+ ldr r1, _0808FF28
+ str r1, [r0]
+ movs r0, 0x6D
+ bl PlaySE
+ b _0808FF9E
+ .align 2, 0
+_0808FF14: .4byte gSaveBlock2
+_0808FF18: .4byte gMPlay_BGM
+_0808FF1C: .4byte gUnknown_0202FFB4
+_0808FF20: .4byte 0x0000064f
+_0808FF24: .4byte gTasks
+_0808FF28: .4byte sub_808FFBC
+_0808FF2C:
+ ldrh r1, [r5, 0x2E]
+ movs r0, 0x10
+ ands r0, r1
+ cmp r0, 0
+ bne _0808FF48
+ movs r0, 0x80
+ lsls r0, 1
+ ands r0, r1
+ cmp r0, 0
+ beq _0808FF9E
+ ldr r0, _0808FF60
+ ldrb r0, [r0, 0x13]
+ cmp r0, 0x1
+ bne _0808FF9E
+_0808FF48:
+ ldr r0, _0808FF64
+ ldr r0, [r0]
+ ldrb r1, [r0, 0x2]
+ movs r0, 0x2
+ ands r0, r1
+ cmp r0, 0
+ bne _0808FF68
+ movs r0, 0x20
+ bl PlaySE
+ b _0808FF9E
+ .align 2, 0
+_0808FF60: .4byte gSaveBlock2
+_0808FF64: .4byte gUnknown_0202FFBC
+_0808FF68:
+ movs r0, 0x15
+ negs r0, r0
+ movs r1, 0
+ str r1, [sp]
+ movs r2, 0
+ movs r3, 0x10
+ bl BeginNormalPaletteFade
+ ldr r0, _0808FFA8
+ bl m4aMPlayContinue
+ ldr r0, _0808FFAC
+ ldr r0, [r0]
+ ldr r1, _0808FFB0
+ adds r0, r1
+ movs r1, 0x3
+ strb r1, [r0]
+ ldr r1, _0808FFB4
+ lsls r0, r4, 2
+ adds r0, r4
+ lsls r0, 3
+ adds r0, r1
+ ldr r1, _0808FFB8
+ str r1, [r0]
+ movs r0, 0x6D
+ bl PlaySE
+_0808FF9E:
+ add sp, 0x4
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0808FFA8: .4byte gMPlay_BGM
+_0808FFAC: .4byte gUnknown_0202FFB4
+_0808FFB0: .4byte 0x0000064f
+_0808FFB4: .4byte gTasks
+_0808FFB8: .4byte sub_808FFBC
+ thumb_func_end sub_808FDF8
+
+ thumb_func_start sub_808FFBC
+sub_808FFBC: @ 808FFBC
+ push {r4,lr}
+ lsls r0, 24
+ lsrs r4, r0, 24
+ ldr r0, _0808FFF8
+ ldrb r1, [r0, 0x7]
+ movs r0, 0x80
+ ands r0, r1
+ cmp r0, 0
+ bne _08090032
+ bl sub_811A4F8
+ ldr r0, _0808FFFC
+ ldr r0, [r0]
+ ldr r1, _08090000
+ adds r0, r1
+ ldrb r0, [r0]
+ cmp r0, 0x2
+ beq _0809000C
+ cmp r0, 0x2
+ ble _0808FFE8
+ cmp r0, 0x3
+ beq _08090024
+_0808FFE8:
+ ldr r0, _08090004
+ lsls r1, r4, 2
+ adds r1, r4
+ lsls r1, 3
+ adds r1, r0
+ ldr r0, _08090008
+ b _08090030
+ .align 2, 0
+_0808FFF8: .4byte gPaletteFade
+_0808FFFC: .4byte gUnknown_0202FFB4
+_08090000: .4byte 0x0000064f
+_08090004: .4byte gTasks
+_08090008: .4byte sub_808F2B0
+_0809000C:
+ ldr r0, _0809001C
+ lsls r1, r4, 2
+ adds r1, r4
+ lsls r1, 3
+ adds r1, r0
+ ldr r0, _08090020
+ b _08090030
+ .align 2, 0
+_0809001C: .4byte gTasks
+_08090020: .4byte sub_808F8D8
+_08090024:
+ ldr r0, _08090038
+ lsls r1, r4, 2
+ adds r1, r4
+ lsls r1, 3
+ adds r1, r0
+ ldr r0, _0809003C
+_08090030:
+ str r0, [r1]
+_08090032:
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08090038: .4byte gTasks
+_0809003C: .4byte sub_8090070
+ thumb_func_end sub_808FFBC
+
+ thumb_func_start sub_8090040
+sub_8090040: @ 8090040
+ push {lr}
+ sub sp, 0x4
+ lsls r0, 24
+ cmp r0, 0
+ beq _08090054
+ ldr r1, _08090050
+ b _08090056
+ .align 2, 0
+_08090050: .4byte 0x00000392
+_08090054:
+ ldr r1, _0809006C
+_08090056:
+ mov r0, sp
+ strh r1, [r0]
+ mov r0, sp
+ movs r1, 0x5D
+ movs r2, 0x2
+ bl LoadPalette
+ add sp, 0x4
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0809006C: .4byte 0x000002af
+ thumb_func_end sub_8090040
+
+ thumb_func_start sub_8090070
+sub_8090070: @ 8090070
+ push {r4,r5,lr}
+ sub sp, 0x2C
+ lsls r0, 24
+ lsrs r3, r0, 24
+ ldr r1, _08090090
+ ldr r2, _08090094
+ adds r0, r1, r2
+ ldrb r0, [r0]
+ adds r5, r1, 0
+ cmp r0, 0x9
+ bhi _080900C4
+ lsls r0, 2
+ ldr r1, _08090098
+ adds r0, r1
+ ldr r0, [r0]
+ mov pc, r0
+ .align 2, 0
+_08090090: .4byte gMain
+_08090094: .4byte 0x0000043c
+_08090098: .4byte _0809009C
+ .align 2, 0
+_0809009C:
+ .4byte _080900C4
+ .4byte _08090120
+ .4byte _08090150
+ .4byte _08090174
+ .4byte _080901C0
+ .4byte _080901D4
+ .4byte _08090278
+ .4byte _08090318
+ .4byte _08090344
+ .4byte _08090380
+_080900C4:
+ ldr r0, _08090108
+ ldrb r1, [r0, 0x7]
+ movs r0, 0x80
+ ands r0, r1
+ cmp r0, 0
+ beq _080900D2
+ b _080903AE
+_080900D2:
+ ldr r4, _0809010C
+ ldr r0, [r4]
+ ldr r1, _08090110
+ adds r0, r1
+ movs r1, 0x7
+ strb r1, [r0]
+ ldr r1, _08090114
+ ldr r0, [r5, 0xC]
+ str r0, [r1]
+ movs r0, 0
+ bl SetVBlankCallback
+ movs r0, 0x80
+ lsls r0, 2
+ bl sub_8091060
+ ldr r0, [r4]
+ ldr r2, _08090118
+ adds r0, r2
+ movs r1, 0x3
+ strb r1, [r0]
+ ldr r0, _0809011C
+ adds r1, r5, r0
+ movs r0, 0x1
+ strb r0, [r1]
+ b _080903AE
+ .align 2, 0
+_08090108: .4byte gPaletteFade
+_0809010C: .4byte gUnknown_0202FFB4
+_08090110: .4byte 0x0000064a
+_08090114: .4byte gUnknown_03005CEC
+_08090118: .4byte 0x0000064d
+_0809011C: .4byte 0x0000043c
+_08090120:
+ ldr r0, _0809013C
+ movs r1, 0xC0
+ lsls r1, 19
+ bl LZ77UnCompVram
+ ldr r0, _08090140
+ ldr r1, _08090144
+ bl LZ77UnCompVram
+ ldr r1, _08090148
+ ldr r2, _0809014C
+ adds r1, r2
+ b _08090368
+ .align 2, 0
+_0809013C: .4byte gPokedexMenu_Gfx
+_08090140: .4byte gUnknown_0839F988
+_08090144: .4byte 0x06007000
+_08090148: .4byte gMain
+_0809014C: .4byte 0x0000043c
+_08090150:
+ movs r0, 0xD
+ bl sub_8090540
+ movs r0, 0x3
+ movs r1, 0xD
+ bl sub_8090644
+ bl sub_808D640
+ ldr r1, _0809016C
+ ldr r0, _08090170
+ adds r1, r0
+ b _08090368
+ .align 2, 0
+_0809016C: .4byte gMain
+_08090170: .4byte 0x0000043c
+_08090174:
+ ldr r4, _080901AC
+ adds r0, r4, 0
+ bl SetUpWindowConfig
+ adds r0, r4, 0
+ bl InitMenuWindow
+ add r1, sp, 0x4
+ movs r0, 0xFF
+ strb r0, [r1]
+ ldr r1, _080901B0
+ add r0, sp, 0x4
+ bl StringAppend
+ ldr r1, _080901B4
+ add r0, sp, 0x4
+ bl StringAppend
+ add r0, sp, 0x4
+ movs r1, 0x3
+ movs r2, 0xF
+ movs r3, 0xC0
+ bl sub_8072BD8
+ ldr r1, _080901B8
+ ldr r2, _080901BC
+ adds r1, r2
+ b _08090368
+ .align 2, 0
+_080901AC: .4byte gWindowConfig_81E702C
+_080901B0: .4byte gDexText_SizeComparedTo
+_080901B4: .4byte gSaveBlock2
+_080901B8: .4byte gMain
+_080901BC: .4byte 0x0000043c
+_080901C0:
+ bl ResetPaletteFade
+ ldr r1, _080901CC
+ ldr r0, _080901D0
+ adds r1, r0
+ b _08090368
+ .align 2, 0
+_080901CC: .4byte gMain
+_080901D0: .4byte 0x0000043c
+_080901D4:
+ ldr r0, _0809025C
+ ldrb r0, [r0, 0x8]
+ movs r1, 0x98
+ movs r2, 0x38
+ movs r3, 0
+ bl sub_8091A4C
+ lsls r0, 24
+ lsrs r1, r0, 24
+ ldr r0, _08090260
+ lsls r4, r1, 4
+ adds r4, r1
+ lsls r4, 2
+ adds r4, r0
+ ldrb r1, [r4, 0x1]
+ movs r0, 0x4
+ negs r0, r0
+ ands r0, r1
+ movs r1, 0x1
+ orrs r0, r1
+ strb r0, [r4, 0x1]
+ ldrb r1, [r4, 0x3]
+ movs r0, 0x3F
+ negs r0, r0
+ ands r0, r1
+ movs r1, 0x2
+ orrs r0, r1
+ strb r0, [r4, 0x3]
+ ldrb r1, [r4, 0x5]
+ movs r0, 0xD
+ negs r0, r0
+ ands r0, r1
+ strb r0, [r4, 0x5]
+ ldr r3, _08090264
+ ldr r0, _08090268
+ ldr r2, [r0]
+ ldrh r1, [r2]
+ lsls r0, r1, 3
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r3
+ ldrh r0, [r0, 0x20]
+ strh r0, [r4, 0x26]
+ ldrh r1, [r2]
+ lsls r0, r1, 3
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r3
+ ldrh r1, [r0, 0x1E]
+ str r1, [sp]
+ movs r0, 0x1
+ movs r2, 0
+ movs r3, 0
+ bl SetOamMatrix
+ ldr r0, _0809026C
+ ldrb r1, [r4, 0x5]
+ lsrs r1, 4
+ adds r1, 0x10
+ lsls r1, 4
+ movs r2, 0x20
+ bl LoadPalette
+ ldr r1, _08090270
+ ldr r2, _08090274
+ adds r1, r2
+ b _08090368
+ .align 2, 0
+_0809025C: .4byte gSaveBlock2
+_08090260: .4byte gSprites
+_08090264: .4byte gPokedexEntries
+_08090268: .4byte gUnknown_0202FFBC
+_0809026C: .4byte gUnknown_083B4EC4
+_08090270: .4byte gMain
+_08090274: .4byte 0x0000043c
+_08090278:
+ ldr r5, _08090300
+ ldr r0, [r5]
+ ldrh r0, [r0]
+ movs r1, 0x58
+ movs r2, 0x38
+ movs r3, 0x1
+ bl sub_80918EC
+ lsls r0, 24
+ lsrs r1, r0, 24
+ ldr r0, _08090304
+ lsls r4, r1, 4
+ adds r4, r1
+ lsls r4, 2
+ adds r4, r0
+ ldrb r1, [r4, 0x1]
+ movs r0, 0x4
+ negs r0, r0
+ ands r0, r1
+ movs r1, 0x1
+ orrs r0, r1
+ strb r0, [r4, 0x1]
+ ldrb r1, [r4, 0x3]
+ movs r0, 0x3F
+ negs r0, r0
+ ands r0, r1
+ movs r1, 0x4
+ orrs r0, r1
+ strb r0, [r4, 0x3]
+ ldrb r1, [r4, 0x5]
+ movs r0, 0xD
+ negs r0, r0
+ ands r0, r1
+ strb r0, [r4, 0x5]
+ ldr r3, _08090308
+ ldr r2, [r5]
+ ldrh r1, [r2]
+ lsls r0, r1, 3
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r3
+ ldrh r0, [r0, 0x1C]
+ strh r0, [r4, 0x26]
+ ldrh r1, [r2]
+ lsls r0, r1, 3
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r3
+ ldrh r1, [r0, 0x1A]
+ str r1, [sp]
+ movs r0, 0x2
+ movs r2, 0
+ movs r3, 0
+ bl SetOamMatrix
+ ldr r0, _0809030C
+ ldrb r1, [r4, 0x5]
+ lsrs r1, 4
+ adds r1, 0x10
+ lsls r1, 4
+ movs r2, 0x20
+ bl LoadPalette
+ ldr r1, _08090310
+ ldr r0, _08090314
+ adds r1, r0
+ b _08090368
+ .align 2, 0
+_08090300: .4byte gUnknown_0202FFBC
+_08090304: .4byte gSprites
+_08090308: .4byte gPokedexEntries
+_0809030C: .4byte gUnknown_083B4EC4
+_08090310: .4byte gMain
+_08090314: .4byte 0x0000043c
+_08090318:
+ movs r0, 0x15
+ negs r0, r0
+ movs r1, 0
+ str r1, [sp]
+ movs r2, 0x10
+ movs r3, 0
+ bl BeginNormalPaletteFade
+ ldr r0, _08090338
+ ldr r0, [r0]
+ bl SetVBlankCallback
+ ldr r1, _0809033C
+ ldr r2, _08090340
+ adds r1, r2
+ b _08090368
+ .align 2, 0
+_08090338: .4byte gUnknown_03005CEC
+_0809033C: .4byte gMain
+_08090340: .4byte 0x0000043c
+_08090344:
+ ldr r0, _08090370
+ movs r1, 0
+ strh r1, [r0]
+ adds r0, 0x2
+ strh r1, [r0]
+ adds r0, 0x2
+ strh r1, [r0]
+ ldr r1, _08090374
+ ldr r2, _08090378
+ adds r0, r2, 0
+ strh r0, [r1]
+ subs r1, 0xC
+ movs r2, 0xF2
+ lsls r2, 5
+ adds r0, r2, 0
+ strh r0, [r1]
+ ldr r0, _0809037C
+ adds r1, r5, r0
+_08090368:
+ ldrb r0, [r1]
+ adds r0, 0x1
+ strb r0, [r1]
+ b _080903AE
+ .align 2, 0
+_08090370: .4byte REG_BLDCNT
+_08090374: .4byte REG_BG2CNT
+_08090378: .4byte 0x00000e03
+_0809037C: .4byte 0x0000043c
+_08090380:
+ ldr r0, _080903B8
+ ldrb r1, [r0, 0x7]
+ movs r0, 0x80
+ ands r0, r1
+ lsls r0, 24
+ lsrs r2, r0, 24
+ cmp r2, 0
+ bne _080903AE
+ ldr r0, _080903BC
+ ldr r0, [r0]
+ ldr r1, _080903C0
+ adds r0, r1
+ strb r2, [r0]
+ ldr r1, _080903C4
+ adds r0, r5, r1
+ strb r2, [r0]
+ ldr r1, _080903C8
+ lsls r0, r3, 2
+ adds r0, r3
+ lsls r0, 3
+ adds r0, r1
+ ldr r1, _080903CC
+ str r1, [r0]
+_080903AE:
+ add sp, 0x2C
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080903B8: .4byte gPaletteFade
+_080903BC: .4byte gUnknown_0202FFB4
+_080903C0: .4byte 0x0000064f
+_080903C4: .4byte 0x0000043c
+_080903C8: .4byte gTasks
+_080903CC: .4byte sub_80903D0
+ thumb_func_end sub_8090070
+
+ thumb_func_start sub_80903D0
+sub_80903D0: @ 80903D0
+ push {r4,r5,lr}
+ sub sp, 0x4
+ lsls r0, 24
+ lsrs r4, r0, 24
+ adds r5, r4, 0
+ ldr r0, _0809041C
+ ldrh r1, [r0, 0x2E]
+ movs r0, 0x2
+ ands r0, r1
+ lsls r0, 16
+ lsrs r2, r0, 16
+ cmp r2, 0
+ beq _08090430
+ movs r0, 0x15
+ negs r0, r0
+ movs r1, 0
+ str r1, [sp]
+ movs r2, 0
+ movs r3, 0x10
+ bl BeginNormalPaletteFade
+ ldr r0, _08090420
+ ldr r0, [r0]
+ ldr r1, _08090424
+ adds r0, r1
+ movs r1, 0x1
+ strb r1, [r0]
+ ldr r1, _08090428
+ lsls r0, r4, 2
+ adds r0, r4
+ lsls r0, 3
+ adds r0, r1
+ ldr r1, _0809042C
+ str r1, [r0]
+ movs r0, 0x3
+ bl PlaySE
+ b _0809047A
+ .align 2, 0
+_0809041C: .4byte gMain
+_08090420: .4byte gUnknown_0202FFB4
+_08090424: .4byte 0x0000064f
+_08090428: .4byte gTasks
+_0809042C: .4byte sub_8090498
+_08090430:
+ movs r0, 0x20
+ ands r0, r1
+ cmp r0, 0
+ bne _0809044A
+ movs r0, 0x80
+ lsls r0, 2
+ ands r0, r1
+ cmp r0, 0
+ beq _0809047A
+ ldr r0, _08090484
+ ldrb r0, [r0, 0x13]
+ cmp r0, 0x1
+ bne _0809047A
+_0809044A:
+ movs r0, 0x15
+ negs r0, r0
+ str r2, [sp]
+ movs r1, 0
+ movs r2, 0
+ movs r3, 0x10
+ bl BeginNormalPaletteFade
+ ldr r0, _08090488
+ ldr r0, [r0]
+ ldr r1, _0809048C
+ adds r0, r1
+ movs r1, 0x2
+ strb r1, [r0]
+ ldr r1, _08090490
+ lsls r0, r5, 2
+ adds r0, r5
+ lsls r0, 3
+ adds r0, r1
+ ldr r1, _08090494
+ str r1, [r0]
+ movs r0, 0x6D
+ bl PlaySE
+_0809047A:
+ add sp, 0x4
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08090484: .4byte gSaveBlock2
+_08090488: .4byte gUnknown_0202FFB4
+_0809048C: .4byte 0x0000064f
+_08090490: .4byte gTasks
+_08090494: .4byte sub_8090498
+ thumb_func_end sub_80903D0
+
+ thumb_func_start sub_8090498
+sub_8090498: @ 8090498
+ push {lr}
+ lsls r0, 24
+ lsrs r2, r0, 24
+ ldr r0, _080904CC
+ ldrb r1, [r0, 0x7]
+ movs r0, 0x80
+ ands r0, r1
+ cmp r0, 0
+ bne _080904EE
+ ldr r0, _080904D0
+ ldr r0, [r0]
+ ldr r1, _080904D4
+ adds r0, r1
+ ldrb r0, [r0]
+ cmp r0, 0x1
+ beq _080904BC
+ cmp r0, 0x2
+ beq _080904E0
+_080904BC:
+ ldr r0, _080904D8
+ lsls r1, r2, 2
+ adds r1, r2
+ lsls r1, 3
+ adds r1, r0
+ ldr r0, _080904DC
+ b _080904EC
+ .align 2, 0
+_080904CC: .4byte gPaletteFade
+_080904D0: .4byte gUnknown_0202FFB4
+_080904D4: .4byte 0x0000064f
+_080904D8: .4byte gTasks
+_080904DC: .4byte sub_808F2B0
+_080904E0:
+ ldr r0, _080904F4
+ lsls r1, r2, 2
+ adds r1, r2
+ lsls r1, 3
+ adds r1, r0
+ ldr r0, _080904F8
+_080904EC:
+ str r0, [r1]
+_080904EE:
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080904F4: .4byte gTasks
+_080904F8: .4byte sub_808FA64
+ thumb_func_end sub_8090498
+
+ thumb_func_start sub_80904FC
+sub_80904FC: @ 80904FC
+ push {r4,lr}
+ sub sp, 0x4
+ adds r4, r0, 0
+ lsls r4, 16
+ ldr r0, _08090530
+ lsrs r4, 5
+ movs r2, 0xC0
+ lsls r2, 19
+ adds r1, r4, r2
+ bl LZ77UnCompVram
+ ldr r0, _08090534
+ adds r4, r0
+ mov r1, sp
+ movs r0, 0
+ strh r0, [r1]
+ ldr r0, _08090538
+ str r1, [r0]
+ str r4, [r0, 0x4]
+ ldr r1, _0809053C
+ str r1, [r0, 0x8]
+ ldr r0, [r0, 0x8]
+ add sp, 0x4
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08090530: .4byte gUnknown_08E96ACC
+_08090534: .4byte 0x060000c0
+_08090538: .4byte 0x040000d4
+_0809053C: .4byte 0x81000220
+ thumb_func_end sub_80904FC
+
+ thumb_func_start sub_8090540
+sub_8090540: @ 8090540
+ push {r4,lr}
+ sub sp, 0x4
+ adds r4, r0, 0
+ lsls r4, 16
+ ldr r0, _08090574
+ lsrs r4, 5
+ movs r2, 0xC0
+ lsls r2, 19
+ adds r1, r4, r2
+ bl LZ77UnCompVram
+ ldr r0, _08090578
+ adds r4, r0
+ mov r1, sp
+ movs r0, 0
+ strh r0, [r1]
+ ldr r0, _0809057C
+ str r1, [r0]
+ str r4, [r0, 0x4]
+ ldr r1, _08090580
+ str r1, [r0, 0x8]
+ ldr r0, [r0, 0x8]
+ add sp, 0x4
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08090574: .4byte gUnknown_08E96B58
+_08090578: .4byte 0x060000c0
+_0809057C: .4byte 0x040000d4
+_08090580: .4byte 0x81000220
+ thumb_func_end sub_8090540
+
+ thumb_func_start sub_8090584
+sub_8090584: @ 8090584
+ push {r4-r7,lr}
+ mov r7, r10
+ mov r6, r9
+ mov r5, r8
+ push {r5-r7}
+ lsls r0, 24
+ lsrs r0, 24
+ mov r10, r0
+ lsls r1, 16
+ lsrs r1, 16
+ mov r9, r1
+ movs r1, 0
+_0809059C:
+ lsls r0, r1, 2
+ adds r0, r1
+ adds r0, 0x1
+ lsls r0, 24
+ lsrs r7, r0, 24
+ movs r6, 0x80
+ lsls r6, 7
+ cmp r1, r10
+ bne _080905B2
+ movs r6, 0x80
+ lsls r6, 6
+_080905B2:
+ movs r3, 0
+ mov r0, r9
+ lsls r0, 11
+ mov r12, r0
+ adds r1, 0x1
+ mov r8, r1
+ mov r5, r12
+ ldr r4, _08090634
+_080905C2:
+ adds r0, r7, r3
+ lsls r0, 1
+ adds r0, r5, r0
+ movs r2, 0xC0
+ lsls r2, 19
+ adds r1, r0, r2
+ ldrh r2, [r1]
+ ands r2, r4
+ orrs r2, r6
+ strh r2, [r1]
+ ldr r1, _08090638
+ adds r0, r1
+ ldrh r2, [r0]
+ ands r2, r4
+ orrs r2, r6
+ strh r2, [r0]
+ adds r0, r3, 0x1
+ lsls r0, 24
+ lsrs r3, r0, 24
+ cmp r3, 0x4
+ bls _080905C2
+ mov r2, r8
+ lsls r0, r2, 24
+ lsrs r1, r0, 24
+ cmp r1, 0x3
+ bls _0809059C
+ movs r6, 0x80
+ lsls r6, 7
+ movs r3, 0
+ mov r5, r12
+ ldr r4, _08090634
+_08090600:
+ lsls r0, r3, 1
+ adds r0, r5, r0
+ ldr r2, _0809063C
+ adds r1, r0, r2
+ ldrh r2, [r1]
+ ands r2, r4
+ orrs r2, r6
+ strh r2, [r1]
+ ldr r1, _08090640
+ adds r0, r1
+ ldrh r2, [r0]
+ ands r2, r4
+ orrs r2, r6
+ strh r2, [r0]
+ adds r0, r3, 0x1
+ lsls r0, 24
+ lsrs r3, r0, 24
+ cmp r3, 0x4
+ bls _08090600
+ pop {r3-r5}
+ mov r8, r3
+ mov r9, r4
+ mov r10, r5
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08090634: .4byte 0x00000fff
+_08090638: .4byte 0x06000040
+_0809063C: .4byte 0x06000032
+_08090640: .4byte 0x06000072
+ thumb_func_end sub_8090584
+
+ thumb_func_start sub_8090644
+sub_8090644: @ 8090644
+ push {r4-r7,lr}
+ mov r7, r10
+ mov r6, r9
+ mov r5, r8
+ push {r5-r7}
+ lsls r0, 24
+ lsrs r0, 24
+ mov r10, r0
+ lsls r1, 16
+ lsrs r1, 16
+ mov r9, r1
+ movs r1, 0
+_0809065C:
+ lsls r0, r1, 2
+ adds r0, r1
+ adds r0, 0x1
+ lsls r0, 24
+ lsrs r0, 24
+ mov r8, r0
+ cmp r1, r10
+ beq _08090670
+ cmp r1, 0
+ bne _08090676
+_08090670:
+ movs r5, 0x80
+ lsls r5, 6
+ b _0809067A
+_08090676:
+ movs r5, 0x80
+ lsls r5, 7
+_0809067A:
+ movs r3, 0
+ mov r0, r9
+ lsls r7, r0, 11
+ adds r1, 0x1
+ mov r12, r1
+ adds r6, r7, 0
+ ldr r4, _080906FC
+_08090688:
+ mov r1, r8
+ adds r0, r1, r3
+ lsls r0, 1
+ adds r0, r6, r0
+ movs r2, 0xC0
+ lsls r2, 19
+ adds r1, r0, r2
+ ldrh r2, [r1]
+ ands r2, r4
+ orrs r2, r5
+ strh r2, [r1]
+ ldr r1, _08090700
+ adds r0, r1
+ ldrh r2, [r0]
+ ands r2, r4
+ orrs r2, r5
+ strh r2, [r0]
+ adds r0, r3, 0x1
+ lsls r0, 24
+ lsrs r3, r0, 24
+ cmp r3, 0x4
+ bls _08090688
+ mov r2, r12
+ lsls r0, r2, 24
+ lsrs r1, r0, 24
+ cmp r1, 0x3
+ bls _0809065C
+ movs r5, 0x80
+ lsls r5, 7
+ movs r3, 0
+ adds r6, r7, 0
+ ldr r4, _080906FC
+_080906C8:
+ lsls r0, r3, 1
+ adds r0, r6, r0
+ ldr r2, _08090704
+ adds r1, r0, r2
+ ldrh r2, [r1]
+ ands r2, r4
+ orrs r2, r5
+ strh r2, [r1]
+ ldr r1, _08090708
+ adds r0, r1
+ ldrh r2, [r0]
+ ands r2, r4
+ orrs r2, r5
+ strh r2, [r0]
+ adds r0, r3, 0x1
+ lsls r0, 24
+ lsrs r3, r0, 24
+ cmp r3, 0x4
+ bls _080906C8
+ pop {r3-r5}
+ mov r8, r3
+ mov r9, r4
+ mov r10, r5
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080906FC: .4byte 0x00000fff
+_08090700: .4byte 0x06000040
+_08090704: .4byte 0x06000032
+_08090708: .4byte 0x06000072
+ thumb_func_end sub_8090644
+
+ thumb_func_start sub_809070C
+sub_809070C: @ 809070C
+ push {r4-r6,lr}
+ adds r4, r0, 0
+ adds r5, r1, 0
+ adds r6, r2, 0
+ lsls r4, 16
+ lsrs r4, 16
+ ldr r0, _08090748
+ movs r1, 0
+ bl CreateTask
+ lsls r0, 24
+ lsrs r0, 24
+ ldr r2, _0809074C
+ lsls r1, r0, 2
+ adds r1, r0
+ lsls r1, 3
+ adds r1, r2
+ movs r2, 0
+ strh r2, [r1, 0x8]
+ strh r4, [r1, 0xA]
+ strh r5, [r1, 0x20]
+ lsrs r5, 16
+ strh r5, [r1, 0x22]
+ strh r6, [r1, 0x24]
+ lsrs r6, 16
+ strh r6, [r1, 0x26]
+ pop {r4-r6}
+ pop {r1}
+ bx r1
+ .align 2, 0
+_08090748: .4byte sub_8090750
+_0809074C: .4byte gTasks
+ thumb_func_end sub_809070C
+
+ thumb_func_start sub_8090750
+sub_8090750: @ 8090750
+ push {r4-r7,lr}
+ sub sp, 0x8
+ lsls r0, 24
+ lsrs r7, r0, 24
+ ldr r1, _08090778
+ lsls r0, r7, 2
+ adds r0, r7
+ lsls r0, 3
+ adds r0, r1
+ ldrh r6, [r0, 0xA]
+ movs r2, 0x8
+ ldrsh r0, [r0, r2]
+ adds r4, r1, 0
+ cmp r0, 0x6
+ bhi _0809079C
+ lsls r0, 2
+ ldr r1, _0809077C
+ adds r0, r1
+ ldr r0, [r0]
+ mov pc, r0
+ .align 2, 0
+_08090778: .4byte gTasks
+_0809077C: .4byte _08090780
+ .align 2, 0
+_08090780:
+ .4byte _0809079C
+ .4byte _080907E0
+ .4byte _0809085C
+ .4byte _080908A0
+ .4byte _08090960
+ .4byte _080909B8
+ .4byte _080909F4
+_0809079C:
+ ldr r0, _080907D0
+ ldrb r1, [r0, 0x7]
+ movs r0, 0x80
+ ands r0, r1
+ cmp r0, 0
+ beq _080907AA
+ b _08090A26
+_080907AA:
+ ldr r1, _080907D4
+ ldr r0, _080907D8
+ ldr r0, [r0, 0xC]
+ str r0, [r1]
+ movs r0, 0
+ bl SetVBlankCallback
+ movs r0, 0x80
+ lsls r0, 1
+ bl sub_8091060
+ ldr r1, _080907DC
+ lsls r0, r7, 2
+ adds r0, r7
+ lsls r0, 3
+ adds r0, r1
+ movs r1, 0x1
+ strh r1, [r0, 0x8]
+ b _08090A26
+ .align 2, 0
+_080907D0: .4byte gPaletteFade
+_080907D4: .4byte gUnknown_03005CEC
+_080907D8: .4byte gMain
+_080907DC: .4byte gTasks
+_080907E0:
+ ldr r0, _08090840
+ ldr r1, _08090844
+ bl LZ77UnCompVram
+ ldr r0, _08090848
+ ldr r4, _0809084C
+ adds r1, r4, 0
+ bl LZ77UnCompVram
+ movs r2, 0
+ lsls r5, r7, 2
+ mov r12, r5
+ movs r0, 0x80
+ lsls r0, 6
+ adds r6, r0, 0
+ ldr r3, _08090850
+_08090800:
+ lsls r0, r2, 1
+ adds r0, r4
+ ldrh r5, [r0]
+ adds r1, r6, r5
+ strh r1, [r0]
+ adds r0, r2, 0x1
+ lsls r0, 16
+ lsrs r2, r0, 16
+ cmp r2, r3
+ bls _08090800
+ ldr r0, _08090854
+ mov r1, r12
+ adds r4, r1, r7
+ lsls r4, 3
+ adds r4, r0
+ ldrh r0, [r4, 0xA]
+ movs r2, 0xFF
+ lsls r2, 2
+ movs r1, 0x2
+ bl sub_8091738
+ bl ResetPaletteFade
+ ldr r0, _08090858
+ movs r1, 0x21
+ movs r2, 0x9E
+ bl LoadPalette
+ ldrh r0, [r4, 0x8]
+ adds r0, 0x1
+ strh r0, [r4, 0x8]
+ b _08090A26
+ .align 2, 0
+_08090840: .4byte gPokedexMenu_Gfx
+_08090844: .4byte 0x06004000
+_08090848: .4byte gUnknown_08E96BD4
+_0809084C: .4byte 0x06007800
+_08090850: .4byte 0x0000027f
+_08090854: .4byte gTasks
+_08090858: .4byte gPokedexMenu_Pal + 0x2
+_0809085C:
+ ldr r4, _0809088C
+ adds r0, r4, 0
+ bl SetUpWindowConfig
+ adds r0, r4, 0
+ bl InitMenuWindow
+ ldr r2, _08090890
+ add r1, sp, 0x4
+ movs r0, 0
+ strh r0, [r1]
+ ldr r0, _08090894
+ str r1, [r0]
+ str r2, [r0, 0x4]
+ ldr r1, _08090898
+ str r1, [r0, 0x8]
+ ldr r0, [r0, 0x8]
+ ldr r1, _0809089C
+ lsls r0, r7, 2
+ adds r0, r7
+ lsls r0, 3
+ adds r0, r1
+ b _080909E0
+ .align 2, 0
+_0809088C: .4byte gWindowConfig_81E7064
+_08090890: .4byte 0x0600c000
+_08090894: .4byte 0x040000d4
+_08090898: .4byte 0x81000100
+_0809089C: .4byte gTasks
+_080908A0:
+ ldr r0, _080908C8
+ movs r1, 0x2
+ movs r2, 0
+ movs r3, 0xD0
+ bl sub_8072BD8
+ bl sub_806912C
+ cmp r0, 0
+ bne _080908CC
+ adds r0, r6, 0
+ bl NationalToHoennOrder
+ lsls r0, 16
+ lsrs r0, 16
+ movs r1, 0xD
+ movs r2, 0x3
+ bl sub_8091154
+ b _080908D6
+ .align 2, 0
+_080908C8: .4byte gDexText_RegisterComplete
+_080908CC:
+ adds r0, r6, 0
+ movs r1, 0xD
+ movs r2, 0x3
+ bl sub_8091154
+_080908D6:
+ adds r0, r6, 0
+ movs r1, 0x10
+ movs r2, 0x3
+ bl sub_80911C8
+ ldr r0, _0809094C
+ movs r1, 0xB
+ movs r2, 0x5
+ bl MenuPrint
+ ldr r0, _08090950
+ movs r1, 0x10
+ movs r2, 0x7
+ bl MenuPrint
+ ldr r0, _08090954
+ movs r1, 0x10
+ movs r2, 0x9
+ bl MenuPrint
+ lsls r4, r6, 3
+ adds r4, r6
+ lsls r4, 2
+ ldr r6, _08090958
+ adds r5, r4, r6
+ adds r0, r5, 0
+ movs r1, 0xB
+ movs r2, 0x5
+ bl sub_8091304
+ ldrh r0, [r5, 0xC]
+ movs r1, 0x10
+ movs r2, 0x7
+ bl sub_8091458
+ ldrh r0, [r5, 0xE]
+ movs r1, 0x10
+ movs r2, 0x9
+ bl sub_8091564
+ adds r6, 0x10
+ adds r4, r6
+ ldr r0, [r4]
+ movs r1, 0x2
+ movs r2, 0xD
+ bl MenuPrint
+ movs r1, 0xFF
+ lsls r1, 2
+ movs r0, 0xE
+ bl sub_80917CC
+ ldr r1, _0809095C
+ lsls r0, r7, 2
+ adds r0, r7
+ lsls r0, 3
+ adds r0, r1
+ b _080909E0
+ .align 2, 0
+_0809094C: .4byte gDexText_UnknownPoke
+_08090950: .4byte gDexText_UnknownHeight
+_08090954: .4byte gDexText_UnknownWeight
+_08090958: .4byte gPokedexEntries
+_0809095C: .4byte gTasks
+_08090960:
+ adds r0, r6, 0
+ movs r1, 0x30
+ movs r2, 0x38
+ movs r3, 0
+ bl sub_80918EC
+ adds r4, r0, 0
+ lsls r4, 24
+ lsrs r4, 24
+ ldr r0, _080909AC
+ lsls r1, r4, 4
+ adds r1, r4
+ lsls r1, 2
+ adds r1, r0
+ ldrb r2, [r1, 0x5]
+ movs r0, 0xD
+ negs r0, r0
+ ands r0, r2
+ strb r0, [r1, 0x5]
+ movs r0, 0x1
+ negs r0, r0
+ movs r1, 0
+ str r1, [sp]
+ movs r2, 0x10
+ movs r3, 0
+ bl BeginNormalPaletteFade
+ ldr r0, _080909B0
+ ldr r0, [r0]
+ bl SetVBlankCallback
+ ldr r1, _080909B4
+ lsls r0, r7, 2
+ adds r0, r7
+ lsls r0, 3
+ adds r0, r1
+ strh r4, [r0, 0xE]
+ b _080909E0
+ .align 2, 0
+_080909AC: .4byte gSprites
+_080909B0: .4byte gUnknown_03005CEC
+_080909B4: .4byte gTasks
+_080909B8:
+ ldr r0, _080909E8
+ movs r1, 0
+ strh r1, [r0]
+ adds r0, 0x2
+ strh r1, [r0]
+ adds r0, 0x2
+ strh r1, [r0]
+ ldr r1, _080909EC
+ ldr r2, _080909F0
+ adds r0, r2, 0
+ strh r0, [r1]
+ subs r1, 0xE
+ movs r5, 0xE2
+ lsls r5, 5
+ adds r0, r5, 0
+ strh r0, [r1]
+ lsls r0, r7, 2
+ adds r0, r7
+ lsls r0, 3
+ adds r0, r4
+_080909E0:
+ ldrh r1, [r0, 0x8]
+ adds r1, 0x1
+ strh r1, [r0, 0x8]
+ b _08090A26
+ .align 2, 0
+_080909E8: .4byte REG_BLDCNT
+_080909EC: .4byte REG_BG3CNT
+_080909F0: .4byte 0x00000f07
+_080909F4:
+ ldr r0, _08090A30
+ ldrb r1, [r0, 0x7]
+ movs r0, 0x80
+ ands r0, r1
+ lsls r0, 24
+ lsrs r5, r0, 24
+ cmp r5, 0
+ bne _08090A26
+ adds r0, r6, 0
+ bl NationalPokedexNumToSpecies
+ lsls r0, 16
+ lsrs r0, 16
+ movs r1, 0
+ bl PlayCry1
+ ldr r1, _08090A34
+ lsls r0, r7, 2
+ adds r0, r7
+ lsls r0, 3
+ adds r0, r1
+ strh r5, [r0, 0xC]
+ strh r5, [r0, 0x10]
+ ldr r1, _08090A38
+ str r1, [r0]
+_08090A26:
+ add sp, 0x8
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08090A30: .4byte gPaletteFade
+_08090A34: .4byte gTasks
+_08090A38: .4byte sub_8090A3C
+ thumb_func_end sub_8090750
+
+ thumb_func_start sub_8090A3C
+sub_8090A3C: @ 8090A3C
+ push {r4-r7,lr}
+ mov r7, r8
+ push {r7}
+ sub sp, 0x4
+ lsls r0, 24
+ lsrs r6, r0, 24
+ ldr r0, _08090A8C
+ ldrh r1, [r0, 0x2E]
+ movs r0, 0x2
+ ands r0, r1
+ lsls r0, 16
+ lsrs r2, r0, 16
+ cmp r2, 0
+ beq _08090AA4
+ ldr r0, _08090A90
+ movs r1, 0
+ str r1, [sp]
+ movs r2, 0
+ movs r3, 0x10
+ bl BeginNormalPaletteFade
+ ldr r3, _08090A94
+ ldr r0, _08090A98
+ lsls r1, r6, 2
+ adds r1, r6
+ lsls r1, 3
+ adds r1, r0
+ movs r0, 0xE
+ ldrsh r2, [r1, r0]
+ lsls r0, r2, 4
+ adds r0, r2
+ lsls r0, 2
+ adds r3, 0x1C
+ adds r0, r3
+ ldr r2, _08090A9C
+ str r2, [r0]
+ ldr r0, _08090AA0
+ str r0, [r1]
+ b _08090B7A
+ .align 2, 0
+_08090A8C: .4byte gMain
+_08090A90: .4byte 0x0000fffc
+_08090A94: .4byte gSprites
+_08090A98: .4byte gTasks
+_08090A9C: .4byte sub_8090C28
+_08090AA0: .4byte sub_8090B8C
+_08090AA4:
+ movs r0, 0x1
+ mov r8, r0
+ ands r0, r1
+ lsls r7, r6, 2
+ cmp r0, 0
+ beq _08090B44
+ ldr r0, _08090B00
+ adds r1, r7, r6
+ lsls r1, 3
+ adds r5, r1, r0
+ movs r1, 0x10
+ ldrsh r0, [r5, r1]
+ cmp r0, 0
+ bne _08090B0C
+ ldrh r4, [r5, 0xA]
+ movs r0, 0x2
+ movs r1, 0xD
+ movs r2, 0x1B
+ movs r3, 0x13
+ bl MenuZeroFillWindowRect
+ ldr r1, _08090B04
+ lsls r0, r4, 3
+ adds r0, r4
+ lsls r0, 2
+ adds r1, 0x14
+ adds r0, r1
+ ldr r0, [r0]
+ movs r1, 0x2
+ movs r2, 0xD
+ bl MenuPrint
+ ldr r1, _08090B08
+ ldrh r0, [r1]
+ adds r0, 0x1
+ strh r0, [r1]
+ adds r1, 0x40
+ ldrh r0, [r1]
+ adds r0, 0x1
+ strh r0, [r1]
+ mov r0, r8
+ strh r0, [r5, 0x10]
+ movs r0, 0x15
+ bl PlaySE
+ b _08090B44
+ .align 2, 0
+_08090B00: .4byte gTasks
+_08090B04: .4byte gPokedexEntries
+_08090B08: .4byte 0x06007aca
+_08090B0C:
+ ldr r0, _08090B34
+ str r2, [sp]
+ movs r1, 0
+ movs r2, 0
+ movs r3, 0x10
+ bl BeginNormalPaletteFade
+ ldr r2, _08090B38
+ movs r0, 0xE
+ ldrsh r1, [r5, r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r2, 0x1C
+ adds r0, r2
+ ldr r1, _08090B3C
+ str r1, [r0]
+ ldr r0, _08090B40
+ str r0, [r5]
+ b _08090B7A
+ .align 2, 0
+_08090B34: .4byte 0x0000fffc
+_08090B38: .4byte gSprites
+_08090B3C: .4byte sub_8090C28
+_08090B40: .4byte sub_8090B8C
+_08090B44:
+ ldr r1, _08090B68
+ adds r0, r7, r6
+ lsls r0, 3
+ adds r0, r1
+ ldrh r1, [r0, 0xC]
+ adds r1, 0x1
+ strh r1, [r0, 0xC]
+ movs r0, 0x10
+ ands r1, r0
+ cmp r1, 0
+ beq _08090B70
+ ldr r0, _08090B6C
+ movs r1, 0x51
+ movs r2, 0xE
+ bl LoadPalette
+ b _08090B7A
+ .align 2, 0
+_08090B68: .4byte gTasks
+_08090B6C: .4byte gPokedexMenu_Pal + 0x2
+_08090B70:
+ ldr r0, _08090B88
+ movs r1, 0x51
+ movs r2, 0xE
+ bl LoadPalette
+_08090B7A:
+ add sp, 0x4
+ pop {r3}
+ mov r8, r3
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08090B88: .4byte gPokedexMenu2_Pal + 0x2
+ thumb_func_end sub_8090A3C
+
+ thumb_func_start sub_8090B8C
+sub_8090B8C: @ 8090B8C
+ push {r4-r6,lr}
+ lsls r0, 24
+ lsrs r6, r0, 24
+ ldr r0, _08090C14
+ ldrb r1, [r0, 0x7]
+ movs r0, 0x80
+ ands r0, r1
+ cmp r0, 0
+ bne _08090C0C
+ movs r1, 0x80
+ lsls r1, 19
+ movs r2, 0xCA
+ lsls r2, 5
+ adds r0, r2, 0
+ strh r0, [r1]
+ ldr r0, _08090C18
+ ldr r1, _08090C1C
+ movs r2, 0x80
+ lsls r2, 4
+ bl CpuSet
+ bl sub_800D74C
+ ldr r0, _08090C20
+ lsls r4, r6, 2
+ adds r4, r6
+ lsls r4, 3
+ adds r4, r0
+ ldrh r0, [r4, 0xA]
+ bl NationalPokedexNumToSpecies
+ lsls r0, 16
+ lsrs r0, 16
+ ldrh r1, [r4, 0x22]
+ lsls r1, 16
+ ldrh r2, [r4, 0x20]
+ orrs r1, r2
+ ldrh r2, [r4, 0x26]
+ lsls r2, 16
+ ldrh r3, [r4, 0x24]
+ orrs r2, r3
+ ldr r5, _08090C24
+ movs r3, 0xE
+ ldrsh r4, [r4, r3]
+ lsls r3, r4, 4
+ adds r3, r4
+ lsls r3, 2
+ adds r3, r5
+ ldrb r4, [r3, 0x5]
+ lsrs r4, 4
+ bl species_and_otid_get_pal
+ lsls r4, 4
+ movs r2, 0x80
+ lsls r2, 1
+ adds r1, r2, 0
+ orrs r4, r1
+ adds r1, r4, 0
+ movs r2, 0x20
+ bl LoadCompressedPalette
+ adds r0, r6, 0
+ bl DestroyTask
+_08090C0C:
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08090C14: .4byte gPaletteFade
+_08090C18: .4byte gUnknown_08D00524
+_08090C1C: .4byte 0x0600c000
+_08090C20: .4byte gTasks
+_08090C24: .4byte gSprites
+ thumb_func_end sub_8090B8C
+
+ thumb_func_start sub_8090C28
+sub_8090C28: @ 8090C28
+ push {lr}
+ adds r1, r0, 0
+ ldrh r2, [r1, 0x20]
+ movs r3, 0x20
+ ldrsh r0, [r1, r3]
+ cmp r0, 0x77
+ bgt _08090C3A
+ adds r0, r2, 0x2
+ strh r0, [r1, 0x20]
+_08090C3A:
+ ldrh r2, [r1, 0x20]
+ movs r3, 0x20
+ ldrsh r0, [r1, r3]
+ cmp r0, 0x78
+ ble _08090C48
+ subs r0, r2, 0x2
+ strh r0, [r1, 0x20]
+_08090C48:
+ ldrh r2, [r1, 0x22]
+ movs r3, 0x22
+ ldrsh r0, [r1, r3]
+ cmp r0, 0x4F
+ bgt _08090C56
+ adds r0, r2, 0x1
+ strh r0, [r1, 0x22]
+_08090C56:
+ ldrh r2, [r1, 0x22]
+ movs r3, 0x22
+ ldrsh r0, [r1, r3]
+ cmp r0, 0x50
+ ble _08090C64
+ subs r0, r2, 0x1
+ strh r0, [r1, 0x22]
+_08090C64:
+ pop {r0}
+ bx r0
+ thumb_func_end sub_8090C28
+
+ thumb_func_start sub_8090C68
+sub_8090C68: @ 8090C68
+ push {r4,r5,lr}
+ ldr r4, _08090CD0
+ ldr r0, [r4]
+ ldrb r1, [r0, 0x2]
+ movs r0, 0x2
+ ands r0, r1
+ cmp r0, 0
+ beq _08090D2A
+ ldr r5, _08090CD4
+ ldr r0, [r5]
+ ldr r1, _08090CD8
+ adds r0, r1
+ ldrb r0, [r0]
+ cmp r0, 0
+ bne _08090CE4
+ movs r0, 0x2
+ movs r1, 0xD
+ movs r2, 0x1B
+ movs r3, 0x13
+ bl MenuZeroFillWindowRect
+ ldr r2, _08090CDC
+ ldr r0, [r4]
+ ldrh r1, [r0]
+ lsls r0, r1, 3
+ adds r0, r1
+ lsls r0, 2
+ adds r2, 0x14
+ adds r0, r2
+ ldr r0, [r0]
+ movs r1, 0x2
+ movs r2, 0xD
+ bl MenuPrint
+ ldr r0, [r5]
+ ldr r1, _08090CD8
+ adds r0, r1
+ movs r1, 0x1
+ strb r1, [r0]
+ ldr r1, _08090CE0
+ ldrh r0, [r1]
+ adds r0, 0x1
+ strh r0, [r1]
+ adds r1, 0x40
+ ldrh r0, [r1]
+ adds r0, 0x1
+ strh r0, [r1]
+ movs r0, 0x15
+ bl PlaySE
+ b _08090D2A
+ .align 2, 0
+_08090CD0: .4byte gUnknown_0202FFBC
+_08090CD4: .4byte gUnknown_0202FFB4
+_08090CD8: .4byte 0x0000064e
+_08090CDC: .4byte gPokedexEntries
+_08090CE0: .4byte 0x06007aca
+_08090CE4:
+ movs r0, 0x2
+ movs r1, 0xD
+ movs r2, 0x1B
+ movs r3, 0x13
+ bl MenuZeroFillWindowRect
+ ldr r2, _08090D30
+ ldr r0, [r4]
+ ldrh r1, [r0]
+ lsls r0, r1, 3
+ adds r0, r1
+ lsls r0, 2
+ adds r2, 0x10
+ adds r0, r2
+ ldr r0, [r0]
+ movs r1, 0x2
+ movs r2, 0xD
+ bl MenuPrint
+ ldr r0, [r5]
+ ldr r1, _08090D34
+ adds r0, r1
+ movs r1, 0
+ strb r1, [r0]
+ ldr r1, _08090D38
+ ldrh r0, [r1]
+ subs r0, 0x1
+ strh r0, [r1]
+ adds r1, 0x40
+ ldrh r0, [r1]
+ subs r0, 0x1
+ strh r0, [r1]
+ movs r0, 0x15
+ bl PlaySE
+_08090D2A:
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08090D30: .4byte gPokedexEntries
+_08090D34: .4byte 0x0000064e
+_08090D38: .4byte 0x06007aca
+ thumb_func_end sub_8090C68
+
+ thumb_func_start GetPokemonCategory
+GetPokemonCategory: @ 8090D3C
+ adds r1, r0, 0
+ lsls r1, 16
+ lsrs r1, 16
+ lsls r0, r1, 3
+ adds r0, r1
+ lsls r0, 2
+ ldr r1, _08090D50
+ adds r0, r1
+ bx lr
+ .align 2, 0
+_08090D50: .4byte gPokedexEntries
+ thumb_func_end GetPokemonCategory
+
+ thumb_func_start sub_8090D54
+sub_8090D54: @ 8090D54
+ push {lr}
+ lsls r0, 16
+ lsrs r2, r0, 16
+ lsls r1, 24
+ lsrs r1, 24
+ cmp r1, 0
+ beq _08090D6A
+ cmp r1, 0x1
+ beq _08090D7C
+ movs r0, 0x1
+ b _08090D88
+_08090D6A:
+ ldr r0, _08090D78
+ lsls r1, r2, 3
+ adds r1, r2
+ lsls r1, 2
+ adds r1, r0
+ ldrh r0, [r1, 0xC]
+ b _08090D88
+ .align 2, 0
+_08090D78: .4byte gPokedexEntries
+_08090D7C:
+ ldr r0, _08090D8C
+ lsls r1, r2, 3
+ adds r1, r2
+ lsls r1, 2
+ adds r1, r0
+ ldrh r0, [r1, 0xE]
+_08090D88:
+ pop {r1}
+ bx r1
+ .align 2, 0
+_08090D8C: .4byte gPokedexEntries
+ thumb_func_end sub_8090D54
+
+ thumb_func_start sub_8090D90
+sub_8090D90: @ 8090D90
+ push {r4-r7,lr}
+ lsls r0, 16
+ lsls r1, 24
+ lsrs r2, r1, 24
+ adds r3, r2, 0
+ ldr r1, _08090DC4
+ adds r0, r1
+ lsrs r1, r0, 16
+ lsrs r0, 19
+ lsls r0, 24
+ lsrs r4, r0, 24
+ movs r0, 0x7
+ ands r1, r0
+ movs r0, 0x80
+ lsls r0, 17
+ lsls r0, r1
+ lsrs r5, r0, 24
+ movs r6, 0
+ cmp r2, 0x1
+ beq _08090E24
+ cmp r2, 0x1
+ bgt _08090DC8
+ cmp r2, 0
+ beq _08090DD4
+ b _08090F0A
+ .align 2, 0
+_08090DC4: .4byte 0xffff0000
+_08090DC8:
+ cmp r3, 0x2
+ beq _08090EBC
+ cmp r3, 0x3
+ bne _08090DD2
+ b _08090EFC
+_08090DD2:
+ b _08090F0A
+_08090DD4:
+ ldr r1, _08090E14
+ adds r0, r1, 0
+ adds r0, 0x5C
+ adds r0, r4, r0
+ ldrb r2, [r0]
+ ands r2, r5
+ adds r7, r1, 0
+ cmp r2, 0
+ bne _08090DE8
+ b _08090F0A
+_08090DE8:
+ ldr r0, _08090E18
+ ldr r3, _08090E1C
+ adds r1, r0, r3
+ adds r1, r4, r1
+ ldrb r1, [r1]
+ ands r1, r5
+ adds r6, r0, 0
+ cmp r2, r1
+ bne _08090E08
+ ldr r1, _08090E20
+ adds r0, r6, r1
+ adds r0, r4, r0
+ ldrb r0, [r0]
+ ands r0, r5
+ cmp r2, r0
+ beq _08090E62
+_08090E08:
+ adds r1, r7, 0
+ adds r1, 0x5C
+ adds r1, r4, r1
+ mvns r3, r5
+ b _08090E8E
+ .align 2, 0
+_08090E14: .4byte gSaveBlock2
+_08090E18: .4byte gSaveBlock1
+_08090E1C: .4byte 0x00000938
+_08090E20: .4byte 0x00003a8c
+_08090E24:
+ ldr r1, _08090E68
+ adds r0, r1, 0
+ adds r0, 0x28
+ adds r0, r4, r0
+ ldrb r2, [r0]
+ ands r2, r5
+ adds r7, r1, 0
+ cmp r2, 0
+ beq _08090F0A
+ adds r0, r7, 0
+ adds r0, 0x5C
+ adds r0, r4, r0
+ ldrb r0, [r0]
+ ands r0, r5
+ ldr r6, _08090E6C
+ cmp r2, r0
+ bne _08090E78
+ ldr r3, _08090E70
+ adds r0, r6, r3
+ adds r0, r4, r0
+ ldrb r0, [r0]
+ ands r0, r5
+ cmp r2, r0
+ bne _08090E78
+ ldr r1, _08090E74
+ adds r0, r6, r1
+ adds r0, r4, r0
+ ldrb r0, [r0]
+ ands r0, r5
+ cmp r2, r0
+ bne _08090E78
+_08090E62:
+ movs r6, 0x1
+ b _08090F0A
+ .align 2, 0
+_08090E68: .4byte gSaveBlock2
+_08090E6C: .4byte gSaveBlock1
+_08090E70: .4byte 0x00000938
+_08090E74: .4byte 0x00003a8c
+_08090E78:
+ adds r1, r7, 0
+ adds r1, 0x28
+ adds r1, r4, r1
+ mvns r3, r5
+ ldrb r2, [r1]
+ adds r0, r3, 0
+ ands r0, r2
+ strb r0, [r1]
+ adds r1, r7, 0
+ adds r1, 0x5C
+ adds r1, r4, r1
+_08090E8E:
+ ldrb r2, [r1]
+ adds r0, r3, 0
+ ands r0, r2
+ strb r0, [r1]
+ ldr r0, _08090EB4
+ adds r1, r6, r0
+ adds r1, r4, r1
+ ldrb r2, [r1]
+ adds r0, r3, 0
+ ands r0, r2
+ strb r0, [r1]
+ ldr r1, _08090EB8
+ adds r0, r6, r1
+ adds r0, r4, r0
+ ldrb r1, [r0]
+ ands r3, r1
+ strb r3, [r0]
+ movs r6, 0
+ b _08090F0A
+ .align 2, 0
+_08090EB4: .4byte 0x00000938
+_08090EB8: .4byte 0x00003a8c
+_08090EBC:
+ ldr r1, _08090EEC
+ adds r1, 0x5C
+ adds r1, r4, r1
+ ldrb r2, [r1]
+ adds r0, r5, 0
+ orrs r0, r2
+ strb r0, [r1]
+ ldr r1, _08090EF0
+ ldr r3, _08090EF4
+ adds r2, r1, r3
+ adds r2, r4, r2
+ ldrb r3, [r2]
+ adds r0, r5, 0
+ orrs r0, r3
+ strb r0, [r2]
+ ldr r0, _08090EF8
+ adds r1, r0
+ adds r1, r4, r1
+ ldrb r2, [r1]
+ adds r0, r5, 0
+ orrs r0, r2
+ strb r0, [r1]
+ b _08090F0A
+ .align 2, 0
+_08090EEC: .4byte gSaveBlock2
+_08090EF0: .4byte gSaveBlock1
+_08090EF4: .4byte 0x00000938
+_08090EF8: .4byte 0x00003a8c
+_08090EFC:
+ ldr r0, _08090F14
+ adds r0, 0x28
+ adds r0, r4, r0
+ ldrb r2, [r0]
+ adds r1, r5, 0
+ orrs r1, r2
+ strb r1, [r0]
+_08090F0A:
+ adds r0, r6, 0
+ pop {r4-r7}
+ pop {r1}
+ bx r1
+ .align 2, 0
+_08090F14: .4byte gSaveBlock2
+ thumb_func_end sub_8090D90
+
+ thumb_func_start pokedex_count
+pokedex_count: @ 8090F18
+ push {r4-r7,lr}
+ lsls r0, 24
+ lsrs r6, r0, 24
+ movs r5, 0
+ movs r0, 0
+ ldr r7, _08090F30
+_08090F24:
+ cmp r6, 0
+ beq _08090F34
+ cmp r6, 0x1
+ beq _08090F3E
+ adds r4, r0, 0x1
+ b _08090F56
+ .align 2, 0
+_08090F30: .4byte 0x00000181
+_08090F34:
+ adds r4, r0, 0x1
+ lsls r0, r4, 16
+ lsrs r0, 16
+ movs r1, 0
+ b _08090F46
+_08090F3E:
+ adds r4, r0, 0x1
+ lsls r0, r4, 16
+ lsrs r0, 16
+ movs r1, 0x1
+_08090F46:
+ bl sub_8090D90
+ lsls r0, 24
+ cmp r0, 0
+ beq _08090F56
+ adds r0, r5, 0x1
+ lsls r0, 16
+ lsrs r5, r0, 16
+_08090F56:
+ lsls r0, r4, 16
+ lsrs r0, 16
+ cmp r0, r7
+ bls _08090F24
+ adds r0, r5, 0
+ pop {r4-r7}
+ pop {r1}
+ bx r1
+ thumb_func_end pokedex_count
+
+ thumb_func_start sub_8090F68
+sub_8090F68: @ 8090F68
+ push {r4-r6,lr}
+ lsls r0, 24
+ lsrs r6, r0, 24
+ movs r5, 0
+ movs r0, 0
+_08090F72:
+ cmp r6, 0
+ beq _08090F7E
+ cmp r6, 0x1
+ beq _08090F90
+ adds r4, r0, 0x1
+ b _08090FB0
+_08090F7E:
+ adds r4, r0, 0x1
+ lsls r0, r4, 16
+ lsrs r0, 16
+ bl HoennToNationalOrder
+ lsls r0, 16
+ lsrs r0, 16
+ movs r1, 0
+ b _08090FA0
+_08090F90:
+ adds r4, r0, 0x1
+ lsls r0, r4, 16
+ lsrs r0, 16
+ bl HoennToNationalOrder
+ lsls r0, 16
+ lsrs r0, 16
+ movs r1, 0x1
+_08090FA0:
+ bl sub_8090D90
+ lsls r0, 24
+ cmp r0, 0
+ beq _08090FB0
+ adds r0, r5, 0x1
+ lsls r0, 16
+ lsrs r5, r0, 16
+_08090FB0:
+ lsls r0, r4, 16
+ lsrs r0, 16
+ cmp r0, 0xC9
+ bls _08090F72
+ adds r0, r5, 0
+ pop {r4-r6}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_8090F68
+
+ thumb_func_start sub_8090FC0
+sub_8090FC0: @ 8090FC0
+ push {r4,lr}
+ movs r0, 0
+_08090FC4:
+ adds r0, 0x1
+ lsls r0, 16
+ lsrs r4, r0, 16
+ adds r0, r4, 0
+ bl HoennToNationalOrder
+ lsls r0, 16
+ lsrs r0, 16
+ movs r1, 0x1
+ bl sub_8090D90
+ lsls r0, 24
+ cmp r0, 0
+ bne _08090FE4
+ movs r0, 0
+ b _08090FEC
+_08090FE4:
+ adds r0, r4, 0
+ cmp r0, 0xC7
+ bls _08090FC4
+ movs r0, 0x1
+_08090FEC:
+ pop {r4}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_8090FC0
+
+ thumb_func_start sub_8090FF4
+sub_8090FF4: @ 8090FF4
+ push {r4,r5,lr}
+ movs r0, 0
+_08090FF8:
+ adds r0, 0x1
+ lsls r0, 16
+ lsrs r4, r0, 16
+ adds r0, r4, 0
+ movs r1, 0x1
+ bl sub_8090D90
+ lsls r0, 24
+ cmp r0, 0
+ beq _08091046
+ adds r0, r4, 0
+ cmp r0, 0x95
+ bls _08090FF8
+ movs r0, 0x98
+_08091014:
+ adds r0, 0x1
+ lsls r0, 16
+ lsrs r4, r0, 16
+ adds r0, r4, 0
+ movs r1, 0x1
+ bl sub_8090D90
+ lsls r0, 24
+ cmp r0, 0
+ beq _08091046
+ adds r0, r4, 0
+ cmp r0, 0xF9
+ bls _08091014
+ movs r0, 0xFC
+ ldr r5, _0809104C
+_08091032:
+ adds r0, 0x1
+ lsls r0, 16
+ lsrs r4, r0, 16
+ adds r0, r4, 0
+ movs r1, 0x1
+ bl sub_8090D90
+ lsls r0, 24
+ cmp r0, 0
+ bne _08091050
+_08091046:
+ movs r0, 0
+ b _08091058
+ .align 2, 0
+_0809104C: .4byte 0x0000017f
+_08091050:
+ adds r0, r4, 0
+ cmp r0, r5
+ bls _08091032
+ movs r0, 0x1
+_08091058:
+ pop {r4,r5}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_8090FF4
+
+ thumb_func_start sub_8091060
+sub_8091060: @ 8091060
+ push {r4,r5,lr}
+ lsls r0, 16
+ lsrs r4, r0, 16
+ adds r5, r4, 0
+ movs r0, 0x80
+ lsls r0, 1
+ ands r0, r4
+ lsls r0, 16
+ lsrs r3, r0, 16
+ cmp r3, 0
+ bne _0809108E
+ movs r2, 0x80
+ lsls r2, 19
+ ldrh r1, [r2]
+ ldr r0, _0809112C
+ ands r0, r1
+ strh r0, [r2]
+ ldr r0, _08091130
+ strh r3, [r0]
+ adds r0, 0x8
+ strh r3, [r0]
+ adds r0, 0x2
+ strh r3, [r0]
+_0809108E:
+ movs r0, 0x80
+ lsls r0, 2
+ ands r0, r4
+ lsls r0, 16
+ lsrs r3, r0, 16
+ cmp r3, 0
+ bne _080910B4
+ movs r2, 0x80
+ lsls r2, 19
+ ldrh r1, [r2]
+ ldr r0, _08091134
+ ands r0, r1
+ strh r0, [r2]
+ ldr r0, _08091138
+ strh r3, [r0]
+ adds r0, 0xA
+ strh r3, [r0]
+ adds r0, 0x2
+ strh r3, [r0]
+_080910B4:
+ movs r0, 0x80
+ lsls r0, 3
+ ands r0, r4
+ lsls r0, 16
+ lsrs r3, r0, 16
+ cmp r3, 0
+ bne _080910DA
+ movs r2, 0x80
+ lsls r2, 19
+ ldrh r1, [r2]
+ ldr r0, _0809113C
+ ands r0, r1
+ strh r0, [r2]
+ ldr r0, _08091140
+ strh r3, [r0]
+ adds r0, 0xC
+ strh r3, [r0]
+ adds r0, 0x2
+ strh r3, [r0]
+_080910DA:
+ movs r0, 0x80
+ lsls r0, 4
+ ands r0, r4
+ lsls r0, 16
+ lsrs r3, r0, 16
+ cmp r3, 0
+ bne _08091100
+ movs r2, 0x80
+ lsls r2, 19
+ ldrh r1, [r2]
+ ldr r0, _08091144
+ ands r0, r1
+ strh r0, [r2]
+ ldr r0, _08091148
+ strh r3, [r0]
+ adds r0, 0xE
+ strh r3, [r0]
+ adds r0, 0x2
+ strh r3, [r0]
+_08091100:
+ movs r0, 0x80
+ lsls r0, 5
+ ands r5, r0
+ cmp r5, 0
+ bne _08091124
+ movs r2, 0x80
+ lsls r2, 19
+ ldrh r1, [r2]
+ ldr r0, _0809114C
+ ands r0, r1
+ strh r0, [r2]
+ bl ResetSpriteData
+ bl FreeAllSpritePalettes
+ ldr r1, _08091150
+ movs r0, 0x8
+ strb r0, [r1]
+_08091124:
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0809112C: .4byte 0x0000feff
+_08091130: .4byte REG_BG0CNT
+_08091134: .4byte 0x0000fdff
+_08091138: .4byte REG_BG1CNT
+_0809113C: .4byte 0x0000fbff
+_08091140: .4byte REG_BG2CNT
+_08091144: .4byte 0x0000f7ff
+_08091148: .4byte REG_BG3CNT
+_0809114C: .4byte 0x0000efff
+_08091150: .4byte gReservedSpritePaletteCount
+ thumb_func_end sub_8091060
+
+ thumb_func_start sub_8091154
+sub_8091154: @ 8091154
+ push {r4-r6,lr}
+ mov r6, r8
+ push {r6}
+ sub sp, 0x4
+ adds r4, r0, 0
+ adds r6, r1, 0
+ mov r8, r2
+ lsls r4, 16
+ lsrs r4, 16
+ lsls r6, 24
+ lsrs r6, 24
+ mov r0, r8
+ lsls r0, 24
+ lsrs r0, 24
+ mov r8, r0
+ mov r5, sp
+ adds r0, r4, 0
+ movs r1, 0x64
+ bl __udivsi3
+ adds r0, 0xA1
+ strb r0, [r5]
+ mov r5, sp
+ adds r0, r4, 0
+ movs r1, 0x64
+ bl __umodsi3
+ adds r4, r0, 0
+ lsls r4, 16
+ lsrs r4, 16
+ adds r0, r4, 0
+ movs r1, 0xA
+ bl __udivsi3
+ adds r0, 0xA1
+ strb r0, [r5, 0x1]
+ mov r5, sp
+ adds r0, r4, 0
+ movs r1, 0xA
+ bl __umodsi3
+ adds r0, 0xA1
+ strb r0, [r5, 0x2]
+ mov r1, sp
+ movs r0, 0xFF
+ strb r0, [r1, 0x3]
+ mov r0, sp
+ adds r1, r6, 0
+ mov r2, r8
+ bl MenuPrint
+ add sp, 0x4
+ pop {r3}
+ mov r8, r3
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_8091154
+
+ thumb_func_start sub_80911C8
+sub_80911C8: @ 80911C8
+ push {r4-r6,lr}
+ sub sp, 0xC
+ lsls r0, 16
+ lsrs r3, r0, 16
+ lsls r1, 24
+ lsrs r6, r1, 24
+ lsls r2, 24
+ lsrs r5, r2, 24
+ movs r4, 0
+ movs r2, 0xFF
+_080911DC:
+ mov r1, sp
+ adds r0, r1, r4
+ ldrb r1, [r0]
+ orrs r1, r2
+ strb r1, [r0]
+ adds r0, r4, 0x1
+ lsls r0, 24
+ lsrs r4, r0, 24
+ cmp r4, 0xA
+ bls _080911DC
+ adds r0, r3, 0
+ bl NationalPokedexNumToSpecies
+ adds r3, r0, 0
+ cmp r3, 0
+ beq _08091238
+ movs r4, 0
+ ldr r2, _08091234
+ movs r0, 0xB
+ adds r1, r3, 0
+ muls r1, r0
+ adds r0, r1, r2
+ ldrb r0, [r0]
+ cmp r0, 0xFF
+ beq _0809124C
+ adds r3, r2, 0
+ adds r2, r1, 0
+_08091212:
+ mov r0, sp
+ adds r1, r0, r4
+ adds r0, r4, r2
+ adds r0, r3
+ ldrb r0, [r0]
+ strb r0, [r1]
+ adds r0, r4, 0x1
+ lsls r0, 24
+ lsrs r4, r0, 24
+ adds r0, r4, r2
+ adds r0, r3
+ ldrb r0, [r0]
+ cmp r0, 0xFF
+ beq _0809124C
+ cmp r4, 0x9
+ bls _08091212
+ b _0809124C
+ .align 2, 0
+_08091234: .4byte gSpeciesNames
+_08091238:
+ movs r4, 0
+ movs r1, 0xAE
+_0809123C:
+ mov r2, sp
+ adds r0, r2, r4
+ strb r1, [r0]
+ adds r0, r4, 0x1
+ lsls r0, 24
+ lsrs r4, r0, 24
+ cmp r4, 0x9
+ bls _0809123C
+_0809124C:
+ mov r0, sp
+ adds r1, r6, 0
+ adds r2, r5, 0
+ bl MenuPrint
+ adds r0, r4, 0
+ add sp, 0xC
+ pop {r4-r6}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_80911C8
+
+ thumb_func_start sub_8091260
+sub_8091260: @ 8091260
+ push {r4-r7,lr}
+ mov r7, r8
+ push {r7}
+ sub sp, 0x28
+ adds r4, r3, 0
+ lsls r0, 16
+ lsrs r5, r0, 16
+ lsls r1, 24
+ lsrs r1, 24
+ mov r8, r1
+ lsls r2, 24
+ lsrs r7, r2, 24
+ lsls r4, 24
+ lsrs r4, 24
+ ldr r1, _080912CC
+ mov r0, sp
+ bl StringCopy
+ adds r6, r0, 0
+ mov r0, sp
+ strb r4, [r0, 0x2]
+ adds r0, r5, 0
+ bl NationalPokedexNumToSpecies
+ adds r5, r0, 0
+ cmp r5, 0
+ beq _080912D4
+ movs r4, 0
+ ldr r2, _080912D0
+ movs r0, 0xB
+ adds r1, r5, 0
+ muls r1, r0
+ adds r0, r1, r2
+ ldrb r0, [r0]
+ cmp r0, 0xFF
+ beq _080912E6
+ adds r3, r2, 0
+ adds r2, r1, 0
+_080912AC:
+ adds r1, r6, r4
+ adds r0, r4, r2
+ adds r0, r3
+ ldrb r0, [r0]
+ strb r0, [r1]
+ adds r0, r4, 0x1
+ lsls r0, 24
+ lsrs r4, r0, 24
+ adds r0, r4, r2
+ adds r0, r3
+ ldrb r0, [r0]
+ cmp r0, 0xFF
+ beq _080912E6
+ cmp r4, 0x9
+ bls _080912AC
+ b _080912E6
+ .align 2, 0
+_080912CC: .4byte gUnknown_083B5558
+_080912D0: .4byte gSpeciesNames
+_080912D4:
+ movs r4, 0
+ movs r1, 0xAE
+_080912D8:
+ adds r0, r6, r4
+ strb r1, [r0]
+ adds r0, r4, 0x1
+ lsls r0, 24
+ lsrs r4, r0, 24
+ cmp r4, 0x9
+ bls _080912D8
+_080912E6:
+ adds r1, r6, r4
+ movs r0, 0xFF
+ strb r0, [r1]
+ mov r0, sp
+ mov r1, r8
+ adds r2, r7, 0
+ bl MenuPrint
+ adds r0, r4, 0
+ add sp, 0x28
+ pop {r3}
+ mov r8, r3
+ pop {r4-r7}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_8091260
+
+ thumb_func_start sub_8091304
+sub_8091304: @ 8091304
+ push {r4-r7,lr}
+ sub sp, 0x20
+ adds r3, r0, 0
+ lsls r1, 24
+ lsrs r1, 24
+ mov r12, r1
+ lsls r2, 24
+ lsrs r7, r2, 24
+ movs r4, 0
+ ldrb r0, [r3]
+ ldr r6, _08091340
+ cmp r0, 0xFF
+ beq _0809133A
+_0809131E:
+ mov r0, sp
+ adds r1, r0, r4
+ adds r0, r3, r4
+ ldrb r0, [r0]
+ strb r0, [r1]
+ adds r0, r4, 0x1
+ lsls r0, 24
+ lsrs r4, r0, 24
+ adds r0, r3, r4
+ ldrb r0, [r0]
+ cmp r0, 0xFF
+ beq _0809133A
+ cmp r4, 0xA
+ bls _0809131E
+_0809133A:
+ movs r3, 0
+ ldrb r0, [r6]
+ b _0809134E
+ .align 2, 0
+_08091340: .4byte gDexText_UnknownPoke
+_08091344:
+ adds r0, r3, 0x1
+ lsls r0, 24
+ lsrs r3, r0, 24
+ adds r0, r3, r6
+ ldrb r0, [r0]
+_0809134E:
+ cmp r0, 0xAC
+ beq _08091344
+ cmp r0, 0
+ beq _08091344
+ subs r0, r3, 0x1
+ lsls r0, 24
+ lsrs r3, r0, 24
+ adds r0, r3, r6
+ ldrb r0, [r0]
+ cmp r0, 0xFF
+ beq _08091388
+ adds r5, r6, 0
+_08091366:
+ adds r1, r4, 0
+ adds r0, r1, 0x1
+ lsls r0, 24
+ lsrs r4, r0, 24
+ mov r0, sp
+ adds r2, r0, r1
+ adds r1, r3, 0
+ adds r0, r1, 0x1
+ lsls r0, 24
+ lsrs r3, r0, 24
+ adds r1, r5
+ ldrb r0, [r1]
+ strb r0, [r2]
+ adds r0, r3, r5
+ ldrb r0, [r0]
+ cmp r0, 0xFF
+ bne _08091366
+_08091388:
+ mov r0, sp
+ adds r1, r0, r4
+ movs r0, 0xFF
+ strb r0, [r1]
+ mov r0, sp
+ mov r1, r12
+ adds r2, r7, 0
+ adds r3, r6, 0
+ bl sub_8072B80
+ add sp, 0x20
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_8091304
+
+ thumb_func_start unref_sub_80913A4
+unref_sub_80913A4: @ 80913A4
+ push {r4-r7,lr}
+ sub sp, 0x8
+ lsls r0, 16
+ lsrs r4, r0, 16
+ lsls r1, 24
+ lsrs r7, r1, 24
+ lsls r2, 24
+ lsrs r6, r2, 24
+ movs r5, 0
+ movs r1, 0xFA
+ lsls r1, 2
+ adds r0, r4, 0
+ bl __udivsi3
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0
+ bne _080913CE
+ mov r0, sp
+ strb r5, [r0]
+ b _080913D6
+_080913CE:
+ mov r1, sp
+ adds r0, 0xA1
+ strb r0, [r1]
+ movs r5, 0x1
+_080913D6:
+ movs r1, 0xFA
+ lsls r1, 2
+ adds r0, r4, 0
+ bl __umodsi3
+ lsls r0, 16
+ lsrs r0, 16
+ movs r1, 0x64
+ bl __udivsi3
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0
+ bne _080913FC
+ cmp r5, 0
+ bne _080913FC
+ mov r0, sp
+ strb r5, [r0, 0x1]
+ b _08091402
+_080913FC:
+ mov r1, sp
+ adds r0, 0xA1
+ strb r0, [r1, 0x1]
+_08091402:
+ mov r5, sp
+ movs r1, 0xFA
+ lsls r1, 2
+ adds r0, r4, 0
+ bl __umodsi3
+ lsls r0, 16
+ lsrs r0, 16
+ movs r1, 0x64
+ bl __umodsi3
+ adds r4, r0, 0
+ lsls r4, 16
+ lsrs r4, 16
+ adds r0, r4, 0
+ movs r1, 0xA
+ bl __udivsi3
+ adds r0, 0xA1
+ strb r0, [r5, 0x2]
+ mov r1, sp
+ movs r0, 0xAD
+ strb r0, [r1, 0x3]
+ mov r5, sp
+ adds r0, r4, 0
+ movs r1, 0xA
+ bl __umodsi3
+ adds r0, 0xA1
+ strb r0, [r5, 0x4]
+ mov r1, sp
+ movs r0, 0xFF
+ strb r0, [r1, 0x5]
+ mov r0, sp
+ adds r1, r7, 0
+ adds r2, r6, 0
+ bl MenuPrint
+ add sp, 0x8
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ thumb_func_end unref_sub_80913A4
+
+ thumb_func_start sub_8091458
+sub_8091458: @ 8091458
+ push {r4-r7,lr}
+ mov r7, r9
+ mov r6, r8
+ push {r6,r7}
+ sub sp, 0x10
+ lsls r0, 16
+ lsrs r0, 16
+ lsls r1, 24
+ lsrs r1, 24
+ mov r9, r1
+ lsls r2, 24
+ lsrs r2, 24
+ mov r8, r2
+ ldr r1, _080914D4
+ muls r0, r1
+ movs r1, 0xFE
+ bl __divsi3
+ adds r7, r0, 0
+ movs r1, 0xA
+ bl __umodsi3
+ cmp r0, 0x4
+ bls _0809148A
+ adds r7, 0xA
+_0809148A:
+ adds r0, r7, 0
+ movs r1, 0x78
+ bl __udivsi3
+ adds r6, r0, 0
+ lsls r0, r6, 4
+ subs r0, r6
+ lsls r0, 3
+ subs r0, r7, r0
+ movs r1, 0xA
+ bl __udivsi3
+ adds r7, r0, 0
+ mov r1, sp
+ movs r0, 0xFC
+ strb r0, [r1]
+ adds r1, 0x1
+ movs r0, 0x13
+ strb r0, [r1]
+ adds r0, r6, 0
+ movs r1, 0xA
+ bl __udivsi3
+ adds r2, r0, 0
+ cmp r2, 0
+ bne _080914D8
+ mov r1, sp
+ adds r1, 0x2
+ movs r0, 0x12
+ strb r0, [r1]
+ movs r5, 0x4
+ adds r1, 0x1
+ adds r0, r6, 0
+ adds r0, 0xA1
+ strb r0, [r1]
+ b _080914F8
+ .align 2, 0
+_080914D4: .4byte 0x00002710
+_080914D8:
+ mov r1, sp
+ adds r1, 0x2
+ movs r0, 0xC
+ strb r0, [r1]
+ adds r1, 0x1
+ adds r0, r2, 0
+ adds r0, 0xA1
+ strb r0, [r1]
+ movs r5, 0x5
+ add r4, sp, 0x4
+ adds r0, r6, 0
+ movs r1, 0xA
+ bl __umodsi3
+ adds r0, 0xA1
+ strb r0, [r4]
+_080914F8:
+ adds r1, r5, 0
+ adds r0, r1, 0x1
+ lsls r0, 24
+ lsrs r5, r0, 24
+ adds r2, r5, 0
+ add r1, sp
+ movs r0, 0xB4
+ strb r0, [r1]
+ adds r0, r2, 0x1
+ lsls r0, 24
+ lsrs r5, r0, 24
+ adds r6, r5, 0
+ mov r0, sp
+ adds r4, r0, r2
+ adds r0, r7, 0
+ movs r1, 0xA
+ bl __udivsi3
+ adds r0, 0xA1
+ strb r0, [r4]
+ adds r0, r6, 0x1
+ lsls r0, 24
+ lsrs r5, r0, 24
+ mov r1, sp
+ adds r4, r1, r6
+ adds r0, r7, 0
+ movs r1, 0xA
+ bl __umodsi3
+ adds r0, 0xA1
+ strb r0, [r4]
+ adds r0, r5, 0x1
+ lsls r0, 24
+ lsrs r0, 24
+ mov r1, sp
+ adds r2, r1, r5
+ movs r1, 0xB2
+ strb r1, [r2]
+ mov r2, sp
+ adds r1, r2, r0
+ movs r0, 0xFF
+ strb r0, [r1]
+ mov r0, sp
+ mov r1, r9
+ mov r2, r8
+ bl MenuPrint
+ add sp, 0x10
+ pop {r3,r4}
+ mov r8, r3
+ mov r9, r4
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_8091458
+
+ thumb_func_start sub_8091564
+sub_8091564: @ 8091564
+ push {r4-r7,lr}
+ mov r7, r10
+ mov r6, r9
+ mov r5, r8
+ push {r5-r7}
+ sub sp, 0x14
+ lsls r0, 16
+ lsrs r0, 16
+ lsls r1, 24
+ lsrs r1, 24
+ mov r10, r1
+ lsls r2, 24
+ lsrs r2, 24
+ str r2, [sp, 0x10]
+ ldr r7, _080915BC
+ muls r0, r7
+ ldr r1, _080915C0
+ bl __divsi3
+ adds r6, r0, 0
+ movs r1, 0xA
+ bl __umodsi3
+ cmp r0, 0x4
+ bls _08091598
+ adds r6, 0xA
+_08091598:
+ movs r5, 0
+ mov r4, sp
+ adds r0, r6, 0
+ adds r1, r7, 0
+ bl __udivsi3
+ adds r0, 0xA1
+ strb r0, [r4]
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0xA1
+ bne _080915C4
+ mov r0, sp
+ strb r5, [r0]
+ movs r7, 0x2
+ adds r0, 0x1
+ strb r5, [r0]
+ b _080915C8
+ .align 2, 0
+_080915BC: .4byte 0x000186a0
+_080915C0: .4byte 0x000011b8
+_080915C4:
+ movs r5, 0x1
+ movs r7, 0x1
+_080915C8:
+ ldr r1, _0809160C
+ adds r0, r6, 0
+ bl __umodsi3
+ adds r6, r0, 0
+ mov r0, sp
+ adds r4, r0, r7
+ ldr r1, _08091610
+ adds r0, r6, 0
+ bl __udivsi3
+ adds r0, 0xA1
+ strb r0, [r4]
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0xA1
+ bne _08091614
+ cmp r5, 0
+ bne _08091614
+ adds r1, r7, 0
+ adds r0, r1, 0x1
+ lsls r0, 24
+ lsrs r7, r0, 24
+ adds r2, r7, 0
+ mov r3, sp
+ adds r0, r3, r1
+ strb r5, [r0]
+ adds r0, r2, 0x1
+ lsls r0, 24
+ lsrs r7, r0, 24
+ adds r0, r3, r2
+ strb r5, [r0]
+ b _0809161C
+ .align 2, 0
+_0809160C: .4byte 0x000186a0
+_08091610: .4byte 0x00002710
+_08091614:
+ movs r5, 0x1
+ adds r0, r7, 0x1
+ lsls r0, 24
+ lsrs r7, r0, 24
+_0809161C:
+ ldr r1, _08091660
+ adds r0, r6, 0
+ bl __umodsi3
+ adds r6, r0, 0
+ mov r0, sp
+ adds r4, r0, r7
+ movs r1, 0xFA
+ lsls r1, 2
+ adds r0, r6, 0
+ bl __udivsi3
+ adds r0, 0xA1
+ strb r0, [r4]
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0xA1
+ bne _08091664
+ cmp r5, 0
+ bne _08091664
+ adds r1, r7, 0
+ adds r0, r1, 0x1
+ lsls r0, 24
+ lsrs r7, r0, 24
+ adds r2, r7, 0
+ mov r3, sp
+ adds r0, r3, r1
+ strb r5, [r0]
+ adds r0, r2, 0x1
+ lsls r0, 24
+ lsrs r7, r0, 24
+ adds r0, r3, r2
+ strb r5, [r0]
+ b _0809166A
+ .align 2, 0
+_08091660: .4byte 0x00002710
+_08091664:
+ adds r0, r7, 0x1
+ lsls r0, 24
+ lsrs r7, r0, 24
+_0809166A:
+ movs r1, 0xFA
+ lsls r1, 2
+ adds r0, r6, 0
+ bl __umodsi3
+ adds r6, r0, 0
+ adds r1, r7, 0
+ adds r0, r1, 0x1
+ lsls r0, 24
+ lsrs r7, r0, 24
+ adds r5, r7, 0
+ mov r0, sp
+ adds r4, r0, r1
+ adds r0, r6, 0
+ movs r1, 0x64
+ bl __udivsi3
+ adds r0, 0xA1
+ movs r1, 0
+ mov r9, r1
+ strb r0, [r4]
+ adds r0, r6, 0
+ movs r1, 0x64
+ bl __umodsi3
+ adds r6, r0, 0
+ adds r0, r5, 0x1
+ lsls r0, 24
+ lsrs r7, r0, 24
+ adds r1, r7, 0
+ mov r2, sp
+ adds r0, r2, r5
+ movs r3, 0xAD
+ mov r8, r3
+ mov r2, r8
+ strb r2, [r0]
+ adds r0, r1, 0x1
+ lsls r0, 24
+ lsrs r7, r0, 24
+ adds r5, r7, 0
+ mov r3, sp
+ adds r4, r3, r1
+ adds r0, r6, 0
+ movs r1, 0xA
+ bl __udivsi3
+ adds r0, 0xA1
+ strb r0, [r4]
+ adds r0, r5, 0x1
+ lsls r0, 24
+ lsrs r7, r0, 24
+ adds r1, r7, 0
+ mov r2, sp
+ adds r0, r2, r5
+ mov r3, r9
+ strb r3, [r0]
+ adds r0, r1, 0x1
+ lsls r0, 24
+ lsrs r7, r0, 24
+ adds r2, r7, 0
+ add r1, sp
+ movs r0, 0xE0
+ strb r0, [r1]
+ adds r0, r2, 0x1
+ lsls r0, 24
+ lsrs r7, r0, 24
+ adds r3, r7, 0
+ mov r0, sp
+ adds r1, r0, r2
+ movs r0, 0xD6
+ strb r0, [r1]
+ adds r0, r3, 0x1
+ lsls r0, 24
+ lsrs r7, r0, 24
+ adds r2, r7, 0
+ mov r0, sp
+ adds r1, r0, r3
+ movs r0, 0xE7
+ strb r0, [r1]
+ adds r0, r2, 0x1
+ lsls r0, 24
+ lsrs r0, 24
+ mov r3, sp
+ adds r1, r3, r2
+ mov r2, r8
+ strb r2, [r1]
+ adds r1, r3, r0
+ movs r0, 0xFF
+ strb r0, [r1]
+ mov r0, sp
+ mov r1, r10
+ ldr r2, [sp, 0x10]
+ bl MenuPrint
+ 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_8091564
+
+ thumb_func_start sub_8091738
+sub_8091738: @ 8091738
+ push {r4-r7,lr}
+ mov r7, r8
+ push {r7}
+ sub sp, 0x80
+ adds r4, r1, 0
+ adds r5, r2, 0
+ lsls r0, 16
+ lsrs r0, 16
+ lsls r4, 16
+ lsrs r4, 16
+ lsls r5, 16
+ lsrs r5, 16
+ ldr r6, _080917C8
+ bl NationalPokedexNumToSpecies
+ lsls r0, 16
+ lsrs r0, 14
+ adds r0, r6
+ ldr r0, [r0]
+ mov r12, r0
+ movs r7, 0
+ movs r1, 0
+ lsls r4, 14
+ mov r8, r4
+ lsls r5, 5
+_0809176A:
+ mov r2, r12
+ adds r0, r2, r1
+ ldrb r3, [r0]
+ movs r6, 0
+ adds r4, r1, 0x1
+_08091774:
+ lsls r1, r6, 1
+ adds r2, r3, 0
+ asrs r2, r1
+ movs r0, 0x1
+ ands r2, r0
+ movs r0, 0x2
+ lsls r0, r1
+ ands r0, r3
+ cmp r0, 0
+ beq _0809178C
+ movs r0, 0x10
+ orrs r2, r0
+_0809178C:
+ mov r1, sp
+ adds r0, r1, r7
+ strb r2, [r0]
+ adds r0, r7, 0x1
+ lsls r0, 16
+ lsrs r7, r0, 16
+ adds r0, r6, 0x1
+ lsls r0, 16
+ lsrs r6, r0, 16
+ cmp r6, 0x3
+ bls _08091774
+ lsls r0, r4, 16
+ lsrs r1, r0, 16
+ cmp r1, 0x1F
+ bls _0809176A
+ movs r1, 0xC0
+ lsls r1, 19
+ adds r1, r5, r1
+ add r1, r8
+ mov r0, sp
+ movs r2, 0x40
+ bl CpuSet
+ add sp, 0x80
+ pop {r3}
+ mov r8, r3
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080917C8: .4byte gMonFootprintTable
+ thumb_func_end sub_8091738
+
+ thumb_func_start sub_80917CC
+sub_80917CC: @ 80917CC
+ push {r4,lr}
+ lsls r0, 16
+ lsls r1, 16
+ lsrs r1, 16
+ lsrs r0, 5
+ ldr r2, _08091808
+ adds r3, r0, r2
+ movs r4, 0xF0
+ lsls r4, 8
+ adds r2, r1, r4
+ strh r2, [r3]
+ ldr r2, _0809180C
+ adds r3, r0, r2
+ adds r4, 0x1
+ adds r2, r1, r4
+ strh r2, [r3]
+ ldr r2, _08091810
+ adds r3, r0, r2
+ adds r4, 0x1
+ adds r2, r1, r4
+ strh r2, [r3]
+ ldr r2, _08091814
+ adds r0, r2
+ adds r4, 0x1
+ adds r1, r4
+ strh r1, [r0]
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08091808: .4byte 0x06000232
+_0809180C: .4byte 0x06000234
+_08091810: .4byte 0x06000272
+_08091814: .4byte 0x06000274
+ thumb_func_end sub_80917CC
+
+ thumb_func_start sub_8091818
+sub_8091818: @ 8091818
+ push {r4,r5,lr}
+ lsls r0, 24
+ lsrs r4, r0, 24
+ adds r5, r4, 0
+ lsls r1, 16
+ lsrs r0, r1, 16
+ lsls r2, 16
+ lsrs r2, 16
+ lsls r3, 16
+ lsrs r3, 16
+ cmp r4, 0x1
+ beq _08091844
+ cmp r4, 0x1
+ bgt _0809183A
+ cmp r4, 0
+ beq _0809184C
+ b _0809186C
+_0809183A:
+ cmp r5, 0x2
+ beq _0809185E
+ cmp r5, 0x3
+ beq _08091852
+ b _0809186C
+_08091844:
+ cmp r0, r2
+ bls _0809186C
+ subs r0, 0x1
+ b _08091864
+_0809184C:
+ cmp r0, r3
+ bcs _0809186C
+ b _08091862
+_08091852:
+ cmp r0, r2
+ bls _0809185A
+ subs r0, 0x1
+ b _08091864
+_0809185A:
+ adds r0, r3, 0
+ b _0809186C
+_0809185E:
+ cmp r0, r3
+ bcs _0809186A
+_08091862:
+ adds r0, 0x1
+_08091864:
+ lsls r0, 16
+ lsrs r0, 16
+ b _0809186C
+_0809186A:
+ adds r0, r2, 0
+_0809186C:
+ pop {r4,r5}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_8091818
+
+ thumb_func_start nullsub_59
+nullsub_59: @ 8091874
+ bx lr
+ thumb_func_end nullsub_59
+
+ thumb_func_start sub_8091878
+sub_8091878: @ 8091878
+ push {r4-r7,lr}
+ lsls r1, 24
+ ldr r4, _080918A0
+ adds r3, r4, 0
+ ldr r2, _080918A4
+ ldm r2!, {r5-r7}
+ stm r3!, {r5-r7}
+ ldm r2!, {r5-r7}
+ stm r3!, {r5-r7}
+ strh r0, [r4, 0x2]
+ ldr r0, _080918A8
+ lsrs r1, 22
+ adds r1, r0
+ ldr r0, [r1]
+ str r0, [r4, 0xC]
+ ldr r0, _080918AC
+ str r0, [r4, 0x8]
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080918A0: .4byte gUnknown_02024E8C
+_080918A4: .4byte gUnknown_083B57A4
+_080918A8: .4byte gUnknown_083B5794
+_080918AC: .4byte gSpriteAnimTable_81E7C64
+ thumb_func_end sub_8091878
+
+ thumb_func_start sub_80918B0
+sub_80918B0: @ 80918B0
+ push {r4-r7,lr}
+ lsls r1, 24
+ ldr r4, _080918DC
+ adds r3, r4, 0
+ ldr r2, _080918E0
+ ldm r2!, {r5-r7}
+ stm r3!, {r5-r7}
+ ldm r2!, {r5-r7}
+ stm r3!, {r5-r7}
+ strh r0, [r4, 0x2]
+ ldr r0, _080918E4
+ lsrs r1, 22
+ adds r1, r0
+ ldr r0, [r1]
+ str r0, [r4, 0xC]
+ ldr r0, _080918E8
+ ldr r0, [r0]
+ str r0, [r4, 0x8]
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080918DC: .4byte gUnknown_02024E8C
+_080918E0: .4byte gUnknown_083B57A4
+_080918E4: .4byte gUnknown_083B5794
+_080918E8: .4byte gUnknown_081EC2A4
+ thumb_func_end sub_80918B0
+
+ thumb_func_start sub_80918EC
+sub_80918EC: @ 80918EC
+ push {r4-r7,lr}
+ mov r7, r10
+ mov r6, r9
+ mov r5, r8
+ push {r5-r7}
+ sub sp, 0x10
+ lsls r0, 16
+ lsrs r7, r0, 16
+ lsls r1, 16
+ lsrs r1, 16
+ mov r9, r1
+ lsls r2, 16
+ lsrs r2, 16
+ mov r10, r2
+ lsls r3, 16
+ lsrs r3, 16
+ mov r8, r3
+ adds r0, r7, 0
+ bl NationalPokedexNumToSpecies
+ adds r7, r0, 0
+ cmp r7, SPECIES_UNOWN
+ beq _0809199C
+ movs r0, 0x9A
+ lsls r0, 1
+ cmp r7, r0
+ beq _08091958
+ lsls r6, r7, 3
+ ldr r0, _0809194C
+ adds r0, r6, r0
+ ldr r1, _08091950
+ lsls r2, r7, 2
+ adds r2, r1
+ ldrb r1, [r2]
+ ldrb r2, [r2, 0x1]
+ movs r3, 0x80
+ lsls r3, 18
+ ldr r4, _08091954
+ mov r12, r4
+ mov r5, r8
+ lsls r4, r5, 2
+ add r4, r12
+ ldr r4, [r4]
+ str r4, [sp]
+ str r7, [sp, 0x4]
+ bl DecompressPicFromTable_2
+ b _080919CE
+ .align 2, 0
+_0809194C: .4byte gMonFrontPicTable
+_08091950: .4byte gMonFrontPicCoords
+_08091954: .4byte gUnknown_083B5584
+_08091958:
+ lsls r6, r7, 3
+ ldr r0, _0809198C
+ adds r0, r6
+ ldr r2, _08091990
+ lsls r1, r7, 2
+ adds r2, r1
+ ldrb r1, [r2]
+ ldrb r2, [r2, 0x1]
+ movs r3, 0x80
+ lsls r3, 18
+ ldr r4, _08091994
+ mov r12, r4
+ mov r5, r8
+ lsls r4, r5, 2
+ add r4, r12
+ ldr r4, [r4]
+ str r4, [sp]
+ str r7, [sp, 0x4]
+ ldr r4, _08091998
+ ldr r4, [r4, 0x20]
+ str r4, [sp, 0x8]
+ movs r4, 0x1
+ str r4, [sp, 0xC]
+ bl sub_800D378
+ b _080919CE
+ .align 2, 0
+_0809198C: .4byte gMonFrontPicTable
+_08091990: .4byte gMonFrontPicCoords
+_08091994: .4byte gUnknown_083B5584
+_08091998: .4byte gSaveBlock2
+_0809199C:
+ lsls r6, r7, 3
+ ldr r0, _08091A30
+ adds r0, r6
+ ldr r2, _08091A34
+ lsls r1, r7, 2
+ adds r2, r1
+ ldrb r1, [r2]
+ ldrb r2, [r2, 0x1]
+ movs r3, 0x80
+ lsls r3, 18
+ ldr r4, _08091A38
+ mov r12, r4
+ mov r5, r8
+ lsls r4, r5, 2
+ add r4, r12
+ ldr r4, [r4]
+ str r4, [sp]
+ str r7, [sp, 0x4]
+ ldr r4, _08091A3C
+ ldr r4, [r4, 0x1C]
+ str r4, [sp, 0x8]
+ movs r4, 0x1
+ str r4, [sp, 0xC]
+ bl sub_800D378
+_080919CE:
+ ldr r0, _08091A40
+ adds r0, r6, r0
+ ldr r0, [r0]
+ mov r1, r8
+ lsls r4, r1, 4
+ movs r2, 0x80
+ lsls r2, 1
+ adds r1, r4, r2
+ lsls r1, 16
+ lsrs r1, 16
+ movs r2, 0x20
+ bl LoadCompressedPalette
+ mov r3, r8
+ lsls r1, r3, 24
+ lsrs r1, 24
+ mov r0, r8
+ bl sub_8091878
+ ldr r0, _08091A44
+ mov r5, r9
+ lsls r1, r5, 16
+ asrs r1, 16
+ mov r3, r10
+ lsls r2, r3, 16
+ asrs r2, 16
+ movs r3, 0
+ bl CreateSprite
+ lsls r0, 24
+ lsrs r0, 24
+ ldr r1, _08091A48
+ lsls r2, r0, 4
+ adds r2, r0
+ lsls r2, 2
+ adds r2, r1
+ ldrb r3, [r2, 0x5]
+ movs r1, 0xF
+ ands r1, r3
+ orrs r1, r4
+ strb r1, [r2, 0x5]
+ add sp, 0x10
+ pop {r3-r5}
+ mov r8, r3
+ mov r9, r4
+ mov r10, r5
+ pop {r4-r7}
+ pop {r1}
+ bx r1
+ .align 2, 0
+_08091A30: .4byte gMonFrontPicTable
+_08091A34: .4byte gMonFrontPicCoords
+_08091A38: .4byte gUnknown_083B5584
+_08091A3C: .4byte gSaveBlock2
+_08091A40: .4byte gMonPaletteTable
+_08091A44: .4byte gUnknown_02024E8C
+_08091A48: .4byte gSprites
+ thumb_func_end sub_80918EC
+
+ thumb_func_start sub_8091A4C
+sub_8091A4C: @ 8091A4C
+ push {r4-r6,lr}
+ mov r6, r9
+ mov r5, r8
+ push {r5,r6}
+ sub sp, 0x8
+ adds r5, r0, 0
+ adds r6, r1, 0
+ mov r8, r2
+ mov r9, r3
+ lsls r5, 16
+ lsrs r5, 16
+ lsls r6, 16
+ lsrs r6, 16
+ mov r0, r8
+ lsls r0, 16
+ lsrs r0, 16
+ mov r8, r0
+ mov r1, r9
+ lsls r1, 16
+ lsrs r1, 16
+ mov r9, r1
+ lsls r0, r5, 3
+ ldr r1, _08091AE4
+ adds r0, r1
+ ldr r1, _08091AE8
+ lsls r2, r5, 2
+ adds r2, r1
+ ldrb r1, [r2]
+ ldrb r2, [r2, 0x1]
+ movs r3, 0x80
+ lsls r3, 18
+ ldr r4, _08091AEC
+ ldr r4, [r4]
+ str r4, [sp]
+ str r5, [sp, 0x4]
+ bl DecompressPicFromTable_2
+ adds r0, r5, 0
+ movs r1, 0
+ bl sub_80918B0
+ ldr r0, _08091AF0
+ lsls r6, 16
+ asrs r6, 16
+ mov r3, r8
+ lsls r3, 16
+ asrs r3, 16
+ mov r8, r3
+ adds r1, r6, 0
+ mov r2, r8
+ movs r3, 0
+ bl CreateSprite
+ lsls r0, 24
+ lsrs r0, 24
+ ldr r1, _08091AF4
+ lsls r2, r0, 4
+ adds r2, r0
+ lsls r2, 2
+ adds r2, r1
+ mov r1, r9
+ lsls r1, 4
+ mov r9, r1
+ ldrb r3, [r2, 0x5]
+ movs r1, 0xF
+ ands r1, r3
+ mov r3, r9
+ orrs r1, r3
+ strb r1, [r2, 0x5]
+ add sp, 0x8
+ pop {r3,r4}
+ mov r8, r3
+ mov r9, r4
+ pop {r4-r6}
+ pop {r1}
+ bx r1
+ .align 2, 0
+_08091AE4: .4byte gTrainerFrontPicTable
+_08091AE8: .4byte gTrainerFrontPicCoords
+_08091AEC: .4byte gUnknown_083B5584
+_08091AF0: .4byte gUnknown_02024E8C
+_08091AF4: .4byte gSprites
+ thumb_func_end sub_8091A4C
+
+ thumb_func_start sub_8091AF8
+sub_8091AF8: @ 8091AF8
+ push {r4-r7,lr}
+ mov r7, r10
+ mov r6, r9
+ mov r5, r8
+ push {r5-r7}
+ sub sp, 0x14
+ ldr r4, [sp, 0x34]
+ ldr r5, [sp, 0x38]
+ lsls r0, 24
+ lsrs r0, 24
+ lsls r1, 24
+ lsrs r1, 24
+ lsls r2, 24
+ lsrs r7, r2, 24
+ lsls r3, 24
+ lsrs r3, 24
+ str r3, [sp, 0x4]
+ lsls r4, 24
+ lsrs r4, 24
+ str r4, [sp, 0x8]
+ lsls r5, 24
+ lsrs r5, 24
+ mov r10, r5
+ bl sub_808D690
+ movs r5, 0
+ movs r6, 0
+ ldr r4, _08091D08
+ ldr r3, _08091D0C
+_08091B32:
+ ldr r2, [r3]
+ lsls r0, r5, 2
+ adds r1, r2, r0
+ ldrb r0, [r1, 0x2]
+ lsls r0, 31
+ cmp r0, 0
+ beq _08091B4E
+ lsls r0, r6, 2
+ adds r0, r2, r0
+ ldr r1, [r1]
+ str r1, [r0]
+ adds r0, r6, 0x1
+ lsls r0, 16
+ lsrs r6, r0, 16
+_08091B4E:
+ adds r0, r5, 0x1
+ lsls r0, 16
+ lsrs r5, r0, 16
+ cmp r5, r4
+ bls _08091B32
+ ldr r1, _08091D0C
+ ldr r0, [r1]
+ ldr r2, _08091D10
+ adds r0, r2
+ adds r1, r6, 0
+ strh r6, [r0]
+ cmp r7, 0xFF
+ beq _08091C04
+ movs r5, 0
+ lsls r0, r1, 16
+ movs r6, 0
+ cmp r0, 0
+ beq _08091BFA
+ lsls r7, 2
+ ldr r0, _08091D14
+ adds r0, 0x3
+ adds r0, r7, r0
+ str r0, [sp, 0xC]
+ ldr r0, _08091D14
+ adds r0, r7
+ mov r9, r0
+_08091B82:
+ ldr r1, _08091D0C
+ ldr r0, [r1]
+ lsls r4, r5, 2
+ adds r0, r4
+ ldrh r0, [r0]
+ bl NationalPokedexNumToSpecies
+ lsls r0, 16
+ lsrs r2, r0, 16
+ ldr r1, _08091D18
+ movs r0, 0xB
+ muls r0, r2
+ adds r0, r1
+ ldrb r2, [r0]
+ adds r3, r2, 0
+ mov r0, r9
+ ldrb r0, [r0]
+ cmp r2, r0
+ bcc _08091BBA
+ mov r1, r9
+ ldrb r0, [r1]
+ ldr r1, _08091D14
+ adds r1, 0x1
+ adds r1, r7, r1
+ ldrb r1, [r1]
+ adds r0, r1
+ cmp r2, r0
+ blt _08091BD2
+_08091BBA:
+ ldr r0, _08091D14
+ adds r0, 0x2
+ adds r0, r7, r0
+ ldrb r2, [r0]
+ cmp r3, r2
+ bcc _08091BE6
+ ldrb r1, [r0]
+ ldr r2, [sp, 0xC]
+ ldrb r0, [r2]
+ adds r1, r0
+ cmp r3, r1
+ bge _08091BE6
+_08091BD2:
+ ldr r2, _08091D0C
+ ldr r0, [r2]
+ lsls r1, r6, 2
+ adds r1, r0, r1
+ adds r0, r4
+ ldr r0, [r0]
+ str r0, [r1]
+ adds r0, r6, 0x1
+ lsls r0, 16
+ lsrs r6, r0, 16
+_08091BE6:
+ adds r0, r5, 0x1
+ lsls r0, 16
+ lsrs r5, r0, 16
+ ldr r1, _08091D0C
+ ldr r0, [r1]
+ ldr r2, _08091D10
+ adds r0, r2
+ ldrh r0, [r0]
+ cmp r5, r0
+ bcc _08091B82
+_08091BFA:
+ ldr r1, _08091D0C
+ ldr r0, [r1]
+ ldr r2, _08091D10
+ adds r0, r2
+ strh r6, [r0]
+_08091C04:
+ ldr r0, [sp, 0x4]
+ cmp r0, 0xFF
+ beq _08091C74
+ movs r5, 0
+ movs r6, 0
+ ldr r1, _08091D0C
+ ldr r0, [r1]
+ ldr r2, _08091D10
+ adds r0, r2
+ ldrh r0, [r0]
+ cmp r6, r0
+ bcs _08091C6A
+ adds r7, r1, 0
+ ldr r0, _08091D1C
+ mov r8, r0
+_08091C22:
+ ldr r0, [r7]
+ lsls r4, r5, 2
+ adds r0, r4
+ ldrh r0, [r0]
+ bl NationalPokedexNumToSpecies
+ lsls r0, 16
+ lsrs r2, r0, 16
+ lsls r0, r2, 3
+ subs r0, r2
+ lsls r0, 2
+ add r0, r8
+ ldrb r0, [r0, 0x19]
+ lsls r0, 25
+ lsrs r0, 25
+ ldr r1, [sp, 0x4]
+ cmp r1, r0
+ bne _08091C58
+ ldr r0, [r7]
+ lsls r1, r6, 2
+ adds r1, r0, r1
+ adds r0, r4
+ ldr r0, [r0]
+ str r0, [r1]
+ adds r0, r6, 0x1
+ lsls r0, 16
+ lsrs r6, r0, 16
+_08091C58:
+ adds r0, r5, 0x1
+ lsls r0, 16
+ lsrs r5, r0, 16
+ ldr r0, [r7]
+ ldr r2, _08091D10
+ adds r0, r2
+ ldrh r0, [r0]
+ cmp r5, r0
+ bcc _08091C22
+_08091C6A:
+ ldr r1, _08091D0C
+ ldr r0, [r1]
+ ldr r2, _08091D10
+ adds r0, r2
+ strh r6, [r0]
+_08091C74:
+ ldr r0, [sp, 0x8]
+ cmp r0, 0xFF
+ bne _08091C8A
+ mov r1, r10
+ cmp r1, 0xFF
+ bne _08091C82
+ b _08091DA6
+_08091C82:
+ mov r2, r10
+ str r2, [sp, 0x8]
+ movs r0, 0xFF
+ mov r10, r0
+_08091C8A:
+ mov r1, r10
+ cmp r1, 0xFF
+ bne _08091D20
+ movs r5, 0
+ movs r6, 0
+ ldr r2, _08091D0C
+ ldr r0, [r2]
+ ldr r1, _08091D10
+ adds r0, r1
+ ldrh r0, [r0]
+ cmp r6, r0
+ bcs _08091D9C
+ adds r3, r2, 0
+ mov r7, sp
+ mov r8, r2
+_08091CA8:
+ ldr r0, [r3]
+ lsls r4, r5, 2
+ adds r1, r0, r4
+ ldrb r0, [r1, 0x2]
+ lsls r0, 30
+ cmp r0, 0
+ bge _08091CF2
+ ldrh r0, [r1]
+ str r3, [sp, 0x10]
+ bl NationalPokedexNumToSpecies
+ lsls r0, 16
+ lsrs r2, r0, 16
+ ldr r1, _08091D1C
+ lsls r0, r2, 3
+ subs r0, r2
+ lsls r0, 2
+ adds r0, r1
+ ldrb r1, [r0, 0x6]
+ strb r1, [r7]
+ ldrb r0, [r0, 0x7]
+ strb r0, [r7, 0x1]
+ ldr r3, [sp, 0x10]
+ ldr r2, [sp, 0x8]
+ cmp r1, r2
+ beq _08091CE0
+ cmp r0, r2
+ bne _08091CF2
+_08091CE0:
+ ldr r0, [r3]
+ lsls r1, r6, 2
+ adds r1, r0, r1
+ adds r0, r4
+ ldr r0, [r0]
+ str r0, [r1]
+ adds r0, r6, 0x1
+ lsls r0, 16
+ lsrs r6, r0, 16
+_08091CF2:
+ adds r0, r5, 0x1
+ lsls r0, 16
+ lsrs r5, r0, 16
+ mov r1, r8
+ ldr r0, [r1]
+ ldr r2, _08091D10
+ adds r0, r2
+ ldrh r0, [r0]
+ cmp r5, r0
+ bcc _08091CA8
+ b _08091D9C
+ .align 2, 0
+_08091D08: .4byte 0x00000181
+_08091D0C: .4byte gUnknown_0202FFB4
+_08091D10: .4byte 0x0000060c
+_08091D14: .4byte gUnknown_083B57BC
+_08091D18: .4byte gSpeciesNames
+_08091D1C: .4byte gBaseStats
+_08091D20:
+ movs r5, 0
+ movs r6, 0
+ ldr r1, _08091E0C
+ ldr r0, [r1]
+ ldr r2, _08091E10
+ adds r0, r2
+ ldrh r0, [r0]
+ cmp r6, r0
+ bcs _08091D9C
+ mov r7, sp
+_08091D34:
+ ldr r0, [r1]
+ lsls r1, r5, 2
+ adds r2, r0, r1
+ ldrb r0, [r2, 0x2]
+ lsls r0, 30
+ adds r4, r1, 0
+ cmp r0, 0
+ bge _08091D88
+ ldrh r0, [r2]
+ bl NationalPokedexNumToSpecies
+ lsls r0, 16
+ lsrs r2, r0, 16
+ ldr r1, _08091E14
+ lsls r0, r2, 3
+ subs r0, r2
+ lsls r0, 2
+ adds r0, r1
+ ldrb r1, [r0, 0x6]
+ strb r1, [r7]
+ ldrb r0, [r0, 0x7]
+ strb r0, [r7, 0x1]
+ ldr r2, [sp, 0x8]
+ cmp r1, r2
+ bne _08091D6A
+ cmp r0, r10
+ beq _08091D74
+_08091D6A:
+ cmp r1, r10
+ bne _08091D88
+ ldr r1, [sp, 0x8]
+ cmp r0, r1
+ bne _08091D88
+_08091D74:
+ ldr r2, _08091E0C
+ ldr r0, [r2]
+ lsls r1, r6, 2
+ adds r1, r0, r1
+ adds r0, r4
+ ldr r0, [r0]
+ str r0, [r1]
+ adds r0, r6, 0x1
+ lsls r0, 16
+ lsrs r6, r0, 16
+_08091D88:
+ adds r0, r5, 0x1
+ lsls r0, 16
+ lsrs r5, r0, 16
+ ldr r1, _08091E0C
+ ldr r0, [r1]
+ ldr r2, _08091E10
+ adds r0, r2
+ ldrh r0, [r0]
+ cmp r5, r0
+ bcc _08091D34
+_08091D9C:
+ ldr r1, _08091E0C
+ ldr r0, [r1]
+ ldr r2, _08091E10
+ adds r0, r2
+ strh r6, [r0]
+_08091DA6:
+ ldr r1, _08091E0C
+ ldr r0, [r1]
+ ldr r2, _08091E10
+ adds r1, r0, r2
+ ldrh r0, [r1]
+ cmp r0, 0
+ beq _08091DFA
+ adds r5, r0, 0
+ ldr r0, _08091E18
+ cmp r5, r0
+ bhi _08091DFA
+ ldr r4, _08091E0C
+ movs r1, 0x2
+ negs r1, r1
+ mov r10, r1
+ movs r2, 0x3
+ negs r2, r2
+ mov r9, r2
+ mov r8, r0
+ ldr r0, _08091E1C
+ adds r7, r0, 0
+_08091DD0:
+ ldr r1, [r4]
+ lsls r3, r5, 2
+ adds r1, r3
+ ldrh r0, [r1]
+ orrs r0, r7
+ strh r0, [r1]
+ ldrb r2, [r1, 0x2]
+ mov r0, r10
+ ands r0, r2
+ strb r0, [r1, 0x2]
+ ldr r1, [r4]
+ adds r1, r3
+ ldrb r2, [r1, 0x2]
+ mov r0, r9
+ ands r0, r2
+ strb r0, [r1, 0x2]
+ adds r0, r5, 0x1
+ lsls r0, 16
+ lsrs r5, r0, 16
+ cmp r5, r8
+ bls _08091DD0
+_08091DFA:
+ adds r0, r6, 0
+ add sp, 0x14
+ pop {r3-r5}
+ mov r8, r3
+ mov r9, r4
+ mov r10, r5
+ pop {r4-r7}
+ pop {r1}
+ bx r1
+ .align 2, 0
+_08091E0C: .4byte gUnknown_0202FFB4
+_08091E10: .4byte 0x0000060c
+_08091E14: .4byte gBaseStats
+_08091E18: .4byte 0x00000181
+_08091E1C: .4byte 0x0000ffff
+ thumb_func_end sub_8091AF8
+
+ thumb_func_start sub_8091E20
+sub_8091E20: @ 8091E20
+ push {lr}
+ sub sp, 0x8
+ movs r1, 0x20
+ str r1, [sp]
+ movs r1, 0x1
+ str r1, [sp, 0x4]
+ movs r1, 0x9
+ movs r2, 0x78
+ movs r3, 0xD0
+ bl sub_8072AB0
+ add sp, 0x8
+ pop {r0}
+ bx r0
+ thumb_func_end sub_8091E20
+
+ thumb_func_start sub_8091E3C
+sub_8091E3C: @ 8091E3C
+ push {lr}
+ ldr r0, _08091E50
+ movs r1, 0
+ bl CreateTask
+ lsls r0, 24
+ lsrs r0, 24
+ pop {r1}
+ bx r1
+ .align 2, 0
+_08091E50: .4byte sub_8091E54
+ thumb_func_end sub_8091E3C
+
+ thumb_func_start sub_8091E54
+sub_8091E54: @ 8091E54
+ push {r4-r7,lr}
+ mov r7, r8
+ push {r7}
+ sub sp, 0x4
+ lsls r0, 24
+ lsrs r5, r0, 24
+ ldr r1, _08091E78
+ ldr r2, _08091E7C
+ adds r0, r1, r2
+ ldrb r0, [r0]
+ adds r3, r1, 0
+ cmp r0, 0x4
+ bhi _08091E98
+ lsls r0, 2
+ ldr r1, _08091E80
+ adds r0, r1
+ ldr r0, [r0]
+ mov pc, r0
+ .align 2, 0
+_08091E78: .4byte gMain
+_08091E7C: .4byte 0x0000043c
+_08091E80: .4byte _08091E84
+ .align 2, 0
+_08091E84:
+ .4byte _08091E98
+ .4byte _08091F50
+ .4byte _08091FC0
+ .4byte _08091FE0
+ .4byte _0809200C
+_08091E98:
+ ldr r0, _08091F1C
+ ldrb r1, [r0, 0x7]
+ movs r0, 0x80
+ ands r0, r1
+ cmp r0, 0
+ beq _08091EA6
+ b _08092030
+_08091EA6:
+ ldr r0, _08091F20
+ ldr r0, [r0]
+ ldr r1, _08091F24
+ adds r0, r1
+ movs r1, 0x2
+ strb r1, [r0]
+ movs r0, 0
+ bl sub_8091060
+ ldr r0, _08091F28
+ movs r1, 0xC0
+ lsls r1, 19
+ bl LZ77UnCompVram
+ ldr r0, _08091F2C
+ ldr r1, _08091F30
+ bl LZ77UnCompVram
+ ldr r0, _08091F34
+ movs r1, 0x1
+ movs r2, 0x7E
+ bl LoadPalette
+ bl sub_806912C
+ cmp r0, 0
+ bne _08091F10
+ movs r4, 0
+ ldr r2, _08091F38
+ mov r8, r2
+ ldr r0, _08091F3C
+ mov r12, r0
+ movs r5, 0x1
+ ldr r7, _08091F40
+ ldr r6, _08091F44
+_08091EEC:
+ lsls r1, r4, 1
+ mov r0, r8
+ adds r2, r1, r0
+ mov r0, r12
+ adds r3, r1, r0
+ ldrh r0, [r3]
+ strh r0, [r2]
+ adds r2, r1, r7
+ adds r1, r6
+ ldrh r0, [r1]
+ strh r0, [r2]
+ strh r5, [r3]
+ strh r5, [r1]
+ adds r0, r4, 0x1
+ lsls r0, 16
+ lsrs r4, r0, 16
+ cmp r4, 0x10
+ bls _08091EEC
+_08091F10:
+ ldr r0, _08091F48
+ ldr r1, _08091F4C
+ adds r0, r1
+ movs r1, 0x1
+ strb r1, [r0]
+ b _08092030
+ .align 2, 0
+_08091F1C: .4byte gPaletteFade
+_08091F20: .4byte gUnknown_0202FFB4
+_08091F24: .4byte 0x0000064a
+_08091F28: .4byte gPokedexMenuSearch_Gfx
+_08091F2C: .4byte gUnknown_08E96D2C
+_08091F30: .4byte 0x06007800
+_08091F34: .4byte gPokedexMenuSearch_Pal + 0x2
+_08091F38: .4byte 0x06007a80
+_08091F3C: .4byte 0x06007b00
+_08091F40: .4byte 0x06007ac0
+_08091F44: .4byte 0x06007b40
+_08091F48: .4byte gMain
+_08091F4C: .4byte 0x0000043c
+_08091F50:
+ ldr r4, _08091FA8
+ adds r0, r4, 0
+ bl SetUpWindowConfig
+ adds r0, r4, 0
+ bl InitMenuWindow
+ ldr r0, _08091FAC
+ bl LoadCompressedObjectPic
+ ldr r0, _08091FB0
+ bl LoadSpritePalettes
+ adds r0, r5, 0
+ bl sub_809308C
+ movs r4, 0
+ lsls r0, r5, 2
+ adds r0, r5
+ lsls r1, r0, 3
+ ldr r3, _08091FB4
+ movs r2, 0
+_08091F7C:
+ lsls r0, r4, 1
+ adds r0, r1
+ adds r0, r3
+ strh r2, [r0]
+ adds r0, r4, 0x1
+ lsls r0, 16
+ lsrs r4, r0, 16
+ cmp r4, 0xF
+ bls _08091F7C
+ adds r0, r5, 0
+ bl sub_8092EB0
+ movs r0, 0
+ bl sub_8092AB0
+ adds r0, r5, 0
+ bl sub_8092B68
+ ldr r1, _08091FB8
+ ldr r2, _08091FBC
+ adds r1, r2
+ b _08091FF6
+ .align 2, 0
+_08091FA8: .4byte gWindowConfig_81E7064
+_08091FAC: .4byte gUnknown_083A05CC
+_08091FB0: .4byte gUnknown_083A05DC
+_08091FB4: .4byte gUnknown_03004B28
+_08091FB8: .4byte gMain
+_08091FBC: .4byte 0x0000043c
+_08091FC0:
+ movs r0, 0x1
+ negs r0, r0
+ movs r1, 0
+ str r1, [sp]
+ movs r2, 0x10
+ movs r3, 0
+ bl BeginNormalPaletteFade
+ ldr r1, _08091FD8
+ ldr r0, _08091FDC
+ adds r1, r0
+ b _08091FF6
+ .align 2, 0
+_08091FD8: .4byte gMain
+_08091FDC: .4byte 0x0000043c
+_08091FE0:
+ ldr r1, _08092000
+ ldr r2, _08092004
+ adds r0, r2, 0
+ strh r0, [r1]
+ subs r1, 0xE
+ movs r2, 0xE2
+ lsls r2, 5
+ adds r0, r2, 0
+ strh r0, [r1]
+ ldr r0, _08092008
+ adds r1, r3, r0
+_08091FF6:
+ ldrb r0, [r1]
+ adds r0, 0x1
+ strb r0, [r1]
+ b _08092030
+ .align 2, 0
+_08092000: .4byte REG_BG3CNT
+_08092004: .4byte 0x00000f03
+_08092008: .4byte 0x0000043c
+_0809200C:
+ ldr r0, _0809203C
+ ldrb r1, [r0, 0x7]
+ movs r0, 0x80
+ ands r0, r1
+ lsls r0, 24
+ lsrs r2, r0, 24
+ cmp r2, 0
+ bne _08092030
+ ldr r1, _08092040
+ lsls r0, r5, 2
+ adds r0, r5
+ lsls r0, 3
+ adds r0, r1
+ ldr r1, _08092044
+ str r1, [r0]
+ ldr r1, _08092048
+ adds r0, r3, r1
+ strb r2, [r0]
+_08092030:
+ add sp, 0x4
+ pop {r3}
+ mov r8, r3
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0809203C: .4byte gPaletteFade
+_08092040: .4byte gTasks
+_08092044: .4byte sub_809204C
+_08092048: .4byte 0x0000043c
+ thumb_func_end sub_8091E54
+
+ thumb_func_start sub_809204C
+sub_809204C: @ 809204C
+ push {r4,r5,lr}
+ adds r5, r0, 0
+ lsls r5, 24
+ lsrs r5, 24
+ ldr r0, _08092074
+ lsls r4, r5, 2
+ adds r4, r5
+ lsls r4, 3
+ adds r4, r0
+ ldrb r0, [r4, 0x8]
+ bl sub_8092AB0
+ adds r0, r5, 0
+ bl sub_8092B68
+ ldr r0, _08092078
+ str r0, [r4]
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08092074: .4byte gTasks
+_08092078: .4byte sub_809207C
+ thumb_func_end sub_809204C
+
+ thumb_func_start sub_809207C
+sub_809207C: @ 809207C
+ push {r4,r5,lr}
+ lsls r0, 24
+ lsrs r5, r0, 24
+ ldr r0, _080920A4
+ ldrh r1, [r0, 0x2E]
+ movs r0, 0x2
+ ands r0, r1
+ cmp r0, 0
+ beq _080920B0
+ movs r0, 0x3
+ bl PlaySE
+ ldr r0, _080920A8
+ lsls r1, r5, 2
+ adds r1, r5
+ lsls r1, 3
+ adds r1, r0
+ ldr r0, _080920AC
+ str r0, [r1]
+ b _0809216C
+ .align 2, 0
+_080920A4: .4byte gMain
+_080920A8: .4byte gTasks
+_080920AC: .4byte sub_80927B8
+_080920B0:
+ movs r0, 0x1
+ ands r0, r1
+ cmp r0, 0
+ beq _0809210C
+ ldr r1, _080920D4
+ lsls r0, r5, 2
+ adds r0, r5
+ lsls r0, 3
+ adds r5, r0, r1
+ movs r0, 0x8
+ ldrsh r4, [r5, r0]
+ cmp r4, 0x1
+ beq _080920E8
+ cmp r4, 0x1
+ bgt _080920D8
+ cmp r4, 0
+ beq _080920DE
+ b _0809216C
+ .align 2, 0
+_080920D4: .4byte gTasks
+_080920D8:
+ cmp r4, 0x2
+ beq _080920FC
+ b _0809216C
+_080920DE:
+ movs r0, 0x15
+ bl PlaySE
+ strh r4, [r5, 0xA]
+ b _080920F2
+_080920E8:
+ movs r0, 0x15
+ bl PlaySE
+ movs r0, 0x4
+ strh r0, [r5, 0xA]
+_080920F2:
+ ldr r0, _080920F8
+ str r0, [r5]
+ b _0809216C
+ .align 2, 0
+_080920F8: .4byte sub_809217C
+_080920FC:
+ movs r0, 0x3
+ bl PlaySE
+ ldr r0, _08092108
+ str r0, [r5]
+ b _0809216C
+ .align 2, 0
+_08092108: .4byte sub_80927B8
+_0809210C:
+ movs r0, 0x20
+ ands r0, r1
+ cmp r0, 0
+ beq _0809213A
+ ldr r0, _08092174
+ lsls r1, r5, 2
+ adds r1, r5
+ lsls r1, 3
+ adds r4, r1, r0
+ movs r1, 0x8
+ ldrsh r0, [r4, r1]
+ cmp r0, 0
+ ble _0809213A
+ movs r0, 0x6D
+ bl PlaySE
+ ldrh r0, [r4, 0x8]
+ subs r0, 0x1
+ strh r0, [r4, 0x8]
+ lsls r0, 24
+ lsrs r0, 24
+ bl sub_8092AB0
+_0809213A:
+ ldr r0, _08092178
+ ldrh r1, [r0, 0x2E]
+ movs r0, 0x10
+ ands r0, r1
+ cmp r0, 0
+ beq _0809216C
+ ldr r0, _08092174
+ lsls r1, r5, 2
+ adds r1, r5
+ lsls r1, 3
+ adds r4, r1, r0
+ movs r1, 0x8
+ ldrsh r0, [r4, r1]
+ cmp r0, 0x1
+ bgt _0809216C
+ movs r0, 0x6D
+ bl PlaySE
+ ldrh r0, [r4, 0x8]
+ adds r0, 0x1
+ strh r0, [r4, 0x8]
+ lsls r0, 24
+ lsrs r0, 24
+ bl sub_8092AB0
+_0809216C:
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08092174: .4byte gTasks
+_08092178: .4byte gMain
+ thumb_func_end sub_809207C
+
+ thumb_func_start sub_809217C
+sub_809217C: @ 809217C
+ push {r4,r5,lr}
+ adds r5, r0, 0
+ lsls r5, 24
+ lsrs r5, 24
+ ldr r0, _080921A8
+ lsls r4, r5, 2
+ adds r4, r5
+ lsls r4, 3
+ adds r4, r0
+ ldrb r0, [r4, 0x8]
+ ldrb r1, [r4, 0xA]
+ bl sub_8092AD4
+ adds r0, r5, 0
+ bl sub_8092B68
+ ldr r0, _080921AC
+ str r0, [r4]
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080921A8: .4byte gTasks
+_080921AC: .4byte sub_80921B0
+ thumb_func_end sub_809217C
+
+ thumb_func_start sub_80921B0
+sub_80921B0: @ 80921B0
+ push {r4-r7,lr}
+ lsls r0, 24
+ lsrs r5, r0, 24
+ ldr r1, _080921D8
+ lsls r0, r5, 2
+ adds r0, r5
+ lsls r0, 3
+ adds r0, r1
+ movs r1, 0x8
+ ldrsh r0, [r0, r1]
+ cmp r0, 0
+ beq _080921E4
+ bl sub_806912C
+ ldr r6, _080921DC
+ cmp r0, 0
+ bne _080921F0
+ ldr r6, _080921E0
+ b _080921F0
+ .align 2, 0
+_080921D8: .4byte gTasks
+_080921DC: .4byte gUnknown_083B586C
+_080921E0: .4byte gUnknown_083B58A4
+_080921E4:
+ bl sub_806912C
+ ldr r6, _0809221C
+ cmp r0, 0
+ bne _080921F0
+ ldr r6, _08092220
+_080921F0:
+ ldr r0, _08092224
+ ldrh r1, [r0, 0x2E]
+ movs r0, 0x2
+ ands r0, r1
+ lsls r0, 16
+ lsrs r3, r0, 16
+ cmp r3, 0
+ beq _08092230
+ movs r0, 0x17
+ bl PlaySE
+ adds r0, r5, 0
+ bl sub_8092EB0
+ ldr r0, _08092228
+ lsls r1, r5, 2
+ adds r1, r5
+ lsls r1, 3
+ adds r1, r0
+ ldr r0, _0809222C
+ str r0, [r1]
+ b _080923EC
+ .align 2, 0
+_0809221C: .4byte gUnknown_083B5850
+_08092220: .4byte gUnknown_083B5888
+_08092224: .4byte gMain
+_08092228: .4byte gTasks
+_0809222C: .4byte sub_809204C
+_08092230:
+ movs r0, 0x1
+ ands r0, r1
+ cmp r0, 0
+ beq _08092300
+ ldr r0, _080922B4
+ lsls r1, r5, 2
+ adds r1, r5
+ lsls r1, 3
+ adds r6, r1, r0
+ movs r2, 0xA
+ ldrsh r0, [r6, r2]
+ cmp r0, 0x6
+ bne _080922F0
+ movs r1, 0x8
+ ldrsh r0, [r6, r1]
+ cmp r0, 0
+ beq _080922D4
+ ldr r1, _080922B8
+ movs r0, 0x40
+ strb r0, [r1]
+ ldr r7, _080922BC
+ ldr r1, [r7]
+ ldr r0, _080922C0
+ adds r2, r1, r0
+ movs r0, 0x40
+ strh r0, [r2]
+ ldr r0, _080922C4
+ strh r3, [r0]
+ movs r2, 0xC2
+ lsls r2, 3
+ adds r1, r2
+ strh r3, [r1]
+ adds r0, r5, 0
+ movs r1, 0x5
+ bl sub_8092E10
+ ldr r4, _080922C8
+ strb r0, [r4, 0x19]
+ bl sub_806912C
+ cmp r0, 0
+ bne _08092288
+ movs r0, 0
+ strb r0, [r4, 0x19]
+_08092288:
+ ldr r0, [r7]
+ ldrb r1, [r4, 0x19]
+ ldr r2, _080922CC
+ adds r0, r2
+ strh r1, [r0]
+ adds r0, r5, 0
+ movs r1, 0x4
+ bl sub_8092E10
+ strb r0, [r4, 0x18]
+ ldr r0, [r7]
+ ldrb r1, [r4, 0x18]
+ movs r2, 0xC3
+ lsls r2, 3
+ adds r0, r2
+ strh r1, [r0]
+ movs r0, 0x3
+ bl PlaySE
+ ldr r0, _080922D0
+ str r0, [r6]
+ b _080923EC
+ .align 2, 0
+_080922B4: .4byte gTasks
+_080922B8: .4byte gUnknown_0202FFBA
+_080922BC: .4byte gUnknown_0202FFB4
+_080922C0: .4byte 0x0000062a
+_080922C4: .4byte gUnknown_0202FFB8
+_080922C8: .4byte gSaveBlock2
+_080922CC: .4byte 0x00000614
+_080922D0: .4byte sub_80927B8
+_080922D4:
+ ldr r0, _080922E8
+ bl sub_8091E20
+ ldr r0, _080922EC
+ str r0, [r6]
+ movs r0, 0x70
+ bl PlaySE
+ b _080923EC
+ .align 2, 0
+_080922E8: .4byte gDexText_Searching
+_080922EC: .4byte sub_80923FC
+_080922F0:
+ movs r0, 0x15
+ bl PlaySE
+ ldr r0, _080922FC
+ str r0, [r6]
+ b _080923EC
+ .align 2, 0
+_080922FC: .4byte sub_80925CC
+_08092300:
+ movs r0, 0x20
+ ands r0, r1
+ cmp r0, 0
+ beq _08092338
+ ldr r1, _080923F4
+ lsls r0, r5, 2
+ adds r0, r5
+ lsls r0, 3
+ adds r4, r0, r1
+ movs r1, 0xA
+ ldrsh r0, [r4, r1]
+ lsls r0, 2
+ adds r0, r6
+ ldrb r0, [r0]
+ cmp r0, 0xFF
+ beq _08092338
+ movs r0, 0x5
+ bl PlaySE
+ movs r2, 0xA
+ ldrsh r0, [r4, r2]
+ lsls r0, 2
+ adds r0, r6
+ ldrb r1, [r0]
+ strh r1, [r4, 0xA]
+ ldrb r0, [r4, 0x8]
+ bl sub_8092AD4
+_08092338:
+ ldr r0, _080923F8
+ ldrh r1, [r0, 0x2E]
+ movs r0, 0x10
+ ands r0, r1
+ cmp r0, 0
+ beq _08092374
+ ldr r1, _080923F4
+ lsls r0, r5, 2
+ adds r0, r5
+ lsls r0, 3
+ adds r4, r0, r1
+ movs r1, 0xA
+ ldrsh r0, [r4, r1]
+ lsls r0, 2
+ adds r0, r6
+ ldrb r0, [r0, 0x1]
+ cmp r0, 0xFF
+ beq _08092374
+ movs r0, 0x5
+ bl PlaySE
+ movs r2, 0xA
+ ldrsh r0, [r4, r2]
+ lsls r0, 2
+ adds r0, r6
+ ldrb r1, [r0, 0x1]
+ strh r1, [r4, 0xA]
+ ldrb r0, [r4, 0x8]
+ bl sub_8092AD4
+_08092374:
+ ldr r0, _080923F8
+ ldrh r1, [r0, 0x2E]
+ movs r0, 0x40
+ ands r0, r1
+ cmp r0, 0
+ beq _080923B0
+ ldr r1, _080923F4
+ lsls r0, r5, 2
+ adds r0, r5
+ lsls r0, 3
+ adds r4, r0, r1
+ movs r1, 0xA
+ ldrsh r0, [r4, r1]
+ lsls r0, 2
+ adds r0, r6
+ ldrb r0, [r0, 0x2]
+ cmp r0, 0xFF
+ beq _080923B0
+ movs r0, 0x5
+ bl PlaySE
+ movs r2, 0xA
+ ldrsh r0, [r4, r2]
+ lsls r0, 2
+ adds r0, r6
+ ldrb r1, [r0, 0x2]
+ strh r1, [r4, 0xA]
+ ldrb r0, [r4, 0x8]
+ bl sub_8092AD4
+_080923B0:
+ ldr r0, _080923F8
+ ldrh r1, [r0, 0x2E]
+ movs r0, 0x80
+ ands r0, r1
+ cmp r0, 0
+ beq _080923EC
+ ldr r1, _080923F4
+ lsls r0, r5, 2
+ adds r0, r5
+ lsls r0, 3
+ adds r4, r0, r1
+ movs r1, 0xA
+ ldrsh r0, [r4, r1]
+ lsls r0, 2
+ adds r0, r6
+ ldrb r0, [r0, 0x3]
+ cmp r0, 0xFF
+ beq _080923EC
+ movs r0, 0x5
+ bl PlaySE
+ movs r2, 0xA
+ ldrsh r0, [r4, r2]
+ lsls r0, 2
+ adds r0, r6
+ ldrb r1, [r0, 0x3]
+ strh r1, [r4, 0xA]
+ ldrb r0, [r4, 0x8]
+ bl sub_8092AD4
+_080923EC:
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080923F4: .4byte gTasks
+_080923F8: .4byte gMain
+ thumb_func_end sub_80921B0
+
+ thumb_func_start sub_80923FC
+sub_80923FC: @ 80923FC
+ push {r4-r6,lr}
+ mov r6, r10
+ mov r5, r9
+ mov r4, r8
+ push {r4-r6}
+ sub sp, 0x8
+ adds r5, r0, 0
+ lsls r5, 24
+ lsrs r5, 24
+ adds r0, r5, 0
+ movs r1, 0x5
+ bl sub_8092E10
+ mov r10, r0
+ mov r0, r10
+ lsls r0, 24
+ lsrs r0, 24
+ mov r10, r0
+ adds r0, r5, 0
+ movs r1, 0x4
+ bl sub_8092E10
+ mov r9, r0
+ mov r0, r9
+ lsls r0, 24
+ lsrs r0, 24
+ mov r9, r0
+ adds r0, r5, 0
+ movs r1, 0
+ bl sub_8092E10
+ mov r8, r0
+ mov r0, r8
+ lsls r0, 24
+ lsrs r0, 24
+ mov r8, r0
+ adds r0, r5, 0
+ movs r1, 0x1
+ bl sub_8092E10
+ adds r6, r0, 0
+ lsls r6, 24
+ lsrs r6, 24
+ adds r0, r5, 0
+ movs r1, 0x2
+ bl sub_8092E10
+ adds r4, r0, 0
+ lsls r4, 24
+ lsrs r4, 24
+ adds r0, r5, 0
+ movs r1, 0x3
+ bl sub_8092E10
+ lsls r0, 24
+ lsrs r0, 24
+ str r4, [sp]
+ str r0, [sp, 0x4]
+ mov r0, r10
+ mov r1, r9
+ mov r2, r8
+ adds r3, r6, 0
+ bl sub_8091AF8
+ ldr r1, _0809249C
+ lsls r0, r5, 2
+ adds r0, r5
+ lsls r0, 3
+ adds r0, r1
+ ldr r1, _080924A0
+ str r1, [r0]
+ add sp, 0x8
+ pop {r3-r5}
+ mov r8, r3
+ mov r9, r4
+ mov r10, r5
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0809249C: .4byte gTasks
+_080924A0: .4byte sub_80924A4
+ thumb_func_end sub_80923FC
+
+ thumb_func_start sub_80924A4
+sub_80924A4: @ 80924A4
+ push {r4,lr}
+ lsls r0, 24
+ lsrs r4, r0, 24
+ bl IsSEPlaying
+ lsls r0, 24
+ cmp r0, 0
+ bne _080924F6
+ ldr r0, _080924D0
+ ldr r0, [r0]
+ ldr r1, _080924D4
+ adds r0, r1
+ ldrh r0, [r0]
+ cmp r0, 0
+ beq _080924DC
+ movs r0, 0x1F
+ bl PlaySE
+ ldr r0, _080924D8
+ bl sub_8091E20
+ b _080924E8
+ .align 2, 0
+_080924D0: .4byte gUnknown_0202FFB4
+_080924D4: .4byte 0x0000060c
+_080924D8: .4byte gDexText_SearchComplete
+_080924DC:
+ movs r0, 0x20
+ bl PlaySE
+ ldr r0, _080924FC
+ bl sub_8091E20
+_080924E8:
+ ldr r0, _08092500
+ lsls r1, r4, 2
+ adds r1, r4
+ lsls r1, 3
+ adds r1, r0
+ ldr r0, _08092504
+ str r0, [r1]
+_080924F6:
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080924FC: .4byte gDexText_NoMatching
+_08092500: .4byte gTasks
+_08092504: .4byte sub_8092508
+ thumb_func_end sub_80924A4
+
+ thumb_func_start sub_8092508
+sub_8092508: @ 8092508
+ push {r4,r5,lr}
+ lsls r0, 24
+ lsrs r4, r0, 24
+ adds r2, r4, 0
+ ldr r0, _08092570
+ ldrh r1, [r0, 0x2E]
+ movs r0, 0x1
+ ands r0, r1
+ cmp r0, 0
+ beq _080925A4
+ ldr r5, _08092574
+ ldr r1, [r5]
+ ldr r3, _08092578
+ adds r0, r1, r3
+ ldrh r0, [r0]
+ cmp r0, 0
+ beq _08092590
+ ldr r0, _0809257C
+ adds r1, r0
+ movs r0, 0x1
+ strb r0, [r1]
+ adds r0, r4, 0
+ movs r1, 0x5
+ bl sub_8092E10
+ ldr r1, [r5]
+ lsls r0, 24
+ lsrs r0, 24
+ ldr r2, _08092580
+ adds r1, r2
+ strh r0, [r1]
+ adds r0, r4, 0
+ movs r1, 0x4
+ bl sub_8092E10
+ ldr r1, [r5]
+ lsls r0, 24
+ lsrs r0, 24
+ ldr r3, _08092584
+ adds r1, r3
+ strh r0, [r1]
+ ldr r1, _08092588
+ lsls r0, r4, 2
+ adds r0, r4
+ lsls r0, 3
+ adds r0, r1
+ ldr r1, _0809258C
+ str r1, [r0]
+ movs r0, 0x3
+ bl PlaySE
+ b _080925A4
+ .align 2, 0
+_08092570: .4byte gMain
+_08092574: .4byte gUnknown_0202FFB4
+_08092578: .4byte 0x0000060c
+_0809257C: .4byte 0x0000064f
+_08092580: .4byte 0x00000612
+_08092584: .4byte 0x00000616
+_08092588: .4byte gTasks
+_0809258C: .4byte sub_80927B8
+_08092590:
+ ldr r0, _080925AC
+ lsls r1, r2, 2
+ adds r1, r2
+ lsls r1, 3
+ adds r1, r0
+ ldr r0, _080925B0
+ str r0, [r1]
+ movs r0, 0x17
+ bl PlaySE
+_080925A4:
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080925AC: .4byte gTasks
+_080925B0: .4byte sub_809217C
+ thumb_func_end sub_8092508
+
+ thumb_func_start sub_80925B4
+sub_80925B4: @ 80925B4
+ push {lr}
+ adds r1, r0, 0
+ lsls r1, 16
+ lsrs r1, 15
+ adds r1, 0x1
+ lsls r1, 27
+ lsrs r1, 24
+ movs r0, 0x90
+ bl sub_814AD7C
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80925B4
+
+ thumb_func_start sub_80925CC
+sub_80925CC: @ 80925CC
+ push {r4-r6,lr}
+ sub sp, 0x4
+ adds r4, r0, 0
+ lsls r4, 24
+ lsrs r4, 24
+ movs r0, 0
+ bl sub_8092C8C
+ ldr r2, _08092630
+ lsls r1, r4, 2
+ adds r1, r4
+ lsls r1, 3
+ adds r6, r1, r2
+ ldrb r0, [r6, 0xA]
+ adds r2, 0x8
+ adds r1, r2
+ ldr r2, _08092634
+ lsls r0, 3
+ adds r0, r2
+ ldrb r5, [r0, 0x4]
+ lsls r5, 1
+ adds r5, r1, r5
+ ldrb r0, [r0, 0x5]
+ lsls r0, 1
+ adds r1, r0
+ ldrh r0, [r5]
+ strh r0, [r6, 0x24]
+ ldrh r0, [r1]
+ strh r0, [r6, 0x26]
+ adds r0, r4, 0
+ bl sub_8092D78
+ ldr r1, _08092638
+ ldr r3, _0809263C
+ movs r0, 0xB
+ str r0, [sp]
+ movs r0, 0x10
+ movs r2, 0xC
+ bl sub_814AC58
+ ldrh r0, [r5]
+ movs r1, 0x1
+ bl sub_80925B4
+ ldr r0, _08092640
+ str r0, [r6]
+ add sp, 0x4
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08092630: .4byte gTasks
+_08092634: .4byte gUnknown_083B5A7C
+_08092638: .4byte 0x0000ffff
+_0809263C: .4byte 0x00002d9f
+_08092640: .4byte sub_8092644
+ thumb_func_end sub_80925CC
+
+ thumb_func_start sub_8092644
+sub_8092644: @ 8092644
+ push {r4-r7,lr}
+ mov r7, r8
+ push {r7}
+ lsls r0, 24
+ lsrs r7, r0, 24
+ ldr r3, _080926A8
+ lsls r2, r7, 2
+ adds r2, r7
+ lsls r2, 3
+ adds r6, r2, r3
+ ldrb r1, [r6, 0xA]
+ ldr r0, _080926AC
+ lsls r1, 3
+ adds r1, r0
+ ldr r0, [r1]
+ mov r8, r0
+ adds r3, 0x8
+ adds r2, r3
+ ldrb r0, [r1, 0x4]
+ lsls r0, 1
+ adds r4, r2, r0
+ ldrb r0, [r1, 0x5]
+ lsls r0, 1
+ adds r5, r2, r0
+ ldrh r0, [r1, 0x6]
+ subs r0, 0x1
+ lsls r0, 16
+ lsrs r2, r0, 16
+ ldr r0, _080926B0
+ mov r12, r0
+ ldrh r1, [r0, 0x2E]
+ movs r0, 0x1
+ ands r0, r1
+ cmp r0, 0
+ beq _080926B4
+ bl sub_814ADC8
+ movs r0, 0x15
+ bl PlaySE
+ movs r0, 0x12
+ movs r1, 0x1
+ movs r2, 0x1C
+ movs r3, 0xC
+ bl MenuZeroFillWindowRect
+ movs r0, 0x1
+ bl sub_8092C8C
+ b _080926E0
+ .align 2, 0
+_080926A8: .4byte gTasks
+_080926AC: .4byte gUnknown_083B5A7C
+_080926B0: .4byte gMain
+_080926B4:
+ movs r0, 0x2
+ ands r0, r1
+ cmp r0, 0
+ beq _080926EC
+ bl sub_814ADC8
+ movs r0, 0x17
+ bl PlaySE
+ movs r0, 0x12
+ movs r1, 0x1
+ movs r2, 0x1C
+ movs r3, 0xC
+ bl MenuZeroFillWindowRect
+ movs r0, 0x1
+ bl sub_8092C8C
+ ldrh r0, [r6, 0x24]
+ strh r0, [r4]
+ ldrh r0, [r6, 0x26]
+ strh r0, [r5]
+_080926E0:
+ ldr r0, _080926E8
+ str r0, [r6]
+ b _080927AE
+ .align 2, 0
+_080926E8: .4byte sub_809217C
+_080926EC:
+ movs r3, 0
+ mov r0, r12
+ ldrh r1, [r0, 0x30]
+ movs r0, 0x40
+ ands r0, r1
+ cmp r0, 0
+ beq _0809274C
+ ldrh r0, [r4]
+ cmp r0, 0
+ beq _08092716
+ movs r1, 0
+ bl sub_80925B4
+ ldrh r0, [r4]
+ subs r0, 0x1
+ strh r0, [r4]
+ ldrh r0, [r4]
+ movs r1, 0x1
+ bl sub_80925B4
+ b _08092734
+_08092716:
+ ldrh r0, [r5]
+ cmp r0, 0
+ beq _08092730
+ subs r0, 0x1
+ strh r0, [r5]
+ adds r0, r7, 0
+ bl sub_8092D78
+ ldrh r0, [r4]
+ movs r1, 0x1
+ bl sub_80925B4
+ movs r3, 0x1
+_08092730:
+ cmp r3, 0
+ beq _080927AE
+_08092734:
+ movs r0, 0x5
+ bl PlaySE
+ ldrh r0, [r4]
+ ldrh r1, [r5]
+ adds r0, r1
+ lsls r0, 3
+ add r0, r8
+ ldr r0, [r0]
+ bl sub_8091E20
+ b _080927AE
+_0809274C:
+ movs r0, 0x80
+ ands r0, r1
+ cmp r0, 0
+ beq _080927AE
+ ldrh r0, [r4]
+ cmp r0, 0x4
+ bhi _08092774
+ cmp r0, r2
+ bcs _08092774
+ movs r1, 0
+ bl sub_80925B4
+ ldrh r0, [r4]
+ adds r0, 0x1
+ strh r0, [r4]
+ ldrh r0, [r4]
+ movs r1, 0x1
+ bl sub_80925B4
+ b _08092798
+_08092774:
+ cmp r2, 0x5
+ bls _08092794
+ ldrh r1, [r5]
+ subs r0, r2, 0x5
+ cmp r1, r0
+ bge _08092794
+ adds r0, r1, 0x1
+ strh r0, [r5]
+ adds r0, r7, 0
+ bl sub_8092D78
+ movs r0, 0x5
+ movs r1, 0x1
+ bl sub_80925B4
+ movs r3, 0x1
+_08092794:
+ cmp r3, 0
+ beq _080927AE
+_08092798:
+ movs r0, 0x5
+ bl PlaySE
+ ldrh r0, [r4]
+ ldrh r1, [r5]
+ adds r0, r1
+ lsls r0, 3
+ add r0, r8
+ ldr r0, [r0]
+ bl sub_8091E20
+_080927AE:
+ pop {r3}
+ mov r8, r3
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_8092644
+
+ thumb_func_start sub_80927B8
+sub_80927B8: @ 80927B8
+ push {r4,lr}
+ sub sp, 0x4
+ adds r4, r0, 0
+ lsls r4, 24
+ lsrs r4, 24
+ movs r0, 0x1
+ negs r0, r0
+ movs r1, 0
+ str r1, [sp]
+ movs r2, 0
+ movs r3, 0x10
+ bl BeginNormalPaletteFade
+ ldr r1, _080927E8
+ lsls r0, r4, 2
+ adds r0, r4
+ lsls r0, 3
+ adds r0, r1
+ ldr r1, _080927EC
+ str r1, [r0]
+ add sp, 0x4
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080927E8: .4byte gTasks
+_080927EC: .4byte sub_80927F0
+ thumb_func_end sub_80927B8
+
+ thumb_func_start sub_80927F0
+sub_80927F0: @ 80927F0
+ push {lr}
+ lsls r0, 24
+ lsrs r2, r0, 24
+ ldr r0, _0809280C
+ ldrb r1, [r0, 0x7]
+ movs r0, 0x80
+ ands r0, r1
+ cmp r0, 0
+ bne _08092808
+ adds r0, r2, 0
+ bl DestroyTask
+_08092808:
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0809280C: .4byte gPaletteFade
+ thumb_func_end sub_80927F0
+
+ thumb_func_start sub_8092810
+sub_8092810: @ 8092810
+ push {r4-r7,lr}
+ lsls r0, 24
+ lsrs r0, 24
+ lsls r1, 24
+ lsrs r1, 24
+ mov r12, r1
+ lsls r2, 24
+ lsrs r1, r2, 24
+ lsls r3, 24
+ lsrs r5, r3, 8
+ movs r3, 0
+ cmp r5, 0
+ beq _0809285A
+ lsls r7, r1, 6
+ ldr r6, _08092860
+ lsls r4, r0, 12
+_08092830:
+ mov r0, r12
+ adds r1, r0, r3
+ lsls r1, 1
+ adds r1, r7, r1
+ ldr r0, _08092864
+ adds r2, r1, r0
+ ldrh r0, [r2]
+ ands r0, r6
+ orrs r0, r4
+ strh r0, [r2]
+ ldr r0, _08092868
+ adds r1, r0
+ ldrh r0, [r1]
+ ands r0, r6
+ orrs r0, r4
+ strh r0, [r1]
+ adds r0, r3, 0x1
+ lsls r0, 16
+ lsrs r3, r0, 16
+ cmp r0, r5
+ bcc _08092830
+_0809285A:
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08092860: .4byte 0x00000fff
+_08092864: .4byte 0x06007800
+_08092868: .4byte 0x06007840
+ thumb_func_end sub_8092810
+
+ thumb_func_start sub_809286C
+sub_809286C: @ 809286C
+ push {r4,r5,lr}
+ lsls r0, 24
+ lsrs r4, r0, 24
+ lsls r1, 24
+ lsrs r5, r1, 24
+ lsls r2, 24
+ lsrs r2, 24
+ movs r0, 0x1
+ ands r5, r0
+ ands r2, r0
+ lsls r2, 1
+ orrs r5, r2
+ cmp r4, 0xA
+ bhi _08092958
+ lsls r0, r4, 2
+ ldr r1, _08092894
+ adds r0, r1
+ ldr r0, [r0]
+ mov pc, r0
+ .align 2, 0
+_08092894: .4byte _08092898
+ .align 2, 0
+_08092898:
+ .4byte _080928C4
+ .4byte _080928C4
+ .4byte _080928C4
+ .4byte _080928D4
+ .4byte _080928D4
+ .4byte _080928EC
+ .4byte _080928EC
+ .4byte _080928D4
+ .4byte _080928D4
+ .4byte _08092914
+ .4byte _08092904
+_080928C4:
+ ldr r1, _080928D0
+ lsls r0, r4, 3
+ adds r0, r1
+ ldrb r1, [r0, 0x4]
+ ldrb r2, [r0, 0x5]
+ b _08092932
+ .align 2, 0
+_080928D0: .4byte gUnknown_083B57E4
+_080928D4:
+ ldr r2, _08092900
+ subs r1, r4, 0x3
+ lsls r0, r1, 1
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r2
+ ldrb r1, [r0, 0x4]
+ ldrb r2, [r0, 0x5]
+ ldrb r3, [r0, 0x6]
+ adds r0, r5, 0
+ bl sub_8092810
+_080928EC:
+ ldr r2, _08092900
+ subs r1, r4, 0x3
+ lsls r0, r1, 1
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r2
+ ldrb r1, [r0, 0x7]
+ ldrb r2, [r0, 0x8]
+ ldrb r3, [r0, 0x9]
+ b _08092934
+ .align 2, 0
+_08092900: .4byte gUnknown_083B57FC
+_08092904:
+ ldr r0, _08092910
+ ldrb r1, [r0, 0x1C]
+ ldrb r2, [r0, 0x1D]
+ ldrb r3, [r0, 0x1E]
+ b _08092934
+ .align 2, 0
+_08092910: .4byte gUnknown_083B57FC
+_08092914:
+ bl sub_806912C
+ cmp r0, 0
+ bne _08092940
+ ldr r2, _0809293C
+ subs r1, r4, 0x3
+ lsls r0, r1, 1
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r2
+ ldrb r1, [r0, 0x4]
+ ldrb r2, [r0, 0x5]
+ subs r2, 0x2
+ lsls r2, 24
+ lsrs r2, 24
+_08092932:
+ ldrb r3, [r0, 0x6]
+_08092934:
+ adds r0, r5, 0
+ bl sub_8092810
+ b _08092958
+ .align 2, 0
+_0809293C: .4byte gUnknown_083B57FC
+_08092940:
+ ldr r2, _08092960
+ subs r1, r4, 0x3
+ lsls r0, r1, 1
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r2
+ ldrb r1, [r0, 0x4]
+ ldrb r2, [r0, 0x5]
+ ldrb r3, [r0, 0x6]
+ adds r0, r5, 0
+ bl sub_8092810
+_08092958:
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08092960: .4byte gUnknown_083B57FC
+ thumb_func_end sub_809286C
+
+ thumb_func_start sub_8092964
+sub_8092964: @ 8092964
+ push {lr}
+ lsls r0, 24
+ lsrs r0, 24
+ adds r1, r0, 0
+ cmp r0, 0x1
+ beq _080929CE
+ cmp r0, 0x1
+ bgt _0809297A
+ cmp r0, 0
+ beq _08092980
+ b _08092AAC
+_0809297A:
+ cmp r1, 0x2
+ beq _08092A3E
+ b _08092AAC
+_08092980:
+ movs r0, 0
+ movs r1, 0
+ movs r2, 0
+ bl sub_809286C
+ movs r0, 0x1
+ movs r1, 0x1
+ movs r2, 0
+ bl sub_809286C
+ movs r0, 0x2
+ movs r1, 0x1
+ movs r2, 0
+ bl sub_809286C
+ movs r0, 0x3
+ movs r1, 0x1
+ movs r2, 0
+ bl sub_809286C
+ movs r0, 0x4
+ movs r1, 0x1
+ movs r2, 0
+ bl sub_809286C
+ movs r0, 0xA
+ movs r1, 0x1
+ movs r2, 0
+ bl sub_809286C
+ movs r0, 0x5
+ movs r1, 0x1
+ movs r2, 0
+ bl sub_809286C
+ movs r0, 0x6
+ movs r1, 0x1
+ movs r2, 0
+ b _08092A1A
+_080929CE:
+ movs r0, 0
+ movs r1, 0x1
+ movs r2, 0
+ bl sub_809286C
+ movs r0, 0x1
+ movs r1, 0
+ movs r2, 0
+ bl sub_809286C
+ movs r0, 0x2
+ movs r1, 0x1
+ movs r2, 0
+ bl sub_809286C
+ movs r0, 0x3
+ movs r1, 0x1
+ movs r2, 0x1
+ bl sub_809286C
+ movs r0, 0x4
+ movs r1, 0x1
+ movs r2, 0x1
+ bl sub_809286C
+ movs r0, 0xA
+ movs r1, 0x1
+ movs r2, 0x1
+ bl sub_809286C
+ movs r0, 0x5
+ movs r1, 0x1
+ movs r2, 0x1
+ bl sub_809286C
+ movs r0, 0x6
+ movs r1, 0x1
+ movs r2, 0x1
+_08092A1A:
+ bl sub_809286C
+ movs r0, 0x7
+ movs r1, 0x1
+ movs r2, 0
+ bl sub_809286C
+ movs r0, 0x8
+ movs r1, 0x1
+ movs r2, 0
+ bl sub_809286C
+ movs r0, 0x9
+ movs r1, 0x1
+ movs r2, 0
+ bl sub_809286C
+ b _08092AAC
+_08092A3E:
+ movs r0, 0
+ movs r1, 0x1
+ movs r2, 0
+ bl sub_809286C
+ movs r0, 0x1
+ movs r1, 0x1
+ movs r2, 0
+ bl sub_809286C
+ movs r0, 0x2
+ movs r1, 0
+ movs r2, 0
+ bl sub_809286C
+ movs r0, 0x3
+ movs r1, 0x1
+ movs r2, 0x1
+ bl sub_809286C
+ movs r0, 0x4
+ movs r1, 0x1
+ movs r2, 0x1
+ bl sub_809286C
+ movs r0, 0xA
+ movs r1, 0x1
+ movs r2, 0x1
+ bl sub_809286C
+ movs r0, 0x5
+ movs r1, 0x1
+ movs r2, 0x1
+ bl sub_809286C
+ movs r0, 0x6
+ movs r1, 0x1
+ movs r2, 0x1
+ bl sub_809286C
+ movs r0, 0x7
+ movs r1, 0x1
+ movs r2, 0x1
+ bl sub_809286C
+ movs r0, 0x8
+ movs r1, 0x1
+ movs r2, 0x1
+ bl sub_809286C
+ movs r0, 0x9
+ movs r1, 0x1
+ movs r2, 0x1
+ bl sub_809286C
+_08092AAC:
+ pop {r0}
+ bx r0
+ thumb_func_end sub_8092964
+
+ thumb_func_start sub_8092AB0
+sub_8092AB0: @ 8092AB0
+ push {r4,lr}
+ adds r4, r0, 0
+ lsls r4, 24
+ lsrs r4, 24
+ adds r0, r4, 0
+ bl sub_8092964
+ ldr r0, _08092AD0
+ lsls r4, 3
+ adds r4, r0
+ ldr r0, [r4]
+ bl sub_8091E20
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08092AD0: .4byte gUnknown_083B57E4
+ thumb_func_end sub_8092AB0
+
+ thumb_func_start sub_8092AD4
+sub_8092AD4: @ 8092AD4
+ push {r4,lr}
+ lsls r0, 24
+ lsrs r0, 24
+ lsls r1, 24
+ lsrs r4, r1, 24
+ bl sub_8092964
+ cmp r4, 0x6
+ bhi _08092B4E
+ lsls r0, r4, 2
+ ldr r1, _08092AF0
+ adds r0, r1
+ ldr r0, [r0]
+ mov pc, r0
+ .align 2, 0
+_08092AF0: .4byte _08092AF4
+ .align 2, 0
+_08092AF4:
+ .4byte _08092B10
+ .4byte _08092B14
+ .4byte _08092B18
+ .4byte _08092B26
+ .4byte _08092B34
+ .4byte _08092B38
+ .4byte _08092B44
+_08092B10:
+ movs r0, 0x3
+ b _08092B3A
+_08092B14:
+ movs r0, 0x4
+ b _08092B3A
+_08092B18:
+ movs r0, 0xA
+ movs r1, 0
+ movs r2, 0
+ bl sub_809286C
+ movs r0, 0x5
+ b _08092B3A
+_08092B26:
+ movs r0, 0xA
+ movs r1, 0
+ movs r2, 0
+ bl sub_809286C
+ movs r0, 0x6
+ b _08092B3A
+_08092B34:
+ movs r0, 0x7
+ b _08092B3A
+_08092B38:
+ movs r0, 0x8
+_08092B3A:
+ movs r1, 0
+ movs r2, 0
+ bl sub_809286C
+ b _08092B4E
+_08092B44:
+ movs r0, 0x9
+ movs r1, 0
+ movs r2, 0
+ bl sub_809286C
+_08092B4E:
+ ldr r0, _08092B64
+ lsls r1, r4, 1
+ adds r1, r4
+ lsls r1, 2
+ adds r1, r0
+ ldr r0, [r1]
+ bl sub_8091E20
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08092B64: .4byte gUnknown_083B57FC
+ thumb_func_end sub_8092AD4
+
+ thumb_func_start sub_8092B68
+sub_8092B68: @ 8092B68
+ push {r4-r7,lr}
+ mov r7, r8
+ push {r7}
+ lsls r0, 24
+ lsrs r0, 24
+ ldr r2, _08092C68
+ lsls r1, r0, 2
+ adds r1, r0
+ lsls r1, 3
+ adds r6, r1, r2
+ ldrh r0, [r6, 0x16]
+ ldrh r1, [r6, 0x14]
+ adds r0, r1
+ lsls r0, 16
+ ldr r7, _08092C6C
+ ldr r1, _08092C70
+ lsrs r0, 13
+ adds r1, 0x4
+ adds r0, r1
+ ldr r1, [r0]
+ adds r0, r7, 0
+ bl StringCopy
+ ldr r0, _08092C74
+ mov r8, r0
+ movs r1, 0x2D
+ movs r2, 0x10
+ movs r3, 0x1
+ bl sub_80729D8
+ ldrh r0, [r6, 0x1A]
+ ldrh r1, [r6, 0x18]
+ adds r0, r1
+ lsls r0, 16
+ ldr r1, _08092C78
+ lsrs r0, 13
+ adds r1, 0x4
+ adds r0, r1
+ ldr r1, [r0]
+ adds r0, r7, 0
+ bl StringCopy
+ mov r0, r8
+ movs r1, 0x2D
+ movs r2, 0x20
+ movs r3, 0x1
+ bl sub_80729D8
+ ldrh r0, [r6, 0x1E]
+ ldrh r1, [r6, 0x1C]
+ adds r0, r1
+ lsls r0, 16
+ ldr r4, _08092C7C
+ lsrs r0, 13
+ adds r4, 0x4
+ adds r0, r4
+ ldr r1, [r0]
+ adds r0, r7, 0
+ bl StringCopy
+ ldr r5, _08092C80
+ adds r0, r5, 0
+ movs r1, 0x2D
+ movs r2, 0x30
+ movs r3, 0x1
+ bl sub_80729D8
+ ldrh r0, [r6, 0x22]
+ ldrh r1, [r6, 0x20]
+ adds r0, r1
+ lsls r0, 16
+ lsrs r0, 13
+ adds r0, r4
+ ldr r1, [r0]
+ adds r0, r7, 0
+ bl StringCopy
+ adds r0, r5, 0
+ movs r1, 0x5D
+ movs r2, 0x30
+ movs r3, 0x1
+ bl sub_80729D8
+ ldrh r0, [r6, 0x12]
+ ldrh r1, [r6, 0x10]
+ adds r0, r1
+ lsls r0, 16
+ ldr r1, _08092C84
+ lsrs r0, 13
+ adds r1, 0x4
+ adds r0, r1
+ ldr r1, [r0]
+ adds r0, r7, 0
+ bl StringCopy
+ mov r0, r8
+ movs r1, 0x2D
+ movs r2, 0x40
+ movs r3, 0x1
+ bl sub_80729D8
+ bl sub_806912C
+ cmp r0, 0
+ beq _08092C5E
+ ldrh r0, [r6, 0xE]
+ ldrh r6, [r6, 0xC]
+ adds r0, r6
+ lsls r0, 16
+ ldr r1, _08092C88
+ lsrs r0, 13
+ adds r1, 0x4
+ adds r0, r1
+ ldr r1, [r0]
+ adds r0, r7, 0
+ bl StringCopy
+ mov r0, r8
+ movs r1, 0x2D
+ movs r2, 0x50
+ movs r3, 0x1
+ bl sub_80729D8
+_08092C5E:
+ pop {r3}
+ mov r8, r3
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08092C68: .4byte gTasks
+_08092C6C: .4byte gStringVar1
+_08092C70: .4byte gUnknown_083B5910
+_08092C74: .4byte gUnknown_083B5AB2
+_08092C78: .4byte gUnknown_083B5968
+_08092C7C: .4byte gUnknown_083B59C8
+_08092C80: .4byte gUnknown_083B5AAC
+_08092C84: .4byte gUnknown_083B58D8
+_08092C88: .4byte gUnknown_083B58C0
+ thumb_func_end sub_8092B68
+
+ thumb_func_start sub_8092C8C
+sub_8092C8C: @ 8092C8C
+ push {r4-r6,lr}
+ lsls r0, 24
+ cmp r0, 0
+ bne _08092D48
+ ldr r1, _08092D1C
+ ldr r2, _08092D20
+ adds r0, r2, 0
+ strh r0, [r1]
+ movs r1, 0x12
+ ldr r3, _08092D24
+ ldr r4, _08092D28
+ adds r2, r4, 0
+_08092CA4:
+ lsls r0, r1, 1
+ adds r0, r3
+ strh r2, [r0]
+ adds r0, r1, 0x1
+ lsls r0, 16
+ lsrs r1, r0, 16
+ cmp r1, 0x1C
+ bls _08092CA4
+ ldr r1, _08092D2C
+ ldr r2, _08092D30
+ adds r0, r2, 0
+ strh r0, [r1]
+ movs r3, 0x1
+ ldr r6, _08092D24
+ movs r5, 0x2
+_08092CC2:
+ lsls r2, r3, 6
+ ldr r4, _08092D1C
+ adds r1, r2, r4
+ ldr r4, _08092D34
+ adds r0, r4, 0
+ strh r0, [r1]
+ movs r1, 0x12
+ adds r4, r3, 0x1
+ adds r3, r2, 0
+_08092CD4:
+ lsls r0, r1, 1
+ adds r0, r3, r0
+ adds r0, r6
+ strh r5, [r0]
+ adds r0, r1, 0x1
+ lsls r0, 16
+ lsrs r1, r0, 16
+ cmp r1, 0x1C
+ bls _08092CD4
+ ldr r1, _08092D2C
+ adds r0, r2, r1
+ movs r1, 0xA
+ strh r1, [r0]
+ lsls r0, r4, 16
+ lsrs r3, r0, 16
+ cmp r3, 0xC
+ bls _08092CC2
+ ldr r1, _08092D38
+ ldr r2, _08092D3C
+ adds r0, r2, 0
+ strh r0, [r1]
+ movs r1, 0x12
+ ldr r3, _08092D40
+ movs r2, 0xD
+_08092D04:
+ lsls r0, r1, 1
+ adds r0, r3
+ strh r2, [r0]
+ adds r0, r1, 0x1
+ lsls r0, 16
+ lsrs r1, r0, 16
+ cmp r1, 0x1C
+ bls _08092D04
+ ldr r1, _08092D44
+ movs r0, 0xB
+ strh r0, [r1]
+ b _08092D6E
+ .align 2, 0
+_08092D1C: .4byte 0x06007822
+_08092D20: .4byte 0x00000c0b
+_08092D24: .4byte 0x06007800
+_08092D28: .4byte 0x0000080d
+_08092D2C: .4byte 0x0600783a
+_08092D30: .4byte 0x0000080b
+_08092D34: .4byte 0x0000040a
+_08092D38: .4byte 0x06007b62
+_08092D3C: .4byte 0x0000040b
+_08092D40: .4byte 0x06007b40
+_08092D44: .4byte 0x06007b7a
+_08092D48:
+ movs r3, 0
+ ldr r6, _08092D74
+ movs r5, 0x4F
+_08092D4E:
+ movs r1, 0x11
+ adds r4, r3, 0x1
+ lsls r2, r3, 6
+_08092D54:
+ lsls r0, r1, 1
+ adds r0, r2, r0
+ adds r0, r6
+ strh r5, [r0]
+ adds r0, r1, 0x1
+ lsls r0, 16
+ lsrs r1, r0, 16
+ cmp r1, 0x1D
+ bls _08092D54
+ lsls r0, r4, 16
+ lsrs r3, r0, 16
+ cmp r3, 0xD
+ bls _08092D4E
+_08092D6E:
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08092D74: .4byte 0x06007800
+ thumb_func_end sub_8092C8C
+
+ thumb_func_start sub_8092D78
+sub_8092D78: @ 8092D78
+ push {r4-r7,lr}
+ mov r7, r8
+ push {r7}
+ lsls r0, 24
+ lsrs r0, 24
+ ldr r4, _08092DBC
+ ldr r3, _08092DC0
+ lsls r2, r0, 2
+ adds r2, r0
+ lsls r2, 3
+ adds r0, r2, r3
+ movs r5, 0xA
+ ldrsh r1, [r0, r5]
+ lsls r1, 3
+ adds r1, r4
+ ldr r6, [r1]
+ adds r3, 0x8
+ adds r2, r3
+ ldrb r0, [r1, 0x4]
+ lsls r0, 1
+ adds r0, r2
+ mov r8, r0
+ ldrb r0, [r1, 0x5]
+ lsls r0, 1
+ adds r7, r2, r0
+ movs r0, 0x12
+ movs r1, 0x1
+ movs r2, 0x1C
+ movs r3, 0xC
+ bl MenuZeroFillWindowRect
+ movs r5, 0
+ ldrh r4, [r7]
+ b _08092DE8
+ .align 2, 0
+_08092DBC: .4byte gUnknown_083B5A7C
+_08092DC0: .4byte gTasks
+_08092DC4:
+ lsls r0, r4, 3
+ adds r0, r6
+ ldr r0, [r0, 0x4]
+ lsls r2, r5, 1
+ adds r2, 0x1
+ lsls r2, 24
+ lsrs r2, 24
+ movs r1, 0x12
+ bl MenuPrint
+ adds r0, r5, 0x1
+ lsls r0, 16
+ lsrs r5, r0, 16
+ adds r0, r4, 0x1
+ lsls r0, 16
+ lsrs r4, r0, 16
+ cmp r5, 0x5
+ bhi _08092DF2
+_08092DE8:
+ lsls r0, r4, 3
+ adds r0, r6
+ ldr r0, [r0, 0x4]
+ cmp r0, 0
+ bne _08092DC4
+_08092DF2:
+ mov r1, r8
+ ldrh r0, [r1]
+ ldrh r1, [r7]
+ adds r0, r1
+ lsls r0, 3
+ adds r0, r6
+ ldr r0, [r0]
+ bl sub_8091E20
+ pop {r3}
+ mov r8, r3
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_8092D78
+
+ thumb_func_start sub_8092E10
+sub_8092E10: @ 8092E10
+ push {lr}
+ lsls r0, 24
+ lsrs r0, 24
+ lsls r1, 24
+ lsrs r3, r1, 24
+ lsls r1, r0, 2
+ adds r1, r0
+ lsls r1, 3
+ ldr r0, _08092E50
+ adds r1, r0
+ ldr r2, _08092E54
+ lsls r0, r3, 3
+ adds r0, r2
+ ldrb r2, [r0, 0x4]
+ lsls r2, 1
+ adds r2, r1, r2
+ ldrb r0, [r0, 0x5]
+ lsls r0, 1
+ adds r1, r0
+ ldrh r0, [r1]
+ ldrh r2, [r2]
+ adds r0, r2
+ lsls r0, 16
+ lsrs r2, r0, 16
+ cmp r3, 0x5
+ bhi _08092E74
+ lsls r0, r3, 2
+ ldr r1, _08092E58
+ adds r0, r1
+ ldr r0, [r0]
+ mov pc, r0
+ .align 2, 0
+_08092E50: .4byte gUnknown_03004B28
+_08092E54: .4byte gUnknown_083B5A7C
+_08092E58: .4byte _08092E5C
+ .align 2, 0
+_08092E5C:
+ .4byte _08092E88
+ .4byte _08092E92
+ .4byte _08092EA2
+ .4byte _08092EA2
+ .4byte _08092E80
+ .4byte _08092E78
+_08092E74:
+ movs r0, 0
+ b _08092EA8
+_08092E78:
+ ldr r0, _08092E7C
+ b _08092EA4
+ .align 2, 0
+_08092E7C: .4byte gUnknown_083B5A60
+_08092E80:
+ ldr r0, _08092E84
+ b _08092EA4
+ .align 2, 0
+_08092E84: .4byte gUnknown_083B5A62
+_08092E88:
+ cmp r2, 0
+ beq _08092E96
+ lsls r0, r2, 24
+ lsrs r0, 24
+ b _08092EA8
+_08092E92:
+ cmp r2, 0
+ bne _08092E9A
+_08092E96:
+ movs r0, 0xFF
+ b _08092EA8
+_08092E9A:
+ subs r0, r2, 0x1
+ lsls r0, 24
+ lsrs r0, 24
+ b _08092EA8
+_08092EA2:
+ ldr r0, _08092EAC
+_08092EA4:
+ adds r0, r2, r0
+ ldrb r0, [r0]
+_08092EA8:
+ pop {r1}
+ bx r1
+ .align 2, 0
+_08092EAC: .4byte gUnknown_083B5A68
+ thumb_func_end sub_8092E10
+
+ thumb_func_start sub_8092EB0
+sub_8092EB0: @ 8092EB0
+ push {r4,r5,lr}
+ lsls r0, 24
+ lsrs r4, r0, 24
+ ldr r1, _08092ED0
+ ldr r0, [r1]
+ ldr r2, _08092ED4
+ adds r0, r2
+ ldrh r0, [r0]
+ adds r5, r1, 0
+ cmp r0, 0
+ beq _08092ECA
+ cmp r0, 0x1
+ beq _08092ED8
+_08092ECA:
+ movs r3, 0
+ b _08092EDA
+ .align 2, 0
+_08092ED0: .4byte gUnknown_0202FFB4
+_08092ED4: .4byte 0x00000614
+_08092ED8:
+ movs r3, 0x1
+_08092EDA:
+ ldr r1, _08092F00
+ lsls r2, r4, 2
+ adds r0, r2, r4
+ lsls r0, 3
+ adds r0, r1
+ strh r3, [r0, 0xC]
+ ldr r0, [r5]
+ movs r3, 0xC3
+ lsls r3, 3
+ adds r0, r3
+ ldrh r0, [r0]
+ adds r5, r1, 0
+ cmp r0, 0x5
+ bhi _08092F20
+ lsls r0, 2
+ ldr r1, _08092F04
+ adds r0, r1
+ ldr r0, [r0]
+ mov pc, r0
+ .align 2, 0
+_08092F00: .4byte gTasks
+_08092F04: .4byte _08092F08
+ .align 2, 0
+_08092F08:
+ .4byte _08092F20
+ .4byte _08092F24
+ .4byte _08092F28
+ .4byte _08092F2C
+ .4byte _08092F30
+ .4byte _08092F34
+_08092F20:
+ movs r3, 0
+ b _08092F36
+_08092F24:
+ movs r3, 0x1
+ b _08092F36
+_08092F28:
+ movs r3, 0x2
+ b _08092F36
+_08092F2C:
+ movs r3, 0x3
+ b _08092F36
+_08092F30:
+ movs r3, 0x4
+ b _08092F36
+_08092F34:
+ movs r3, 0x5
+_08092F36:
+ adds r0, r2, r4
+ lsls r0, 3
+ adds r0, r5
+ strh r3, [r0, 0x10]
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_8092EB0
+
+ thumb_func_start sub_8092F44
+sub_8092F44: @ 8092F44
+ push {lr}
+ lsls r0, 24
+ lsrs r0, 24
+ ldr r3, _08092F7C
+ lsls r1, r0, 2
+ adds r1, r0
+ lsls r1, 3
+ adds r0, r1, r3
+ ldrb r2, [r0, 0xA]
+ adds r3, 0x8
+ adds r1, r3
+ ldr r0, _08092F80
+ lsls r2, 3
+ adds r2, r0
+ ldrb r0, [r2, 0x5]
+ lsls r0, 1
+ adds r1, r0
+ ldrh r0, [r2, 0x6]
+ subs r0, 0x1
+ lsls r0, 16
+ lsrs r0, 16
+ cmp r0, 0x5
+ bls _08092F84
+ ldrh r0, [r1]
+ cmp r0, 0
+ beq _08092F84
+ movs r0, 0
+ b _08092F86
+ .align 2, 0
+_08092F7C: .4byte gTasks
+_08092F80: .4byte gUnknown_083B5A7C
+_08092F84:
+ movs r0, 0x1
+_08092F86:
+ pop {r1}
+ bx r1
+ thumb_func_end sub_8092F44
+
+ thumb_func_start sub_8092F8C
+sub_8092F8C: @ 8092F8C
+ push {lr}
+ lsls r0, 24
+ lsrs r0, 24
+ ldr r3, _08092FC8
+ lsls r1, r0, 2
+ adds r1, r0
+ lsls r1, 3
+ adds r0, r1, r3
+ ldrb r2, [r0, 0xA]
+ adds r3, 0x8
+ adds r1, r3
+ ldr r0, _08092FCC
+ lsls r2, 3
+ adds r2, r0
+ ldrb r0, [r2, 0x5]
+ lsls r0, 1
+ adds r1, r0
+ ldrh r0, [r2, 0x6]
+ subs r0, 0x1
+ lsls r0, 16
+ lsrs r0, 16
+ cmp r0, 0x5
+ bls _08092FD0
+ ldrh r1, [r1]
+ subs r0, 0x5
+ cmp r1, r0
+ bge _08092FD0
+ movs r0, 0
+ b _08092FD2
+ .align 2, 0
+_08092FC8: .4byte gTasks
+_08092FCC: .4byte gUnknown_083B5A7C
+_08092FD0:
+ movs r0, 0x1
+_08092FD2:
+ pop {r1}
+ bx r1
+ thumb_func_end sub_8092F8C
+
+ thumb_func_start sub_8092FD8
+sub_8092FD8: @ 8092FD8
+ push {r4,lr}
+ adds r4, r0, 0
+ ldr r2, _08093018
+ movs r0, 0x2E
+ ldrsh r1, [r4, r0]
+ lsls r0, r1, 2
+ adds r0, r1
+ lsls r0, 3
+ adds r0, r2
+ ldr r1, [r0]
+ ldr r0, _0809301C
+ cmp r1, r0
+ bne _08093078
+ movs r1, 0x30
+ ldrsh r0, [r4, r1]
+ cmp r0, 0
+ beq _08093020
+ ldrh r0, [r4, 0x2E]
+ lsls r0, 24
+ lsrs r0, 24
+ bl sub_8092F8C
+ lsls r0, 24
+ cmp r0, 0
+ beq _0809303C
+ adds r2, r4, 0
+ adds r2, 0x3E
+ ldrb r0, [r2]
+ movs r1, 0x4
+ orrs r0, r1
+ b _08093048
+ .align 2, 0
+_08093018: .4byte gTasks
+_0809301C: .4byte sub_8092644
+_08093020:
+ ldrh r0, [r4, 0x2E]
+ lsls r0, 24
+ lsrs r0, 24
+ bl sub_8092F44
+ lsls r0, 24
+ cmp r0, 0
+ beq _0809303C
+ adds r2, r4, 0
+ adds r2, 0x3E
+ ldrb r0, [r2]
+ movs r1, 0x4
+ orrs r0, r1
+ b _08093048
+_0809303C:
+ adds r2, r4, 0
+ adds r2, 0x3E
+ ldrb r1, [r2]
+ movs r0, 0x5
+ negs r0, r0
+ ands r0, r1
+_08093048:
+ strb r0, [r2]
+ ldrh r2, [r4, 0x32]
+ movs r1, 0x30
+ ldrsh r0, [r4, r1]
+ lsls r0, 7
+ adds r0, r2, r0
+ lsls r0, 24
+ ldr r1, _08093074
+ lsrs r0, 23
+ adds r0, r1
+ movs r1, 0
+ ldrsh r0, [r0, r1]
+ cmp r0, 0
+ bge _08093066
+ adds r0, 0x7F
+_08093066:
+ asrs r0, 7
+ strh r0, [r4, 0x26]
+ adds r0, r2, 0
+ adds r0, 0x8
+ strh r0, [r4, 0x32]
+ b _08093084
+ .align 2, 0
+_08093074: .4byte gSineTable
+_08093078:
+ adds r0, r4, 0
+ adds r0, 0x3E
+ ldrb r1, [r0]
+ movs r2, 0x4
+ orrs r1, r2
+ strb r1, [r0]
+_08093084:
+ pop {r4}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_8092FD8
+
+ thumb_func_start sub_809308C
+sub_809308C: @ 809308C
+ push {r4-r6,lr}
+ mov r6, r9
+ mov r5, r8
+ push {r5,r6}
+ adds r5, r0, 0
+ lsls r5, 24
+ lsrs r5, 24
+ ldr r6, _08093104
+ adds r0, r6, 0
+ movs r1, 0xB8
+ movs r2, 0x4
+ movs r3, 0
+ bl CreateSprite
+ lsls r0, 24
+ lsrs r0, 24
+ ldr r4, _08093108
+ lsls r1, r0, 4
+ adds r1, r0
+ lsls r1, 2
+ adds r0, r1, r4
+ movs r2, 0
+ strh r5, [r0, 0x2E]
+ strh r2, [r0, 0x30]
+ movs r0, 0x1C
+ adds r0, r4
+ mov r9, r0
+ add r1, r9
+ ldr r0, _0809310C
+ mov r8, r0
+ str r0, [r1]
+ adds r0, r6, 0
+ movs r1, 0xB8
+ movs r2, 0x6C
+ movs r3, 0
+ bl CreateSprite
+ lsls r0, 24
+ lsrs r0, 24
+ lsls r1, r0, 4
+ adds r1, r0
+ lsls r1, 2
+ adds r4, r1, r4
+ strh r5, [r4, 0x2E]
+ movs r0, 0x1
+ strh r0, [r4, 0x30]
+ adds r4, 0x3F
+ ldrb r0, [r4]
+ movs r2, 0x2
+ orrs r0, r2
+ strb r0, [r4]
+ add r1, r9
+ mov r0, r8
+ str r0, [r1]
+ pop {r3,r4}
+ mov r8, r3
+ mov r9, r4
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08093104: .4byte gSpriteTemplate_83A053C
+_08093108: .4byte gSprites
+_0809310C: .4byte sub_8092FD8
+ thumb_func_end sub_809308C
+
+ .align 2, 0 @ Don't pad with nop.